SIPProvision说明文档
V1.0
SIP Provision方案简介
SIP终端上电启动之后自动向局域网发送组播SUBSCRIBE,并且带上自身MAC和其它设备信息,PBX监听到这个组播之后回复SIP终端,并且发生NOTIFY消息给终端,带上配置文件的下载地址URL,SIP终端获得这个地址之后向服务器进行配置文件的下载
SIP Provision具体配置
首先在IPPBX服务器上使能"Listen to sip.mcast.net ",并且将设备的MAC地址绑定到一个帐号上
这个组播地址为RFC3261中的规定地址:
aUA can be configured to use multicast. Multicast
registrationsare addressed to the well-known "all SIP servers"
multicastaddress "sip.mcast.net" (224.0.1.75 for IPv4)
话机设备启动之后会向局域网发送组播的SUBSCRIBE带上自己的MAC地址,厂商信息,设备型号,版本号,IPPBX监听到这个组播之后就回复NOTIFY消息,带上包含SettingsURL的消息体,然后终端会向服务器请求这个配置文件
Example:https://192.168.1.109:443/provisioning/snom320.htm.当电话设备收到这个文件,就会向IPPBX请求配置文件
消息流程
OverviewPlug & Play
Plug& Play (PnP)provides a proprietory method to enable "Auto Provisioning"on all snomVoIP phonesEXCEPTsnomm3,.By default (Parameter pnpconfig = on)the phones send SIP SUBSCRIBES messages to a multicast address. AnySIP server understanding that message may reply with a SIP NOTIFYmessage containing the Auto Provisioning Server URL where the phonescan request their configuration from.
SIPFlow
snom3x0/snom8xxphones send on boot-up a SIP SUBSCRIBE message to a multicastaddress:
Sentto udp:224.0.1.75:5060 at 24/12/2001 00:00:19:248 (448 bytes):
SUBSCRIBEsip:MAC%3a00135E874B49@intern.snom.de SIP/2.0
Via:SIP/2.0/UDP 192.168.10.67:5060;rport
From:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=658512961
To:<sip:MAC%3a00135E874B49@intern.snom.de>
Call-ID:1930770594@192.168.10.67
CSeq:1 SUBSCRIBE
Event:ua-profile;profile-type="device";vendor="OEM";model="OEM";version="7.1.19"
Expires:0
Accept:application/url
Contact:<sip:192.168.10.67:5060>
Content-Length:0
Ifany SIP application within one hop range understands this message aconfirmation is sent:
Receivedfrom udp:192.168.100.10:5060 at 24/12/2001 00:00:19:287 (480 bytes):
SIP/2.0200 OK
Via:SIP/2.0/UDP 192.168.10.67:5060;rport=5060
Record-Route:<sip:127.0.0.1;lr;transport=tcp;route-id=fb4fb92b7775c2a7>
Record-Route:<sip:192.168.100.10;lr;transport=UDP;route-id=fb4fb92b7775c2a7>
Contact:<sip:192.168.100.10;transport=TCP;handler=dum>
To:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=91955270
From:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=658512961
Call-ID:1930770594@192.168.10.67
CSeq:1 SUBSCRIBE
Expires:0
Content-Length:0
followedby a SIP NOTIFY message containing the Auto Provisioning URL"http://192.168.100.10/sipphone/sipphoneconfig.xml?mac={mac}":
Receivedfrom udp:192.168.100.10:5060 at 24/12/2001 00:00:19:293 (868 bytes):
NOTIFYsip:192.168.10.67:5060 SIP/2.0
Via:SIP/2.0/UDP192.168.100.10:5060;branch=z9hG4bK-d8754z-c3ea5f0e74462613-1---d8754z-;rport
Via:SIP/2.0/TCP127.0.0.1:5060;branch=z9hG4bK-d8754z-7ca96c30144f3e04-1---d8754z-;rport=40916
Max-Forwards:20
Record-Route:<sip:192.168.100.10;lr;route-id=e3470eb400e9c0a4>
Record-Route:<sip:127.0.0.1;lr;transport=TCP;route-id=e3470eb400e9c0a4>
Contact:<sip:192.168.100.10;transport=TCP;handler=dum>
To:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=658512961
From:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=91955270
Call-ID:1930770594@192.168.10.67
CSeq:3 NOTIFY
Content-Type:application/url
Subscription-State:terminated;reason=timeout
Event:ua-profile;profile-type="device";vendor="OEM";model="OEM";version="7.1.19"
Content-Length:59
http://192.168.100.10/sipphone/sipphoneconfig.xml?mac={mac}
Thephone accepts this message and confirms:
Sentto udp:192.168.100.10:5060 at 24/12/2001 00:00:19:315 (542 bytes):
SIP/2.0200 Ok
Via:SIP/2.0/UDP192.168.100.10:5060;branch=z9hG4bK-d8754z-c3ea5f0e74462613-1---d8754z-;rport=5060
Via:SIP/2.0/TCP127.0.0.1:5060;branch=z9hG4bK-d8754z-7ca96c30144f3e04-1---d8754z-;rport=40916
Record-Route:<sip:192.168.100.10;lr;route-id=e3470eb400e9c0a4>
Record-Route:<sip:127.0.0.1;lr;transport=TCP;route-id=e3470eb400e9c0a4>
From:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=91955270
To:<sip:MAC%3a00135E874B49@intern.snom.de>;tag=658512961
Call-ID:1930770594@192.168.10.67
CSeq:3 NOTIFY
Content-Length:0
TestTool
Ourdevelopment provides a tool (Python Script) which can be installed onany OS platform which is supported by Python.The script will reply to any phone within the network, so please testit thoroughly before applying it to a live environment.
Installation
-
DownloadupdatedPnPServer Application from Sourceforge
-
DownloadStandardPython Softwareand install it
Usage
pythonpnpserv.py -u http://url.of.the/settings.xml?mac={mac}
pythonpnpserv.py -u w/o argument defaults to"http://provisioning.snom.com/snom3x0/snom3x0.php?mac={mac}"
pnpserv.py-h --> prints the help
pnpserv.py-v --> verbose mode
Retrievedfrom "http://wiki.snom.com/Features/Auto_Provisioning/PnP"
Category:HowTo:AutoProvisioning
HowTo:AutoProvisioning>AutoProvisioning
Products>Configuration
Products>Documentation>HowTo>HowTo:AutoProvisioning
Products>Features>Configurationfeatures