mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-23 07:54:50 -07:00
chan_dahdi: Add inband_on_proceeding compatibility option.
The new inband_on_proceeding option causes Asterisk to assume inband audio may be present when a PROCEEDING message is received. Q.931 Section 5.1.2 says the network cannot assume that the CPE side has attached to the B channel at this time without explicitly sending the progress indicator ie informing the CPE side to attach to the B channel for audio. However, some non-compliant ISDN switches send a PROCEEDING without the progress indicator ie indicating inband audio is available and assume that the CPE device has connected the media path for listening to ringback and other messages. ASTERISK-17834 which causes this issue was dealing with a non-compliant network switch. (closes issue ASTERISK-21151) Reported by: Gianluca Merlo Tested by: rmudgett ........ Merged revisions 384685 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@384689 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1408,6 +1408,7 @@ static struct dahdi_chan_conf dahdi_chan_conf_default(void)
|
||||
.localdialplan = PRI_NATIONAL_ISDN + 1,
|
||||
.nodetype = PRI_CPE,
|
||||
.qsigchannelmapping = DAHDI_CHAN_MAPPING_PHYSICAL,
|
||||
.inband_on_proceeding = 1,
|
||||
|
||||
#if defined(HAVE_PRI_CCSS)
|
||||
.cc_ptmp_recall_mode = 1,/* specificRecall */
|
||||
@@ -12930,6 +12931,7 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf,
|
||||
pris[span].pri.layer1_ignored = 0;
|
||||
}
|
||||
pris[span].pri.append_msn_to_user_tag = conf->pri.pri.append_msn_to_user_tag;
|
||||
pris[span].pri.inband_on_proceeding = conf->pri.pri.inband_on_proceeding;
|
||||
ast_copy_string(pris[span].pri.initial_user_tag, conf->chan.cid_tag, sizeof(pris[span].pri.initial_user_tag));
|
||||
ast_copy_string(pris[span].pri.msn_list, conf->pri.pri.msn_list, sizeof(pris[span].pri.msn_list));
|
||||
#if defined(HAVE_PRI_MWI)
|
||||
@@ -18192,6 +18194,8 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
|
||||
#endif /* defined(HAVE_PRI_MWI) */
|
||||
} else if (!strcasecmp(v->name, "append_msn_to_cid_tag")) {
|
||||
confp->pri.pri.append_msn_to_user_tag = ast_true(v->value);
|
||||
} else if (!strcasecmp(v->name, "inband_on_proceeding")) {
|
||||
confp->pri.pri.inband_on_proceeding = ast_true(v->value);
|
||||
#if defined(HAVE_PRI_DISPLAY_TEXT)
|
||||
} else if (!strcasecmp(v->name, "display_send")) {
|
||||
confp->pri.pri.display_flags_send = dahdi_display_text_option(v->value);
|
||||
|
||||
+3
-1
@@ -6752,9 +6752,11 @@ static void *pri_dchannel(void *vpri)
|
||||
/* Bring voice path up */
|
||||
pri_queue_control(pri, chanpos, AST_CONTROL_PROGRESS);
|
||||
pri->pvts[chanpos]->progress = 1;
|
||||
sig_pri_set_dialing(pri->pvts[chanpos], 0);
|
||||
sig_pri_open_media(pri->pvts[chanpos]);
|
||||
} else if (pri->inband_on_proceeding) {
|
||||
sig_pri_set_dialing(pri->pvts[chanpos], 0);
|
||||
}
|
||||
sig_pri_set_dialing(pri->pvts[chanpos], 0);
|
||||
sig_pri_unlock_private(pri->pvts[chanpos]);
|
||||
break;
|
||||
case PRI_EVENT_FACILITY:
|
||||
|
||||
@@ -470,6 +470,8 @@ struct sig_pri_span {
|
||||
* appended to the initial_user_tag[].
|
||||
*/
|
||||
unsigned int append_msn_to_user_tag:1;
|
||||
/*! TRUE if a PROCEEDING message needs to unsquelch the received audio. */
|
||||
unsigned int inband_on_proceeding:1;
|
||||
#if defined(HAVE_PRI_MCID)
|
||||
/*! \brief TRUE if allow sending MCID request on this span. */
|
||||
unsigned int mcid_send:1;
|
||||
|
||||
@@ -196,6 +196,18 @@ context=public
|
||||
;
|
||||
;resetinterval = 3600
|
||||
;
|
||||
; Assume inband audio may be present when a PROCEEDING message is received.
|
||||
; Q.931 Section 5.1.2 says the network cannot assume that the CPE side has
|
||||
; attached to the B channel at this time without explicitly sending the
|
||||
; progress indicator ie informing the CPE side to attach to the B channel
|
||||
; for audio. However, some non-compliant ISDN switches send a PROCEEDING
|
||||
; without the progress indicator ie indicating inband audio is available and
|
||||
; assume that the CPE device has connected the media path for listening to
|
||||
; ringback and other messages.
|
||||
; Default yes in current release branches for backward compatibility.
|
||||
;
|
||||
;inband_on_proceeding=yes
|
||||
;
|
||||
; Overlap dialing mode (sending overlap digits)
|
||||
; Cannot be changed on a reload.
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user