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