我已经为SIP over websockets建立了一个Kamailio v4.0 SIP注册商和代理服务器,除了发送出站邮件或对外地域的SIP地址进行出站呼叫外,一切正常。我可以接收来自非本地SIP地址的消息和电话,但不会发送任何消息。
我试图了解各种模块的文档,例如domain
和outbound
,我仍然感到难过。我的配置文件与this one基本相同。
这感觉不像配置,更像是学习新的编程语言。关于如何进行的任何想法?
编辑:在日志文件中发现以下内容:
INFO: rr [../outbound/api.h:49]: Failed to import bind_ob
INFO: rr [rr_mod.c:159]: outbound module not available
使用STUN=1
重新编译并在config中加载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
答案 0 :(得分:1)
日志表明找不到与WebSocket客户端的连接。 Kamailio无法打开与WebSocket(webrtc)软电话的连接,如果不存在,则无法传递SIP消息。
您可以使用kamcmd工具列出活动的TCP连接:
kamcmd core.tcp_list
如果您使用WebSockets over TLS:
kamcmd tls.list
在这种情况下应该使用配置函数 - set_forward_no_connect() - 以避免在处理过程中走得太远。