#### STUN module
loadmodule "stun.so"
modparam("stun", "primary_ip", "11.22.33.44") #opensips服务器的ip地址
modparam("stun", "primary_port", "5060") #必须与opensips的udp端口相同(一般是5060)
modparam("stun", "alternate_ip", "55.66.77.88") #另一网卡的ip地址
modparam("stun", "alternate_port", "3479") #另一端口号
配置好stun以后,可以使用stun-client来测试,以windows下为例,测试命令为:
stun-client-0-96.exe 11.22.33.44:5060 -v
安装配置RTPProxy模块
rtpproxy模块通常与nathelper模块一起使用。首先要确保服务器上已经安装了rtpproxy,启动rtpproxy:
rtpproxy -F
然后在opensips.cfg文件里做如下配置:
loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock") # CUSTOMIZE ME
安装配置MediaProxy模块
MediaProxy官方文档链接
一个在CentOS6上安装MediaProxy2.5.2的参考链接。
下载mediaproxy源码(和所需要的各种依赖包),并安装(过程略)。安装完成后:
把config.ini.sample复制到/etc/mediaproxy/config.ini,把tls目录也复制过来。
echo 1 > /proc/sys/net/ipv4/ip_forward
media-dispatcher restart
media-relay restart
在opensips.cfg里配置mediaproxy模块,如下:
#### MediaProxy module
loadmodule "mediaproxy.so"
modparam("mediaproxy", "disable", 0)
#modparam("mediaproxy", "mediaproxy_socket", "/var/run/mediaproxy/dispatcher.sock")
modparam("mediaproxy", "mediaproxy_timeout", 500)
modparam("mediaproxy", "signaling_ip_avp", "$avp(nat_ip)")
modparam("mediaproxy", "media_relay_avp", "$avp(media_relay)")
若mediaproxy提示“No suitable relay found”,可能是certification方面的问题。 参考链接
(未完)
抓取SIP包
在Opensips所在服务器上使用tcpdump可以抓取SIP包以便分析问题(注意要抓取的网卡是eth0或eth1):
tcpdump -nqt -s 0 -A -i eth0 port 5060 -w /home/capture_file_name.pcap
要抓手机上的包稍微复杂一些,要先root手机,然后把tcpdump复制到手机上使用:
adb shell
su
tcpdump -nqt -s 0 -w /sdcard/packets_xx.pcap
adb pull /sdcard/packets_xx.pcap
具体请参考这篇文章 Android 下使用tcpdump网络抓包方法 。