SDP在pjsip中的应用
来源:互联网 发布:明星年龄造假知乎 编辑:程序博客网 时间:2024/06/06 05:30
- SDP的定义参见http://www.ietf.org/rfc/rfc2327.txt
- SDP在pjsip中的状态转换(图片来自pjsip开发文档)
- 结合pjsip2.0源码分析一下上面这张图:
- 假设两个人做视频通话,一方是拨打者,一方是接听者,拨打者发送sip invite消息, 接听方接收消息
- 拨打者开始打电话,会回调on_make_call_med_tp_complete, 在该方法中调用pjsua_media_channel_create_sdp创建本地的sdp, 并保存在pjmedia_sdp_neg.neg_local_sdp,此sdp在发送invite时会一起发给接听方, 此时拨打方的sdp状态即LOCAL OFFER。
- 当接听者收到sdp消息后,调用inv_check_sdp_in_incoming_msg,将收到sdp保存在pjmedia_sdp_neg.neg_remote_sdp,
然后回调pjsua_call_on_rx_offer创建本地sdp(方法同样是pjsua_media_channel_create_sdp), 将该sdp保存在pjmedia_sdp_neg.neg_local_sdp,
此时sdp的状态变为WAIT NEGO, 然后在inv_check_sdp_in_incoming_msg中调用inv_negotiate_sdp进行协商 - 当拨打方收到接听方返回的sdp, 调用inv_check_sdp_in_incoming_msg, 将收到的sdp保存在pjmedia_sdp_neg.neg_remote_sdp, 然后回调pjsua_call_on_rx_answer, 此时sdp的状态变为WAIT NEGO, 然后在inv_check_sdp_in_incoming_msg中调用inv_negotiate_sdp进行协商
- 如何生成SDP?
- 生成本地SDP
- 由收到的对端SDP生成本地SDP(接听方)
- SDP的协商
- 匹配相应的media, 如audio,video 在sdp中的media的顺序很重要,如果乱序,很可能导致协商不成功, 个人觉得这里程序逻辑有点问题。
- 匹配codec, 要media format, 有两种情况,是否允许异步,即通信双方编码格式不一样。
来自:http://blog.csdn.net/mahout_xb/article/details/8473210
0 0
- SDP在pjsip中的应用
- SDP在pjsip中的应用
- SDP在SIP协议中的应用
- pjsip: 修改SDP的属性
- pjsip: 修改SDP的属性
- pjsip: 修改SDP的属性
- -clean 选项在SDP中的作用分析
- PJSIP开发手册之SDP offer/answer框架(十一)
- pjsip中的源代码分析
- 使用pjsip中的库
- SDP协议及其应用
- Symbian 中的sdp服务
- WebRTC 中的 SDP 协议
- VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
- 在线程中调用PJSIP中的呼叫出现提示注册线程pj_thread_register的解决方法
- PJSIP
- pjsip
- pjsip
- 类型转换问题
- 从NSURLSession下载和断点续传到NSURLSession使用说明及后台工作流程分析
- 无法创建XMLHTTP对象,请检查是否安装了MS XML Parser运行库
- 一台电脑怎么安装32位和64位的jdk,怎么配置环境变量
- 剑指offer 61题 【树】按之字形顺序打印二叉树
- SDP在pjsip中的应用
- xutils中dbutils的基础使用详解
- 堆排序与快速排序
- (4.2.34)Android开源控件ViewPager Indicator的使用方法
- 程序员,你会从 Bug 中学习么?【转载】
- C#hashtable使用说明 以及 Hashtable和HashMap的区别【总结性】
- php 5.4中php-fpm 的重启、终止操作命令
- 填坑:BAT批处理命令的一些总结
- Android camera系统开发之IPC (一)