[Home]

Summary:ASTERISK-02281: I4L loops on a call that is hung up
Reporter:jcrowly (jcrowly)Labels:
Date Opened:2004-08-27 06:26:31Date Closed:2008-01-15 15:05:56.000-0600
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:In certain curcustances when a call placed over and I4L channel gets hung-up the I4L goes into a loop writing down a dead channel.  I tracked the problem down to channel_modem.c in the function modem_write, when channels write function is called the vaule it returns is not returned by modem_write.  modem_write always returns 0, thus the level above never closes the now dead channel.  If modem_write returns the result of the channels write function the call hangs up properly and asterisk does not loop forever.

****** ADDITIONAL INFORMATION ******

--- asterisk/channels/chan_modem.c      2004-03-02 20:16:59.000000000 +0000
+++ asterisk-patched/channels/chan_modem.c        2004-03-02 20:16:48.000000000 +0000
@@ -506,7 +506,7 @@
 
       /* Block again */
       fcntl(ast->fds[0], F_SETFL, flags);
-       return res;
+       return 0;
}
Comments:By: Mark Spencer (markster) 2004-08-27 11:18:19

Fixed, although th epatch was apparently backwards.

By: Digium Subversion (svnbot) 2008-01-15 15:05:56.000-0600

Repository: asterisk
Revision: 3666

U   trunk/channels/chan_modem.c

------------------------------------------------------------------------
r3666 | markster | 2008-01-15 15:05:55 -0600 (Tue, 15 Jan 2008) | 2 lines

Be sure errors on wite are passed back up (bug ASTERISK-2281)

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=3666