diff options
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r-- | channels/chan_dahdi.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 7cf585a31..09f461259 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -12270,6 +12270,7 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf, pris[span].pri.nsf = conf->pri.pri.nsf; pris[span].pri.dialplan = conf->pri.pri.dialplan; pris[span].pri.localdialplan = conf->pri.pri.localdialplan; + pris[span].pri.cpndialplan = conf->pri.pri.cpndialplan; pris[span].pri.pvts[pris[span].pri.numchans++] = tmp->sig_pvt; pris[span].pri.minunused = conf->pri.pri.minunused; pris[span].pri.minidle = conf->pri.pri.minidle; @@ -16971,6 +16972,8 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct confp->pri.pri.localdialplan = PRI_INTERNATIONAL_ISDN + 1; } else if (!strcasecmp(v->value, "local")) { confp->pri.pri.localdialplan = PRI_LOCAL_ISDN + 1; + } else if (!strcasecmp(v->value, "from_channel")) { + confp->pri.pri.localdialplan = 0; } else if (!strcasecmp(v->value, "dynamic")) { confp->pri.pri.localdialplan = -1; } else if (!strcasecmp(v->value, "redundant")) { @@ -16978,6 +16981,26 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct } else { ast_log(LOG_WARNING, "Unknown PRI localdialplan '%s' at line %d.\n", v->value, v->lineno); } + } else if (!strcasecmp(v->name, "pricpndialplan")) { + if (!strcasecmp(v->value, "national")) { + confp->pri.pri.cpndialplan = PRI_NATIONAL_ISDN + 1; + } else if (!strcasecmp(v->value, "unknown")) { + confp->pri.pri.cpndialplan = PRI_UNKNOWN + 1; + } else if (!strcasecmp(v->value, "private")) { + confp->pri.pri.cpndialplan = PRI_PRIVATE + 1; + } else if (!strcasecmp(v->value, "international")) { + confp->pri.pri.cpndialplan = PRI_INTERNATIONAL_ISDN + 1; + } else if (!strcasecmp(v->value, "local")) { + confp->pri.pri.cpndialplan = PRI_LOCAL_ISDN + 1; + } else if (!strcasecmp(v->value, "from_channel")) { + confp->pri.pri.cpndialplan = 0; + } else if (!strcasecmp(v->value, "dynamic")) { + confp->pri.pri.cpndialplan = -1; + } else if (!strcasecmp(v->value, "redundant")) { + confp->pri.pri.cpndialplan = -2; + } else { + ast_log(LOG_WARNING, "Unknown PRI cpndialplan '%s' at line %d.\n", v->value, v->lineno); + } } else if (!strcasecmp(v->name, "switchtype")) { if (!strcasecmp(v->value, "national")) confp->pri.pri.switchtype = PRI_SWITCH_NI2; |