[OpenSIPS-Users] Hung dialogs
vladpaiu at opensips.org
Fri Nov 11 16:50:24 CET 2011
Sorry Ryan, I might have went too fast through the PCAP and did not
initially spot your actual problem.
It seems that your problem is caused by the INVITE retransmission. When
you reject the first INVITE you do it stateless-ly so the message does
not ever reach TM level. When the retransmission comes, it is not
absorbed by TM, so it is actually your retransmission that gets
delivered to the other side.
Please try to add a call to t_newtran() when starting to process the
INVITEs to make sure that the TM is aware of them and can absorb
retransmissions. This should fix your issue.
On 11/11/2011 04:28 PM, Ryan Revels wrote:
> I'm a little confused by your response. I attached a pcap that shows
> the ACK being received. I'm trying to understand why OpenSIPS would
> continue to process the call after it replies with a 486 and exits the
> I would really appreciate any help.
> On Fri, Nov 4, 2011 at 5:37 AM, Vlad Paiu <vladpaiu at opensips.org
> <mailto:vladpaiu at opensips.org>> wrote:
> From the output of dlg_list, I can see that the ACK was never
> received by OpenSIPS, so seems this is the source of your problem.
> You could try to set the dialog timeout to a lower value after the
> 200 OK is received ( couple of seconds ), and increase it after
> the ACK is received to a couple of hours.
> Vlad Paiu
> OpenSIPS Developer
> On 11/03/2011 10:36 PM, Ryan Revels wrote:
>> I've run into an issue where /very/ rarely, dialogs will "hang",
>> that is, the dialog will continue to exist even though the call
>> never connected. In the example I managed to track down, the
>> proxy should reject the call (because a limit of concurrent calls
>> has been reached) and at first, it seems like it's going to...
>> but then it sends a 100 Trying and continues to route the call to
>> the destination. From there, everything spirals and the dialog
>> doesn't die until it hits the global timeout.
>> The relevant portion of my script looks like:
>> # Check gateway calls total
>> if ($avp(custgwtotal_limit) != "0" && $avp(custgwtotal_limit) !=
>> NULL && $avp(custgwtotal_limit) != "")
>> if (!$avp(custgwtotal_count) < $avp(custgwtotal_limit))
>> sl_send_reply("486","Endpoint Session Limit");
>> set_dlg_profile("custgwtotal","$rd"); #count total calls to
>> customer's IP
>> I've attached a pcap example of what the signaling looks like
>> when the dialog hangs. For this example, the output in dlg_list
>> looks like:
>> dialog:: hash=629:349156783
>> state:: 3
>> user_flags:: 0
>> timestart:: 1320336333
>> timeout:: 1320357957
>> callid:: did2.139.1120741
>> from_uri:: sip:16034299966 at 184.108.40.206
>> <mailto:sip%3A16034299966 at 220.127.116.11>
>> to_uri:: sip:16038869119 at 18.104.22.168
>> <mailto:sip%3A16038869119 at 22.214.171.124>
>> caller_tag:: 1ae26ee84c61df6b84baef371d2bf5e4
>> caller_contact:: sip:126.96.36.199:5060;transport=udp
>> callee_cseq:: 0
>> caller_bind_addr:: udp:188.8.131.52:5060 <http://184.108.40.206:5060>
>> callee_tag:: as58f4e19a
>> callee_contact:: sip:16038869119 at 220.127.116.11
>> <mailto:sip%3A16038869119 at 18.104.22.168>
>> caller_cseq:: 2
>> callee_bind_addr:: udp:22.214.171.124:5060 <http://126.96.36.199:5060>
>> Any help would be appreciated.
>> Users mailing list
>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> Users mailing list
> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
> Users mailing list
> Users at lists.opensips.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Users