[asterisk-dev] SIP Not Showing Disconnect

John Todd jtodd at loligo.com
Mon Jul 23 15:19:33 CDT 2007


At 12:20 PM -0700 2007/7/22, Nicholas Blasgen wrote:
>
>I've been having some problems recently with Asterisk thinking a SIP 
>phone is still connected.  These are GrandStream Budge Tone 102's 
>and even after someone hangs up the AGI script I have running for 
>them is still looping.  The AGI script keeps playing "beep" untill 
>it's told to continue by the user.  But if the user has hung up the 
>phone, the script just keeps looping and looping, and that causes a 
>bunch of problems for me.  Is there any way to do something on the 
>line that would make Asterisk realize the phone isn't connected 
>anymore?  I would have thought something like playing a file would 
>fix it all.  Thought Asterisk would require a response from the SIP 
>phone saying it got the message, and when the SIP phone didn't reply 
>it would hang up the line.
>
>=======================
>
>     -- AGI Script Executing Application: (PLAYBACK) Options: (beep)
>     -- <SIP/josh-08be5690> Playing 'beep' (language 'en')
>     -- AGI Script Executing Application: (PLAYBACK) Options: (beep)
>     -- <SIP/josh-08c391b8> Playing 'beep' (language 'en')
>www*CLI> sip show peers
>Name/username              Host            Dyn Nat ACL Port     Status
>josh/josh                  <http://66.205.135.100> 66.205.135.100 
>D   N      1024     UNREACHABLE
>
>=======================
>
>As you can see I've even unplugged the SIP phone and Asterisk is 
>still keeping TWO (2) lines open to user "josh" even though Josh 
>isn't reachable anymore.  So even removing the phone from the 
>network doesn't make Asterisk realize the phone isn't there anymore. 
>Suggestions please!
>
>--
>/Nick

I'm uncertain if you've implemented the user-prompted method 
correctly, since you do not include enough data to discern what is 
happening with your system (and I would not suggest forwarding it to 
this list, as it does not sound like your core question is a 
development issue.)

There is an existing solution for this which does not require prompts 
if you don't mind the media travelling through your Asterisk system 
instead of directly between endpoints - look at the descriptions for 
"rtptimeout" in your sip.conf file.  That can be discussed at length 
in the Asterisk-Users mailing list if further explanation is required.

The second solution is to put a maximum call duration on calls so 
that Asterisk hangs up the calls regardless of what the state of the 
endpoint is - see the description of the function TIMEOUT(absolute). 
That can be discussed at length in the Asterisk-Users mailing list if 
further explanation is required.

The last method (that I can think of, at least) would require 
Session-Timers, which currently do not exist in Asterisk.  That has 
been discussed on this list (asterisk-dev) within the past six days:

http://lists.digium.com/pipermail/asterisk-dev/2007-July/028574.html

If you are interested in creating a patch to support these features, 
it would be greatly appreciated.  However, if your methods or 
questions regard any of the first three methods (prompts, RTPtimeout, 
or absolute timeout) then I would suggest that asterisk-users is a 
more appropriate forum for discussion.

JT
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20070723/51833b7e/attachment.htm 


More information about the asterisk-dev mailing list