不知道有没有人也在学习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的学习过程相关推荐

  1. 如何构建自己的SIP SERVER!

    如果你下载了 sip phone, 自己又做了一个 SIP SERVER,那么你就可以当老大了,不要什么MSN,QQ的语音通话了,自己就可以直接同你想要的人通话了. 1:软件准备:A: SIP SER ...

  2. Avaya PBX sip trunk对接第三方sip server传递UUI的方法

    原文网址:http://blog.sina.com.cn/s/blog_538a8c730102vvvp.html 使用osip开发的sip server对接avaya sip trunk,基本流程可 ...

  3. yate sip 服务端和客服端 搭建

    1.下载yate程序,服务端和客户端可通用. 下载地址:http://yate.null.ro/pmwiki/index.php?n=Main.Download 2.安装和配置yate程序,这里借用别 ...

  4. SIP与RTP综合应用(转)

    SIP是一个会话协议,很多大企业都在用,通信行业的一个标准,其业务逻辑比较,简单地来说如下: User Agent Server ------------------REGISTER--------- ...

  5. SIP与RTP综合应用

    SIP是一个会话协议,很多大企业都在用,通信行业的一个标准,其业务逻辑比较,简单地来说如下: UserAgent                                             ...

  6. Kamailio v4.4.6 发布,开源 SIP 服务器

    开源 SIP 服务器 Kamailio v4.4.6 发布了. Kamailio SIP Server v4.4.6 stable是一个小的版本,包括自v4.4.5以来的代码和文档修复. 配置文件和数 ...

  7. 1-NET UX1000-实战-配置-Lync Server 2010-集成

    1-NET UX1000-实战-配置-Lync Server 2010-集成 1. 实验目的 FXS Quick Start 1.1 Configuring a call for the UX1000 ...

  8. VoLTE前世今生...说清楚VoIP、VoLTE、CSFB、VoWiFi、SIP、IMS那些事

    转载自<https://www.sohu.com/a/128463947_505812> 从VoIP到VoLTE   观察家们认为VoIP的出现起始于1995年,那个时候GSM刚进入中国. ...

  9. 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接入 ...

  10. ICS SIP Call移植

    最近在移植ICS的sip call.现把移植经历分享一下. sip call拨打电话过程跟正常拨打电话过程没什么两样.但是sip call需要有WiFi的支持.并且有sip server可以提供账户. ...

最新文章

  1. 运维 + 数据 + AI=企业数字化难题的应对之法?
  2. 压缩感知进阶——有关稀疏矩阵
  3. 通讯录新建分组功能php,微信通讯录分组怎么设置
  4. 如何将自开发的SAP UI5应用以tile的方式配置到SAP Fiori Launchpad里
  5. SAP ABAP实用技巧介绍系列之 template的match顺序
  6. Spring Boot Web Slice测试–示例
  7. leetcode350. 两个数组的交集 II(hashmap)
  8. H.264中POC类型之探讨
  9. Dubbo调用时报错Invalid token Forbid invoke remote service interface
  10. this.get_element .style为空或不是对象
  11. DBA+北京社群第三次线下沙龙归来
  12. python3.6安装步骤-Ubuntu16.04安装python3.6详细教程
  13. Golang中MYSQL驱动
  14. C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用
  15. 《五分钟商学院》个人篇学习总结(下)
  16. outlook qr码在哪里_聚合码微信支付宝申请开通,商家融合收款码实现一码支付,如何申请微信和支付宝合并收款码?聚合码支持信用卡、花呗、微信和支付宝收款...
  17. 英语知识点整理day02
  18. 零信任的终端安全闭环
  19. shortcutwebsite
  20. 智能人物画像综合分析系统——Day21

热门文章

  1. 计算机软件如何助力科研,研究生必备科研绘图软件,助力科学研究
  2. .js ruby如何调用_为什么我们喜欢并选择Ruby而不是Node.js?
  3. 暴雪守望先锋显示连接暴雪服务器超时,守望先锋 连接暴雪游戏服务器超时
  4. 微信公众号迁移及公证书快速办理流程
  5. 微信公众号主体如何变更:账号迁移全攻略
  6. 19 枚举类型 Enumerated
  7. TMS320F28377D的外设应用笔记(1)——Epwm配置
  8. javascript指定日期增加自然月份(有闰年2月判断)
  9. Git配置KDiff3
  10. 解决网页微信扫码登录报40163