User Tools

Site Tools


extensions:teemip-telephony-mgmt

This is an old revision of the document!


Telephony Management

name:
Telephony Management
description:
Manage phone number plans and enhance telephony devices
version:
1.0.0
TeemIp:
3.2+
iTop:
3.3+
code:
teemip-telephony-mgmt
localization:
English, French
state:
stable
keyword:
telephony, phone-number, end-user devices
github:
teemip-telephony-mgmt
php-max:
8.4

FIXME Work in progress

This extension brings to TeemIp the management of phone number plans: phone number ranges, phone numbers and extensions. It also enhances the end-user devices of the CMDB with SIM cards and links telephony devices to the phone numbers they use.

Vocabulary: by “TeemIp solution” or “TeemIP”, it should be understood: TeemIp standalone or the iTop solution on top of which IPAM for iTop has been installed.

Revision History

Version Release Date Status iTop
Min
IPAM for iTop
Min
Comments
1.0.0 TBD In development 3.3.0 3.3.0 - Initial revision

Features

The TeemIp Telephony Management extension allows telephony administrators to document the phone number plans of their organization and the devices that use them:

  • Register phone number ranges per country, in international E.164 format, and organize them in a hierarchy of ranges,
  • Register phone numbers and attach them to the smallest range that contains them,
  • Register extensions attached to phone numbers,
  • Track the status (reserved, allocated, released, unassigned) and the allocation and release dates of each phone number object,
  • Document SIM cards and the devices that host them: mobile phones, tablets, PCs, peripherals and network devices,
  • Link phone numbers to SIM cards and to telephony devices (phones, IP phones and mobile phones),
  • Allocate a phone number to a CI or un-allocate it from all CIs in one click,
  • Automatically align the status of phone numbers with the CIs that use them, through background tasks controlled by configuration parameters,
  • Audit the CIs that have no phone number.

[Picture: telephony_overview.png - Telephony Space dashboard showing phone number objects and telephony devices]

Licensing

The TeemIp Telephony Management extension is licensed under the terms of the GNU Affero General Public License Version 3 as published by the Free Software Foundation. This gives you legal permission to copy, distribute and/or modify TeemIp Telephony Management under certain conditions. Read the ’license.txt’ file in the TeemIp distribution. TeemIp Telephony Management is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.

Limitations

This extension documents phone number plans and telephony devices. It doesn't drive telephony systems (PBX, carriers' portals…).

Phone numbers are managed in international E.164 format only. Numbers typed in national format are rejected.

Requirements

TeemIp standalone: The extension is embedded in TeemIp standalone.

iTop: When installed on an iTop application, you need IPAM for iTop to be installed as well.

The enhancements of end-user devices (SIM cards, links between devices and phone numbers) require the End-user Devices Management module to be selected at installation time.

Installation

TeemIp standalone: Installation is done with the application itself, through the setup.

iTop: To add the extension on an iTop application, follow the Standard installation process.

The extension is made of the following modules:

Module Description Installation
teemip-phone-number-mgmt Phone number ranges, phone numbers, extensions and country calling codes Visible at setup time
teemip-endusers-devices-extended SIM cards and links between end-user devices and phone numbers Automatically selected with teemip-phone-number-mgmt and End-user Devices Management
teemip-bridge-endusers-devices-extended-services Displays provider contracts and services on telephony devices, tablets and peripherals Automatically selected when the End-user Devices / Services bridge is installed

Configuration

No specific configuration is required in TeemIp's configuration file for that extension to work. However, some default settings may be changed.

Configuration file

Under the Modules specific settings section, the following parameters may be set for the teemip-phone-number-mgmt module.

The Previous and Next buttons displayed on phone number ranges and phone numbers are controlled by the following parameters:

	'teemip-phone-number-mgmt' => array (
		'range_navigation' => array (
			'enabled' => true,
			'within_range_only' => true,
		),
		'number_navigation' => array (
			'enabled' => true,
			'within_range_only' => true,
		),
	),
Parameter Description Default value
enabled Display the Previous and Next buttons true
within_range_only Navigate only within the parent range (for ranges) or within the range of the number (for phone numbers). When set to false, navigation is done within the organization. true

Background tasks

Three background tasks may align the status of phone numbers with the CIs that use them. They are all disabled by default.

	'teemip-phone-number-mgmt' => array (
		'pn_allocate_on_ci' => array (
			'enabled' => false,
			'debug' => false,
			'periodicity' => 3600,
			'status_list' => array ('implementation', 'production'),
		),
		'pn_release_on_ci_status' => array (
			'enabled' => false,
			'debug' => false,
			'periodicity' => 3600,
			'status_list' => array ('obsolete'),
		),
		'pn_release_on_no_ci' => array (
			'enabled' => false,
			'debug' => false,
			'periodicity' => 3600,
			'target_status' => 'released',
		),
	),
Task Description
pn_allocate_on_ci Sets to Allocated the phone numbers that are not allocated yet and that are attached to at least one CI whose status belongs to status_list. For classes of CIs without status, or if status_list is empty, the status of the CI is not considered.
pn_release_on_ci_status Sets to Released the allocated phone numbers whose CIs all have a status belonging to status_list. A number shared by an obsolete CI and a CI in production remains allocated. Links between the CIs and the phone number are kept.
pn_release_on_no_ci Sets the allocated phone numbers that are not attached to any CI to target_status, which may be released or unassigned.

Common parameters:

Parameter Description Default value
enabled Activates the task false
debug Displays traces in the cron output false
periodicity Time between 2 executions of the task, in seconds 3600
  • The status_list parameters of pn_allocate_on_ci and pn_release_on_ci_status must not share any status. Otherwise, the same phone number would be allocated and released at each execution of the background tasks.
  • pn_release_on_no_ci also releases the phone numbers that are used outside of the CMDB, by devices that are not documented in TeemIp, for instance.

Implementation Scenario

This section provides, as an example, a method that can be followed to implement TeemIp Telephony Management.

  1. 1. Check that the Country calling codes you need exist. They are loaded at installation time.
  2. 2. Create the Phone number ranges assigned to your organization, then the sub-ranges you use internally.
  3. 3. Create the Phone numbers within these ranges. Selecting the range first prefills the number with the prefix of the range.
  4. 4. Create the Extensions of your phone numbers, if any.
  5. 5. Create the SIM cards and attach them to their phone number and to the device that hosts them.
  6. 6. Attach phone numbers to your telephony devices, either from the device or with the Allocate number to CI action of the phone number.
  7. 7. Activate the background tasks that suit your processes and run the audit rules regularly.

Telephony Management Menu

The extension brings a new Telephony Management menu with the following entries:

Menu Description
Telephony Space Dashboard giving access to phone number objects, telephony devices and devices with a SIM card
New Phone Number object Creation of a phone number range, a phone number or an extension
Search for Phone Number objects Search among all phone number objects
Phone Number Ranges List of phone number ranges
Phone Numbers List of phone numbers
Extensions List of extensions

[Picture: telephony_menu.png - Telephony Management menu and Telephony Space dashboard]

Phone Number Objects

Phone number ranges, phone numbers and extensions share the following attributes:

Name Type Mandatory?
Organization Foreign key to a(n) Organization Yes
Status Possible values: Reserved, Allocated, Released, Unassigned Yes
Note Multiline character string No
Requestor Foreign key to a(n) Person of the organization No
Allocation date Date and time Automatically computed
Release date Date and time Automatically computed
  • The allocation date is set when the object is created with, or moves to, the Allocated status.
  • The release date is set when the object is created with, or moves to, the Released status.

Phone Number Range

A phone number range is a block of consecutive phone numbers of a given country, like the numbers assigned by a carrier to an organization. Ranges can be nested to document how a block is split within the organization.

Phone Number Range Properties

Name Type Mandatory?
General Information
Organization Foreign key to a(n) Organization Yes
Name Alphanumeric string Yes
Status Possible values: Reserved, Allocated, Released, Unassigned Yes
Note Multiline character string No
Requestor Foreign key to a(n) Person No
Allocation date Date and time Automatically computed
Release date Date and time Automatically computed
Delegation Information
Delegated from Foreign key to a(n) Organization No
Numbering Information
Country Foreign key to a(n) Country Calling Code Yes
Parent range Foreign key to a(n) Phone Number Range Automatically computed
First number Phone number in E.164 format Yes
Last number Phone number in E.164 format Yes
Registered numbers Percentage of phone numbers registered in the range Automatically computed

Tabs

Tab Description
Contacts All the contacts attached to the range
Documents All the documents attached to the range
Phone numbers All the phone numbers that belong to the range

Creating a Phone Number Range

At creation time, first and last numbers are prefilled with the calling code of the selected country. Numbers can be typed with separators (spaces, dots, dashes, slashes, parentheses), with the 00 international prefix or with the (0) trunk prefix: they are automatically stored in E.164 format (e.g. +33123456789).

[Picture: classcreation_tippnrange.png - Creation form of a phone number range]

A few rules are enforced when creating a phone number range:
  • First and last numbers must be in E.164 format and have the same number of digits,
  • They must start with the calling code of the selected country,
  • First number must be smaller than the last one,
  • The range must be strictly included in its parent range, if any, and belong to the same country,
  • The range must not collide with another range of the same level,
  • The range must not contain a range delegated from another organization,
  • Name and numbers of a range are unique within an organization.
  • The parent range is automatically set to the smallest range of the organization that contains the new range.
  • Existing ranges contained in the new range are automatically attached to it.
  • Existing phone numbers of the organization that belong to the new range are automatically attached to it.
  • Once created, the organization, the country, the delegation information, the parent range and the numbers of a range cannot be changed.

Displaying a Phone Number Range

From the Phone Number Ranges menu or from the Telephony Space dashboard, select the range you are interested in:

[Picture: classdisplay_tippnrange.png - Details of a phone number range]

The Previous and Next buttons give access to the neighbour ranges, according to the configuration parameters.

Displaying the Tree of Ranges

The Display Tree action of the ranges' list displays the hierarchy of phone number ranges of the current organization. Delegated ranges may be folded or unfolded. The Display List action brings back the standard list.

[Picture: classdisplay_tippnrange_tree.png - Tree of phone number ranges]

Phone Number

A phone number is a single number, in E.164 format, that may be used by one or several CIs.

Phone Number Properties

Name Type Mandatory?
General Information
Organization Foreign key to a(n) Organization Yes
Status Possible values: Reserved, Allocated, Released, Unassigned Yes
Note Multiline character string No
Requestor Foreign key to a(n) Person No
Allocation date Date and time Automatically computed
Release date Date and time Automatically computed
Number Information
Phone number range Foreign key to a(n) Phone Number Range of the organization No
Number Phone number in E.164 format Yes

Tabs

Tab Description
Contacts All the contacts attached to the phone number
Documents All the documents attached to the phone number
Extensions All the extensions attached to the phone number
CIs All the CIs using the phone number, grouped by class. Obsolete CIs are listed as well.

Creating a Phone Number

Once a range is selected in the creation form, the number is prefilled with the prefix shared by all numbers of the range. For instance, for a range going from +33140000000 to +33140009999, the number is prefilled with +3314000. The prefix replaces the number as long as it is empty or incomplete and doesn't start with the prefix of the selected range.

[Picture: classcreation_tipphonenumber.png - Creation form of a phone number with the range prefix]

A few rules are enforced when creating a phone number:
  • The number must be in E.164 format,
  • If a range is selected, the number must belong to it,
  • A number is unique within an organization.
  • If no range is selected, the number is automatically attached to the smallest range of the organization that contains it, if any.
  • Once created, the organization, the range and the number cannot be changed.
  • The occupancy of the ranges is updated each time a phone number is created, moved or deleted.

Displaying a Phone Number

From the Phone Numbers menu or from the detailed display of a range, select the phone number you are interested in:

[Picture: classdisplay_tipphonenumber.png - Details of a phone number with its CIs tab]

The Previous and Next buttons give access to the neighbour phone numbers of the same length, according to the configuration parameters.

Allocating a Phone Number to a CI

When a phone number is not allocated, the Allocate number to CI action of the Other Actions menu allows you to attach it to a CI of the same organization. The form proposes:

  • The target class, among the classes of CIs that have a phone number attribute and instances in the organization,
  • The CI itself,
  • The phone number attribute of the CI.

[Picture: classaction_tipphonenumber_allocate.png - Allocate number to CI form]

Once applied, the CI points to the phone number and the phone number status is set to Allocated.

The allocation is refused if:
  • The phone number is already allocated,
  • The CI doesn't belong to the organization of the phone number,
  • The user is not allowed to modify the CI,
  • The phone number attribute of the CI is read only or is slave of a synchronization.
If the selected CI already points to another phone number, that link is replaced but the previous phone number keeps its Allocated status. Its status has to be changed manually, or by the pn_release_on_no_ci background task. The same behaviour applies when an IP address is allocated to a CI.

Un-allocating a Phone Number from all CIs

When a phone number is allocated, the Un-allocate number from all CIs action of the Other Actions menu detaches it from all the CIs that use it and sets its status to Released.

[Picture: classaction_tipphonenumber_unallocate.png - Result of the Un-allocate number from all CIs action]

The action is refused if the phone number is attached to a CI's attribute that is read only, slave of a synchronization or mandatory.

Extension

An extension is a code dialed after a phone number to reach a given line, like an internal line behind a switchboard number.

Extension Properties

Name Type Mandatory?
General Information
Organization Foreign key to a(n) Organization Yes
Status Possible values: Reserved, Allocated, Released, Unassigned Yes
Note Multiline character string No
Requestor Foreign key to a(n) Person No
Allocation date Date and time Automatically computed
Release date Date and time Automatically computed
Extension Information
Phone number Foreign key to a(n) Phone Number of the organization Yes
Code Alphanumeric string Yes

Tabs

Tab Description
Contacts All the contacts attached to the extension
Documents All the documents attached to the extension
  • The name of an extension is the concatenation of its phone number and its code.
  • Once created, the organization and the phone number of an extension cannot be changed.

[Picture: classdisplay_tippnextension.png - Details of an extension]

SIM Card

A SIM card is a physical device that may be hosted by a mobile phone, a tablet, a PC, a peripheral or a network device and that may be linked to a phone number.

SIM Card Properties

SIM cards are physical devices: they share the attributes of physical devices (name, organization, status, location, brand, model, serial number, asset number, dates…). The following attributes are specific to SIM cards:

Name Type Mandatory?
Format Possible values: Full-size, Mini-SIM, Micro-SIM, Nano-SIM, Embedded-SIM, Full-size that can be cut to micro, Full-size that can be cut to nano, Micro-SIM that can be cut to nano No
ICCID ICCID code or SIM card number: 89 followed by 17 or 18 digits, or 13 digits Yes
Carrier Foreign key to a(n) Organization No
Phone number Foreign key to a(n) Phone Number of the organization No
PIN Number with 4 to 8 digits No
PIN 2 Number with 4 to 8 digits No
PUK Number with 8 digits No
PUK 2 Number with 8 digits No
Main contact Foreign key to a(n) Contact of the organization No
Host Foreign key to a(n) Physical Device No
Host interface Foreign key to a(n) Physical Interface of the host No
A few rules are enforced when creating or modifying SIM cards:
  • The host must be a mobile phone, a tablet, a PC, a peripheral or a network device,
  • The format of the SIM card must be compatible with the SIM card format accepted by the host. A SIM card that can be cut is compatible with each of the formats it can be cut to.
The relation between a SIM card and its host is kept consistent on both sides: setting the host of a SIM card sets the SIM card on the host, and conversely.

[Picture: classdisplay_tipsimcard.png - Details of a SIM card]

End-user Devices

The extension enhances the following end-user devices:

Class New attributes
Phone, IP Phone, Mobile Phone Phone number: foreign key to a(n) Phone Number of the organization. It replaces the free text phone number attribute of the standard datamodel.
Mobile Phone SIM Card Format, SIM Card #1 and SIM Card #2
Tablet, PC, Peripheral, Network Device SIM Card Format and SIM Card

When the End-user Devices / Services bridge is installed, phones, IP phones, mobile phones, tablets and peripherals also display their provider contracts and services.

[Picture: classdisplay_mobilephone.png - Details of a mobile phone with its phone number and SIM cards]

Typology Elements

Country Calling Code

A country calling code defines the international calling code (ITU-T E.164) of a country. The list of countries is loaded at installation time.

Name Type Mandatory?
Country Alphanumeric string Yes
ISO code ISO 3166-1 alpha-2 code of the country (2 capital letters) Yes
Calling code Country calling code, without '+' (1 to 3 digits) Yes
Phone number ranges All the phone number ranges of the country No

Country calling codes are grouped in the dashlet “Telephony Typologies” of the typology configuration menu.

[Picture: overview_typology_telephony.png - Telephony Typologies dashlet]

Audit Rules

Audit rules are embedded within the extension. They are grouped under the Telephony audit domain, with one category per class of device:

Category Rule
SIM cards SIM cards without phone number
Phones Phones without phone number
Mobile phones Mobile phones without phone number
IP phones IP phones without phone number

[Picture: audit_telephony.png - Telephony audit domain and its results]

User Profiles

The TeemIp Telephony Management extension brings a new profile dedicated to the management of phone number objects: “Phone Numbers Manager”, a “Person in charge of the phone numbers space”. It has all rights on phone number ranges, phone numbers and extensions, and on their links with contacts, documents and tickets. It has read rights on all other objects.

This profile extends capabilities and must be used together with other profiles like ConfigurationManager.

extensions/teemip-telephony-mgmt.1792163565.txt.gz · Last modified: by cnaud