Procedure for Adding IP Phones to Endpoint Manager

Procedure for Adding IP Phones
to Endpoint Manager
Table of Contents
Environment Setup.................................................................................................................1
Endpoint Manager Utilities.....................................................................................................1
Adding Brands........................................................................................................................2
Adding Models.......................................................................................................................2
Adding Modules.....................................................................................................................3
Assigning Modules to Models................................................................................................3
Adding Configuration Types...................................................................................................4
Adding Lines..........................................................................................................................4
Assigning Lines to Models.....................................................................................................5
Adding Timezones..................................................................................................................6
Adding Groups.......................................................................................................................6
Adding OUIs...........................................................................................................................7
Importing Configuration Files.................................................................................................7
Migration ................................................................................................................................8
Provisioners...........................................................................................................................9
Environment Setup
First download and install the latest version of the Endpoint Manager module if it is not
installed yet, along with the corresponding version of the Endpoint Manager Utilities. Both
of the RPM packages installed using the following command:
yum install cpbx-xepm cpbx-xepm-utils
After installation a new menu entry named “Endpoint Manager”, will be placed under the
Settings tab. As this document focuses on adding new telephones to the Endpoint
Manager, kindly refer to the Endpoint Manager documentation on our wiki for information
regarding the Endpoint Manager itself.
Endpoint Manager Utilities
The Endpoint Manager Utilities provides a convenient way make adjustments to the
database used by the Endpoint Manager. Note this software package is intended for
development purposes only and should not be used on a production system. Due to the
fact that the Endpoint Manager Utilities has no authentication whatsoever, access to the
Endpoint Manager is provided via a hidden URL. In order to accss it enter the following
address in your web browser (replace <PBX hostname or IP> as needed):
http://<PBX hostname or IP>/xepm-utils/
PM0627.01
1/12
Figure 1: Endpoint Manager Utilities
Adding Brands
All current brands are listed on the “Brands” tab in the Endpoint Manager Utilities. New
brands can be added by entering the brand name in the input field at the bottom of the
listing. The new brand is then added by clicking the “Create” button. Existing brands can
be modified and/or deleted from the same page. Changes are committed by clicking the
“Apply” button.
Figure 2: Brand list
Adding Models
IP phones are represented as models in the system. All current models are listed on the
“Models” tab in the Endpoint Manager Utilities. New models can be added by selecting the
PM0627.01
2/12
relevant brand, specifying the model name, number of SIP lines, IAX2 lines, buttons and
maximum number of expansion modules in the input fields at the bottom of the listing. The
new model is the added by clicking the “Create” button. Existing models can be modified
and/or deleted from the same page. Changes are committed by clicking the “Apply” button.
Figure 3: Model list
Adding Modules
IP phone expansion modules are represented as modules in the system. All current
modules are listed on the “Modules” tab in the Endpoint Manager Utilities. New modules
can be added by selecting the relevant brand, specifying the module name and number of
buttons in the input fields at the bottom of the listing. The new module is then added by
clicking the “Create” button. Existing modules can be modified and/or deleted from the
same page. Changes are committed by clicking the “Apply” button.
Figure 4: Module listing
Assigning Modules to Models
Expansion modules must be linked to IP phone models for the system to understand which
modules are available for users to add to a particular model. All current module
assignments are listed on the “Assign Modules” tab in the Endpoint Manager Utilities. New
assignments can be made by selecting the relevant model and module at the bottom of the
listing. The new assignment is then made by clicking the “Assign” button. Existing
assignments can be modified and/or deleted from the same page. Changes are committed
by clicking the “Apply” button.
PM0627.01
3/12
Figure 5: Module assignments
Adding Configuration Types
Each IP phone may require different configuration file formats depending on firmware
version or hardware revision. As a solution for this problem the Endpoint Manager provides
different configuration types that can be selected by the administrator during template
creation. All current configuration types are listed on the “Configuration Types” tab in the
Endpoint Manager Utilities. New configuration types can be added by selecting the
relevant device and specifying the configuration name in the input field at the bottom of the
listing. The new configuration type is then added by clicking the “Create” button. Existing
configuration types can be modified and/or deleted from the same page. Changes are
committed by clicking the “Apply” button.
Figure 6: Configuration type list
Adding Lines
Various models support having more than one line. By default the Endpoint Manager can
provide up to 12 lines as well as a special “Auto” line. All current lines are listed on the
“Lines” tab in the Endpoint Manager Utilities. New lines can be made by specifying the line
name at the bottom of the listing. The new line is then added by clicking the “Create”
PM0627.01
4/12
button. Existing lines can be modified and/or deleted from the same page. Changes are
committed by clicking the “Apply” button.
Figure 7: Line list
Assigning Lines to Models
Lines must be linked to IP phone models for the system to understand which lines are
available for users to select on a particular model. All current line assignments are listed
on the “Assign Lines” tab in the Endpoint Manager Utilities. New assignments can be
made by selecting the relevant model, line and specifying the configuration value for that
line at the bottom of the listing. The new assignment is then made by clicking the “Assign”
button. Existing assignments can be modified and/or deleted from the same page.
Changes are committed by clicking the “Apply” button.
Figure 8: Line assignment
PM0627.01
5/12
Adding Timezones
Each IP phone model supports a limited set of timezones, these must be defined in order
for the system to be able to provide them as a selection to the user. All current timezones
are listed on the “Timezones” tab in the Endpoint Manager Utilities. New timezones can be
added by specifying the timezone name, offset (in seconds) and configuration value for
that timezone at the bottom of the listing. The new timezone is then added by clicking the
“Create” button. Existing timezones can be modified and/or deleted from the same page.
Changes are committed by clicking the “Apply” button.
Figure 9: Timezone list
Adding Groups
IP phone buttons are logically grouped into several categories, this allows the end user to
more easily configure the available buttons on the phone. All current groups are listed on
the “Groups” tab in the Endpoint Manager Utilities. New groups can be added by
specifying the name for that group at the bottom of the listing. The new group is then
added by clicking the “Create” button. Existing groups can be modified and/or deleted from
the same page. Changes are committed by clicking the “Apply” button.
Figure 10: Group list
PM0627.01
6/12
Adding OUIs
The brand of IP phones is automatically detected during network scans by looking up the
OUI (first 3 bytes) of the MAC address. The OUI listing that is provided is based on public
information from the IEEE MA-L listing. All current OUIs are listed on the “OUIs” tab in the
Endpoint Manager Utilities. New OUIs can be added by specifying the 3-byte MA-L in
hexadecimal format for that OUI at the bottom of the listing. The new OUI is then added by
clicking the “Create” button. Existing OUIs can be modified and/or deleted from the same
page. Changes are committed by clicking the “Apply” button.
Figure 11: OUI list
Importing Configuration Files
Configuration file parameters are represented in the Endpoint Manager as settings. The
“Settings” tab on the Endpoint Manager Utilities provides a way to import configuration files
into the database. Several options are available for importing different formats of
configuration files. Importing is done by selecting the configuration type for which you wish
to import a configuration file. A file must then be chosen, configuration file format must be
specified using the available fields. The file is then imported by clicking the “Import” button.
PM0627.01
7/12
Figure 12: Importing configuration files
The resulting settings are listed by configuration type. New settings can be added by
specifying the name, parent, group and default value for that setting at the bottom of the
listing. The new setting is then added by clicking the “Create” button. Existing settings can
be modified and/or deleted from the same page. Changes are committed by clicking the
“Apply” button.
Figure 13: Setting list
Migration
Migrating the Endpoint Manager database between different systems via the “Migration”
tab on the Endpoint Manager Utilities. This page allows you to create an export of the
database as well as import a previously exported file in different ways, either merging with
or replacing the existing database.
PM0627.01
8/12
Figure 14: Migration
Provisioners
Due to complexity and peculiarities of various models, it is unfortunately not possible to
design a fully data-driven Endpoint Manager. Some amount of programming will be
required for each model in the form of a provisioner. The provisioner is a class which
contains some details regarding each model as well as methods which will generate
configuration files and convert configuration parameters between web representation and
database storage. To speed up this process, the Endpoint Manager provides an API for
common operations that the provisioner can use.
For examples of what a provisioner looks like, you can refer to the
/var/www/html/admin/modules/xepm/provisioners folder on the system. This folder
contains several files, one for each brand. Class definitions for multiple models exist in
each file.
Several rules must be followed when creating new provisioners:
•
All provisioners must be placed in the ./provisioners folder.
•
The filename must match the name of the brand in lowercase.
•
Each classname must be in the format <brand>_<model> _provisioner.
•
The provisioner must inherit “provisioner”.
Various properties and methods are available by the provisioner base class to facilitate
with development. The available properties are:
•
mac_address
•
device_id
•
brand_id
•
brand_name
•
model_id
•
model_name
PM0627.01
9/12
•
template_id
•
timezone_id
•
sip_lines
•
admin_password
•
feature_voicemail
The available methods are:
•
•
•
advanced_settings() – Returns an array of objects describing the main sections of
the configuration file for the current device. Each object has the following properties:
•
parent_id
•
name
•
settings – This property contains an array of objects describing the
configuration settings for the current device. Each object has the following
properties:
•
setting_id
•
name
•
value
device_buttons() – Returns an array of objects describing the buttons for the current
device. Each object has the following properties:
•
display_index
•
button_index
•
model_button_id
•
group_id
•
line
•
value
•
label
expansion_buttons() – Returns an array of objects describing expansion module
settings for the current device. Each object has the following properties:
•
parent_id
•
name
•
settings – This property contains an array of objects describing configuration
settings for the current device. Each object has the following properties:
PM0627.01
•
setting_id
•
name
10/12
•
•
•
•
value
extensions() – Returns an array of objects describing the extensions assigned to
the current device. Each object has the following properties:
•
account
•
callerid
•
port
•
qualify
•
qualifyfreq
•
secret
•
transport
•
extension_index
•
displayname
modules() – Returns an array of objects describing the expansion modules attached
to the current device. Each object has the following properties:
•
module_id
•
module_index
•
button_count
•
name
timezone() – Returns an object describing the timezone of the current device. The
object has the following properties:
•
timezone_id
•
brand_id
•
offset
•
name
•
value
The provisioner class must implement the following methods:
•
buttons_to_settings() – Receives an array of objects describing button categories
for the current device. Each object has the following properties:
•
category_id
•
name
•
parent_id
•
buttons – This property contains an array of objects describing each button
for this category. Each object has the following properties:
PM0627.01
11/12
•
type
•
line
•
button_index
•
display_index
•
group_id
•
value
•
label
This method must return a nested associative array describing configuration
settings for the current device.
•
dss_button_count() – Must return the number of DSS buttons for this device.
•
expansion_button_types() – Must return an associative array of button types
available on the expansion module for this device.
•
generate() – Receives the requested filename as an argument. This method must
output the requested filename to the output buffer via echo statements.
•
line_button_count() – Must return the number of line buttons for this device.
•
settings_to_buttons() – Receives a nested associative array describing
configuration settings that are to be converted to buttons. This method must return
an associative nested array of objects with the following properties:
•
•
display_index
•
button_index
•
model_button_id
•
group_id
•
line
•
value
•
label
show_button_types() – Must return an array of objects describing the button types
available for this device with the following properties:
•
name
•
value
•
types() – Must return an associative array of button types available on this device.
•
Values() – Receives a logical button type and must return the configuration value for
that type.
PM0627.01
12/12