造第一个SIP包REGISTER

来源:互联网 发布:angular js new array 编辑:程序博客网 时间:2024/05/25 23:58

在网上看到SIP都是直接讲明文,没有谁把代码贴出来的。

用Python2.6写了一个REGISTER消息,用wireshark抓包可以抓到,不用服务器端支持,是UDP的。

import socket;import time;s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM);s.sendto('REGISTER sip:192.168.2.106 SIP/2.0\r\n'+'Via: SIP/2.0/UDP 59.64.157.21:10342;branch=z9hG4bKrport=10342;received=59.64.157.21\r\n'+'Max-Forwards: 70\r\n'+'Contact: <sip:winlin@59.64.157.21:10342;rinstance=a89b345d1acc58cd>\r\n'+'To: "winlin" <sip:winlin@192.168.2.106>\r\n'+'From: "winlin" <sip:winlin@192.168.2.106>;tag=2f68fc1a\r\n'+'Call-ID: a92b1e046f213771MzFlMWE3NTg2YzNhNWIwYjZjYWI5Mzk4NjQ2ODI5YTc.\r\n'+'CSeq: 1 REGISTER\r\n'+'Expires: 3600\r\n'+'Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,NOTIFY,MESSAGE,SUBSCRIBE,INFO\r\n'+'User-Agent: X-Lite release 1003l stamp 30942\r\n'+'Content-Length: 0\r\n'+'\r\n', ("192.168.2.106", 5060));time.sleep(3);s.close();

可以直接看到SIP的格式是什么。

抓包是只要设置port 5056就可以,默认SIP的端口是5056,显示可以过滤为SIP协议,如下图: