Hi Mihaylov,

If your Asterisk servers add a Record-Route header to the initial Invite, for in-dialog requests ( ACK, BYE) you should use *loose_route() *function to do the routing. This will make sure the requests go the same path as the initial Invite. It is not a good practice to manually route these requests.

Regards,
Anca


On 01/29/2012 11:10 PM, Stoyan Mihaylov wrote:
My whole configuration is:
[Sip clients] < = > Kamailio 3.2 <=> Asterisk servers (behind Kamailio)
Asterisk servers have only local IP addresses, and I use t_relay instead of forward.
Kamailio runs on same server as rtpproxy.
Everything is fine if clients connect to Kamailio with its IP address - global, or if they are behind Kamailio with local address. When clients connect to Kamailio using sip.ourcompany.com <http://sip.ourcompany.com>, then call (video also) is OK, but ACK and BYE do not work.
BYE receives not here (404), and ACK die somewhere.
I forward BYE and ACK in case when src_ip==$td to Asterisk server.

If one of clients use IP - then calls initiated from it are OK (BYE/ACK - are going correctly - to Asterisk and to other client also). But calls from other client have problems with BYE and ACK.

To use sip.ourcompany.com <http://sip.ourcompany.com> - I put:
alias=sip.ourcompany.com <http://sip.ourcompany.com>


route[ACKBYE] {
#!ifdef WITH_PSTN
if (is_method("BYE|ACK"))
{
xlog("L_ALERT","AB $rm $sht(forw=>$ft) $td");
if(src_ip==$td){
#I have to rewrite du - messages loop in Kamailio, I store in $sht(forw=>$ft) $du which I use during INVITE.
$du=$sht(forw=>$ft);
route(RELAY);
exit;
}
xlog("L_ALERT","ACK,Bye Not me");
}
#!endif
return;
}


_______________________________________________
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

Reply via email to