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