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,
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.
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;
}