我正在尝试在OpenSIPs服务器中使用RTP代理进行SIP呼叫。我按照此指南在OpenSIPs服务器中安装RTP代理模块。 http://voiprookie.blogspot.kr/2009/04/rtpproxy-12x-installation.html
我打开了35000-65000之间的UDP端口,并在SSH上使用以下命令检查它是否真的有效。
Tcpdump –n portrange 5060-65000
我使用CSipSimple Android应用程序来查找。我可以看到5060 SIP连接,但35000-65000端口之间没有连接。我甚至不知道RTP代理模块是否正在运行。
我如何知道SIP呼叫在RTP代理下工作?我是否必须在CSipSimple Android应用程序上设置一些内容才能通过RTP代理服务器进行调用?
谢谢。
答案 0 :(得分:2)
我如何知道SIP呼叫在RTP代理下工作?
在您通过B2BUA(openSIPS + RTPproxy)IP桥接媒体的典型设置中:SDP Connection Data
{{3两个客户端发送的所有请求都将使用RTPproxy所在的公共IP和由其提供的端口进行重写。要确保您可以转发到SIP服务器端口5060的传出SIP消息的文件,并在其SDP部分中查找RTP代理的公共IP。例如:
INVITE sip:userB@ipB;user=phone SIP/2.0
... SIP HEADER FIELDS AND VALUES ...
v=0
o=J2S 3 1 IN IP4 99.99.99.99
s=session
c=IN IP4 <PUBLIC IP RTP PROXY HERE>
t=0 0
m=audio <PORT> RTP/AVP 112 ...
a=rtpmap:112 iLBC/8000/1
... MORE CODECS AND PARAMETERS
如果您拥有客户端发送的原始IP(在从openSIPS发送到客户端的传出消息的SDP中),则必须检查设置中的某些错误。如果存在RTP代理公共IP并且您仍然没有音频,则应进一步查看连接问题(IPTables等)。
我是否必须在CSipSimple Android应用程序上设置一些内容 通过RTP代理服务器调用?
没有。如上所述,代理和端口协商完全取决于B2BUA。您可以查看RTP代理"C=" field的详细信息。