Я работаю над настройкой клиента HTML5 (sipml5 от дубанго: https://www.doubango.org/). Инфраструктура моей установки показана ниже:
До сих пор мне удавалось подключить клиента к веб-сокету, который, в свою очередь, подключается к 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. Оба выкидывали ошибки, когда я отлаживал начальную регистрацию FreeSWITCH между sipml5 -> webrtc2sip -> FreeSWITCH.
Я также должен упомянуть, что я разрешил доступ к микрофону для веб-сайта в хроме. Я также отмечу, что все это внутренние серверы, доступные только через нашу офисную локальную сеть.
ОБНОВЛЕНИЕ: я также должен упомянуть, что я успешно зарегистрирован на сервере freeSWITCH:
freeswitch@voip.example.local> 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:1000@10x.x.xx: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,
Надеюсь найти исправление или, по крайней мере, обходной путь. Любая помощь приветствуется.
После нескольких дней отладки и устранения неполадок я понял, что проблема связана с VPN / RDP, которые я делал удаленно для работы над этим проектом. Доступ к микрофону и камере через эти протоколы невозможен. Как только я начал работать на своей машине локально, звонки начали поступать на freeswitch.