Summary: | ASTERISK-02281: I4L loops on a call that is hung up | ||
Reporter: | jcrowly (jcrowly) | Labels: | |
Date Opened: | 2004-08-27 06:26:31 | Date Closed: | 2008-01-15 15:05:56.000-0600 |
Priority: | Critical | Regression? | No |
Status: | Closed/Complete | Components: | 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 |