I just identified that if "IP_KAMAILIO/ASTERISK" is set into domain table, the issue occured. If I delete this entry, the ACK is properly relayed.
The thing is that I use domain table for this check in REQ_INIT: if (!has_totag()) { if (!is_uri_host_local()) { if (is_from_local() || allow_trusted()) { xlog("L_WARN","time=[$Tf] call id=[$ci] call seq=[$cs] contact header=[$ct] from uri=[$fu] from tag=[$ft] request's method=[$rm] request's uri=[$ru] to uri=[$tu] to tag=[$tt] sip message id=[$mi] process id=[$pp] ip source=[$si] flags=[$mf], From the trusted source\n"); return; } else{ xlog("L_WARN","time=[$Tf] call id=[$ci] call seq=[$cs] contact header=[$ct] from uri=[$fu] from tag=[$ft] request's method=[$rm] request's uri=[$ru] to uri=[$tu] to tag=[$tt] sip message id=[$mi] process id=[$pp] ip source=[$si] flags=[$mf], Relay Forbidden\n"); sl_send_reply("403", "Relay Forbidden"); }; exit; }; };
Regards,
Igor.
-----Message d'origine----- De : Igor Potjevlesch [mailto:igor.potjevlesch@gmail.com] Envoyé : jeudi 25 septembre 2014 14:45 À : 'Kamailio (SER) - Users Mailing List' Objet : RE: [SR-Users] Relaying ACK to Asterisk
Hello Klaus,
Thank you for the translation ;) Here is the config:
/* add local domain aliases */ alias=sip.domain.tld
/* uncomment and configure the following line if you want Kamailio to bind on a specific interface/port/proto (default bind on all available) */ listen=udp:IP_KAMAILIO/ASTERISK:5060 listen=udp:IP_KAMAILIO_LAN:5060
The 'domain' table is populated as follow: id | domain 1 <IP_KAMAILIO/ASTERISK> 2 sip.domain.tld 3 <hostname_server> 4 sip.domain.tld
Regards,
Igor.
-----Message d'origine----- De : sr-users-bounces@lists.sip-router.org [mailto:sr-users-bounces@lists.sip-router.org] De la part de Klaus Darilion Envoyé : jeudi 25 septembre 2014 13:16 À : Kamailio (SER) - Users Mailing List Objet : Re: [SR-Users] Relaying ACK to Asterisk
Something is going wrong here:
On 24.09.2014 18:41, Igor Potjevlesch wrote:
DEBUG: rr [loose.c:90]: is_preloaded(): is_preloaded: No
That's correct. The ACK is not pre-loaded (with a route set).
Checking first local URI (either alias= or listen= statement)
DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 14==14 && [<IP_KAMAILIO_ASTERISK>] == [<IP_KAMAILIO_ASTERISK>] DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5060 (advertise 0) matches port 4060
Checking seconf local URI (either alias= or listen= statement)
DEBUG: <core> [socket_info.c:583]: grep_sock_info(): grep_sock_info - checking if host==us: 14==12 && [<IP_KAMAILIO_ASTERISK>] == [192.168.0.19] DEBUG: <core> [socket_info.c:587]: grep_sock_info(): grep_sock_info - checking if port 5060 (advertise 0) matches port 4060 DEBUG: <core> [forward.c:448]: check_self(): check_self: host != me
Correctly detects that the RURI does not address Kamailio, but
DEBUG: rr [loose.c:674]: after_strict(): Next hop: 'sip:<IP_KAMAILIO_ASTERISK>;lr=on' is loose router
This means, that check_self returned 1 (match) although it didn't matched. This means that the _check_self_func_list (forward.c) is populated and matches the RURI.
Thus, the RURI does not match one of the "standard" aliases (the ones learned by the listen=... statements) but some other module registered a callback which returns MATCH, and thus Kamailio thinks the previous hop is a strict router:
DEBUG: rr [loose.c:724]: after_strict(): The last route URI: 'sip:<IP_KAMAILIO_ASTERISK>;lr=on'
please post your complete alias=.... and listen=... config.
Further, I suspect that you register additional aliases via "domain" or "corex" module and these additional aliases match the RURI. So review your domain and corex configuration.
regards Klaus
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users