Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
配置星号13以支持WebSockets/WebRTC_Websocket_Webrtc_Asterisk - Fatal编程技术网

配置星号13以支持WebSockets/WebRTC

配置星号13以支持WebSockets/WebRTC,websocket,webrtc,asterisk,Websocket,Webrtc,Asterisk,我有一个带debian 9的虚拟机。我通过apt get安装了Asterisk 13.14.1,并将其配置为有三个用户,其中两个是sip用户(Zoiper应用程序),另一个是webrtc用户(使用自定义应用程序)。自定义应用程序非常基本,使用的代码可以在中找到。但是,不是使用: var socket = new JsSIP.WebSocketInterface('wss://mypbxipaddress'); 我用 SIP用户似乎工作正常。然而,我对webrtc用户有意见,我认为这是在服务器端

我有一个带debian 9的虚拟机。我通过apt get安装了Asterisk 13.14.1,并将其配置为有三个用户,其中两个是sip用户(Zoiper应用程序),另一个是webrtc用户(使用自定义应用程序)。自定义应用程序非常基本,使用的代码可以在中找到。但是,不是使用:

var socket = new JsSIP.WebSocketInterface('wss://mypbxipaddress');
我用

SIP用户似乎工作正常。然而,我对webrtc用户有意见,我认为这是在服务器端,特别是在websocket上。在连接过程中,我在客户端收到以下错误:

main.js:158470 WebSocket connection to 'ws://mypbxipaddress/' failed: Error during WebSocket handshake: Unexpected response code: 200
此外,我还尝试了wscat(npm包)

我收到:

error: Error: connect ECONNREFUSED mypbxipaddress:arandomport
我终于登记了

asterisk -rvvvvv

我得到:

HTTP Server Status:
Prefix:
Server: Asterisk/13.14.1~dfsg-2
Server Enabled and Bound to 0.0.0.0:8080

Enabled URI's:
/httpstatus => Asterisk HTTP General Status
/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/static/... => Asterisk HTTP Static Delivery
/ari/... => Asterisk RESTful API
/ws => Asterisk HTTP WebSocket

Enabled Redirects:
  None.
它用/ws=>asteriskHTTPWebSocket表示WebSocket处于活动状态

关于如何进一步调试它,有什么建议吗

谢谢 Symeon

1)了解更多关于websocket的信息,请执行tcpdump

2) 进行星号调试

asterisk -r
core set debug 10

答案和往常一样简单得多。我得换衣服

var socket = new JsSIP.WebSocketInterface('ws://mypbxipaddress:8088/ws');
经过一番研究,我得出的结论是:

asterisk -rvvvvv
http show status
在这里,它提到了“服务器已启用并绑定到mypbxipaddress:8088”,这是在/etc/asterisk/http.conf中定义的

bindaddr=mypbxipaddress
bindport=8088

您应该尝试:
wscat-s echo-cws://mypbxipaddress:8080/ws
因为:
服务器已启用并绑定到0.0.0.0:8080
/ws=>星号HTTP WebSocket

您还可以检查套接字是否处于侦听状态:

netstat -lna | grep 8080

核心集debug 10没有任何区别。我没有收到任何消息。但是,使用tcpdump时,我收到了以下消息,该消息可能表示:05:54:53.080539 IP deviceip.54978>PBXIP.5060:SIP:REGISTER SIP:172.26.41.2;transport=UDP SIP/2.0 05:54:53.080975 IP PBXIP.80>deviceip.35469:标志[P],序号1:3325,ack 576,win 236,选项[nop,nop,TS val 12025967 ecr 139793604],长度3324:HTTP:HTTP/1.1200 OK 05:54:53.081863 IP PBXIP.5060>deviceip.54978:SIP:2.0 401
asterisk -rvvvvv
http show status
bindaddr=mypbxipaddress
bindport=8088
netstat -lna | grep 8080