I'm attempting to modify app_queue to support a legacy system we have. Basically, after a timeout (e.g. 3 or 4 rings), I want it to patch the call to another system (via a Zap channel) that plays a message specific to the incoming call's extension, e.g. "Welcome to Foo Bar, Inc, please hold." These files are not stored where Asterisk can get to them and they are in a proprietary format. We have like 4000 of these, so re-recording isn't an option either.

I figured I could modify app_queue to dial this number and and wait until that message is done (the other system hangs up) and then go to MoH. This works synchronously, e.g. I have to block while bridged. I want to be able to check for digits being pressed while in this mode (and do something as a result) and to abort the connection if an agent frees up (so they don't have to listen to the entire message if an agent becomes available.)

This can't be done with ast_bridge_call, AFAIK. Calling it in a thread dumps tons of these:

channel.c:1802 ast_waitfor_nandfds: Thread -1230656592 Blocking 'SIP/ normanoffice-082001b8', already blocked by thread -1230656592 in procedure ast_waitfor_nandfds

I assume one can't monitor a channel from two threads.

What's the best way to handle something like this? I looked inside app_meetme, and there is a LOT of code there to do what is conceptually very simple. Something like ast_moh_start that takes another channel instead of a music channel, and streams that channel much like MoH would be slick.

Thanks!
Norman

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to