![调用 freeswitch 时 simpl5 出错(onGetUserMediaError)](https://linux22.com/image/732993/%E8%B0%83%E7%94%A8%20freeswitch%20%E6%97%B6%20simpl5%20%E5%87%BA%E9%94%99%EF%BC%88onGetUserMediaError%EF%BC%89.png)
我一直在致力于设置 HTML5 客户端(sipml5 by doubango:https://www.doubango.org/)。我的设置的基础结构如下所示:
- 服务器 1:sipml5 客户端,通过 ngnix 和 https 提供服务。
- 服务器2:使用 doubango 设置 webrtc2sip,通过安全的 tcp WebSocket 提供服务,wss:\voip.example.com:10062
- 服务器 3:运行带有证书的 FreeSWITCH 设置,注意:我能够通过本地 sip 客户端连接到我的 FreeSWITCH 并拨打电话。
到目前为止,我已经成功让客户端连接到 Web 套接字,进而连接到 FreeSWITCH。当我尝试拨打 FreeSWITCH 上的另一个分机时,问题出现了。
突然失败,网页上显示以下错误消息:
Media stream permission denied
浏览器控制台中出现以下错误日志:
State machine: c0000_Started_2_Outgoing_X_oINVITE
tsk_utils.js?svn=252:116 ICE servers:[{"url":"stun:stun.l.google.com:19302"},{"url":"stun:stun.counterpath.net:3478"},{"url":"stun:numb.viagenie.ca:3478"}]
tsk_utils.js?svn=252:116 ==stack event = m_permission_requested
tsk_utils.js?svn=252:116 ==session event = connecting
tsk_utils.js?svn=252:116 onGetUserMediaError
tsk_utils.js?svn=252:128 DOMException
tsk_utils_log_error @ tsk_utils.js?svn=252:128
tmedia_session_jsep01.onGetUserMediaError @ tmedia_session_jsep.js?svn=252:486
(anonymous) @ tmedia_session_jsep.js?svn=252:690
tsk_utils.js?svn=252:116 State machine: c0000_Outgoing_2_Cancelling_X_oCANCEL
tsk_utils.js?svn=252:116 PeerConnection::stop()
tsk_utils.js?svn=252:122 There is no INVITE request to cancel
tsk_utils_log_warn @ tsk_utils.js?svn=252:122
tsip_dialog_invite.send_cancel @ tsip_dialog_invite.js?svn=252:692
c0000_Outgoing_2_Cancelling_X_oCANCEL @ tsip_dialog_invite__client.js?svn=252:173
tsk_fsm.act @ tsk_fsm.js?svn=252:91
tsip_dialog.fsm_act @ tsip_dialog.js?svn=252:750
tsip_dialog.hangup @ tsip_dialog.js?svn=252:758
__tsip_dialog_invite_media_callback @ tsip_dialog_invite.js?svn=252:894
tmedia_session_mgr.callback @ tmedia_session.js?svn=252:109
tmedia_session_jsep01.onGetUserMediaError @ tmedia_session_jsep.js?svn=252:487
(anonymous) @ tmedia_session_jsep.js?svn=252:690
tsk_utils.js?svn=252:116 ==stack event = m_permission_refused
tsk_utils.js?svn=252:116 ==session event = terminating
我没有从 FreeSWITCH 服务器或 webrtc2sip 服务器收到任何错误日志。当我调试 sipml5 -> webrtc2sip -> FreeSWITCH 之间的初始 FreeSWITCH 注册时,两者都抛出了错误。
我还应该提到,我已经在 Chrome 中为网站启用了麦克风访问权限。我还要提到,这些都是只能通过我们办公室的 LAN 访问的内部服务器。
更新:我还应该提到我已成功注册到 freeSWITCH 服务器:
[email protected]> show registrations
reg_user,realm,token,url,expires,network_ip,network_port,network_proto,hostname,metadata
1000,voip.example.local,614eb848-c522-1514-2fb6-1d4fa5ad4f1e,sofia/internal/sip:[email protected]:10060;rtcweb-breaker=yes;transport=udp;ws-src-ip=10x.x.xx;ws-src-port=2049;ws-src-proto=wss,1548964623,10x.x.xx,10060,udp,voip.example.local,
希望找到解决办法,或者至少暂时找到解决办法。如能得到任何帮助,我们将不胜感激。
答案1
经过几天的调试和故障排除,我意识到问题与我远程进行的 VPN/RDP 有关。通过这些协议无法访问麦克风和摄像头。一旦我开始在本地通过自己的机器工作,通话就开始通过 freeswitch。