使用WebRTC在AWS上使用Asterisks server-13进行SIPML5插件集成的问题

时间:2017-03-20 05:53:54

标签: plugins configuration webrtc asterisk sipml

我遇到了在Asterisks服务器上集成SIPML5插件演示的问题。 Asterisks服务器版本是“Asterisk 13.14.0”。新版本的星号服务器支持SRTP模块。 插件演示文件来自Doubango的github存储库。演示集成文件放在AWS服务器帐户的根文件夹中。

Ref: https://github.com/DoubangoTelecom/sipml5/

Asterisks服务器的不同配置文件的内容如下:

的http.conf

[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlsprivatekey=/etc/asterisk/keys/asterisk.pem

rtp.conf

[general]
rtpstart=10000
rtpend=20000
icesupport=yes
stunaddr=stun.l.google.com:19302

的extensions.conf

[default]
exten => 100,1,Dial(SIP/1060)
exten => 101,1,Dial(SIP/1061)
exten => 102,1,Playback(1-for-am-2-for-pm)
exten => 205,1,Answer
exten => 205,2,Wait(2)
exten => 205,3,Record(asterisk-recording%d:ulaw)
exten => 205,4,Wait(2)
exten => 205,5,Playback(${RECORDED_FILE})
exten => 205,6,Wait(2)
exten => 205,7,Hangup

[from-internal]
exten => 1000,1,Answer()
same => n,Playback(demo-congrats)
same => n,Hangup()

sip.conf

[general]
udpbindaddr=0.0.0.0:5060
realm=x.x.x.x ;replace with your Asterisk server public IP address or host
transport=udp,ws,wss
externaddr=x.x.x.x ;replace with your Server's Public IP Address
websocket_enabled=true

[6001]
host=dynamic
secret=****
context=from-internal
type=friend
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
directmedia=no
disallow=all
allow=ulaw
dtlsenable=yes
dtlsverify=fingerprint
dtlscertfile=/etc/asterisk/keys/asterisk.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass

为演示的expert.htm页面设置的字段值如下: -

WebSocket Server URL : wss://X.X.X.X:8088/ws
SIP outbound Proxy URL: udp://X.X.X.X:5060
ICE servers: [{ url: ‘stun:stun.l.google.com:19302’}]

为演示的call.htm页面设置的字段值如下: -

Display name: Rusty WEBRTC
Private identity: 6001
Public identity: sip:6001@X.X.X.X
Password; ****
Realm: X.X.X.X

其中X.X.X.X是我的Asterisks服务器IP。

单击call.htm页面上的“登录”按钮时,会显示错误消息,如

Disconnected: Failed to connect to the server

linphone插件现已安装在项目中。由于Chrome / Mozilla浏览器取消了对NPAPI的支持,因此该功能的VoIP功能已完全过时。现在我想用支持WebRTC协议的SipML5插件替换该功能。我需要检查SIPML5插件的注册,登录,音频通话功能。但是,一旦我连接到服务器,所有这些功能都可以实现。

Asterisks CLI未显示任何错误消息。 Chrome和Mozilla浏览器的控制台历史记录不会显示任何易受攻击的错误消息。所以我完全坚持这个项目。

演示文件在Asterisks 11.8.1服务器上运行良好。但是SRTP模块未安装在服务器上,因此音频功能无法正常工作。我们的支持团队现在安装了库,并重新安装了版本为13的星号服务器。防火墙对AWS服务器开放,端口现在已打开。

任何人都可以帮我解决问题,以便我可以进一步将插件集成到我的项目中。如果需要任何其他详细信息,请告诉我

2 个答案:

答案 0 :(得分:1)

SipML5客户端将尝试通过Secure WebSocket URL(WSS)连接服务器。 所以你需要在WSS网址中使用端口8089(tls)。

如果您在http.conf中使用自签名SSL证书,请在浏览器标签中打开https://X.X.X.X:8089/ws网址以允许这些证书。

答案 1 :(得分:0)

可能的调试步骤: 1.检查星号是否实际上正在侦听8089.您可以使用netstat。 2.如果您以https模式加载客户端/浏览器,则需要在星号上信任您的客户端。这可以通过以下方式完成:http://X.X.X.X:8089/httpstatus并选择信任。