Hi Wade, If you scroll down a bit, you'll see my incoming context from extensions.conf. It has exactly that: a 15 second timeout. I guess I could just shorten this to, say, 10 seconds or something, but when you only have two lines, tying one up for any longer than necessary is undesireable.
Basically, I want to beat the loop start hangup detection problem with a bit of logic. When someone has finished leaving voicemail, say, and they haven't pressed #, then I'm 99% certain they've hung up. That sort of thing. That's what I've done with my little code modification. On Wednesday 17 September 2003 09:58, Wade J. Weppler wrote: > You can still use timeouts. The responsetimeout would only be active in > the main menu. If they don't respond within the timeout, then hangup on > them. > > The alternative is to loop the menu a set number of times before hanging > up. This would require some logic. > > -wade > > > -----Original Message----- > > From: Christian Hecimovic [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, September 17, 2003 12:41 PM > > To: [EMAIL PROTECTED] > > Subject: Re: [Asterisk-Users] Hangups after voicemail > > > > Yes, I had to set it high, otherwise it didn't work right...I'll > > fiddle > > > with > > it a bit. > > > > Timeouts aren't really an option, because if the caller presses # > > after > > > leaving a voicemail then they should be popped back into the main > > menu. If > > > I > > could check DTMF signals from extensions.conf, then this would indeed > > work. > > Basically, the logic after Voicemail2 exits should be > > > > if (last key was not # and the channel is still alive) > > hangup > > else > > goto the main menu > > > > The only way I could do this was by modifying voicemail2.c. So, back > > to my > > > main question: are there any problems with this? I'm most concerned > > about > > > memory issues. Should I be freeing something first, making another > > cleanup > > > function call, etc.? > > > > On Wednesday 17 September 2003 09:08, Wade J. Weppler wrote: > > > Silencethreshold of 256 sounds a bit high... > > > > > > You can also add a timeout extension to just hangup the line: > > > > > > exten => t,1,Hangup > > > > > > Without using Kewlstart, there isn't anyway for Asterisk to know > > that > > > > the line has been disconnected, so you'll have to use the timeouts. > > > > > > -wade > > > > > > > -----Original Message----- > > > > From: Christian Hecimovic [mailto:[EMAIL PROTECTED] > > > > Sent: Wednesday, September 17, 2003 11:59 AM > > > > To: [EMAIL PROTECTED] > > > > Subject: Re: [Asterisk-Users] Hangups after voicemail > > > > > > > > Hi Martin, > > > > > > > > Yes, silence detection in voicemail is working. I am using > > Voicemail2 > > > > with > > > > > > > the > > > > silencethreshold set to 256. However, the line doesn't hang up > > after > > > > the > > > > > > > silence is detected; instead, Voicemail2 exits after recording the > > > > voicemail > > > > correctly, and Asterisk loops back into the main menu as if the # > > key > > > > was > > > > > > > pressed because the channel is still alive. Then it times out > > after 15 > > > > > seconds, as you can see below. > > > > > > > > From extensions.conf: > > > > > > > > [incoming] > > > > exten => s,1,Answer > > > > exten => s,2,DigitTimeout,5 > > > > exten => s,3,ResponseTimeout,10 > > > > exten => s,4,BackGround(corp_greeting) > > > > include => locals > > > > include => errors > > > > > > > > The locals context consists of macros which look like this: > > > > > > > > exten => s,1,Playback(transfer,skip) > > > > exten => s,2,Dial(${ARG2},20) > > > > exten => s,3,Voicemail2(u${ARG1}) > > > > exten => s,4,Goto(incoming,s,1) > > > > exten => s,103,Voicemail2(b${ARG1}) > > > > exten => s,104,Goto(incoming,s,1) > > > > > > > > So after a voicemail is left, there is a Goto back into the > > incoming > > > > > context. > > > > It all works great, except for when the line gets tied up by the > > > > DigitTimeout > > > > and ResponseTimeout bits when hangups aren't detected. > > > > > > > > I've tried using BUSYDETECT_MARTIN with busydetect=yes and it > > didn't > > > > work. > > > > > > > The > > > > channel stays up after the outside caller hangs up. > > > > > > > > Since all of our inside phones are SIP lines, there is no problem > > > > detecting > > > > hangups when a voice conversation is taking place, since Asterisk > > > > obviously > > > > detects SIP hangups correctly whether it's SIP to SIP or SIP to > > > > > > outside > > > > > > > line. > > > > The problem is really only when outside callers leave voicemail. > > > > > > > > Thanks, > > > > > > > > Chris > > > > > > > > On Wednesday 17 September 2003 08:09, Martin Pycko wrote: > > > > > Do you have silence in the channel when the remote user hangs up > > or > > > > busy > > > > > > > > tone ? > > > > > > > > > > If you have silence you can use maxsilence=x_seconds in > > > > > > voicemail.conf > > > > > > > > with > > > > > Voicemail2 application and that will make sure the calls are > > hanged > > > > up > > > > > > > > after x_seconds of silence in the channel. > > > > > > > > > > If you have busy tone then use the busydetect=yes in > > zapata.conf. > > > > > > You can also limit the length of the voicemail message with > > > > > maxmessage=x_seconds in the voicemail.conf > > > > > > > > > > regards > > > > > Martin > > > > > > > > > > On Tue, 16 Sep 2003, Christian Hecimovic wrote: > > > > > > Hi, > > > > > > > > > > > > Try as I might, I can't get hangups detected on a Zap channel > > with > > > > > loop > > > > > > > > > > start lines. So, after someone leaves a voicemail and then > > hangs > > > > up, > > > > > > > > > Asterisk doesn't know it, exits VoicemailMain2, and loops back > > to > > > > the > > > > > > > > > corporate greeting, tying up the line even though the outside > > > > > > caller > > > > > > > has > > > > > > > > > > hung up. > > > > > > > > > > > > Therefore, I've added the following hideous hack - er, code - > > to > > > > > > > voicemail2.c. It starts right after the call to > > play_and_record() > > > > in > > > > > > > > > leave_voicemail(). > > > > > > > > > > > > if (res != '#' && chan != NULL && !strncmp(chan->name, "Zap", > > 3)) > > > > { > > > > > > > > > /* Hang up the Zap channel only */ > > > > > > ast_softhangup(chan, AST_SOFTHANGUP_EXPLICIT); > > > > > > } > > > > > > > > > > > > Obviously, it hangs up the channel after the voicemail has > > been > > > > > recorded, > > > > > > > > > > if the # key wasn't pressed, if the channel still exists, and > > if > > > > it's > > > > > > > a > > > > > > > > > > Zap channel. I couldn't see a way to do this with AGI. > > > > > > > > > > > > Question: is this safe? I used a soft hangup because the > > channel > > > > is > > > > > > > > > controlled by another thread. I also modified channel.c so > > that > > > > > > > ast_channel_free() sets chan to NULL after it's freed, just in > > > > > > case. > > > > > > > Is > > > > > > > > > > there anything else I should be aware of? The code seems to > > work > > > > in my > > > > > > > > > testing, resulting in a proper hangup right after the > > voicemail > > > > has > > > > > > > been > > > > > > > > > > recorded. I'm not up on my Asterisk internals, so I'm not > > totally > > > > > > > confident about this. > > > > > > > > > > > > Thanks, > > > > > > > > > > > > Chris > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > Asterisk-Users mailing list > > > > > > [EMAIL PROTECTED] > > > > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > > > > > _______________________________________________ > > > > > Asterisk-Users mailing list > > > > > [EMAIL PROTECTED] > > > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > > > _______________________________________________ > > > > Asterisk-Users mailing list > > > > [EMAIL PROTECTED] > > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > > > _______________________________________________ > > > Asterisk-Users mailing list > > > [EMAIL PROTECTED] > > > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > _______________________________________________ > > Asterisk-Users mailing list > > [EMAIL PROTECTED] > > http://lists.digium.com/mailman/listinfo/asterisk-users > > _______________________________________________ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
