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) != "")
{
   get_profile_size("custgwtotal","$rd","$avp(custgwtotal_count)");
   if (!$avp(custgwtotal_count) < $avp(custgwtotal_limit))
   {
      sl_send_reply("486","Endpoint Session Limit");
      exit;
   }
}
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@64.136.174.30
 to_uri:: sip:16038869119@184.106.218.8
 caller_tag:: 1ae26ee84c61df6b84baef371d2bf5e4
caller_contact:: sip:184.106.219.203:5060;transport=udp
 callee_cseq:: 0
caller_route_set::
 caller_bind_addr:: udp:184.106.218.8:5060
 callee_tag:: as58f4e19a
callee_contact:: sip:16038869119@71.168.70.47
 caller_cseq:: 2
callee_route_set::
 callee_bind_addr:: udp:184.106.218.8:5060

Any help would be appreciated.

Thanks,
Ryan

Attachment: hung_call.pcap
Description: Binary data

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to