<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">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.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>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.)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>This can't be done with ast_bridge_call, AFAIK. Calling it in a thread dumps tons of these:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><FONT class="Apple-style-span" face="Courier">channel.c:1802 ast_waitfor_nandfds: Thread -1230656592 Blocking 'SIP/normanoffice-082001b8', already blocked by thread -1230656592 in procedure ast_waitfor_nandfds</FONT></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I assume one can't monitor a channel from two threads.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>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.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Thanks!</DIV><DIV>Norman</DIV><DIV><BR class="khtml-block-placeholder"></DIV></BODY></HTML>