[SR-Users] alias problem

Stoyan Mihaylov stoyan.v.mihaylov at gmail.com
Mon Jan 30 16:27:14 CET 2012


Thanks for your response.
What I found is:
1. If call is from phone registered to IP (external or internal) - then I
do not need any of my modifications - ACK goes through loose_route,
or  t_check_trans() is OK and ACK is also OK.
2. If call is from phone registered to name (sip.mycompany.com) - then
t_check_trans is not OK, and I have problems.
I understand - it is dirty patch. May be best is if I could somehow replace
from domain name with IP.
At the end - I my dirty solution:

if ( is_method("ACK|BYE") ) {
if ( t_check_trans() ) {
t_relay();
exit;
} else {
route(ACKBYE);
t_relay();
# ACK without matching transaction ... ignore and discard
exit;
}
}
sl_send_reply("404","Uau Not here");

route[ACKBYE] {
#!ifdef WITH_MYFORWARD
xlog("ACKBYE called -$rm-$td-$si");

if(($sht(forw=>$ft))=~"MessageCPIM"){
# Direct messages between clients
return;
}
if(($td=="sip.mycompany.com")||($si=="MyIP")){
$du=$sht(forw=>$ft);
xlog("$du-$rm-$td");
return;
}
#!endif
return;
}





On Mon, Jan 30, 2012 at 11:12 AM, Anca Vamanu <anca.vamanu at 1and1.ro> wrote:

> **
> 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, 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 - I put:
> alias=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 at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120130/1206ae68/attachment-0001.htm>


More information about the sr-users mailing list