【GBT28181开发:SIP协议实践】之实况直播

实况直播(标准中的叫法是 实时点播,但是以前在HW,SE的设计文档里面是实况,叫习惯了,其实只是个叫法而已 )是整个视频监控系统中比较核心的一个业务,GBT28181标准中对其也做了详细的设计。相对于设备信息、状态查询等业务,其稍微复杂点。

首先消息类型采用的是INVITE,然后消息体的描述采用SDP协议。SDP协议的之前已经学习过了,还算简单:http://blog.csdn.net/longlong530/article/details/9004707


下面介绍下学习的是实况直播的流程,主要通过模拟SPVMN系统向源设备发送实况直播请求,在GBT28181标准文档中对应的是实况流程中SIP服务器和媒体流发送者交互的子过程。记录下交互的消息,详细研究了下:

转载请注明出处:http://blog.csdn.net/longlong530


一.环境搭建:

环境准备:http://blog.csdn.net/longlong530/article/details/9176989

UAC(模拟IPC):

IP:192.168.10.177(同事人不在~,直接用自己的机子模拟了下)

Port:5061


UAS(模拟SIP服务器):

IP:192.168.10.177

Port:5060


SPVMN操作过程:
1.先选择调测设备类型
3.点击实时点播启动,会在左边的文本框中
  1. v= 0 //Version 协议版本
  2. o= 34020000002020000001 0 0 IN IP4 192.168. 43.178 //Origin 所有者/创建者和会话标识符
  3. s=Play //Subject 会话名称
  4. c= IN IP4 192.168. 43.178 //Connection Data 连接信息
  5. t= 0 0 //Time 会话生命周期
  6. m=video 6000 RTP/AVP 96 98 97 //Media(Type、Port、RTP/AVP Profile)
  7. a=recvonly //扩展属性定义
  8. a=rtpmap: 96 PS/ 90000 //扩展属性定义
  9. a=rtpmap: 98 H264/ 90000 //扩展属性定义
  10. a=rtpmap: 97 MPEG4/ 90000 //扩展属性定义
  11. y= 0100000001 //网上木有查到y的意思,最后在28181标准文档中查到:描述SSRC值
  12. f= //网上木有查到y的意思,最后在28181标准文档中查到:描述媒体参数

4.点击发送消息,右边对话框即可显示消息交互的过程。(图就不截了~)

二.业务时序图:


三.消息详解:

第一步,UAS-->UAC

SPVMN每次实况前,会发送一个BYE消息,但是该操作在GBT28181标准中并没有规定。

  1. BYE sip: 34020000001320000001@192. 168.10. 177: 5061 SIP/ 2.0
  2. CSeq: 2 BYE
  3. From: & lt;sip: 34020000002000000001@3402000000& gt;;tag= 67051446_53173353_7e47bbc7-c29c- 4299- 803b- 71f7367975bb
  4. To: & lt;sip: 34020000001320000001@3402000000& gt;;tag= 946196600
  5. Call-ID: 5769dab035fe6ade9dafa5e544c3c6a5@0. 0. 0. 0
  6. Max-Forwards: 70
  7. Via: SIP/ 2.0/UDP 192.168. 10.177: 5060;branch=z9hG4bK7e47bbc7-c29c- 4299- 803b- 71f7367975bb_53173353_20235498592802
  8. Content-Length: 0
  9. SIP/ 2.0 200 OK
  10. Via: SIP/ 2.0/UDP 192.168. 10.177: 5060;branch=z9hG4bK7e47bbc7-c29c- 4299- 803b- 71f7367975bb_53173353_20235498592802
  11. From: & lt;sip: 34020000002000000001@3402000000& gt;;tag= 67051446_53173353_7e47bbc7-c29c- 4299- 803b- 71f7367975bb
  12. To: & lt;sip: 34020000001320000001@3402000000& gt;;tag= 946196600
  13. Call-ID: 5769dab035fe6ade9dafa5e544c3c6a5@0. 0. 0. 0
  14. CSeq: 2 BYE
  15. User-Agent: eXosip/ 3.6. 0
  16. Content-Length: 0

第二步,UAS-->UAC
发送INVITE消息,请求实况,消息体用SDP协议描述,其中每个字段的意义在上面已经介绍了
  1. INVITE sip: 34020000001320000001@3402000000 SIP/ 2.0
  2. Call-ID: 1d7bbec98be4dfc5cf128e40ccde864e@0. 0. 0. 0
  3. CSeq: 1 INVITE
  4. From: & lt;sip: 34020000002000000001@3402000000& gt;;tag= 97895568_53173353_401bffa2- 3ee4- 4d32- 81b1- 3881df7957d3
  5. To: & lt;sip: 34020000001320000001@3402000000& gt;
  6. Max-Forwards: 70
  7. Contact: "34020000002000000001" & lt;sip: 192.168. 10.177: 5060& gt;
  8. Content-Type: application/sdp
  9. Route: & lt;sip: 34020000001320000001@192. 168.10. 177: 5061;line= 9a1ca01668b5778;lr& gt;
  10. Via: SIP/ 2.0/UDP 192.168. 10.177: 5060;branch=z9hG4bK401bffa2- 3ee4- 4d32- 81b1- 3881df7957d3_53173353_24913197787603
  11. Content-Length: 227
  12. v= 0
  13. o= 34020000002020000001 0 0 IN IP4 192.168. 43.178
  14. s=Play
  15. c=IN IP4 192.168. 43.178
  16. t= 0 0
  17. m=video 6000 RTP/AVP 96 98 97
  18. a=recvonly
  19. a=rtpmap: 96 PS/ 90000
  20. a=rtpmap: 98 H264/ 90000
  21. a=rtpmap: 97 MPEG4/ 90000
  22. y= 0100000001
  23. f=

第三步,UAC-->UAS

服务器响应101消息,表示会话正在正常建立,GBT28181标志没有提及该消息,但是1**的消息都属于Informational级别的通知消息,表示会话正在正常建立。比如网上有的例子还会有180 ring消息响应等。

  1. SIP/ 2.0 101 Dialog Establishement
  2. Via: SIP/ 2.0/UDP 192.168. 10.177: 5060;branch=z9hG4bK4b6c31ac-b631- 4c5c- 8576-0a82f27a8fbc_53173353_20235503434986
  3. From: & lt;sip: 34020000002000000001@3402000000& gt;;tag= 03164492_53173353_4b6c31ac-b631- 4c5c- 8576-0a82f27a8fbc
  4. To: & lt;sip: 34020000001320000001@3402000000& gt;;tag= 3823092636
  5. Call-ID: 6fdcb598554bcd699b314c3719c2ba5 0@0. 0. 0. 0
  6. CSeq: 1 INVITE
  7. Contact: & lt;sip: 34020000001320000001@192. 168.10. 177: 5061& gt;
  8. User-Agent: eXosip/ 3.6. 0
  9. Content-Length: 0


第四步,UAC-->UAS

服务器响应200 ok消息,表示会话建立成功

  1. SIP/ 2.0 200 OK
  2. Via: SIP/ 2.0/UDP 192.168. 10.177: 5060;branch=z9hG4bK4b6c31ac-b631- 4c5c- 8576-0a82f27a8fbc_53173353_20235503434986
  3. From: & lt;sip: 34020000002000000001@3402000000& gt;;tag= 03164492_53173353_4b6c31ac-b631- 4c5c- 8576-0a82f27a8fbc
  4. To: & lt;sip: 34020000001320000001@3402000000& gt;;tag= 3823092636
  5. Call-ID: 6fdcb598554bcd699b314c3719c2ba5 0@0. 0. 0. 0
  6. CSeq: 1 INVITE
  7. Contact: & lt;sip: 34020000001320000001@192. 168.10. 177: 5061& gt;
  8. Content-Type: application/sdp
  9. User-Agent: eXosip/ 3.6. 0
  10. Content-Length: 235
  11. v= 0
  12. o= 34020000001320000001 0 0 IN IP4 192.168. 10.177
  13. s=Embedded IPC
  14. c=IN IP4 192.168. 10.177
  15. t= 0 0
  16. m=video 6000 RTP/AVP 96
  17. a=sendonly
  18. a=rtpmap: 96 H264/ 90000
  19. a=username: 34020000001320000001
  20. a=password: 12345678
  21. y= 100000001
  22. f=

第五步,UAS-->UAC

服务器返回ACK消息,最终确认消息,标志会话正式建立完成

  1. ACK sip: 34020000001320000001@192. 168.10. 177: 5061 SIP/ 2.0
  2. Call-ID: 6fdcb598554bcd699b314c3719c2ba5 0@0. 0. 0. 0
  3. CSeq: 1 ACK
  4. From: & lt;sip: 34020000002000000001@3402000000& gt;;tag= 03164492_53173353_4b6c31ac-b631- 4c5c- 8576-0a82f27a8fbc
  5. To: & lt;sip: 34020000001320000001@3402000000& gt;;tag= 3823092636
  6. Max-Forwards: 70
  7. Via: SIP/ 2.0/UDP 192.168. 10.177: 5060;branch=z9hG4bK4b6c31ac-b631- 4c5c- 8576-0a82f27a8fbc_53173353_20235513789448
  8. Content-Length: 0

然后媒体流发送者(UAC)就开始向服务端指定的目的地( o=34020000002020000001 0 0 IN IP4 192.168.43.178)发送流媒体,UAC.EXE的截图:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值