fenl 发表于 2015-10-14 09:14:31

sip服务器和sip客户端之间是否传递RTP语音流?


[*]
[*]
[*]
[*]
[*]
[*]
首页 精选版块 论坛帮助 论坛牛人 论坛地图 CSDN> CSDN论坛> 专题开发/技术/项目 > 多媒体/流媒体开发返回列表

[*]管理菜单
[*]结帖
[*]发帖
[*]回复
[*]关注
sip服务器和sip客户端之间是否传递RTP语音流? [问题点数:60分,结帖人weichen2005]
收藏关注weichen2005weichen2005 等级:结帖率:83.18%楼主 发表于: 2009-03-06 12:44:22比如sip客户端c1和c2都注册到同一个sip服务器(c1,c2,sip服务器处于同一个局域网中)
或者在其它不同的场景下(比如c1和c2分别处于不同的nat后, sip服务器位于公网上)

当c1呼叫c2成功后,c1和c2之间开始互发RTP语音流,这样,双方就可以互相听见对方的声音了

那么sip服务器和sip客户端之间是否传递RTP语音流?即服务器是否转发c1和c2之间通信
的语音数据?
更多0 分享到: 相关主题推荐: 服务器 rtp局域网 通信 数据 相关帖子推荐:

[*]求一段sql优化,现在好慢
[*]如何使排列输出(将存储在文本文件中)的序列看起来比较混乱随机?
[*]mysql某个表中数据自己丢失 求助!
[*]vector保存c风格字符串
[*]请问应该如何运行aspx文件?
[*]printf格式修改符
[*]数据结构(c语言,不是c++)
[*]上海的都来报下自己的薪资 给个参考比较看看
对我有用丢个板砖 引用 | 举报 | 管理 回复次数:20关注yanghehongyanghehong 等级:2#1 得分:20回复于: 2009-03-06 14:14:46 一般来说简单的两个人之间的通话不需要。

一开始可能需要一个STUN服务器来穿透NAT。穿透之后,两端之间可以直接发送语音数据。
如果很难穿透的NAT,那可能中间需要一个有公网IP的 relay服务器 来转发语音。

如果是一些特殊类型的通话,比如多方会话,可能会用一个中央的媒体服务器,那通话语音就会通过媒体服务器转发。。。当然也有其他实现方式



- 千里孤行





CSDN投诉事项说明对我有用丢个板砖 引用 | 举报 | 管理 关注weichen2005weichen2005 等级:#2 得分:0回复于: 2009-03-09 12:28:29 多谢千里孤行兄!

我前几天做了一个实验,在同一个局域网内:linux server端用Yate2服务器, windows客户端用了两个软电话
两个软电话注册到Yate2服务器上进行通话实验,并且进行了抓包

抓包发现两个客户端之间的通话RTP数据流通过了服务器进行转发,这个是怎么回事呢?

按照sip协议的 Contact字段,按说两个客户端已经分别知道了对方的ip:port,那为什么两者之间的通话语音流
还要通过服务器转发呢??

【社区之星】朱燚:转战传统应用的弄潮儿对我有用丢个板砖 引用 | 举报 | 管理 关注pomoqpomoq 等级:#3 得分:20回复于: 2009-03-09 12:42:45 发表于:2009-03-09 12:28:292楼 得分:0

   我前几天做了一个实验,在同一个局域网内:linux server端用Yate2服务器, windows客户端用了两个软电话
   两个软电话注册到Yate2服务器上进行通话实验,并且进行了抓包

   抓包发现两个客户端之间的通话RTP数据流通过了服务器进行转发,这个是怎么回事呢?

   按照sip协议的 Contact字段,按说两个客户端已经分别知道了对方的ip:port,那为什么两者之间的通话语音流
   还要通过服务器转发呢??


--------------------------

Contact字段是客户端的ip:port(5060),用于接收sip消息,该字段可能被sip server修改为客户端外面的nat的映射地址和端口。

语音流比如RTP的接收地址端口,由sip里面的SDP确定,如果需要通过rtp proxy转发,那么sip server就会修改sdp里面的connection ip和audio port或video port对我有用丢个板砖 引用 | 举报 | 管理 关注weichen2005weichen2005 等级:#4 得分:0回复于: 2009-03-09 18:45:32 引用 3 楼 pomoq 的回复:发表于:2009-03-09 12:28:292楼 得分:0

我前几天做了一个实验,在同一个局域网内:linux server端用Yate2服务器, windows客户端用了两个软电话
两个软电话注册到Yate2服务器上进行通话实验,并且进行了抓包

抓包发现两个客户端之间的通话RTP数据流通过了服务器进行转发,这个是怎么回事呢?

按照sip协议的 Contact字段,按说两个客户端已经分别知道了对方的ip:port,那为什么两者之间的通话语音流
还…
兄弟,我可是在同一个局域网里测验的啊,为啥客户端都把RTP流发往服务器端,再由服务器端转发呢??
对我有用丢个板砖 引用 | 举报 | 管理 关注pomoqpomoq 等级:#5 得分:15回复于: 2009-03-10 17:40:07

兄弟,我可是在同一个局域网里测验的啊,为啥客户端都把RTP流发往服务器端,再由服务器端转发呢??

---------------------------------------
RTP要不要中转,就看sip server是如何处理了。

1.如果sip server修改了sip里的SDP的地址和端口,那就要中转。你看你的cfg配置文件里是不是使用了use_media_proxy().

2.sip server不修改SDP,就不中转。此时SDP里面是客户端的内网的IP和端口(一般默认是7078),如果客户端通过stun方式,那SDP里面的IP就是客户端的外网的NAT映射地址和端口。
对我有用丢个板砖 引用 | 举报 | 管理 关注BlackBabyzmcBlackBabyzmc 等级:#6 得分:5回复于: 2009-04-11 22:08:27 关注学习 对我有用丢个板砖 引用 | 举报 | 管理 关注sumaolinKevinSu 等级:#7 得分:0回复于: 2009-12-14 17:43:34 学习关注一下啊 对我有用丢个板砖 引用 | 举报 | 管理 关注sumaolinKevinSu 等级:#8 得分:0回复于: 2009-12-14 17:44:08 学习关注一下啊 对我有用丢个板砖 引用 | 举报 | 管理 关注jinlkingjinlking 等级:#9 得分:0回复于: 2010-01-05 17:25:05 up一下 对我有用丢个板砖 引用 | 举报 | 管理 关注probezyprobezy 等级:#10 得分:0回复于: 2010-02-01 16:41:53 因为可能服务器端做了直接的relay转发.可能自带rtp proxy功能. 对我有用丢个板砖 引用 | 举报 | 管理 关注ren911ren911 等级:#11 得分:0回复于: 2010-04-12 15:18:00 SIP本身支持端到端RTP传输,但是否要通过SIP服务器主要看SIP服务器的配置,一般来说,商用的SIP服务器配置RTP流是不会直接端到端而是通过服务器中转的。
主要用处:
1.计费,SIP服务器需要直接控制媒体流以便进行通话管理和控制。
2.可以将不同格式的媒体流进行对接,比如一个只支持G711,一个只支持G723,如果直接端到端两方将无法通话,但有些服务器可以将其相互转化。
对我有用丢个板砖 引用 | 举报 | 管理 关注weichen2005weichen2005 等级:#12 得分:0回复于: 2010-04-22 10:46:19 多谢大家的解答,继续研究语音通信!

to ren911:
1.计费,即使语音流不通过sip服务器,sip服务器不是也可以通过sip信令控制
通话的过程吗? (比如花费用完之后,最多再通话5分钟就切断通话)

最近继续研究了最新版yate-2.2.0.1, 发现其中有关于forward_sdp的选项
(其目的好像是服务器端不修改客户端发出的invite中带的sdp, 直接转发给被呼
叫端, 使得rtp流不经过sip服务器), 有在研究的兄弟多支持支持!
对我有用丢个板砖 引用 | 举报 | 管理 关注weichen2005weichen2005 等级:#13 得分:0回复于: 2010-04-22 10:49:55 引用 3 楼 pomoq 的回复:发表于:2009-03-09 12:28:292楼 得分:0

我前几天做了一个实验,在同一个局域网内:linux server端用Yate2服务器, windows客户端用了两个软电话
两个软电话注册到Yate2服务器上进行通话实验,并且进行了抓包

抓包发现两个客户端之间的通话RTP数据流通过了服务器进行转发,这个是怎么回事呢?

按照sip协议的 Con……
to pomoq:

你说的 use_media_proxy() 是哪种sip服务器的配置项啊?

ser还是asterisk? 还是其它的sip服务器?
对我有用丢个板砖 引用 | 举报 | 管理 关注Iwill8088Iwill8088 等级:#14 得分:0回复于: 2010-06-23 17:04:58 应该是加了第三方的服务器mediaproxy或者rtpproxy,要使用rtp代理都要在ser配置文件中设置的,并且启用相应的module来配合mediaproxy或rtpproxy使用。所以use_media_proxy()应该是sip服务器里面某个module的函数。对我有用丢个板砖 引用 | 举报 | 管理 关注renxianzuorenxianzuo 等级:#15 得分:0回复于: 2010-07-15 21:47:27 向各位请教一下:

怎么样让sip客户端之间传递RTP语音流经过sip服务器 对我有用丢个板砖 引用 | 举报 | 管理 关注renxianzuorenxianzuo 等级:#16 得分:0回复于: 2010-07-15 21:48:43 通过什么工具抓取rtp包 对我有用丢个板砖 引用 | 举报 | 管理 关注mujianhua1982mujianhua1982 等级:#17 得分:0回复于: 2010-10-18 10:37:21 学习了!!!! 对我有用丢个板砖 引用 | 举报 | 管理 关注mhby1004mhby1004 等级:#18 得分:0回复于: 2011-05-22 10:56:15 为什么java下的软电话和linux下的软电话只能单向通信……求高手指点 对我有用丢个板砖 引用 | 举报 | 管理 关注AfxtrueloverAfxtruelover 等级:#19 得分:0回复于: 2011-08-29 15:57:51 引用 16 楼 renxianzuo 的回复:通过什么工具抓取rtp包wireshark 对我有用丢个板砖 引用 | 举报 | 管理 关注aa_qq110秦剑 等级:#20 得分:0回复于: 2012-03-08 20:25:21 好贴啊 对我有用丢个板砖 引用 | 举报 | 管理 返回列表

[*]管理菜单
[*]结帖
[*]发帖
[*]回复
[*]关注
【推荐】年薪60000以上工作机会
【下载】安卓开发电子书及视频
参加UPYUN开发者大赛赢顶配MBP
思科免费为您量身设计网络方案


[*]2014年4月微软MVP当选名单揭晓!

CSDN
CSDN社区问答精华QA
本帖子已过去太久远了,不再提供回复功能。
核心技术类目
全部主题Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase云计算 iOS6 Rackspace [关闭][关闭]
公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告|合作伙伴|论坛反馈网站客服杂志客服 微博客服 webmaster@iyunv.com 400-600-2320京 ICP 证 070598 号北京创新乐知信息技术有限公司 版权所有江苏乐知网络技术有限公司 提供商务支持Copyright © 1999-2014, CSDN.NET, All Rights Reserved 更多相关资源: 服务器voip
页: [1]
查看完整版本: sip服务器和sip客户端之间是否传递RTP语音流?