mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-19 08:11:21 +00:00
Pass along proceeding and progress even when overlap mode is not on
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -486,6 +486,12 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct localu
|
|||||||
if (!ast_test_flag(outgoing, DIAL_RINGBACKONLY))
|
if (!ast_test_flag(outgoing, DIAL_RINGBACKONLY))
|
||||||
ast_indicate(in, AST_CONTROL_PROGRESS);
|
ast_indicate(in, AST_CONTROL_PROGRESS);
|
||||||
break;
|
break;
|
||||||
|
case AST_CONTROL_PROCEEDING:
|
||||||
|
if (option_verbose > 2)
|
||||||
|
ast_verbose ( VERBOSE_PREFIX_3 "%s is proceeding passing it to %s\n", o->chan->name,in->name);
|
||||||
|
if (!ast_test_flag(outgoing, DIAL_RINGBACKONLY))
|
||||||
|
ast_indicate(in, AST_CONTROL_PROCEEDING);
|
||||||
|
break;
|
||||||
case AST_CONTROL_HOLD:
|
case AST_CONTROL_HOLD:
|
||||||
if (option_verbose > 2)
|
if (option_verbose > 2)
|
||||||
ast_verbose(VERBOSE_PREFIX_3 "Call on %s placed on hold\n", o->chan->name);
|
ast_verbose(VERBOSE_PREFIX_3 "Call on %s placed on hold\n", o->chan->name);
|
||||||
|
|||||||
@@ -8295,9 +8295,9 @@ static void *pri_dchannel(void *vpri)
|
|||||||
chanpos = pri_find_principle(pri, e->proceeding.channel);
|
chanpos = pri_find_principle(pri, e->proceeding.channel);
|
||||||
if (chanpos > -1) {
|
if (chanpos > -1) {
|
||||||
#ifdef PRI_PROGRESS_MASK
|
#ifdef PRI_PROGRESS_MASK
|
||||||
if ((pri->overlapdial && !pri->pvts[chanpos]->proceeding) || (e->proceeding.progressmask & PRI_PROG_INBAND_AVAILABLE)) {
|
if ((!pri->pvts[chanpos]->proceeding) || (e->proceeding.progressmask & PRI_PROG_INBAND_AVAILABLE)) {
|
||||||
#else
|
#else
|
||||||
if ((pri->overlapdial && !pri->pvts[chanpos]->proceeding) || (e->proceeding.progress == 8)) {
|
if ((!pri->pvts[chanpos]->proceeding) || (e->proceeding.progress == 8)) {
|
||||||
#endif
|
#endif
|
||||||
struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, };
|
struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, };
|
||||||
|
|
||||||
@@ -8339,7 +8339,7 @@ static void *pri_dchannel(void *vpri)
|
|||||||
case PRI_EVENT_PROCEEDING:
|
case PRI_EVENT_PROCEEDING:
|
||||||
chanpos = pri_find_principle(pri, e->proceeding.channel);
|
chanpos = pri_find_principle(pri, e->proceeding.channel);
|
||||||
if (chanpos > -1) {
|
if (chanpos > -1) {
|
||||||
if (pri->overlapdial && !pri->pvts[chanpos]->proceeding) {
|
if (!pri->pvts[chanpos]->proceeding) {
|
||||||
struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROCEEDING, };
|
struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROCEEDING, };
|
||||||
|
|
||||||
ast_mutex_lock(&pri->pvts[chanpos]->lock);
|
ast_mutex_lock(&pri->pvts[chanpos]->lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user