Jeremy, I don't know if you got this answered already or not - I'm not seeing the subject popping back up...
My PBX Gateway was doing the same kind of thing: calls were timing out after about 1 minute (45 seconds once, and 60 seconds another time). It turns out that the loose-route processing wasn't working right. If I put the: if (loose_route()) { if (!t_relay()) { sl_reply_error(); }; break; };
Line after the registration and "if (uri==myself){stuff}; blocks, then I'd time out. If the Loose_route() processing was up earlier, near the top of the ser.cfg (like in the demo), then my PBX Gateway wouldn't time the calls out.
Rob
0 ASCII Ribbon campaign - against HTML Email ^ - against auto-execute attachments
-----Original Message----- From: serusers-bounces@lists.iptel.org [mailto:serusers-bounces@lists.iptel.org] On Behalf Of Jeremy M. Dolan Sent: Thursday, October 07, 2004 11:54 AM To: serusers@lists.iptel.org Subject: [Serusers] Who is violating SIP protocol here, SER or voice-ISP?
I will attach a full SIP conversation to this e-mail, but here is the summary of what seems to be happening.
I place a call from my phone here, behind NAT. This contacts a SER server with nathelper/rtpproxy out on the 'net, which then forwards the requests to Masergy (www.masergy.com), who provide us with LD VoIP service. Everything proceeds fine until the "OK" reply from Masergy signalling the call has been answered. Here's the transaction there:
Masergy port 29436 -> SER port 5060 "OK" SER port 5060 -> My Phone port 5060 "OK" My Phone port 5060 -> SER port 5060 "ACK" SER port 5060 -> Masergy port 29436 "ACK"
Masergy never receives that last packet.
However, my phone receives all of the information it needs to establish the RTP connection. It does so, and the call appears to be working fine. Meanwhile, Masergy's SIP server continues to resend "SIP/2.0 200 OK" messages (still from port 29436) every few seconds, waiting for a reply. After ~35 seconds of not hearing back, it assumes the worst and sends a "BYE", tearing down a call that was going swell, as far as the two humans involved were concerned.
I've spoken with the relevant tech at Masergy, and their determination is that our SIP proxy should be sending all SIP traffic to port 5060, regardless of what they may be transmitting from.
I just built the very latest CVS version of SER (0.8.99-dev8), and am seeing the same behavior. Is this a protocol violation on either side? (Transmitting to a non-5060 port, or not listening for a reply on a port that was just transmitted from). Is there a way to force SER to always use 5060? (Which itself probably breaks protocol for some cases, which we aren't currently dealing with).
Thank you for any info.
Jeremy
-- Jeremy M. Dolan mailto:jmd@pobox.com http://jmd.us/ PGP: 1024D/3C68A1BA 9470 210C A476 FFBB 6D11 0223 0D1C ABFC 3C68 A1BA