summaryrefslogtreecommitdiff
path: root/channels/chan_console.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_console.c')
-rw-r--r--channels/chan_console.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/channels/chan_console.c b/channels/chan_console.c
index 3e9efcb39..1bdd836ea 100644
--- a/channels/chan_console.c
+++ b/channels/chan_console.c
@@ -42,7 +42,6 @@
* - transfer CLI command
* - boost CLI command and .conf option
* - console_video support
- * - Add ringing sound on incoming calls
*/
/*** MODULEINFO
@@ -466,19 +465,20 @@ static int console_call(struct ast_channel *c, char *dest, int timeout)
console_pvt_lock(pvt);
if (pvt->autoanswer) {
- ast_verb(1, V_BEGIN "Auto-answered" V_END);
pvt->hookstate = 1;
+ console_pvt_unlock(pvt);
+ ast_verb(1, V_BEGIN "Auto-answered" V_END);
f.frametype = AST_FRAME_CONTROL;
f.subclass = AST_CONTROL_ANSWER;
} else {
+ console_pvt_unlock(pvt);
ast_verb(1, V_BEGIN "Type 'console answer' to answer, or use the 'autoanswer' option "
"for future calls" V_END);
f.frametype = AST_FRAME_CONTROL;
f.subclass = AST_CONTROL_RINGING;
+ ast_indicate(c, AST_CONTROL_RINGING);
}
- console_pvt_unlock(pvt);
-
ast_queue_frame(c, &f);
return start_stream(pvt);
@@ -502,12 +502,12 @@ static int console_indicate(struct ast_channel *chan, int cond, const void *data
case AST_CONTROL_BUSY:
case AST_CONTROL_CONGESTION:
case AST_CONTROL_RINGING:
+ case -1:
res = -1; /* Ask for inband indications */
break;
case AST_CONTROL_PROGRESS:
case AST_CONTROL_PROCEEDING:
case AST_CONTROL_VIDUPDATE:
- case -1:
break;
case AST_CONTROL_HOLD:
ast_verb(1, V_BEGIN "Console Has Been Placed on Hold" V_END);
@@ -835,6 +835,9 @@ static char *cli_console_answer(struct ast_cli_entry *e, int cmd, struct ast_cli
}
pvt->hookstate = 1;
+
+ ast_indicate(pvt->owner, -1);
+
ast_queue_frame(pvt->owner, &f);
return CLI_SUCCESS;