aboutsummaryrefslogtreecommitdiffstats
path: root/main/channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/channel.c')
-rw-r--r--main/channel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/channel.c b/main/channel.c
index 48ec63bf6..17f99ed38 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;