Hi,<br>
&nbsp;<br>
&nbsp;I have developed a custom agi and connect to it by placing a call
through a sip phone. The agi issues the &quot;STREAM FILE&quot; command from a
number of places in code to play out prerecorded messages. The problem
is if the agi tries to play a file, using the STREAM FILE command,
after the caller has dropped the call,&nbsp; the agi crashes midway.<br>
<br>
After issuing a &quot;agi debug&quot; command on the console here is what I observed.<br>
1. Whenever a caller drops a call no interrupt is fired from asterisk
to the agi to notify a hangup event. This prevents me from taking
precautionary measures before issuing any command.<br>
<br>
2. Even after the caller has dropped the call, I still see&nbsp; an
active channel (verified using the &quot;show channels&quot; command).&nbsp; This
is probably due to the fact that the agi is still connected.<br>
&nbsp;<br>
3. When I send the STREAM FILE command from my agi this is what is shown on the asterisk console:<br>
<br>
AGI Rx &lt;&lt; STREAM FILE file1 &quot;#&quot; 0<br>
Mar&nbsp; 6 23:50:22 WARNING[5978]: file.c:583 ast_readaudio_callback: Failed to write frame<br>
AGI Tx &gt;&gt; 200 result=-1 endpos=6400<br>
Spawn extension ........ exited non-zero on 'SIP/101-6600'<br>
<br>
As I understand, when asterisk receives the STREAM FILE command its has
no channel to play it to and hence the warning is issued. <br>
Asterisk does send a -1 result but straight away kills the agi process
( I deduce this from the last line) which causes the agi to crash.<br>
<br>
Now I am totally clueless on how to handle such erroneous conditions. Any help will be appreciated.<br>
<br>
Thanks,<br>
Danish<br>
<br>