summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/app_dial.c5
-rw-r--r--apps/app_followme.c3
-rw-r--r--apps/app_queue.c4
3 files changed, 12 insertions, 0 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 11591bdfb..5e034d3eb 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -872,6 +872,8 @@ static void do_forward(struct chanlist *o, struct cause_args *num,
/* If we have been told to ignore forwards, just set this channel to null and continue processing extensions normally */
if (ast_test_flag64(peerflags, OPT_IGNORE_FORWARDING)) {
ast_verb(3, "Forwarding %s to '%s/%s' prevented.\n", ast_channel_name(in), tech, stuff);
+ ast_channel_publish_dial_forward(in, original, NULL, NULL, "CANCEL",
+ ast_channel_call_forward(original));
c = o->chan = NULL;
cause = AST_CAUSE_BUSY;
} else {
@@ -1385,6 +1387,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
pa->sentringing++;
}
}
+ ast_channel_publish_dial(in, c, NULL, "RINGING");
break;
case AST_CONTROL_PROGRESS:
ast_verb(3, "%s is making progress passing it to %s\n", ast_channel_name(c), ast_channel_name(in));
@@ -1404,6 +1407,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
dtmf_progress);
ast_dtmf_stream(c, in, dtmf_progress, 250, 0);
}
+ ast_channel_publish_dial(in, c, NULL, "PROGRESS");
break;
case AST_CONTROL_VIDUPDATE:
case AST_CONTROL_SRCUPDATE:
@@ -1476,6 +1480,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
}
if (!ast_test_flag64(outgoing, OPT_RINGBACK))
ast_indicate(in, AST_CONTROL_PROCEEDING);
+ ast_channel_publish_dial(in, c, NULL, "PROCEEDING");
break;
case AST_CONTROL_HOLD:
/* XXX this should be saved like AST_CONTROL_CONNECTED_LINE for !single || caller_entertained */
diff --git a/apps/app_followme.c b/apps/app_followme.c
index 7d13bb4b4..a955843bc 100644
--- a/apps/app_followme.c
+++ b/apps/app_followme.c
@@ -848,9 +848,11 @@ static struct ast_channel *wait_for_winner(struct findme_user_listptr *findme_us
break;
case AST_CONTROL_RINGING:
ast_verb(3, "%s is ringing\n", ast_channel_name(winner));
+ ast_channel_publish_dial(caller, winner, NULL, "RINGING");
break;
case AST_CONTROL_PROGRESS:
ast_verb(3, "%s is making progress\n", ast_channel_name(winner));
+ ast_channel_publish_dial(caller, winner, NULL, "PROGRESS");
break;
case AST_CONTROL_VIDUPDATE:
ast_verb(3, "%s requested a video update\n", ast_channel_name(winner));
@@ -860,6 +862,7 @@ static struct ast_channel *wait_for_winner(struct findme_user_listptr *findme_us
break;
case AST_CONTROL_PROCEEDING:
ast_verb(3, "%s is proceeding\n", ast_channel_name(winner));
+ ast_channel_publish_dial(caller, winner, NULL, "PROCEEDING");
break;
case AST_CONTROL_HOLD:
ast_verb(3, "%s placed call on hold\n", ast_channel_name(winner));
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 8171d11cb..165924e0c 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -4846,6 +4846,8 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
/* Before processing channel, go ahead and check for forwarding */
if (!ast_strlen_zero(ast_channel_call_forward(o->chan)) && !forwardsallowed) {
ast_verb(3, "Forwarding %s to '%s' prevented.\n", inchan_name, ast_channel_call_forward(o->chan));
+ ast_channel_publish_dial_forward(qe->chan, o->chan, NULL, NULL,
+ "CANCEL", ast_channel_call_forward(o->chan));
numnochan++;
do_hang(o);
winner = NULL;
@@ -5052,6 +5054,8 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
case AST_CONTROL_RINGING:
ast_verb(3, "%s is ringing\n", ochan_name);
+ ast_channel_publish_dial(qe->chan, o->chan, on, "RINGING");
+
/* Start ring indication when the channel is ringing, if specified */
if (qe->ring_when_ringing) {
ast_moh_stop(qe->chan);