Hello,
On 24.09.2009 22:36 Uhr, Geoffrey Mina wrote:
Hello,
I am wondering if anyone can help me determine what the problem is
with some SIP signaling. I have two environments and in both
scenarios my configuration and topology are almost identical...
although I am dealing with two different carriers upstream.
In my environments, I have Kamailio (1.5) sitting in front of a
multitude of Asterisk machines. I am using the dispatcher module to
distribute INVITE requests across the network. I am doing some
interop with a new carrier and we are struggling a bit with some
looping scenarios. They are sending invites to my Kamailio server, I
am forwarding to asterisk.
On the one that is not working, I am seeing the following in sip_trace
INVITE (from carrier)
INVITE (to asterisk)
100 TRYING (from asterisk)
200 OK (from asterisk)
200 OK (to carrier)
ACK (from carrier) - this is where the loop starts. Kamailio sends
the ACK to itself until the "max-hops" is reached... then it dies
ACK (from itself to itself)
ACK (from itself to itself)
ACK (from itself to itself)
...
200 OK (from asterisk - because it never got ACK)
200 OK (to carrier)
ACK (from carrier) - again the loop.
ACK (from itself to itself)
The only thing I can see that is different between the two carriers
(working and non-working) is that the working carrier appears to send
the ACK with an RURI equivalent to the Contact: header from the 200
OK.
this is the correct behavior for loose routing.
it looks like the one of the devices (very likely the carrier) is doing
bad record routing handling. There might be a strict router combined
with a loose router.
I could really follow the sip messages in the excel you sent, maybe you
can paste text here in email the invite, the 200ok and ACK captured on
kamailio server. Then is easier to troubleshoot.
Cheers,
Daniel
--
Daniel-Constantin Mierla
* Kamailio SIP Masterclass, Nov 9-13, 2009, Berlin
*
http://www.asipto.com/index.php/sip-router-masterclass/