diff options
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r-- | channels/chan_dahdi.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 34162ea5f..bd68addf1 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -416,6 +416,9 @@ struct dahdi_pri { int span; int resetting; int resetpos; +#ifdef HAVE_PRI_INBANDRELEASE + unsigned int inbandrelease:1; /*!< Should we support inband audio after receiving RELEASE? */ +#endif time_t lastreset; /*!< time when unused channels were last reset */ long resetinterval; /*!< Interval (in seconds) for resetting unused channels */ int sig; @@ -8447,6 +8450,9 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf, pris[span].minunused = conf->pri.minunused; pris[span].minidle = conf->pri.minidle; pris[span].overlapdial = conf->pri.overlapdial; +#ifdef HAVE_PRI_INBANDRELEASE + pris[span].inbandrelease = conf->pri.inbandrelease; +#endif pris[span].facilityenable = conf->pri.facilityenable; ast_copy_string(pris[span].idledial, conf->pri.idledial, sizeof(pris[span].idledial)); ast_copy_string(pris[span].idleext, conf->pri.idleext, sizeof(pris[span].idleext)); @@ -11478,6 +11484,9 @@ static int start_pri(struct dahdi_pri *pri) if (pri->switchtype == PRI_SWITCH_GR303_TMC) pri->overlapdial |= DAHDI_OVERLAPDIAL_BOTH; pri_set_overlapdial(pri->dchans[i],(pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING)?1:0); +#ifdef HAVE_PRI_INBANDRELEASE + pri_set_inbandrelease(pri->dchans[i], pri->inbandrelease); +#endif /* Enslave to master if appropriate */ if (i) pri_enslave(pri->dchans[0], pri->dchans[i]); @@ -14286,6 +14295,10 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct } else { confp->pri.overlapdial = DAHDI_OVERLAPDIAL_NONE; } +#ifdef HAVE_PRI_INBANDRELEASE + } else if (!strcasecmp(v->name, "inbandrelease")) { + confp->pri.inbandrelease = ast_true(v->value); +#endif } else if (!strcasecmp(v->name, "pritimer")) { #ifdef PRI_GETSET_TIMERS char tmp[20], *timerc, *c = tmp; |