[Serusers] rewrite & ACK forwarding problem

Alexander Mayrhofer axelm at nic.at
Fri Jun 27 18:15:26 CEST 2003


we're running SER together with a PSTN Gateway. Before a call get's
forwarded to the gateway, we are rewriting the request URI to make
rewriting on the GW as simple as possible:

route {
   strip(3);  		# +43xxx -> xxx
   prefix("0");		# xxx -> 0xxx
   rewritehostport(xxx.xxx.xxx.xxx, 5060); # request to gateway

SIP call flow looks like (record route enabled):

(1) phone -> SER
INVITE sip:*43699xxxxxxxx at nic.at43.at SIP/2.0

(2) SER -> phone 
SIP/2.0 100 trying -- your call is important to us

(3) SER -> GW
INVITE sip:0699xxxxxxxx at xx.xx.xx.xx:5060 SIP/2.0

(4) GW -> SER
SIP/2.0 100 Trying

(5) GW -> SER
SIP/2.0 183 Session Progress

(6) SER -> phone 
SIP/2.0 183 Session Progress

(7) GW -> SER
SIP/2.0 180 Ringing

(8) SER -> phone
SIP/2.0 180 Ringing

(9) GW -> SER
SIP/2.0 200 OK
Contact: <sip:0699xxxxxxxx at xx.xx.xx.xx:5060>

(10) SER -> phone
SIP/2.0 200 OK
Contact: <sip:0699xxxxxxx at xx.xx.xx.xx:5060>

[ call established, we can talk, but ... ]

(11) phone -> SER
ACK sip:0699xxxxxxxx at xx.xx.xx.xx:5060 SIP/2.0

--> Here starts the problem. That ACK (11) never gets forwarded to the
Gateway, so after a few seconds, the GW starts over at (9). Those three
packets (9-11) repeat a few times until GW runs into a timeout and drops
the call.

I have the impression that SER can't match the packet to the previous
requests because of the rewritten URI. Is that correct?

The only output at debug level 3 is:

Warning: sl_send_reply: I won't send a reply for ACK!!

Is that a routing goof somewhere in our scripts or is that a more
generic problem? Is the problem that the warning indicates somehow
related to the fact that the ACK is not being forwarded? 

Help appreciated.



More information about the sr-users mailing list