Russell,<br><br>Basically what I am trying to do is to play my own music on hold to callers waiting in a queue. During that call I want to be able to collect DTMF from the caller so that I can change audio files that I am playing back to the caller.<br>
<br>Jonathan<br><br><div class="gmail_quote">On Tue, Oct 28, 2008 at 9:31 PM, Russell Bryant <span dir="ltr"><<a href="mailto:russell@digium.com">russell@digium.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
----- "BJ Weschke" <<a href="mailto:bweschke@gmail.com">bweschke@gmail.com</a>> wrote:<br>
<div><div></div><div class="Wj3C7c"><br>
> jonathan augenstine wrote:<br>
> > (gdb) bt<br>
> > #0 0xb7f0a540 in pthread_mutex_lock () from<br>
> > /lib/tls/i686/cmov/libpthread.so.0<br>
> > #1 0x080f5b22 in ast_sched_runq (con=0x0)<br>
> > at<br>
> /home/jonathan/asterisk/asterisk-1.4.22/include/asterisk/lock.h:755<br>
> > #2 0x080a1488 in waitstream_core (c=0x81f8e50, breakon=0x81261d1<br>
> > "0123456789#*ABCD",<br>
> > forward=0x81281b0 "", rewind=0x81281b0 "", skip_ms=0,<br>
> audiofd=-1,<br>
> > cmdfd=-1,<br>
> > context=0x0) at file.c:1217<br>
> > #3 0x080a18e8 in ast_waitstream_full (c=0x81f8e50,<br>
> > breakon=0x81261d1 "0123456789#*ABCD", audiofd=-1, cmdfd=-1) at<br>
> > file.c:1238<br>
> > #4 0x0808a9c3 in ast_readstring_full (c=0x81f8e50, s=0xb6a12068 "",<br>
><br>
> > len=1,<br>
> > timeout=5000, ftimeout=10000, enders=0x8138971 "#", audiofd=-1,<br>
><br>
> > ctrlfd=-1)<br>
> > at channel.c:3120<br>
> > #5 0x0808ab14 in ast_readstring (c=0x81f8e50, s=0xb6a12068 "",<br>
> len=1,<br>
> > timeout=5000,<br>
> > ftimeout=10000, enders=0x8138971 "#") at channel.c:3104<br>
> > #6 0x08060a9d in ast_app_getdata (c=0x81f8e50,<br>
> > prompt=0xb6a125c0<br>
> > "/var/lib/asterisk/sounds/en/shared_audio/ad_spots/pcm8/Spot72691",<br>
><br>
> > s=0xb6a12068 "", maxlen=1, timeout=0) at app.c:125<br>
> > #7 0xb7c45870 in play_voodoo_ad (chan=0x81f8e50, audio=0xb6a121a0)<br>
> at<br>
> > res_voodoo.c:462<br>
> > #8 0xb7c464e8 in play_voodoo_local (parm=0x81f8e50) at<br>
> res_voodoo.c:659<br>
> > #9 0x0810256b in dummy_start (data=0x81f9328) at utils.c:912<br>
> > #10 0xb7f084fb in start_thread () from<br>
> /lib/tls/i686/cmov/libpthread.so.0<br>
> > #11 0xb7e21e5e in clone () from /lib/tls/i686/cmov/libc.so.6<br>
> > (<br>
><br>
><br>
> Looks like you're trying to lock a channel lock on a channel that's<br>
> not there any more ?<br>
<br>
</div></div>Indeed, it's possible.<br>
<br>
By looking at the backtrace, I can see that you created a thread in your module, and this thread is attempting to play a file on a channel. In Asterisk, doing media handling like this outside of the normal channel threads is not recommended, to say the least. :)<br>
<br>
Perhaps you can share more information on what you're trying to accomplish and we can provide some guidance on the right approach.<br>
<font color="#888888"><br>
<br>
--<br>
Russell Bryant<br>
Senior Software Engineer<br>
Open Source Team Lead<br>
Digium, Inc.<br>
</font><div><div></div><div class="Wj3C7c"><br>
_______________________________________________<br>
--Bandwidth and Colocation Provided by <a href="http://www.api-digital.com--" target="_blank">http://www.api-digital.com--</a><br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
<a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-dev</a><br>
</div></div></blockquote></div><br>