summaryrefslogtreecommitdiff
path: root/channels/chan_dahdi.c
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2008-06-16 19:57:05 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2008-06-16 19:57:05 +0000
commit596f8b51862a9bbcf348c2cd1776a155043233af (patch)
treeff0394cd5b908fa8019ecb214661a8dd00fef027 /channels/chan_dahdi.c
parentba07bd38b78a4355d14ecb9c1c422466df3186eb (diff)
Merged revisions 123113 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r123113 | tilghman | 2008-06-16 14:50:12 -0500 (Mon, 16 Jun 2008) | 2 lines Port "hasvoicemail" change from SIP to other channel drivers ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r--channels/chan_dahdi.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 801ee0510..669c44c2b 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -13487,7 +13487,7 @@ static void process_echocancel(struct dahdi_chan_conf *confp, const char *data,
/*! process_dahdi() - No warnings on non-existing cofiguration keywords */
#define PROC_DAHDI_OPT_NOWARN (1 << 1)
-static int process_dahdi(struct dahdi_chan_conf *confp, struct ast_variable *v, int reload, int options)
+static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct ast_variable *v, int reload, int options)
{
struct dahdi_pvt *tmp;
const char *ringc; /* temporary string for parsing the dring number. */
@@ -13578,6 +13578,10 @@ static int process_dahdi(struct dahdi_chan_conf *confp, struct ast_variable *v,
confp->chan.dtmfrelax = 0;
} else if (!strcasecmp(v->name, "mailbox")) {
ast_copy_string(confp->chan.mailbox, v->value, sizeof(confp->chan.mailbox));
+ } else if (!strcasecmp(v->name, "hasvoicemail")) {
+ if (ast_true(v->value) && ast_strlen_zero(confp->chan.mailbox)) {
+ ast_copy_string(confp->chan.mailbox, cat, sizeof(confp->chan.mailbox));
+ }
} else if (!strcasecmp(v->name, "adsi")) {
confp->chan.adsi = ast_true(v->value);
} else if (!strcasecmp(v->name, "usesmdi")) {
@@ -14416,7 +14420,7 @@ static int setup_dahdi(int reload)
if (ucfg) {
const char *chans;
- process_dahdi(&base_conf, ast_variable_browse(ucfg, "general"), 1, 0);
+ process_dahdi(&base_conf, "", ast_variable_browse(ucfg, "general"), 1, 0);
for (cat = ast_category_browse(ucfg, NULL); cat ; cat = ast_category_browse(ucfg, cat)) {
if (!strcasecmp(cat, "general")) {
@@ -14431,7 +14435,7 @@ static int setup_dahdi(int reload)
memcpy(&conf, &base_conf, sizeof(conf));
- if ((res = process_dahdi(&conf, ast_variable_browse(ucfg, cat), reload, PROC_DAHDI_OPT_NOCHAN | PROC_DAHDI_OPT_NOWARN))) {
+ if ((res = process_dahdi(&conf, cat, ast_variable_browse(ucfg, cat), reload, PROC_DAHDI_OPT_NOCHAN | PROC_DAHDI_OPT_NOWARN))) {
ast_config_destroy(ucfg);
ast_mutex_unlock(&iflock);
return res;