Настройка регистратора / прокси-сервера Kamailio/OpenSER для исходящего SIP?
Я установил Kamailio v4.0 SIP-регистратор и прокси-сервер для SIP через веб-сокеты, и все работает нормально, за исключением отправки исходящих сообщений или исходящих звонков на SIP-адрес в чужом домене. Я могу получать сообщения и звонки с нелокальных SIP-адресов, но не отправлять их.
Я пытался понять документацию различных модулей, таких как domain
а также outbound
и я все еще в тупике. Мой файл конфигурации по сути идентичен этому.
Это меньше похоже на настройку и больше похоже на изучение нового языка программирования. Есть идеи, как поступить?
редактировать: заметил следующее в файле журнала:
INFO: rr [../outbound/api.h:49]: Failed to import bind_ob
INFO: rr [rr_mod.c:159]: outbound module not available
Перекомпилировано с STUN=1
и загружен outbound.so
в конфиге (это лай не на то дерево?). Теперь журнал говорит:
INFO: rr [rr_mod.c:156]: Bound rr module to outbound module
[...]
WARNING: <core> [msg_translator.c:2499]: TCP/TLS connection (id: 0) for WebSocket could not be found
ERROR: <core> [msg_translator.c:1725]: could not create Via header
ERROR: tm [t_fwd.c:435]: could not build request
1 ответ
Журналы предполагают, что не может быть найдено соединение с клиентом WebSocket. Kamailio не может открыть соединение с программным телефоном WebSocket (webrtc), если он не существует, сообщение SIP не может быть доставлено.
Вы можете просмотреть список активных TCP-соединений, используя инструмент kamcmd:
kamcmd core.tcp_list
Если вы используете WebSockets поверх TLS:
kamcmd tls.list
Существует функция конфигурации, которая должна использоваться в этом случае - set_forward_no_connect () - чтобы избежать столь длительного процесса обработки.