[Asterisk-Users] Hangups after voicemail
Wade J. Weppler
weppler at wwworks-inc.com
Tue Sep 16 16:53:24 MST 2003
Have you tried using kewlstart instead? Your loopstart lines might be
configured for kewlstart (forward disconnect supervision).
-wade
> -----Original Message-----
> From: Christian Hecimovic [mailto:checimovic at qworks.ca]
> Sent: Tuesday, September 16, 2003 7:48 PM
> To: asterisk-users at lists.digium.com
> Subject: [Asterisk-Users] Hangups after voicemail
>
> 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
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
More information about the asterisk-users
mailing list