From: Matthew Nicholson Date: Fri, 9 Oct 2009 18:20:11 +0000 (+0000) Subject: Signal timeouts by returning AST_CONTROL_RINGING when originating calls. X-Git-Tag: 1.4.27-rc3~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99a8ffb52cc90e41d2dc5808823af48e831c8616;p=thirdparty%2Fasterisk.git Signal timeouts by returning AST_CONTROL_RINGING when originating calls. (closes issue #15104) Reported by: nblasgen Patches: manager-timeout1.diff uploaded by mnicholson (license 96) Tested by: nblasgen, mnicholson git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@223225 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/channel.c b/main/channel.c index 48ec63bf67..17f99ed383 100644 --- a/main/channel.c +++ b/main/channel.c @@ -3286,7 +3286,11 @@ struct ast_channel *__ast_request_and_dial(const char *type, int format, void *d while (timeout && chan->_state != AST_STATE_UP) { struct ast_frame *f; res = ast_waitfor(chan, timeout); - if (res <= 0) /* error, timeout, or done */ + if (res == 0) { /* timeout, treat it like ringing */ + *outstate = AST_CONTROL_RINGING; + break; + } + if (res < 0) /* error or done */ break; if (timeout > -1) timeout = res;