我正试图通过kamailio将来自工具TRITJsSIP的http请求发送到星号,但是,kamailio在tcp_read_req上返回错误(状态7;错误请求,没有给出其他错误)。有没有设置我需要允许http数据包通过kamailio。注意:当我使用MicroSIP或LinPhone这样的工具时,它确实有效。
谢谢
WebRTC应用程序执行的浏览器(至少是现代浏览器)需要以安全的方式与服务器连接,以便共享音频和视频设备。在web中,您可以使用WSS。Asterisk和Kamailio支持WSS(WebSockets Secure)作为SIP的传输。
在Asterisk中配置chan_pjsip以使用WSS作为传输是可能的(我已经做到了)(chan_sip也可以这样配置,但我还没有使用chan_sip进行WSS的经验)。Kamailio具有WebSocket模块,该模块还允许它管理WSS SIP连接。我使用了JsSIP(SIP.js)的分支,但它完全有争议,您可能有自己的选择标准。
因此,您可以连接
Web应用程序WebRTC->WSS->Asterisk
或
Web应用程序WebRTC->WSS->Kamailio->UDP->Asterisk
或者,当然,任何你觉得舒服的架构。唯一需要考虑的是,浏览器和SIP代理之间的连接必须以安全的方式进行(您也可以使用DTLS-SRTP,因为Asterisk和Kamailio都支持它,而且两者都由WebRTC本地支持,但我自己还没有测试过)。