Provisioning files on the server:When the provisioning is started, the device will contact the server to download the provisioning files. Provisioning URL | Action: | Comment |
---|
http://<Server URL>/device | GET /device | No retry | | GET /device/provisioning.xml | Master xml file containing information about location of other files for: Firmware update Settings Custom settings
One retry if file is not present. |
For provisioning, Provisioning Server has to perform 3 steps:
1) Get provisioning.xml file, so called the starting point for the device, which includes 3 possible types in itself, marked with the <category /> tag: If the link for provisioning is pointing to a directory or server (PCM will try to download a default file named provisioning.xml (from the current directory), in case of full link pointing to the file, any name can be used. If you want to use encrypted connection, please provide a link starting with https://
|
Provisioning.xml fileStructure of the provisioning.xml file is shown below: <?xml version="1.0" encoding="UTF-8"?>
<provisioning version="1.0" productID="mx3b">
<category type="firmware" url="http:/my_server/maxwell3/firmware/updates.xml"/>
<category type="nvm" url="http://my_server/maxwell3 /nvm/updates.xml"/>
<category type="custom" url="http://my_server/maxwell3 /custom/updates.xml"/>
</provisioning> |
2) Get updates.xml file for each of the category mentioned above, which includes Unique Version Control, productID and MAC address (optional): updates.xml for Firmware category type – provides link to .bin file for downgrading/upgrading device SW version. updates.xml for NVM category type – provides link to file containing provisioning parameters for the device (list of possible parameters can be found here) updates.xml for Custom category type – provides link to file containing certificates CA.pem |
Structure of each file is shown below: <?xml version="1.0" encoding="UTF-8"?>
<firmware version="1.0" productID="mx3b">
<file version="2015-01-01_01:01:01" type="latest" url="http://my_server/maxwell3/firmware/v1/GC_mx_3.bin" />
</firmware> |
The next figure is presenting the workflow for the firmware update/downgrade procedure between M3B and the Provisioning server: After the successful attempt to upgrade/downgrade the device, on the device screen will appear a progress line with "Firmware update in progress..." title. <?xml version="1.0" encoding="UTF-8"?>
<nvm version="1.0" productID="mx3b"macAddress="90:1b:0e:56:c7:bc">
<file version="2015-01-01_01:01:01" url= "http://my_server/maxwell3/nvm/mx3_version1.xml"/>
<file version="2015-02-02_02:02:02" url= "http://my_server/maxwell3/nvm/mx3_version1.xml" />
</nvm> |
<?xml version="1.0" encoding="UTF-8"?>
<scenario version="2015-01-01_01:01:01" productID="mx3b">
<step type="certificate" url="http://server.address.com/certificates/certificate.pem" flags="FORCE_ACCEPT" />
</scenario>
|
Structure of update.xml file for Custom category type
3) Get firmware.bin, nvm.xml, ca.pem files. This step can be either proceed or skipped during different use-cases as it is shown on the next Control flow between the files described in steps 1)-2): UVC – Unique Version Control, this value is stored in System.Provision.SettingsVersion. Thus, before the first attempt of autoprovisioning this value is equal to “0”, after – value is being changed to “1” and so forth.
After verifying of UVC further step (step 3) can be proceed or skipped. Thus, for the successful further proceeding, UVC value has to be the same in step 2 - step 3. |
2.1.1. Steps involved into provisioning Below are shown steps which will be involved into the successful provisioning between Maxwell 3B and the Provisioning Server during manual scenario: Parameter list.Here you can find the complete auto provisioning parameter list for the Maxwell 3/B. Hierarchy of XML files for the provisioning.Let’s assume that the structure of directory containing all the provisioning files on the provisioning server has a next hierarchy and the further .xml files are presenting the case marked with a red arrow: Examplarery hierarchy
Usage of empty or inappropriate values in value=” ” (see configuration.xml example below) can lead to unpredictable behavior. Please, fulfill this field carefully according to the standards. |
1) provisioning.xml
<?xml version="1.0" encoding="UTF-8"?>
<provisioning version="1.0" productID="mx3b">
<category type="nvm"url="http://172.29.17.156/specific_path/nvm/updates.xml"/>
</provisioning> |
2) updates.xml <?xml version="1.0" encoding="UTF-8"?>
<nvm version="1.0" productID="mx3b">
<file version="2015-10-10_10:10:10" url="http://172.29.17.156/specific_path/nvm/configuration.xml"/>
</nvm> |
3) configuration.xml <?xml version="1.0" encoding="UTF-8"?>
<settings version="2015-10-10_10:10:10" productID="mx3b" macAddress= "7c:2f:80:00:00:00">
<!-- SIP -->
<param name="SIP.LogLevel" value="4" />
<param name="SIP.TransportProtocol" value="1" />
<param name="SIP.Port" value="5060" />
<param name="SIP.Timers.Session" value="3600" />
<param name="SIP.Timers.FailedRegistration" value="300" />
<param name="SIP.Timers.Subscription" value="1800" />
<param name="SIP.PRACK" value="1" />
<param name="SIP.RTP.Port" value="8000" /
<param name="SIP.RTP.UseRandomPorts" value="0" />
<param name="SIP.RTP.UseSymmetricPorts" value="0" />
<param name="SIP.RTP.UseRTCP" value="0" />
<param name="SIP.RTP.Duration" value="20" />
<param name="SIP.Security.AcceptNonSRTPCalls" value="1" />
<param name="SIP.AvailableCodecs" value="0" />
<param name="SIP.ActiveCodecs" value="0" />
<param name="SIP.DefaultAccount" value="0" />
<param name="SIP.Account.0.AccountName" value="IP1" />
<param name="SIP.Account.0.Active" value="1" />
<param name="SIP.Account.0.Provider" value="Provider" />
<param name="SIP.Account.0.AuthName" value=" AuthName " />
<param name="SIP.Account.0.AuthPassword" value="Pass" />
<param name="SIP.Account.0.DisplayName" value="DisplayName" />
<param name="SIP.Account.0.Username" value="Username " />
<param name="SIP.Account.0.Domain" value="sip.domain.com" />
<param name="SIP.Account.0.CLIPSource" value="2" />
<param name="SIP.Account.0.CLIR" value="0" />
<param name="SIP.Account.0.ProxyServer.Address" value="sip.proxy.com"/>
<param name="SIP.Account.0.ProxyServer.Port" value="5060" />
<param name="SIP.Account.0.RegistrationServer.Address" value="sip.registration.com"/>
<param name="SIP.Account.0.RegistrationServer.Port" value="5060"/>
<param name="SIP.Account.0.RegistrationServer.RefreshTimer" value="180"/>
<param name="SIP.Account.0.STUN.Enabled" value="1" />
<param name="SIP.Account.0.STUN.Address" value="sip.stun.com"/>
<param name="SIP.Account.0.STUN.Port" value="3478" />
<param name="SIP.Account.0.STUN.RefreshTimer" value="240" />
<param name="SIP.Account.0.STUN.NATRefreshTimer" value="20" />
<param name="SIP.Account.0.OutboundProxy.Mode" value="2" />
<param name="SIP.Account.0.OutboundProxy.Address" value="sip.proxy.com"/>
<param name="SIP.Account.0.OutboundProxy.Port" value="5060" />
<param name="SIP.Account.0.DTMFTransmission" value="1" />
<param name="SIP.Account.0.AutoNegOfDTMFTransmission" value="1"/>
</settings> |
|