我已经为WebRTC呼叫配置了Kamailio。注册成功,但是当我尝试致电时,回复“ 478无法解析的目的地”。
通常,我可以说我的SIP代理响应,但是不能基于其URI与客户端联系-另外,我使用“ kamcmd ws.ping”成功ping客户端,但无法使用“ kamctl ping”成功ping客户端。我不确定,但是我认为问题出在注册内,在那儿nathelper应该使用fix_nated_register()函数进行,但是没有任何迹象表明这样做。我正在对websocket和TLS连接使用标准配置。
我尝试了JsSIP和sipML5-仅限本地网络连接。
modparam(“ nathelper | registrar”,“ received_avp”,“ $ avp(RECEIVED)”)
request_route { 路线(REQINIT);
if (nat_uac_test(64)) {
force_rport();
if (is_method("REGISTER")) ###<--here
fix_nated_register();
else {
if (!add_contact_alias()) {
xlog("L_ERR", "Error aliasing contact <$ct>\n");modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
sl_send_reply("400", "Bad Request");
exit;
}
}
}
...
"Contact": {
"Address": "sip:oq1n4lu1@38gn0ph6h558.invalid;transport=ws",
"Expires": 577,
"Q": -1,
"Call-ID": "uefjkjk5cdatcdgg333vo8",
"CSeq": 8,
"User-Agent": "JsSIP 3.2.15",
"Received": "[not set]",
"Path": "[not set]",
"State": "CS_NEW",
"Flags": 0,
"CFlags": 0,
"Socket": "tls:192.168.2.224:4443",
"Methods": 6943,
"Ruid": "uloc-5c66ecbf-974-1",
"Instance": "<urn:uuid:4dd03beb-8241-49fc-81f6-db0d895fde87>",
"Reg-Id": 1,
"Server-Id": 0,
"Tcpconn-Id": 2,
"Keepalive": 0,
"Last-Keepalive": 1550250947,
"Last-Modified": 1550250947
fix_nated_register()应该将实际的源IP地址和端口复制到用户位置中的Received标头,并在REGISTER对话框中的200 OK中的Contact标头中发送Received参数,但也不要。 任何建议如何解决此问题?