SIP PnP

SIP-PNP-Auto-Provisioning

什么是SIP PnP? 原理和协议流程

SIP PnPn (Plug & Play) 即插即用是简捷SIP电话终端(IP电话机/网关)支持的一种国际标准常用“自动配置”(Auto Provisioning)的方法。默认情况下,SIP电话机会向多播地址(常用IP地址是:224.0.1.75)发送 SIP SUBSCRIBE 消息(通常译作订阅消息)。任何理解该订阅消息的 SIP 服务器都可以通过包含自动配置服务器 URL地址(设置服务器 URL)的 SIP Notify消息(通常译作通知消息)进行回复,电话机收到这个回复后,就知道可以从该 URL 地址获得其配置文件。

PnP配置是出厂默认启用的,用户无需配置。

IP电话机上电启动联网之后,会周期性的向多播地址224.0.1.75:5060发送 SIP SUBSCRIBE 消息: 在该消息的“Event”头字段中,应包含 SIP终端的⼚商,型号,版本等基本信息。

Sent to udp:224.0.1.75:5060 at 24/12/2023 00:00:19:248 (448 bytes):
SUBSCRIBE sip:MAC%3a00135E874B49@192.168.3.99 SIP/2.0
Via: SIP/2.0/UDP 192.168.3.67:5060;rport
From: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=658512961
To: <sip:MAC%3a00135E874B49@192.168.3.99>
Call-ID: 1930770594@192.168.3.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.3.67:5060>
Content-Length: 0

局域网内的SIP服务器收到这个消息后,会发送一个确认消息,格式如下:

Received from udp:192.168.3.99:5060 at 24/12/2024 00:00:19:287 (480 bytes):
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.3.67:5060;rport=5060
Record-Route: <sip:127.0.0.1;lr;transport=tcp;route-id=fb4fb92b7775c2a7>
Record-Route: <sip:192.168.3.99;lr;transport=UDP;route-id=fb4fb92b7775c2a7>
Contact: <sip:192.168.3.99;transport=UDP;handler=dum>
To: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=91955270
From: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=658512961
Call-ID: 1930770594@192.168.3.67
CSeq: 1 SUBSCRIBE
Expires: 0
Content-Length: 0


由包含自动配置URL的SIP NOTIFY消息推送http://192.168.3.99/sipphone/sipphoneconfig.php?mac={mac}”:

Received from udp:192.168.3.99:5060 at 24/12/2024 00:00:19:293 (868 bytes):
NOTIFY sip:192.168.3.67:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.3.99:5060;branch=z9hG4bK-d8754z-c3ea5f0e74462613-1---d8754z-;rport
Via: SIP/2.0/TCP 127.0.0.1:5060;branch=z9hG4bK-d8754z-7ca96c30144f3e04-1---d8754z-;rport=40916
Max-Forwards: 20
Record-Route: <sip:192.168.3.99;lr;route-id=e3470eb400e9c0a4>
Record-Route: <sip:127.0.0.1;lr;transport=TCP;route-id=e3470eb400e9c0a4>
Contact: <sip:192.168.3.99;transport=TCP;handler=dum>
To: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=658512961
From: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=91955270
Call-ID: 1930770594@192.168.3.67
CSeq: 3 NOTIFY
Content-Type: application/urlSubscription-State: terminated;reason=timeout
Event: ua-profile;profile-type="device";vendor="OEM";model="OEM";version="7.1.19"
Content-Length: 57
http://192.168.3.99/sipphone/sipphoneconfig.php?mac={mac}


IP电话机收到这条消息并且确认:

Sent to udp:192.168.3.99:5060 at 24/12/2024 00:00:19:315 (542 bytes):
SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.3.99:5060;branch=z9hG4bK-d8754z-c3ea5f0e74462613-1---d8754z-;rport=5060
Via: SIP/2.0/TCP 127.0.0.1:5060;branch=z9hG4bK-d8754z-7ca96c30144f3e04-1---d8754z-;rport=40916
Record-Route: <sip:192.168.3.99;lr;route-id=e3470eb400e9c0a4>
Record-Route: <sip:127.0.0.1;lr;transport=TCP;route-id=e3470eb400e9c0a4>
From: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=91955270
To: <sip:MAC%3a00135E874B49@192.168.3.99>;tag=658512961
Call-ID: 1930770594@192.168.3.67
CSeq: 3 NOTIFY
Content-Length: 0

在采用了PnP 自动配置后,电话机会把收到这个URL保存下来。

常见的设置界面如下: