UniFi VoIP - DHCP Option 66 Auto Provisioning Guide(Pre 4.7)

Overview


UVP Devices can be configured via Configuration File through TFTP or HTTP/HTTPS download. 

When UVP device boots up or reboots, it will try to get the Provisioning server URL from DHCP option 66 and will try to fetch the configuration file named“uvpMAC.xml” from the provisioning server, where “MAC” is the MAC address of the UVP device and should be in upper case, for example “uvp24A43C065D85.xml”.

 

The provisioning process outlined in this document is compatible with UVP platform/Phone app version 4.6.5 to 4.6.6.

 

Setup DHCP Option 66


DHCP option 66(TFTP Server Name) needs to be configured on the DHCP server to provide the provisioning server URL in the DHCP offer packet.

 

Provisioning server type/protocol
DHCP option 66 value example
TFTP 192.168.100.1
HTTP http://192.168.100.1/provisioning
HTTPS (without certificate verifying) https://192.168.100.1/provisioning

 

Put the Configuration File to the Provisioning server.

 

Configuration File Filename format

uvp{UVP_MAC_UPPER_CASE}.xml

Example: uvp24A43C065D85.xml

 

Data model and terminology

Term
Description
Profile A group of Lines with common characteristics.
Line A separately addressable voice line with a distinct Directory Number.

 

One Profile can have multiple Lines.  Profile parameters are under VoiceService.{i}.VoiceProfile.{i}.SIP.  Line parameters are under VoiceService.{i}.VoiceProfile.{i}.Line.{i}.SIP.  Where i is the number in the format Non-Negative integers (>=0 number).

 

Profile parameters

Profile parameters
Description
Example value
RegistrarServer PBX SIP server 192.168.10.1
RegistrarServerPort PBX SIP server port (default to 5060) 5060
OutboundProxy SIP proxy server for registration, controlling of call routing. 192.168.10.2
OutboundProxyPort SIP proxy server port (default to 5060) 5060
RegistrationPeriod subscription expiry (seconds) 3600
 

Line parameters

Line parameters
Description
Example value
URI Digest username/SIP URI. The value should be sip: prefixed, Ex. sip:UserName@Domain sip:user1
AuthUserName Auth ID used for authentication purposes. auth_user1
AuthPassword Digest password pass1
DisplayName The CallerID name for calls from this user User1's Full Name
Voicemail voicemail extension 9999

 

 * If URI is empty, the actual SIP URI will be "sip:UserName@Domain" where UserName is username given for AuthUserName.

 

Configuration File content examples


Below are three examples of configuration file, one SIP account, two SIP accounts, and advanced SIP account with authentication username and outbound proxy, respectively.

 

One account provisioning. (One profile one line)

<soapenv:Envelope soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
  <soapenv:Body>
     <cwmp:SetParameterValues>
        <ParameterList>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer</Name>
                <Value>192.168.10.1</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServerPort</Name>
                <Value>5060</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxyPort</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrationPeriod</Name>
                <Value>3600</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.URI</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthUserName</Name>
                <Value>username1</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthPassword</Name>
                <Value>pass1</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.DisplayName</Name>
                <Value>Office User1</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.Voicemail</Name>
                <Value>9999</Value>
            </ParameterValueStruct>
        </ParameterList>
      </cwmp:SetParameterValues>
   </soapenv:Body>
</soapenv:Envelope>

 

Multiple Account provisioning (One profile two lines) 

<soapenv:Envelope soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
  <soapenv:Body>
     <cwmp:SetParameterValues>
        <ParameterList>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer</Name>
                <Value>192.168.10.1</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServerPort</Name>
                <Value>5060</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxyPort</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrationPeriod</Name>
                <Value>3600</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.URI</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthUserName</Name>
                <Value>1001</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthPassword</Name>
                <Value>1001</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.DisplayName</Name>
                <Value>Extension-1</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.Voicemail</Name>
                <Value>9999</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.URI</Name>
                <Value></Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.AuthUserName</Name>
                <Value>1002</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.AuthPassword</Name>
                <Value>1002</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.DisplayName</Name>
                <Value>Extension-2</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.Voicemail</Name>
                <Value>9999</Value>
            </ParameterValueStruct>
        </ParameterList>
      </cwmp:SetParameterValues>
   </soapenv:Body>
</soapenv:Envelope>

 

Authentication username and OutboundProxy example

<soapenv:Envelope soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
  <soapenv:Body>
     <cwmp:SetParameterValues>
        <ParameterList>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer</Name>
                <Value>pbx.ubnt.com</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServerPort</Name>
                <Value>5060</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy</Name>
                <Value>sip.ubnt.com</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxyPort</Name>
                <Value>5060</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrationPeriod</Name>
                <Value>3600</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.URI</Name>
                <Value>sip:jeremy</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthUserName</Name>
                <Value>ubnt_jeremy</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthPassword</Name>
                <Value>0123456789abcdef</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.DisplayName</Name>
                <Value>Jeremy Chang</Value>
            </ParameterValueStruct>
            <ParameterValueStruct>
                <Name>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.Voicemail</Name>
                <Value>9999</Value>
            </ParameterValueStruct>
        </ParameterList>
     </cwmp:SetParameterValues>
  </soapenv:Body>
</soapenv:Envelope>
Powered by Zendesk