Hi,
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
route(1);
break;
...
SIP call flow looks like (record route enabled):
(1) phone -> SER
INVITE sip:*43699xxxxxxxx@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@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@xx.xx.xx.xx:5060>
(10) SER -> phone
SIP/2.0 200 OK
Contact: <sip:0699xxxxxxx@xx.xx.xx.xx:5060>
[ call established, we can talk, but ... ]
(11) phone -> SER
ACK sip:0699xxxxxxxx@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.
cheers
axelm