我在 CentOS 6 机器上安装了 Asterisk 11,并尝试使用 jsSIP 运行一个简单的 js 脚本,以便在 LAN 内拨打语音电话。然而,Asterisk 似乎没有传送 RTP 数据包,因为它们没有出现在 CLI 调试中,所以我的通话突然结束。回到 jsSIP 脚本,收到的音频流为空。
我按照这个教程进行了配置:http://forums.digium.com/viewtopic.php?f=1&t=90167。我安装了 libsrtp,因此当我为 Asterisk 进行菜单选择时,res_srtp 选项被启用。
这可能是什么原因造成的?或者这里有人有安装 Asterisk + WebRTC 的完美教程吗?无论是 Linux 发行版还是 Asterisk 版本......
这里我留下了我的配置文件和 SIP 调试:http://pastebin.com/Kd3LPZJp
提前致谢 ....
答案1
这通常意味着您已正确设置 websocket,但 RTP/webrtc 配置不正确(DTLS、SRTP 处理)。
确保您的 webrtc 扩展如下所示:
[9999]
secret=9999
context=internal
host=dynamic
trustrpid=yes
sendrpid=no
type=peer
qualify=yes
qualifyfreq=600
transport=ws,wss
encryption=yes
avpf=yes
icesupport=yes
directmedia=no
dtlsenable=yes
disallow=all
allow=ulaw
nat=yes
dtlsenable=yes
dtlscertfile=/etc/asterisk/certificate/cert.pem
dtlsprivatekey=/etc/asterisk/certificate/key.pem
dtlscafile=/etc/asterisk/certificate/key/pem
dtlssetup=actpass
rtp.conf 应该如下所示:
[general]
rtpstart=10000
rtpend=20000
icesupport=yes
;rtpchecksums=no
;strictrtp=no
stunaddr=stun.l.google.com:19302
您可以在这里找到有关Asterisk 的 WebRTC 配置。
我建议使用最新的 Asterisk (v.13),因为最近对 WebRTC 做了很多改进。