POC(SIP封装)分析

本文详细分析了SIP协议下的注册过程和一对一呼叫流程,包括终端向PDSN服务器注册,发送SUBSCRIBE和NOTIFY消息的交互,以及呼叫建立、音频传输和呼叫结束的完整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注册过程
开机,注册到PDSN服务器,指定IP地址,
根据手机设定PTT服务器地址,发送注册消息,
服务器发送200 OK响应,
服务器发送Notify消息,
终端发送200 OK响应,
终端发送SUBSCRIBE消息,
服务器发送200 OK响应,
服务器发送两个NOTIFY消息,
终端发送200 OK响应

典型消息
      REGISTER sip:[service]@[remote_ip]:[remote_port] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 1 REGISTER
      Contact: sip:AAA@[local_ip]:[local_port]
      Max-Forwards: 70
      Expires: 7200
      Content-Length: 0

      SIP/2.0 200 OK
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 1 REGISTER
      Content-Length: 0
      Contact: sip:AAA@[local_ip]:[local_port];expires=3600
 Date: Mon, 19 Jan 2004 09:52:55 GMT

      NOTIFY sip:[service]@[remote_ip]:[remote_port];transport=udp SIP/2.0
      Call-ID: [call_id]
      CSeq: 2 NOTIFY
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      Max-Forwards: 70
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=3Dz9hG4bK74bf
      Contact: sip:AAA@[local_ip]:[local_port]
      Event:  x-sip-ims
      Subscription-State: active;expires=86400
      Content-Type: application/x-sip-ims
      Content-Length: 96
       
      <?xml version="1.0" encoding="UTF-8"?>
      <peerlist>
        <peer>209.179.2.62</peer>
      </peerlist>

      SIP/2.0 200 OK
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 2 NOTIFY
      Max-Forwards: 70
      Expires: 0
      Content-Length: 96
      Contact: sip:AAA@[local_ip]:[local_port];expires=3600
 Date: Mon, 19 Jan 2004 09:52:55 GMT
 
      <?xml version="1.0" encoding="UTF-8"?>
      <peerlist>
        <peer>209.179.2.62</peer>
      </peerlist>

      SUBSCRIBE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 3 SUBSCRIBE
      Contact: sip:sipp@[local_ip]:[local_port]
      Max-Forwards: 70
      Event: x-sip-ims
      Accept: application/x-sip-ims
      Content-Length: 0

      SIP/2.0 200 OK
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 3 SUBSCRIBE
      Max-Forwards: 70
      Expires: 0
      Content-Length: 0
      Contact: sip:AAA@[local_ip]:[local_port];expires=3600
 Date: Mon, 19 Jan 2004 09:52:55 GMT

      NOTIFY sip:[service]@[remote_ip]:[remote_port];transport=udp SIP/2.0
      Call-ID: [call_id]
      CSeq: 4 NOTIFY
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      Max-Forwards: 70
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=3Dz9hG4bK74c0
      Contact: sip:AAA@[local_ip]:[local_port]
      Event:  x-sip-ims
      Subscription-State: active;expires=86400
      Content-Type: application/x-sip-ims
      Content-Length: 0

      NOTIFY sip:[service]@[remote_ip]:[remote_port];transport=udp SIP/2.0
      Call-ID: [call_id]
      CSeq: 5 NOTIFY
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      Max-Forwards: 70
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=3Dz9hG4bK74c1
      Contact: sip:AAA@[local_ip]:[local_port]
      Event:  x-sip-ims
      Subscription-State: active;expires=86400
      Content-Type: application/x-sip-ims
      Content-Length: 0

      SIP/2.0 200 OK
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 4 NOTIFY
      Max-Forwards: 70
      Expires: 0
      Content-Length: 0
      Contact: sip:AAA@[local_ip]:[local_port];expires=3600
 Date: Mon, 19 Jan 2004 09:52:55 GMT

      SIP/2.0 200 OK
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: AAA <sip:AAA@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      Cseq: 5 NOTIFY
      Max-Forwards: 70
      Expires: 0
      Content-Length: 0
      Contact: sip:AAA@[local_ip]:[local_port];expires=3600
 Date: Mon, 19 Jan 2004 09:52:55 GMT

一对一呼叫过程
 A将1X连接状态由休眠转为激活
 A向被叫终端B发起呼叫(经由服务器)
 服务器返回消息100 Trying,B已经注册
 服务器向终端B发送INVITE请求,如果B是休眠状态则转为激活
 B发送连接成功返回消息
 服务器发送连接确认ACK到B
 服务器发送连接成功返回消息到A
 A发送确认ACK到服务器
 A释放控制按钮,和控制权限
 B发送INFO到服务器请求发送音频
 服务器发送200 OK
 服务器通知A,B已经开始发送音频 SIP INFO
 服务器发送SIP INFO到B,B收到开始讲话
 A发送200 OK到服务器
 B发送200 OK到服务器
 A发送BYE到服务器
 服务器发送BYE到B
 B发送200 OK到服务器
 服务器发送200 OK到A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值