SIP协议

SIP协议

SIP协议主要包括 SIP头 SIP内容 和附加内容三个部分

项目格式备注示例
SIP头一行,以\r\n结尾REGISTER sip:172.30.2.35 SIP/2.0\r\n
SIP内容很多行,每行为Key,Value的形式CSeq: 1 REGISTER\r\n
附加内容很多行

1 SIP头

项目格式含义示例
INVITEINVITE sip:miyanhui_t1@172.30.11.79:11870;transport=tcp SIP/2.0
REGISTERREGISTER sip:172.30.2.35 SIP/2.0\r\n
ACKACK sip:miyanhui_t1@172.30.11.79:11870;transport=tcp SIP/2.0
BYEBYE sip:miyanhui_t1@172.30.11.79:11870;transport=tcp SIP/2.0
OPTIONS
PRACK
UPDATE
REFER
MESSAGE

2 SIP内容

项目格式含义示例
ViaVia: SIP/2.0/TCP 172.30.2.35:5060;branch=z9hG4bKe0203a229263-30-2ea3ea\r\n
Tosip:miyanhui_t1@172.30.2.35;tag=AFCAF511D8F\r\n
Fromsip:miyanhui_t3@172.30.2.35;tag=869388A8114\r\n
Call-ID76ea44b5eb44080AE90--4080AE90-1-44b5eb4--4080AE90@172.30.11.89\r\n
CSeq4 INVITE\r\n
Contactsip:miyanhui_t1@172.30.11.79:11870;transport=tcp\r\n
Record-Routesip:172.30.2.35:5060;transport=tcp;ftag=869388A8114;lr\r\n
User-Agent"User-Agent: Vixtel APMVista Agent\r\n
Content-Length指明SIP附加数据的长度0\r\n

3 SIP附加数据

SIP/2.0 100 Trying
Via: SIP/2.0/TCP 172.30.11.76:6726;branch=z9hG4bK.B6X6CR18X;rport=6726
From: <sip:miyanhui_t2@172.30.2.35>;tag=YVwiGtgHV
To: sip:miyanhui_t1@172.30.2.35
Call-ID: 1YYJ-rBnlJ
CSeq: 20 INVITE
Server: Brekeke SIP Server rev.477 Evaluation
Content-Length: 0

转载于:https://www.cnblogs.com/Dennis-mi/articles/7992847.html

### SIP协议概述 SIP(Session Initiation Protocol),即会话初始化协议,是一种用于创建、修改以及终止多方通信会话的应用层控制信令协议[^2]。此协议专为互联网设计,在功能上类似于HTTP,均采用了基于文本的UTF-8字符编码方式,并通过请求/应答机制来处理客户端和服务端之间的交互操作。 #### 协议结构与工作原理 在架构层面,SIP位于OSI七层模型中的应用层,依赖于下层的网络基础设施完成数据包的有效传递。具体来说,其底层支撑由IP提供网络服务支持,而在传输层可以选择TCP或者更为常见的UDP作为载体进行消息交换。 当涉及到具体的多媒体会议场景时,除了SIP本身外,还需要配合使用SDP(Session Description Protocol)。其中,SDP用来定义参与方之间共享的各种媒体属性详情,比如音频视频流的具体编解码器类型等;与此同时,SIP则承担起发送这些配置细节的任务,并确保参与者能够顺利建立起有效的通讯链路[^1]。 #### 安全特性 针对安全方面的需求,SIP也提供了相应的保护措施以保障通话过程的安全性和隐私性。例如,可以通过TLS加密通道防止窃听攻击,利用身份验证机制阻止未授权访问尝试等等。 ```python import socket def sip_message_example(): """简单的模拟SIP INVITE消息""" invite_msg = ( "INVITE sip:user@example.com SIP/2.0\r\n" "Via: SIP/2.0/UDP host.example.com;branch=z9hG4bK776sgdkse\r\n" "From: Alice <sip:alice@host.example.com>;tag=1928301774\r\n" "To: Bob <sip:bob@example.com>\r\n" "Call-ID: a84b4c76e66710@pc33.atlanta.example.com\r\n" "CSeq: 314159 INVITE\r\n" "Content-Type: application/sdp\r\n" "\r\n" "v=0\r\n" "o=mhandley 2890844526 2890842807 IN IP4 pc33.atlanta.example.com\r\n" "s=-\r\n" "t=0 0\r\n" "m=audio 49170 RTP/AVP 0\r\n" "a=rtpmap:0 PCMU/8000\r\n" ) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server_address = ('example.com', 5060) try: sent = sock.sendto(invite_msg.encode(), server_address) finally: sock.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值