yate--sip server的学习过程
不知道有没有人也在学习yate这个这东西,如果有的话,并且感兴趣的话,可以加一下好友(qq:905568425)一起讨论一下学习心得:
由于以前没有自己独立搞过大型的C++工程,所以这次面对这个拥有比较完善的C++库的yate工程就显得有些束手无策了,加上在网上可以参考的资料基本是没有的,所以不得一点一点开始看起,从main()入口函数看起,看到client如何注册上server,以及Invite请求和200OK的回复,RTP传输Media数据,了解大致的流程就花了比较长的时间了,具体到每个模块里面的时间不多,所以记录下今天下午看到的ysipchan里面的Invite请求的流程。
首先我们先不涉及到Register流程,直接进入Invite流程,我们通过抓包或者日志输出可以看到的是:client A 发送了Invite的消息到 sip server,里面包含的信息有以下几个部分:
INVITE sip:zhaosheng@192.168.1.77 SIP/2.0
Max-Forwards: 20
Via: SIP/2.0/UDP 192.168.1.139:5060;rport;branch=z9hG4bK542329594
From: <sip:dragonwake@192.168.1.77>;tag=1008295650
To: <sip:zhaosheng@192.168.1.77>
Call-ID: 1350821487@192.168.1.77
CSeq: 27 INVITE
User-Agent: YATE/5.3.0
Contact: <sip:dragonwake@192.168.1.139:5060>
Allow: ACK, INVITE, BYE, CANCEL, OPTIONS, INFO
Content-Type: application/sdp
Content-Length: 506
v=0
o=yate 1407827030 1407827030 IN IP4 192.168.1.139
s=SIP Call
c=IN IP4 192.168.1.139
t=0 0
m=audio 17652 RTP/AVP 0 8 3 11 98 97 102 103 104 105 106 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:11 L16/8000
a=rtpmap:98 iLBC/8000
a=fmtp:98 mode=20
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:102 SPEEX/8000
a=rtpmap:103 SPEEX/16000
a=rtpmap:104 SPEEX/32000
a=rtpmap:105 iSAC/16000
a=rtpmap:106 iSAC/32000
a=rtpmap:101 telephone-event/8000
a=ptime:30
在上面我们可以看到Invite的请求方式dragonwake,请求zhaosheng这个用户,然后client对应的ip和port也都有,c=IN IP4 192.168.1.139就是请求方对应的IP,然后m=audio 17652显示的是media的类型和传输端口,类似的,server在接受到Invite消息后,会对消息进行处理,处理的大致流程如下:
void YateSIPEndPoint::run()函数里面会接受到一个
yate--sip server的学习过程相关推荐
- 如何构建自己的SIP SERVER!
如果你下载了 sip phone, 自己又做了一个 SIP SERVER,那么你就可以当老大了,不要什么MSN,QQ的语音通话了,自己就可以直接同你想要的人通话了. 1:软件准备:A: SIP SER ...
- Avaya PBX sip trunk对接第三方sip server传递UUI的方法
原文网址:http://blog.sina.com.cn/s/blog_538a8c730102vvvp.html 使用osip开发的sip server对接avaya sip trunk,基本流程可 ...
- yate sip 服务端和客服端 搭建
1.下载yate程序,服务端和客户端可通用. 下载地址:http://yate.null.ro/pmwiki/index.php?n=Main.Download 2.安装和配置yate程序,这里借用别 ...
- SIP与RTP综合应用(转)
SIP是一个会话协议,很多大企业都在用,通信行业的一个标准,其业务逻辑比较,简单地来说如下: User Agent Server ------------------REGISTER--------- ...
- SIP与RTP综合应用
SIP是一个会话协议,很多大企业都在用,通信行业的一个标准,其业务逻辑比较,简单地来说如下: UserAgent ...
- Kamailio v4.4.6 发布,开源 SIP 服务器
开源 SIP 服务器 Kamailio v4.4.6 发布了. Kamailio SIP Server v4.4.6 stable是一个小的版本,包括自v4.4.5以来的代码和文档修复. 配置文件和数 ...
- 1-NET UX1000-实战-配置-Lync Server 2010-集成
1-NET UX1000-实战-配置-Lync Server 2010-集成 1. 实验目的 FXS Quick Start 1.1 Configuring a call for the UX1000 ...
- VoLTE前世今生...说清楚VoIP、VoLTE、CSFB、VoWiFi、SIP、IMS那些事
转载自<https://www.sohu.com/a/128463947_505812> 从VoIP到VoLTE 观察家们认为VoIP的出现起始于1995年,那个时候GSM刚进入中国. ...
- 2-Tenor AF AFT400-实战-Lync Server 2010-集成-2012-01-19
2-Tenor AF AFT400-实战-Lync Server 2010-集成 1. 网络拓朴图 2. 接线-方法 A. 电信直线直接接在Quintum AF的FXO口上 B. AF采用RJ45接入 ...
- ICS SIP Call移植
最近在移植ICS的sip call.现把移植经历分享一下. sip call拨打电话过程跟正常拨打电话过程没什么两样.但是sip call需要有WiFi的支持.并且有sip server可以提供账户. ...
最新文章
- 运维 + 数据 + AI=企业数字化难题的应对之法?
- 压缩感知进阶——有关稀疏矩阵
- 通讯录新建分组功能php,微信通讯录分组怎么设置
- 如何将自开发的SAP UI5应用以tile的方式配置到SAP Fiori Launchpad里
- SAP ABAP实用技巧介绍系列之 template的match顺序
- Spring Boot Web Slice测试–示例
- leetcode350. 两个数组的交集 II(hashmap)
- H.264中POC类型之探讨
- Dubbo调用时报错Invalid token Forbid invoke remote service interface
- this.get_element .style为空或不是对象
- DBA+北京社群第三次线下沙龙归来
- python3.6安装步骤-Ubuntu16.04安装python3.6详细教程
- Golang中MYSQL驱动
- C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用
- 《五分钟商学院》个人篇学习总结(下)
- outlook qr码在哪里_聚合码微信支付宝申请开通,商家融合收款码实现一码支付,如何申请微信和支付宝合并收款码?聚合码支持信用卡、花呗、微信和支付宝收款...
- 英语知识点整理day02
- 零信任的终端安全闭环
- shortcutwebsite
- 智能人物画像综合分析系统——Day21