借助sip呼叫浅析sip server
来源:互联网 发布:决战武林所有进阶数据 编辑:程序博客网 时间:2024/06/03 20:02
本人刚刚入门通信行业的测试,针对目前学习,了解的sip server分类做一些介绍,如果错误,请指正。
我正在学习sip呼叫流程,用3CX服务器抓到的包是这样的
用公司的sip server(简称A server)抓到的是这样的
对比发现,两台服务器对于invite和100trying的处理是不同的:3CX是先转发再响应,A server先响应再转发。起初以为这是由于服务器的不同处理机制导致的。后来了解服务器分为代理服务器和软交换功能的服务器之分。代理服务器对于请求会先转发再响应,过滤calID(会话标识符)会发现是一通电话,看上面的3CX其实是很像代理服务器的(实际并不是,后面讲);软交换功能比如A server,先响应再转发,过滤callID会发现是两通电话,即主叫和server是一通,被叫和server是另一通。
这样的话,前面的invite和100trying就说通了。但是!如果3CX仅是起到代理服务器的功能的话,那么后面的bye请求先响应再转发与之前分析的矛盾。后来请教大牛,告诉我过滤rtp包。发现3CX的rtp包是由主叫发送给被叫,没经过服务器。A server的rtp包主叫发给A server,再由server转发给被叫。对于A server完全是两通电话,rtp包经过server转发是相互印证了的。但是3CX一直很矛盾,表现为:1.invite和100trying是先转发再响应的代理服务器类型2.BYE信令是先响应再转发的软交换功能服务器3.过滤rtp包,发现未经过server的代理服务器类型。原来这里的3CX是将通话半处理成两个通话。它只是在sip信令(sdp除外)上处理成两个呼叫,(100trying和invite别太纠结,信令这种东西,每个公司有自己的做法,只要流程通了就OK,实际上,发100trying是为了防止主叫在一段时间没收到响应疯狂的发invite请求,告诉主叫一声,爸爸在处理请求,别急~如果速度够快,秒接,你不发100trying也行,显然这种情况不符合常理)但sdp还是用实际被叫的,所以,主叫是能看到被叫的sdp信息。如果是代理服务器,信令和sdp都是透传的,相当于一通呼叫。 3CX这种信令不透传,sdp透传的情况如果入到两个不在同一子网的主机呼叫,由于信令通过sip server转发是通的,但是由于不在同一个子网,rtp包发不过去。导致信令通,语音不通的情况。但是A server由于全是经过它转发,不会出现这种情况。但是!!!服务器转发这么多rtp包,对于它是一种负担,消耗服务器资源。 3CX这种不过rtp包不过它的情况节省服务器资源。 实际上,有些服务器是支持这种rtp包过不过服务器的选项,可供选择,比如ondo sip server。
总结:判断服务器类型可以通过拨打一通电话,用wireshark抓包。过滤callID。如果过滤之后发现是两个IP之间的传递,则为软交换功能服务器。若为三个IP,则为proxy server。然后在过滤rtp,查看实际的媒体流传递路径。是否经过服务器。
- 借助sip呼叫浅析sip server
- SIP基本呼叫流程
- SIP呼叫流程
- sip呼叫典型图
- SIP基本呼叫
- SIP基本呼叫流程
- SIP 的运用.简单的SIP呼叫
- 【SIP基础】SIP协议基本呼叫流程
- SIP呼叫种类及流程
- 带鉴权信息的SIP呼叫
- 带鉴权信息的 SIP 呼叫
- SIP用户呼叫流程分析
- sip协议呼叫流程详解
- sip
- SIP
- SIP
- SIP
- SIP
- codeforces 895D String Mark
- 切割nohup.out的脚本
- Linux系统下,Oracle数据库的备份与还原
- Vue权限管理解决方案
- java jdk安装
- 借助sip呼叫浅析sip server
- ubuntu切换到win10之后耳机没声音
- HDOJ2131 Probability
- 判断网络状态是否可用
- 企服三会·PPT | 东软集团冷雪梅:从应用到服务,移动互联网时代下HR的变革
- 自顶向下,逐步求精
- 发改委:2018年要在不少于5个城市开展5G网络建设 | Windows 10测试版将迎新功能!
- 自定义Toas工具类t(二),LayoutInflater加载的布局大小不受控制的解决办法
- 前序中序确认二叉树 7-23 还原二叉树(25 分)