Gigaset Provisioning Guide
Gigaset Provisioning Guide
Gigaset Provisioning Guide
2012
Content
Content
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Roles in the provisioning process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Server in the provisioning process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Gigaset server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Provisioning server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Provisioning methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Provisioning data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Provisioning tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Provisioning methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Manual Gigaset VoIP phone set-up standard procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Methods for providing the provisioning server URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting up redirection information using the web user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting up redirection information using the XML-RPC interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Providing the provisioning server URL via the SIP multicast mechanism . . . . . . . . . . . . . . . . . . . . . .
DHCP option (dhcp_url) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
File upload via HTTP server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MAC based provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HTTP request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auto-provisioning via activation code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HTTP request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subscription list supporting multiple accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Updating the configuration data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auto-provisioning with plain XML content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Security aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Certificates in PEM format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Download TLS certificates via a link in a profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Starting the provisioning tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
12
12
15
24
25
25
26
27
28
29
31
32
33
34
36
37
37
38
38
39
39
40
42
43
43
43
46
48
49
49
52
52
52
52
53
54
Content
Testing the installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
The gigaset_profile_gen application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
File system structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Introduction
Introduction
Gigaset VoIP phones are delivered to the end-user requiring minimal user interaction for set-up and
keeping up-to-date. The end-user experiences the same plug & play behaviour as for analogue
phones. Unlike classic phones using a PSTN connection, VoIP phones require a variety of configuration parameters which have to be loaded automatically when the device is connected to the Internet.
Provisioning
Provisioning is the process for uploading the necessary configuration and account data to the phone.
This is done by means of profiles. A profile is a configuration file that contains Gigaset VoIP phonespecific settings, VoIP provider data as well as user-specific content. It has to be available on an HTTP
provisioning server which is accessible for the phone in the public (Internet) or local network.
A profile is loaded to the phone via its Ethernet interface.
Auto-provisioning
Auto-provisioning is defined as the mode of operation by which the Gigaset VoIP phone connects
automatically to a server and downloads both provider-specific parameters (such as the URL of the
SIP server) and user-specific parameters (such as the user name and password) and stores them in its
non-volatile memory.
Auto-provisioning is not necessarily limited to the parameters required for doing VoIP telephony.
Auto-provisioning can also be used to configure other parameters, e.g. the eMail settings, if the
Gigaset VoIP phones support these features. However, for technical reasons auto-provisioning is not
possible for all configuration parameters of the phone.
XML-provisioning
Gigaset offers XML-provisioning to the customer, i.e. Gigaset VoIP phones can be supplied with the
necessary configuration data via XML content. Existing XML-tooling can be used.
There are two procedures to provide Gigaset VoIP phones with configuration data:
u An XML file containing the configuration data is directly uploaded onto the phone.
u The XML file is used by a profile generation tool to generate a binary file that is supported by the
phones.
The following Gigaset VoIP phones are supported for auto-provisioning:
XML-provisioning with binary
Plain XML-provisioning
Yes
8/2012
Yes
8/2012
Yes
8/2012
Yes
8/2012
Yes
No
Yes
8/2012
Yes
8/2012
Yes
Q3/Q4 2012
Introduction
Provisioner
Redirection
server
Provider
Provisioning
server
SIP server
End-user
Network /
Internet
u
u
Gigaset is the manufacturer of the VoIP phones which are the subject of this document. For
Gigaset VoIP phones the MAC address including a check sum is used for identification. Gigaset
ensures that this MAC ID is printed on all phone boxes. This is necessary for assigning a specific
phone to a specific provider in order to provide the phone with SIP account data.
Each device is preconfigured with the same parameters. By default, all Gigaset VoIP phones contact the Gigaset update server when they are connected to the Internet for the first time to get
further information, e.g. the URL of the responsible provisioning server.
Gigaset provides a web or XML-RPC interface which can be used by provisioners to deploy redirection data on the Gigaset redirection server ( page 12).
Gigaset provides a provisioning tool which can be used by provisioners to facilitate the provisioning process. It provides an editor to create device-specific valid configuration files easily as well as
an editor to create provisioning packages which can be uploaded to the phones.
The provider
u
The provider hosts the SIP servers required to offer a complete VoIP telephony service to the enduser. Occasionally, the provider simultaneously assumes the role of provisioner and can host his
own provisioning server.
The provisioner
u
u
The provisioner has direct contact to the end-user and actually manages the VoIP configuration
parameters for each individual end-user VoIP phone. The provisioner has to provide the content
and perhaps even to operate the server that will be accessed by the phone in order to download
the end-users configuration parameters.
When using the Gigaset redirection service the provisioner can operate an own provisioning
server. If not, the provisioner is responsible for creating redirection data on the Gigaset server. The
MAC ID printed on the devices box can be read by a barcode scanner by the provisioner who has
to deploy this information on the Gigaset redirection database using the web interface.
The provisioner is also responsible for storing the custom-built data on the provisioning server. If
a VoIP phone requests this server, an end-user specific profile is generated and sent to the device.
Last but not least, the provisioner has to keep the custom-built data up-to-date.
Introduction
The end-user
The end-user has to connect the VoIP phone to the Internet only. All related information will be
downloaded automatically and there is no need for the end-user to configure parameters manually.
Gigaset server
u
Update server
The update server is responsible for providing the Gigaset VoIP phones with
provider profiles (user-independent data),
firmware updates,
language files for the Web user interface (optional),
help texts (language-specific) for the Web user interface (optional).
Gigaset VoIP phones establish a connection to the Gigaset server when connected to the Internet
for the first time and then periodically in order to check if there is an updated configuration file for
the Gigaset VoIP phone-specific settings.
By default the Gigaset server profile.gigaset.net/device is used as update server.
Redirection server
When the VoIP phone contacts the Gigaset server, in order to get all the necessary configuration
data, the redirection server supplies the URL of the provisioning server which is responsible for
providing the VoIP phone with the provider data (SIP account).
To enable auto-provisioning (i.e. the end-user does not need to select the provider manually) the
provisioner must add the redirection information for the VoIP phones to the redirection database.
The URL of the Gigaset redirection server is prov.gigaset.net.
Provisioning server
The provisioning server stores custom-built data for providing the VoIP phones with the VoIP specific
data (e.g. SIP account).
For many reasons it is possible to use a customised provisioning sever, e.g.:
u The phone has no possibility to reach the Gigaset server via the web (e.g. closed network without
HTTP proxy).
u The phone is used behind a VoIP PBX and the provisioning has to be independent from the LAN/
WAN infrastructure.
u The provider wants to handle profiles and firmware himself.
u The provider wants to use an auto-provisioning procedure to support the VoIP phones.
The Gigaset auto-provisioning methods are scalable over a wide area. This means for example
that it is possible to set up a system completely independent from the Gigaset server or to use the
Gigaset server for redirecting to a provider-specific provisioning server.
Introduction
Provisioning methods
For implementing auto-provisioning of the VoIP phones it must first be ensured that the device
receives the address (URL) of the server responsible for provisioning ( page 6). As the provisioning
server location cannot be anticipated in the case of a private PBX it may be located within the
phones local network, in the case of a hosted PBX it may be located somewhere in the Internet the
phones use a Gigaset server (profile.gigaset.net/device) by default which must be changed according
to the provisioners requirements.
The following methods are provided for the provisioning server URL update, depending on the prevailing network infrastructure (see figure Provisioning process page 8):
u Gigaset redirection service ( page 12)
The provisioner can use either the Gigaset provider/provisioner portal to enter the provisioning
server URL for the phones to be managed or use the XML-RPC interface.
u SIP multicast mechanism ( page 24)
The phone requests the provisioning server address from a local network instance via SIP multicast. This method is predominantly used by local PBX systems.
u DHCP option 114 ( page 25)
The phone requests the provisioning server address via a DHCP request with option 114
(dhcp_url). This method is predominantly used by stand-alone provisioning servers within the
same LAN.
u Manually using the devices Web UI
The following methods are provided for auto-provisioning:
u MAC-based auto-provisioning ( page 26)
The VoIP phone requests the provisioning data from the provisioning server based on its MAC
address. No user input is necessary. This method is used for VoIP phones connected to (hosted)
PBX systems.
u Auto-provisioning based on an activation code ( page 29)
The VoIP phone requests the provisioning data from the provisioning server based on an activation code manually entered by the user. This method is used for devices distributed via retail sales.
Introduction
Profile download can only be started from the VoIP phone, i.e. that the phone must be triggered to
perform an update when new configuration data is provided. This can be carried out as follows:
u VoIP phone restart
u Manually by the user via the devices Web UI
u Regular version checks initiated daily by the phone
u SIP check-sync mechanism ( page 34)
Connect redirection server
SIP multicast
DHCP option 114
Enter
redirection
data
3
2
1
Redirection
server
4
Supply provisioning URL
))
MAC address or activation code
Provisioning
server
))
5
DECT
Provisioning process
1 The phone sends a DHCP request including the DHCP option 114. If an URL is known by the DHCP
Introduction
The following methods are supported by the specific devices:
MAC-based autoprovisioning
Auto-provisioning
with activation code
SIP multicast
and check-sync
DHCP option
114
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Planned 2012
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Provisioning data
The following are provisioning data:
Parameters
Gigaset VoIP phones have many configuration parameters but only a small subset is required for provisioning.
u General device data
This data is supplied statically via a template and comprises
general settings for the SIP account, e.g. proxy, registration and STUN server address, port
numbers, etc.
NTP settings, e.g. a time server address
settings for Info services
u User-specific data
It can be extracted from the provisioning database ( page 48) and comprises, for example
SIP username and password
LAN settings
voice mail settings, e.g mail account data
settings for network directories, e.g. online phone books
Introduction
Provisioning tool
The provisioning tool is a web interface designed to assist the provisioner when creating a configuration file or a provisioning package for Gigaset IP phones.
The provisioning tool provides the following components:
u A configuration editor to create a valid XML file ( page 39).
u A provisioning package editor to create packages that can be uploaded to the phones
( page 48).
u A link to the Gigaset web interface for entering redirection information ( page 12) is planned for
a future release.
10
Provisioning methods
Provisioning methods
When the phone is connected to the network for the first time, it needs to connect to a server in the
local or public network in order to download the necessary data to be able to make VoIP calls. By
default, this is a Gigaset server but it could also be a customer provisioning server, e.g. on a PBX.
Below, the standard manual procedure is described in short.
The following methods are available for automatic provisioning (see also introduction on page 7):
u For providing the provisioning server URL
Gigaset redirection service ( page 12)
SIP multicast mechanism ( page 24)
DHCP option 114 ( page 25)
u For auto-provisioning
Mac-based auto-provisioning ( page 26)
Auto-provisioning based on an activation code ( page 29)
u For profile update
SIP check-sync mechanism ( page 34)
))
))
u
u
u
The end-user connects the phone to the network 1. Internet access is required.
The connection assistant is started 2.
If available the activation code supplied by the provider is entered 3 ( page 29).
11
Provisioning methods
u
u
u
If the phone establishes a connection to the Gigaset server to download a provider profile, this
download is carried out in two steps:
All countries for which a provider profile is available are listed for the user to select the location
4.
All providers of the selected country for which a profile is available are displayed for the user
to select the provider 5.
The profile is loaded from the Gigaset server onto the VoIP phone. In this case Gigaset acts as a
provisioner for general (user-independent) SIP settings.
The user enters the authentication name 6 and the password 7 according to the rules given by
the provider profile.
There is also an XML-RPC interface available to provide redirection data. The XML-RPC
calls are described in detail page 15.
12
Provisioning methods
URL and Provider can be entered manually or selected from a list of known provisioner URLs and providers.
Click on the Register button to save the entry.
The corresponding parameters are checked and if approved saved in the Gigaset redirection database. The provisioner is informed accordingly.
If the MAC ID or MAC address matches, the redirection data for a specific device appears.
To deregister the redirection data record for the device click on the Deregister button.
You need to confirm this action. It is therefore not possible to delete entries accidentally.
If the Provisioning URL is not changed, e.g. by resetting it to the default value, the device
can no longer be updated.
13
Provisioning methods
List devices
The List Devices tab can be used to search for redirection data sets of all devices or all devices of a
specific provider.
Open the List Devices tab
Click on the List button to list the redirection data sets of all devices.
or
Enter the name of a provider or select it from the list and click on the Search button.
The list shows all devices that have ever been uploaded by the provisioner (possibly dependent on
the provider name).
It is also possible to upload an XML file containing many redirection data bundles. This option is most
useful for provisioners whose end-user profiles are generated automatically by any script and who
want to keep using the web user interface instead of direct interfaces for clients. However, more than
just uploading redirection data can be carried out. Depending on the structure of the XML file, any
function provided by the interfaces may be possible. For detailed information on the XML parameter
values please refer to the section Setting up redirection information using the XML-RPC interface
( page 15).
Open the Upload tab, browse your file system for the appropriate XML file and click on the Upload
button.
14
Provisioning methods
The XML files are invisible on both sides, when effecting the remote procedure call on the client as
well as on the server because the XML files are parsed via the XML-RPC libraries. Nevertheless, the
plain text (method + parameter) has to be transferred via HTTP in a well- structured manner which
makes XML a perfect alternative.
15
Provisioning methods
XML syntax
Whenever an XML-RPC client requests a remote method on the Gigaset XML-RPC server, an XML file
is created consisting of the methods name and the parameters. Both the file and the response are
transferred via HTTP. The upload of XML files via FileUpload has to look exactly like this as well.
The uploaded XML file, depending on the method for registering a redirection data set, can for example appear as follows:
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>autoprov.registerDevice</methodName>
<params>
<param>
<value>FFFFFFFFFFFF-1234</value>
</param>
<param>
<value>http://my.provisioning.server.com/gigaset/ap.php</value>
</param>
<param>
<value>MyProvider</value>
</param>
</params>
</methodCall>
After a successful request, the corresponding XML response file looks as follows :
16
Provisioning methods
XML-RPC Commands
If an XML-RPC client calls a remote procedure function on the Gigaset XML-RPC server, an XML file
consisting of the XML-RPC method and the corresponding parameter values is created and is transferred via HTTP. The response is transferred the same way.
The respective XML-RPC methods as well as the relevant parameter values, return values and XML formats are illustrated below:
autoprov.registerDevice
Registering a device at the provisioning server:
Call:
Return:
(Boolean) 1 | 0
1 = true, 0 = false
(String)
if true: OK:password
if false: mac_already_in_use:
mac_invalid:
url_invalid:
name_invalid:
Request:
17
Provisioning methods
autoprov.deregisterDevice
Deregistering a device from the provisioning server.
Call:
autoprov.deregisterDevice(String mac)
mac
MAC ID or MAC address of the device
Return:
(Boolean) 1 | 0
1 = true, 0 = false
(String)
if true: OK
if false: mac_not_found:
mac_invalid:
Request:
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value><array><data>
<value><boolean>1</boolean></value>
<value>OK</value>
</data></array></value>
</param>
</params>
</methodResponse>
18
Provisioning methods
autoprov.listDevices()
Return:
Response:
Request:
19
Provisioning methods
autoprov.listDevices(String name)
name
Provider name
Return:
Request:
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value><array><data>
<value><array><data>
<value>BBBBBBBBBBBB</value>
<value>MyProvider1</value>
<value>https://my.provisioning.server.com/gigaset/ap.php</value>
<value>2009-11-29</value>
</data></array></value>
</data></array></value>
</param>
</params>
</methodResponse>
20
Provisioning methods
autoprov.checkDevice
Supply provider name, provisioning server URL and registration date for a specific device:
Call:
autoprov.checkDevice(String mac)
mac
MAC ID or MAC address of the device
Return:
(Boolean) 1 | 0
1 = true, 0 = false
[MAC]
(String)
if true:
if false: max_not_found:
(String)
(String)
(String)
if true:
if true:
if true:
mac_invalid:
[NAME]
[URL]
[DATE]
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value><array><data>
<value><boolean>1</boolean></value>
<value>BBBBBBBBBBBB</value>
<value>MyProvider1</value>
<value>https://my.provisioning.server.com/gigaset/ap.php</value>
<value>2009-11-29</value>
</data></array></value>
</param>
</params>
</methodResponse>
21
Provisioning methods
autoprov.registerDeviceList
Supply provider name, provisioning server URL and registration date for a list of registered devices:
Call:
autoprov.registerDeviceList(List<String> macList,
String url, String name)
macList
List of MAC IDs
url
URL of the provisioning server
name
Provider name
Return:
Request:
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value><array><data>
<value><boolean>1</boolean></value>
<value>OK</value>
</data></array></value>
</param>
</params>
</methodResponse>
22
Provisioning methods
autoprov.deregisterDeviceList
Deregister a list of registered devices:
Call:
autoprov.deregisterDeviceList(List<String> macList)
macList
List of MAC IDs or MAC addresses
Return:
Request:
23
Provisioning methods
Providing the provisioning server URL via the SIP multicast mechanism
This mechanism is an easy method for loading the URL of the provisioning server, on which the configuration files (profiles) and/or the firmware files of the different Gigaset VoIP phones are located.
The mechanism is designed for VoIP PBXs offering an own provisioning server for the connected VoIP
phones.
Before an answer is sent to the initiator of the SIP multicast, the PBX (or SoftSwitch) has to identify the
phone type. This is done via the SIP User-Agent header which starts with the product name.
The following example flow chart shows the principle of this mechanism:
Gigaset VoIP phone
Router/Network Switch
PBX
(Provisioning Server)
The SIP multicast mechanism is supported by most of the Gigaset VoIP phones and by the Gigaset
T300 PRO and Gigaset T500 PRO PBX as well (it is also supported by some products from other companies).
24
Provisioning methods
Router/Network Switch
PBX
(Provisioning Server)
GET http://provisioningserver/gigaset/42/2/master.bin
application/x-www-form-urlencoded
But if a provisioner wants to upload an XML file either via the web user interface or via an HTTP client
it would be very inefficient to use the default content type.
For this reason, XML files are uploaded with the content type
multipart/form-data
which is suitable for sending large data. Commons FileUpload corresponds exactly to this format.
25
Provisioning methods
Gigaset
Provisioner
MAC address
User Name
Password
2
Custom-built
data
Provisioning
Server
Gigaset Server
3
Redirection
Server
Update
Server
7
9
End-user
5
Internet
6
MAC address
1 Gigaset prints the MAC address barcode on the housing and the box.
2 The provisioner scans the MAC address and associates it with the user data, e.g. the SIP account.
The MAC ID consists of the MAC address plus a random ID (4 characters) that is added to the MAC
address and has the following syntax:
<MAC-address>-<ID>, e.g. 001122334455-ABCD
3 The provisioner enters the redirection data on the Gigaset server. The devices MAC ID and the URL
of the provisioning server have to be provided.
Gigaset therefore provides a web interface as well as an XML-RPC interface. Redirection data
describes a connection between the MAC address, the provisioning servers URL and the providers name. This configuration bundle is created by the provisioner and has to be stored on the
Gigaset redirection database.
4 The end-user connects the phone to the network and the phone contacts the Gigaset server.
26
Provisioning methods
5 The Gigaset server checks the MAC ID. If the MAC ID is available in the Gigaset provisioning data-
base of the redirection server it transfers the provisioning server address for this device to the
phone.
6 The phone connects to the provisioning server providing its MAC address.
7 The provisioning server uploads the custom-built data to the phone. The provisioner is responsible for creating the custom-built data to store this information on the provisioning server and to
keep it up-to-date.
8 The phone is now ready to initiate the first call.
9 Periodically, the phone connects to the provisioning server in order to check if there is new custom-built data available (once a day).
Message flow
The following diagram shows in a simplified manner the message flow between a Gigaset VoIP
phone and the involved servers from the auto-provisioning point of view.
Gigaset Update
Server
Gigaset Redirect.
Server
Provisioning
Server
Upload content
Exchange of server index files
http get profile.gigaset.net/device/42/2/../../sifs/siu_123.bin
The message flow illustrates the steps 4 to 7 of the image on page 26.
27
Provisioning methods
Communication takes place by means of HTTP requests.
Profiles are stored in a binary format on the provisioning server depending on the device variant. The
Gigaset server uses the phones variant ID to upload the matching configuration. For example, http://
profile.gigaset.net/device/42/2/master.bin refers to the configuration files of a Gigaset N510 IP PRO phone
( page 62).
The Gigaset redirection server uses the phones MAC ID to search for the responsible provisioning
server for this phone.
HTTP request
When the phone contacts the provisioning server in order to download the auto-provisioning file, it
performs an HTTP::GET for a URL with the following format:
http://<server domain>/<directory>/<ap>?mac=<mac address>
<server domain>
<directory>
<ap>
<mac address>
Example of a request:
http://my.server.domain.com/gigaset/cgi/ap?mac=06:55:AF:3A:05:AA
URI format
The URL where the ap script is performed is determined by an additional query to get a so- called URI
format string. The server for this query is the same server which is used for firmware updates (normally not necessarily, but recommended the Gigaset server). The query is done with a 3-digit provisioner code. This code is preprogrammed in the factory and is used by the phone to get the file with
the format string. This format string is also used by the phone to build the command to get the profile
from the provisioners server. The format string contains fixed text (used for the query as it is) and format specifier (with a leading %) which will be replaced by the phone. The relevant configuration possibilities of the URI-format string are the following:
Format specifiers:
%DVID
Device ID, composed by build variant and provisioning ID. Example: 42/2
%MACC
MAC with colons. Example: .00:01:E3:12:34:56.
%MACD
MAC without colons. Example: .0001E3123456.
%%
To represent the percent character.
Example:
The URI-format string:
http://my.server.domain.com /%DVID/cgi/ap?mac=%MACC
28
Provisioning methods
29
Provisioning methods
Provisioner
Codes
87426549864
65487654677
93426534641
merge
#
1
2
3
User Name
7623841
4504312
6586444
Authent. name
7623841
4504312
6586444
Password
fdgrqg
sgigzw
hgkzui
Provisioner or
Gigaset
Server
Provisioning
Server
2
4
End-user 1
Internet
Gigaset
Auto-provisioning via activation code
Principle of operation
1 The end-user buys a phone, installs it and enters the activation code either via the handset proce-
30
Provisioning methods
Message flow
The following diagram shows in a simplified manner the message flow between a Gigaset VoIP
phone and the involved servers from the auto-provisioning point of view.
Use Case: The VoIP phone is prepared for auto-provisioning with an activation code (locked or nonlocked [One-Shot]) and the customer feeds in the activation code 12387426549864#0815 via the
handset or WEB-UI.
Gigaset
Server
Provisioning
Server
Connect to LAN
Upload content
Exchange of server index files
http get profile.gigaset.net/device/42/2/../../sifs/siu_123.bin
e.g. content:
"http://provider_xyz.com/gigaset/cgi/ap?ac=%ACTC"
http get provider_xyz.com/gigaset/cgi/ap?ac=87426549864
31
Provisioning methods
HTTP request
When the phone contacts the provisioning server in order to download the auto-provisioning file, it
performs an HTTP::GET for a URL with the following format:
http://<server domain>/<directory>/<ap>?ac=<activation code>
<server domain>
<directory>
Example:
http://my.server.domain.com/gigaset/cgi/ap?ac=0159039885893
URI format
The URL, where the ap script is performed, is determined by an additional query to get a so- called
URI format string. The server for this query is the same server which is used for firmware updates (normally not necessarily, but recommended the Gigaset server). The query is done with a 3-digit provisioner code. This code is preprogrammed in the factory or is part of the activation code which was
entered manually and is used by the phone to get the file with the format string. This format string
will be used again by the phone to build the command to get the profile from the provisioners server.
The format string contains fixed text (used for the query as it is) and a format specifier (with a leading
%) which will be replaced by the phone. The relevant configuration possibilities of the URI-format
string are the following:
Format specifiers:
%ACTC
Provisioner part of the activation code. Example: 87426549864
%DVID
Device ID, composed of build variant and provisioning ID. Example: 42/2
%MACC
MAC with colons. Example: .00:01:E3:12:34:56.
%MACD
MAC without colons. Example: .0001E3123456.
%%
To represent the percent character.
Example:
The URI-format string:
http:// my.server.domain.com/gigaset/cgi/ap?ac=%ACTC
and the activation code 12387426549864#0815 leads to a request with the command:
GET http://my.server.domain.com/gigaset/cgi/ap.cgi?ac=87426549864
32
Provisioning methods
When this placeholder is available, it will be replaced by a byte sequence (hexadecimal without
spaces) containing the maximum number of supported subscriptions (maxSub), followed by a
bitarray.
Maximum number of subscriptions
The maxSub value represents the number of subscriptions supported by the device.
Gigaset N720 DECT IP Multicell System = 100, Gigaset N510 IP PRO = 6.
maxSub is defined as follows:
u Short form
maxSub is represented by 1 Byte
Bit 8 is set to 0
Bit 1-7 contains the maximum number of subscriptions (bits).
This means: max. 127 subscriptions. This is sufficient for the devices currently supported
u Long form
maxSub is represented by 2 or 3 bytes (up to 127)
Bit 8 of the 1st byte is set to "1"
Bit 1-7 of the 1st byte contains the number of the following bytes (at present: 2)
The following bytes (hex, base 256) contain the number of supported subscriptions (bits).
Subscription list, bit array
The meaning of the term subscription depends on the device-specific handset.
Gigaset N720 DECT IP Multicell System Subscription corresponds to the index of one handset/
VoIP account pair.
Gigaset C610 IP/N300 IP
Subscription corresponds to the internal number of a registered handset.
Gigaset N510 IP PRO
u
u
u
u
u
u
33
Provisioning methods
Examples:
URL=http://%DURL%DVID/cgi/ap?mac=%MACD&sublist=%SUBLIST
Max. 100 subscriptions, 20 handsets are assigned to subscriptions with index 0-19:
http://192.168.1.100/70/1/cgi/ap?mac=FFFFFFFFFF&
sublist=64FFFFF000000000000000000000
Max. 20 subscriptions, index 1 and the last 5 are assigned with a handset:
http://192.168.1.100/70/1/cgi/ap?mac=FFFFFFFFFF&sublist=148001F0
Router/Network Switch
PBX
(Provisioning Server)
34
Provisioning methods
The default for this parameter is set as follows:
Gigaset DE900 IP PRO
enabled
enabled
enabled
enabled
disabled
disabled
enabled
enabled
Due to security reasons the reboot option within the check-sync command is no longer
supported. The REBOOT parameter can be used instead.
REBOOT parameter
If an IP phone needs to be rebooted after a profile download in order to put the changes into effect,
the REBOOT parameter can be set optionally within a profile.
Information about the parameters that require a system reboot after being changed can
be taken from the paramter description ( page 42).
XML syntax
<REBOOT value="true"/>
<!-- possible values: true, false, 0, 1 -->
Tag Name
Value
Meaning
REBOOT
true
1
false
0
Binary representation
The reboot information is encoded as a type-length-value (TLV):
Tag Name
Tag Code
Contents
reboot
0x50
Optional tag: boolean value coded in one byte. Thus, this TLV has a
length of 3 bytes:
0
!=0
35
Provisioning methods
Successful?
Yes
No
Successful?
Process profile
settings.
Yes
No
The content and the handling of the profiles is the same, regardless of whether the format is a binary
or an XML format.
Plain XML will be supported only in the profiles themselves. Other server configuration files like country lists, provider lists, etc do not support the plain XML format. The file ending (*.bin or *.xml) can be
chosen freely. It will not be evaluated in the configuration client (the IP phone), but it is sensible to
choose the file suffix which reflects the file content.
36
Provisioning methods
Security aspects
u
u
u
u
u
HTTPS (TLS) is supported by most of the Gigaset VoIP phones. Server root certificates are used.
The profile can be encrypted with AES 128 using a specific encryption key.
The MAC address is sent during the provisioning process and this MAC address can be used for
comparing the address with a data base containing all allowed MAC addresses. Therefore only
known phones receive provisioning data.
The activation code string contains an optional password.
The use of HTTP Digest Authentication is possible.
37
Provisioning methods
Tag Name
Value
Meaning
CERTIFICATE
URL
The URL which refers to the certificate file. It must be complete, i.e.
contain the host and file name.
Only one certificate tag is allowed per profile. Redirection to another location is supported!
The certificate can be downloaded via a HTTP server only.
At present, the CERTIFICATE tag is supported for the following devices:
Gigaset C610 IP/N300 IP
Gigaset N510 IP PRO
The provisioning tool is designed to assist you in preparing the provisoning process and consists of
the configuration file editor and the provisioning package editor. It is provided as Web user interface.
Information on how to access the provisioning tool user interface can be found at
http://wiki.gigaset.com or contact the Gigaset Technical Sales.
To register you need a user account (user name and password) which is provided by Gigaset Technical Sales. Account requests can be sent to [email protected].
If available, you can also use the login credentials for the Gigaset redirection server
(prov.gigaset.net).
If the login is successful, the main window is opened. You can now start
the configuration file editor ( page 39) or
the provisioning package editor ( page 48).
38
Starting
The configuration file editor is provided as Web user interface. It is together with the provisioning
package editor part of the provisioning tool ( page 10).
Login to the provisioning tool ( page 38).
If the login is successful, the main window is opened.
To create or edit a configuration file, click on Configuration file editor.
Already existing configuration files are listed. For each configuration file the following information is
available:
No.
Number of the configuration file.
Configuration file Name including a timestamp.
Comment
Comment to identify the file.
Change on
Date of last change.
The following options are possible:
Add new
Create a new configuration file.
Edit
Revise an existing configuration file.
Delete
Delete an existing configuration file.
Download
Download an existing configuration file.
Back
Exit the configuration file editor and return to the main window.
If the maximum number of configuration files is reached, it is not possible to add a new file or to edit
an existing one before deleting some file(s).
39
To navigate within the tool, use the links and buttons available on the pages, e.g. Next
or Back. You should not use the browser navigation buttons.
To exit the configuration use the logout button which is located top
right on each page.
Select device
On the first page you have to select the device type for which a configuration is to be created.
The page is not shown when an existing configuration file is edited. In this case the part number and
firmware version stay untouched.
Select a device type from the Part number drop down list. The list provides all part numbers of
device types which are available for the supported devices. Once a part number is selected the
information about device type, variant and provisioning ID is shown.
Select the Firmware version from the drop down list. Only available versions for the selected part
number are provided.
After starting the edition of an already existing configuration file, you can change the firmware version if needed. The part number cannot be changed.
40
Editing parameters
The configuration file editor provides access to all available configuration parameters for the selected
device type/part number.
The navigation bar on the left contains the available configuration pages. Some pages may have subpages (e.g. Telephony).
Click on an entry to open the desired page.
The pages only contain parameters for the selected device type/part number. If an existing configuration file has been opened, the previously stored parameter values are loaded. For a new configuration file the parameters are initially in disabled state (check box unchecked).
Default values are set, if available. Though, if parameters are set in disabled state the default values
are not set even if they are available. In this case the parameter is not included in the resulting configuration file (neither XML nor binary). This means that the value of this parameter will not be
changed in the device being provisioned.
For the parameters the following elements are available:
u Parameter name
u A check box on the left of the parameter value. It has to be enabled in order to put the
changed value of the parameter into effect. If the check box is not checked, the resulting
configuration file will not change the value for this parameter within the devices.
u Editor control, depending on the parameter:
Radio buttons
To enable or disable the parameter.
Drop-down list
Edit box
41
Error state:
Shown when the parameter is enabled and the value/state is not valid.
Note: Only the validity of a single parameter is checked. Cross-checking with
other parameter values to ensure a plausible configuration is not performed.
A validation hint showing the possible value range. It shows information about
the allowed range for numerical parameters and about the maximum number
of characters for strings.
An Action button providing the following options:
Edit parameter
Select this option to edit the parameter value.
Insert default setting The default value for the parameter is inserted (if the parameter has a
default value). Afterwards the value can be changed.
Insert placeholder
A placeholder value for the parameter is inserted. This should be used to
allow the insertion of user-specific values via the ap script ( page 54).
Help information
Move the cursor over a parameter and wait for a moment. A popup is opened containing information about the parameter.
Click on the information/validation icon to open a popup with additional information regarding
the parameter.
Saving the configuration file
If you have set all configuration values as desired, click Next.
Enter a File Name and a comment for the configuration. The filename must not consist of more
than 14 characters. Only lowercase letters, digits and underscore characters are allowed.
The full file name will be created automatically using the file name and a time stamp.
If you have edited an existing file you can change the file name.
Click Save to store the changes. A new configuration file containing your changes will be created.
XML files
Instead of using the provisioning tool you can also create the XML configuration files manually.
XML files can be created based on templates that are delivered by Gigaset and stored within the
gigaset file system. A general template is provided in the subordinate /gigaset/cgi/shop directory
( page 53).
The following template files are available:
template.xml
Template for auto-provisioning using the MAC method.
actc_template.xml
Template for auto-provisioning using an activation code.
Device-specific templates are available in the devices cgi subdirectories ( page 62). The XML file
syntax may be different depending on the devices functionality and date of manufacture. To get
information on the correct XML syntax for a specific device please refer to the appropriate template
in the devices subdirectory.
Gigaset supplies a template XML file which has to be adapted by the auto-provisioning script to provide the real provisioning data.
42
Configuration parameters
The parameters used for provisioning are described in general on page 9.
Each Gigaset IP phone has a lot of further configuration parameters which can be provided by the
XML input file additionally to the provider data.
Details of the parameters mentioned here and a list of all possible configuration parameters are available at http://wiki.gigaset.com.
The list of modifiable parameters can change if further features are added to the phone
in the future. Therefore, please refer to the template files (template.xml /actc_template.xml)
and the schema files (provider.xsd/actc_provider.xsd) which are supplied.
Attention:
You should never change the provider schema file any changes you might desire in
the schema file must be provided by Gigaset. The schema file is the only guarantee
that the XML file is compatible with the Gigaset phone you are marketing.
The following is a short extract from the template.xml file. To view the total file or the actc_template.xml
file you can open it from the gigaset/cgi/shop directory ( page 62).
The template provided by Gigaset for the XML file contains two types of parameters:
u A large set of parameters which have to be adapted for a specific provider.
u A smaller set of parameters intended to be adapted (by the provisioners ap.cgi script) to tailor the
file for an individual end customer. The latter set of parameters has been highlighted in the fragment shown below.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ProviderFrame xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchema
Location="provider.xsd">
<Provider>
<MAC_ADDRESS value="insert MAC_ADDRESS here"/>
<VERSION value="insert VERSION here"/>
<PROFILE_NAME class="string" value="insert PROFILE_NAME here"/>
<S_SIP_LOGIN_ID class="string" value="insert S_SIP_LOGIN_ID here"/>
<S_SIP_PASSWORD class="string" value="insert S_SIP_PASSWORD here"/>
<S_SIP_USER_ID class="string" value="insert S_SIP_USER_ID here"/>
<S_SIP_DOMAIN class="string" value="192.168.2.1"/>
<!-- optional (and obsolete)
<S_SIP_REALM class="string" value=""/>
-->
<S_SIP_SERVER class="string" value="192.168.2.1"/>
<I_SIP_SERVER_PORT class="integer" value="5060"/>
<S_SIP_REGISTRAR class="string" value="192.168.2.1"/>
<I_SIP_REGISTRAR_PORT class="integer" value="5060"/>
43
44
</Provider>
</ProviderFrame>
</Provider>
</ProviderFrame>
Special parameters
VERSION identifying configuration changes
The VERSION parameter in the XML file is somewhat special because it is not really a configuration
item, but instead is used by the phone to detect whether there have been any changes in the configuration since the last time it was changed.
The parameter is a time string with the following mandatory format:
ddmmyyhhmm
where dd, mm, yy, hh and mm represent the decimal numeric values for day, month, year, hours and
minutes respectively. Because the phone converts this string into an equivalent integer value, it is
important to choose valid date & time values.
In the phone, the change detection algorithm works as follows:
u Whenever the phone has requested and processed an auto-provisioning file, it converts the string
contained in the VERSION parameter into an integer, which is saved in the non-volatile RAM.
u In future, the phone compares this saved integer with the value of the integer calculated from the
VERSION parameter contained in any newly requested auto-provisioning file.
u As long as the two integers are equal, the phone assumes that the auto-provisioning file is identical with the old one, and will ignore it.
u If, however, the integers are different, the phone assumes that a new auto-provisioning file has
been issued and updates its configuration accordingly, replacing its saved copy of the integer with
the one calculated from the new file.
For the auto-provisioning system, this means that whenever it wishes the phone to update its configuration, it must generate a new value of the VERSION parameter.
The design assumes that the auto-provisioning system will store this version string in the database
entry belonging to a given end-customer, thus indicating the last time the configuration for that particular end-customer was changed.
46
Changing the VERSION string too often (e.g. on a daily basis or even more often) is not to
be recommended, as it will force the phone to update its non-volatile memory unnecessarily. As this memory is implemented using FLASH or EEPROM technology, which has a
limited number of write cycles, the phones useful lifetime will suffer!
Value
Meaning
EXTENDED_PROFILE
URL
47
48
Starting
The provisionig package editor is provided as Web user interface. It is together with the configuration file editor part of the provisioning tool ( page 10).
Login to the provisioning tool ( page 38).
If the login is successful, the main window is opened.
To create or edit a provisioning package, click on Provisioning package editor.
Already existing provisioning packages are listed. For each provisioning package the following information is available
No.
Number of the provisioning package.
Package name Name including a timestamp.
Comment
Comment to identify the package.
Change on
Date of last change.
Prov. server URL Address of the provisioning server configured by the user.
The following options are possible:
Add new
Create a new provisioning package.
Edit
Revise an existing provisioning package.
Delete
Delete an existing provisioning package.
Download
Download an existing provisioning package.
Back
Exit the provisioning package editor and return to the main window.
Information about created packages is stored on the server. In order to use the package for provisioning it has to be downloaded and saved on the provisioning server. The packages can be downloaded
on demand via the Download button.
If the maximum number of provisioning packages is reached it is not possible to add a new package
or to edit an existing one before deleting some package(s).
To navigate within the tool, use the links and buttons available on the pages, e.g. Next
or Back. You should not use the browser navigation buttons.
To exit the configuration use the logout button which is located top
right on each page.
The package editor is opened and will guide you through all necessary steps.
Click Next to save the settings on a page and precede to the next step.
Click Back to return to the previous step.
Click Cancel to exit the editor without saving your settings and to return to the main window.
Device-independent settings
Enter the Provisioning server address.
You only need to provide the address (IP or DNS) of the root folder on the server. This address will
automatically be completed with the common part. If no address is provided, the default
http://%DURL/%DVID/cgi/ap?mac=%MACD&ac=%ACTC is used.
49
50
The provisioning packages are stored on the Gigaset update server. They contain the following:
u A sifs folder containing the files that are responsible for redirection:
sifsroot.bin
sih_###.bin
sit_###.bin
siu_###.bin (URL of the provisioning server as defined by the user on Device Independent Settings page 49)
u ## folders
Each folder is responsible for a specific device variant identified by its variant ID, e.g. 60 for Gigaset
DE900 IP PRO or 71 for Gigaset N720 IP PRO. A list of the variant IDs currently used can be found
on page 62.
A folder is created for each device variant which has been defined by the user in the package editor. Each folder contains ## subfolders for the defined provisioning IDs.
u Firmware files
These files are created if the Add selected firmware to the package option is enabled. The versions defined via the editor are included. If the Support downgrades option is also enabled, previous firmware versions are included.
u Language files
The WEB UI languages, smart help and handset language files (webuil/sht/hsl folders) consistent
with the selected firmware are provided. If Support downgrades is selected previous versions are
also included.
u Binary profiles
If configuration files are assigned, binary profiles are included with dummy language, country and
provider files.
u XML profile needed for customer-specific provisioning
cgi folder(s) containing XML profiles if configuration files are assigned with XSD scheme, ap script
template ( page 54) and shop subfolder containing chagall_profile_gen application and encryption key ( page 61).
For detailed information on the file system structure of a provisioning server page 62.
51
Creating directories
Create a new directory gigaset/cgi/shop within the web server document path, e.g.
/var/www/html:
cd /var/www/html/
Change to the web server document directory
mkdir gigaset
Create a new directory gigaset
cd gigaset
Change to the gigaset directory
mkdir cgi
Create a new directory cgi
cd cgi
Change to the cgi directory
mkdir shop
Create a new directory shop
cd /
Return to the root directory
Copy the following files from the CD into the appropriate directories:
File
Copy into the directory:
ap
var/www/html/gigaset/cgi
key
var/www/html/gigaset/cgi/shop
provider.xsd
var/www/html/gigaset/cgi/shop
template.xml
var/www/html/gigaset/cgi/shop
gigaset_profil_gen-<version>.i386.rpm /usr/bin
Please note, that the web server path may be different in other Linux and Apache installations.
Required libraries
Besides the usual libc libraries required by any standard Linux application, gigaset_profile_gen needs
the libxml2 library.
You can download the latest version of libxml2 from
http://xmlsoft.org
The RPM installation will inform you if the required libraries are not installed on your system.
To enable the Perl script to start the generator, you need to create a link to the application in the shop
directory.
Change to the shop directory.
cd /var/www/html/gigaset/cgi/shop
52
Setting the access rights for the auto-provisioning files and script
When the package is installed, the following files are available in the /gigaset directory located in the
HTTP server document directory.
File
Description
cgi/ap
Auto-provisioning script.
cgi/shop/template.xml
cgi/shop/actc_template.xml
cgi/shop/provider.xsd
cgi/shop/actc_provider.xsd
To enable the generator to run successfully you need to set the access rights for the files in the cgi and
shop directories correctly.
Change the access rights for the key, template and provider files.
53
54
55
##################################################################################
##### Customer "Database" for MAC method #########################################
##################################################################################
#
Customer 1
Customer 2
Customer 3
#
my(@UserVersion) = ('3011061455',
'3011061455'
'3011061455'
);
my(@UserMacAddr) = ('00:01:E3:75:F1:72', '00:01:E3:67:60:77', '00:0A:5E:55:02:8F' );
my(@UserLoginId) = ('1234567',
'1234567',
'1234568'
);
my(@UserPassword)= ('abcdef',
'aa123456',
'bb123456'
);
my(@UserId)
'1234567',
'1234568'
);
= ('1234567',
my(@UserProfName)= ('d_default_de.bin', 'd_default_de.bin', 'd_default_de.bin' );
##################################################################################
##################################################################################
56
57
use CGI
$q = new CGI();
use File::Temp qw/ tempfile
use File::stat;
58
/;
Add another sub routine to the script. Ensure that database, table and field names match the settings defined for the database.
$MAC="";
$Version ="";
$Profil ="";
$LOGINIG ="";
$USERID ="";
$PW="";
# Turn results from DB into Variables
while (@results = $execute->fetchrow())
{
$MAC = $results[0];
# convert UTF8 (DB) to Iso-8859-1(Latin) for the template(Endconfing Iso-8859-1
$octets = encode("utf8", $Mac);
$Mac = decode("iso-8859-1",$octets);
$Version = $results[1];
$octets = encode("utf8", $Version);
$Version = decode("iso-8859-1",$octets);
$Profil =$results[2];
$octets = encode("utf8", $Profil);
$Profil = decode("iso-8859-1",$octets);
$LOGINID =$results[3];
$octets = encode("utf8", $LOGINID);
$LOGINID = decode("iso-8859-1",$octets);
$USERID =$results[4];
$octets = encode("utf8", $USERID);
$USERID = decode("iso-8859-1",$octets);
$PW= $results[5];
$octets = encode("utf8", $PW);
$PW = decode("iso-8859-1",$octets);
}
# load the whole template:
open (INFILE, $TemplateFileName) or die "Could not open $TemplateFileName";
my($st) = stat($TemplateFileName) or die "No file $!";
read (INFILE, my $Block, $st->size);
close(INFILE);
# substitute the place holders in the template with the
# actual values assigned to the end customer:
59
Example:
Your host has the domain cfg.provisioner.com.
Enter the following URL:
http://cfg.provisioner.com/gigaset/cgi/ap?mac=00:11:22:33:44:55
If everything is set up properly, the browser offers you a binary file. The file is encrypted, so it
should be quite unintelligible when downloaded and then opened with a hex editor.
u If the web browser times out, or returns 404, youll have to verify your setup; make sure you have
created the correct directory.
u If the web browser returns 500, the script has failed, e.g. because an unknown MAC address was
entered.
You can then test your auto-provisioning system with the Gigaset phone.
Power-up the phone and wait a few minutes for the phone to generate the auto-configuration
request.
We suggest you use a trace program like Ethereal, Wireshark etc. to examine the phone requests
and the response from your HTTP server.
Open the phones web page to check whether the configuration parameters you programmed
have been successfully stored in the phones configuration memory.
60
Description
Generates the encrypted configuration file from the given XML_INPUT_FILE and places it in
OUTPUT_FILE.
Mandatory arguments
XML_INPUT_FILE
File containing the configuration data for the phone to be provisioned
( page 43).
OUTPUT_FILE
Binary, encrypted version of the configuration, ready to be sent to the phone.
Optional arguments
-s
-noencrypt
Silent operation: suppresses any output by the program to STDOUT; when called
from a CGI application, this argument must be used, because the CGI standard
uses STDOUT to gather the response that HTTP will send to the client. Without
this parameter, the HTTP response would contain unwanted text, such as the
sign-on message generated by the program!
Dont encrypt the output file
This argument must only be used if the phone does not require a secret key
otherwise, it will not understand the configuration file!
Remarks
u In order to encrypt the configuration file, gigaset_profile_gen usually needs a secret key, which is
contained in a file named key. This file must be located in the same directory as the application.
The secret key must coincide with the one used in the phone. Therefore, the key file is customised
by Gigaset for the provisioner.
In certain closed network scenarios, the provisioner might desire to work with an unencrypted
configuration file. In this case, the phone has to be customised by Gigaset accordingly ("no secret
key"), and the argument -noencrypt shown above must be given when invoking the
gigaset_profile_gen application for building the file.
Note that for security reasons Gigaset recommends using encrypted configuration files only.
u To make sure that the XML_INPUT_FILE contains only configuration parameters the phone understands, the gigaset_profile_gen validates it against a fixed schema file (referred to inside the XML
file). This schema file is provided by the Gigaset. It must be located in the same directory as the
XML_INPUT_FILE.
If the validation fails, the application returns an error.
Return values
gigaset_profile_gen returns 0 on success. All other values indicate an error. Error messages are sent to
STDERR. In the case of errors, an empty OUTPUT_FILE is generated.
61
41 = Gigaset DX800A
42 = Gigaset C610 IP/N300 (1), Gigaset N510 IP PRO (2)
60 = Gigaset DE900 IP PRO
61 = Gigaset DE700 IP PRO
62 = Gigaset DE410 IP PRO
63 = Gigaset DE310 IP PRO
70 = Gigaset N720 DM PRO
71 = Gigaset N720 IP PRO
For each device variant a master file (master.bin) is stored. In addition all files that are necessary for
the device, e.g. firmware, language files for the Web GUI, help files, texts for the handset UI, auto-provisioning links, are available.
Gigaset provides the provisioner, e.g. the PBX manufacturer, with the required data structure. The
auto-provisioning example application (ap script, gigaset_profile_gen, XML templates, etc.) is copied
to the subdirectories of the device variants.
Provisioning is automatically processed at the location where the example application is stored. This
is achieved with the use of wildcards for the server URL, MAC address, etc. in the auto-provisioning
URL.
62
63
Index
Index
A
Access rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Activation code
authentication . . . . . . . . . . . . . . . . . . . . . . . . . . 29
auto-provisioning method . . . . . . . . . . . . 29
format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
generating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Gigaset part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
provisioner part . . . . . . . . . . . . . . . . . . . . . . . . 29
security hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Activation code provisioning
via provisioning package editor . . . . . . 48
ap script see auto-provisioning script
Apache HTTP server
configuration file . . . . . . . . . . . . . . . . . . . . . . . 48
directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
installing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
autoprov.checkDevice . . . . . . . . . . . . . . . . . . . . . 21
autoprov.checkDeviceList . . . . . . . . . . . . . . . . . 22
autoprov.deregisterDevice . . . . . . . . . . . . . . . . 18
autoprov.deregisterDeviceList . . . . . . . . . . . . 23
autoprov.listDevices. . . . . . . . . . . . . . . . . . . . . . . . 20
autoprov.listDevices, all . . . . . . . . . . . . . . . . . . . . 19
autoprov.registerDevice . . . . . . . . . . . . . . . . . . . 17
Auto-provisioning
template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
via activation code . . . . . . . . . . . . . . . . . . . . . 29
Auto-provisioning script . . . . . . . . . . . . . . . . . . . 54
example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
MySQL connection . . . . . . . . . . . . . . . . . . . . . 58
Auto-provisioning via activation code
message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Auto-provisioning via MAC address
message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Auto-provisioning, definition . . . . . . . . . . . . . . . 4
Auto-provisoning script. . . . . . . . . . . . . . . . . 28, 32
C
Certificate
PEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CERTIFICATE parameter . . . . . . . . . . . . . . . . . . . .
check-sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
37
38
38
34
53
Command
check-sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Configuration file
Apache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
assign to provisioning package . . . . . . . 50
encryption key . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Configuration file editor . . . . . . . . . . . . . . . . . . . 39
editing parameters . . . . . . . . . . . . . . . . . . . . . 41
help information. . . . . . . . . . . . . . . . . . . . . . . . 42
starting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Configuration update . . . . . . . . . . . . . . . . . . . . . . 34
D
Database, character format UTF-8 . . . . . . . . 60
DER format (Distinguished
Encoding Rules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Deregistering
a list of devices . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Deregistering a device
via web UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
via XML-RPC call . . . . . . . . . . . . . . . . . . . . . . . . 18
Device
deregistering a list of . . . . . . . . . . . . . . . . . . . 23
listing all at a specific provider
registered . . . . . . . . . . . . . . . . . . . . . . . 20
listing all registered . . . . . . . . . . . . . . . . . . . . 19
listing all registered devices
at a specific provider . . . . . . . 21, 22
Device type
in configuration file editor. . . . . . . . . . . . . 40
in provisioning package editor . . . . . . . 50
DHCP option 114 . . . . . . . . . . . . . . . . . . . . . . . . . 7, 25
dhcp_url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Directory
cgi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
gigaset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
HTTP server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
E
Editor
configuration file . . . . . . . . . . . . . . . . . . . . . . . 39
provisioning package . . . . . . . . . . . . . . . . . . 48
End-user, role in provisioning process . . . . . 6
EXTENDED_PROFILE parameter. . . . . . . . . . . 47
Index
F
File system
preparing for installation . . . . . . . . . . . . . .
File system structure . . . . . . . . . . . . . . . . . . . . . . .
device variants . . . . . . . . . . . . . . . . . . . . . . . . . .
Files, provisioning . . . . . . . . . . . . . . . . . . . . . . . . . .
Firmware version
in configuration file editor . . . . . . . . . . . .
in provisioning package editor . . . . . . .
for XML configuration file. . . . . . . . . . . . . . . . . .
52
62
62
39
40
50
42
G
Gigaset
redirection server. . . . . . . . . . . . . . . . . . . . . . . . . 6
update server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
gigaset directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Gigaset wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 43
gigaset_profile_gen
arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
installing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
link to shop directory . . . . . . . . . . . . . . . . . . 52
required libraries . . . . . . . . . . . . . . . . . . . . . . . 52
return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Gigaset, role in provisioning process . . . . . . . 5
/gigaset/cgi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
/gigaset/cgi/shop . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
H
HTTP Digest Authentication . . . . . . . . . . . . . . . 37
HTTP requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 32
I
Installation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing
Apache HTTP server . . . . . . . . . . . . . . . . . . . .
gigaset_profile_gen . . . . . . . . . . . . . . . . . . .
PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IP phone set-up
manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
48
52
48
11
K
Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
L
libc library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
libxml2 library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List devices
via web user interface . . . . . . . . . . . . . . . . .
52
52
52
14
M
MAC address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
MAC based provisioning
via provisioning package editor . . . . . . 48
MAC ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
MAC-based auto-provisioning . . . . . . . . . . . . 26
Main menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 39, 49
main menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Manual IP phone set-up . . . . . . . . . . . . . . . . . . . . 11
master.bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
maxSub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
long form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
short form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Message flow
auto-provisioning via activation code 31
auto-provisioning via MAC address . . 31
MySQL
in ap script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
P
Parameter
in configuration file editor. . . . . . . . . . . . . 41
state in configuration file editor . . . . . . 42
Part number
in configuration file editor. . . . . . . . . . . . . 40
in provisioning package editor . . . . . . . 50
PEM format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Perl script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Phone
variant ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 31
PHP
install. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Plain XML content . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Provider, role in provisioning process . . . . . . 5
Provisioner, role in provisiong process . . . . . 5
Provisioning
activation code . . . . . . . . . . . . . . . . . . . . . . . . . 29
get URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 32
MAC-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Provisioning data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Provisioning files, XML . . . . . . . . . . . . . . . . . . . . . 39
Provisioning methods . . . . . . . . . . . . . . . . . . . . . . . . 7
Provisioning package . . . . . . . . . . . . . . . . . . . . . . 48
adding firmware . . . . . . . . . . . . . . . . . . . . . . . . 50
content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Provisioning package editor . . . . . . . . . . . . . . . 48
activation code provisioning . . . . . . . . . . 48
MAC based provisioning. . . . . . . . . . . . . . . 48
65
Index
starting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Provisioning server . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
customised . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Provisioning t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Provisioning tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
access data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
configuration file editor . . . . . . . . . . . . . . . 39
main menu . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 49
starting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Provisioning, definition . . . . . . . . . . . . . . . . . . . . . . 4
R
Reboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
binary representation . . . . . . . . . . . . . . . . . . 35
XML representation . . . . . . . . . . . . . . . . . . . . 35
REBOOT parameter . . . . . . . . . . . . . . . . . . . . . . . . . 35
Redirection
web user interface. . . . . . . . . . . . . . . . . . . . . . 12
Redirection data
deregistering via web user interface . 13
Redirection data record
registering via web user interface . . . . 12
Redirection server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Redirecton service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Registering
via web user interface . . . . . . . . . . . . . . . . . 12
Roles, in provisioning process . . . . . . . . . . . . . . . 5
S
Schema file for XML template . . . . . . . . . . . . . 43
Secret key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Security
using activation code method . . . . . . . . 37
Security aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Server
provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
SIP check-sync mechanism . . . . . . . . . . . . . . . . 34
SIP multicast mechanism . . . . . . . . . . . . . . . . 7, 24
SIP NOTIFY message. . . . . . . . . . . . . . . . . . . . . . . . 34
%SUBLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Subscription list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
bit array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
maximum number of subscriptions . . 33
66
T
Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Template, auto-provisioning . . . . . . . . . . . . . . 53
TLS certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
U
Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Update configuration . . . . . . . . . . . . . . . . . . . . . . 34
Update server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
URI format string . . . . . . . . . . . . . . . . . . . . . . . . . 28, 32
User account
for provisioner web UI . . . . . . . . . . . . . . . . . 12
for provisioning tool . . . . . . . . . . . . . . . . . . . 38
UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
V
VERSION parameter, in XML file . . . . . . . . . . . 46
W
Web user interface . . . . . . . . . . . . . . . . . . . . . . . . . . 12
for redirection data . . . . . . . . . . . . . . . . . . . . . 12
provisioning tool . . . . . . . . . . . . . . . . . . . . . . . 38
Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 43
X
X.509 certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
XML file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
content evaluation . . . . . . . . . . . . . . . . . . . . . 36
plain XML content . . . . . . . . . . . . . . . . . . . . . . 36
storing via configuration file editor . . 42
uploading directly . . . . . . . . . . . . . . . . . . . . . . 25
uploading vie web UI . . . . . . . . . . . . . . . . . . 14
XML FileUpload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
XML parameter
CERTIFICATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
EXTENDED_PROFILE . . . . . . . . . . . . . . . . . . . 47
REBOOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
VERSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
XML schema file for template . . . . . . . . . . . . . 53
XML template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
XML-provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
plain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
with binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
XML-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Index
21
22
18
23
20
19
17
17
43
XML-RPC command
autoprov.checkDevice . . . . . . . . . . . . . . . . .
autoprov.checkDeviceList . . . . . . . . . . . . .
autoprov.deregisterDevice . . . . . . . . . . . .
autoprov.deregisterDeviceList. . . . . . . .
autoprov.listDevices . . . . . . . . . . . . . . . . . . .
autoprov.listDevices, all . . . . . . . . . . . . . . .
autoprov.registerDevice . . . . . . . . . . . . . . .
XML-RPC commands . . . . . . . . . . . . . . . . . . . . . . .
XSD schema file . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
A31008-M2212-R910-3-7643