diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2008-06-16 19:57:05 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2008-06-16 19:57:05 +0000 |
commit | 596f8b51862a9bbcf348c2cd1776a155043233af (patch) | |
tree | ff0394cd5b908fa8019ecb214661a8dd00fef027 /channels | |
parent | ba07bd38b78a4355d14ecb9c1c422466df3186eb (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')
-rw-r--r-- | channels/chan_dahdi.c | 10 | ||||
-rw-r--r-- | channels/chan_h323.c | 4 | ||||
-rw-r--r-- | channels/chan_iax2.c | 4 | ||||
-rw-r--r-- | channels/chan_mgcp.c | 4 | ||||
-rw-r--r-- | channels/chan_sip.c | 4 | ||||
-rw-r--r-- | channels/chan_skinny.c | 4 |
6 files changed, 25 insertions, 5 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; diff --git a/channels/chan_h323.c b/channels/chan_h323.c index bbe055118..9951d1240 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -1530,6 +1530,10 @@ static struct oh323_peer *build_peer(const char *name, struct ast_variable *v, s ast_log(LOG_ERROR, "Bad ACL entry in configuration line %d : %s\n", v->lineno, v->value); } else if (!strcasecmp(v->name, "mailbox")) { ast_copy_string(peer->mailbox, v->value, sizeof(peer->mailbox)); + } else if (!strcasecmp(v->name, "hasvoicemail")) { + if (ast_true(v->value) && ast_strlen_zero(peer->mailbox)) { + ast_copy_string(peer->mailbox, name, sizeof(peer->mailbox)); + } } } if (!peer->options.dtmfmode) diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 2bd1de10b..9741fbb64 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -10359,6 +10359,10 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, st ast_string_field_set(peer, secret, v->value); } else if (!strcasecmp(v->name, "mailbox")) { ast_string_field_set(peer, mailbox, v->value); + } else if (!strcasecmp(v->name, "hasvoicemail")) { + if (ast_true(v->value) && ast_strlen_zero(peer->mailbox)) { + ast_string_field_set(peer, mailbox, name); + } } else if (!strcasecmp(v->name, "mohinterpret")) { ast_string_field_set(peer, mohinterpret, v->value); } else if (!strcasecmp(v->name, "mohsuggest")) { diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 6cc7e66f0..46b75bf31 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -3699,6 +3699,10 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v) canreinvite = ast_true(v->value); } else if (!strcasecmp(v->name, "mailbox")) { ast_copy_string(mailbox, v->value, sizeof(mailbox)); + } else if (!strcasecmp(v->name, "hasvoicemail")) { + if (ast_true(v->value) && ast_strlen_zero(mailbox)) { + ast_copy_string(mailbox, gw->name, sizeof(mailbox)); + } } else if (!strcasecmp(v->name, "adsi")) { adsi = ast_true(v->value); } else if (!strcasecmp(v->name, "callreturn")) { diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 64e1e5bc6..72035ebad 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -21262,8 +21262,8 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str } else if (!strcasecmp(v->name, "hasvoicemail")) { /* People expect that if 'hasvoicemail' is set, that the mailbox will * be also set, even if not explicitly specified. */ - if (ast_true(v->value) && ast_strlen_zero(peer->mailbox)) { - ast_copy_string(peer->mailbox, name, sizeof(peer->mailbox)); + if (ast_true(v->value) && AST_LIST_EMPTY(&peer->mailboxes)) { + add_peer_mailboxes(peer, name); } } else if (!strcasecmp(v->name, "subscribemwi")) { ast_set2_flag(&peer->flags[1], ast_true(v->value), SIP_PAGE2_SUBSCRIBEMWIONLY); diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 6a889a423..5758a27a6 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -3039,6 +3039,10 @@ static struct skinny_device *build_device(const char *cat, struct ast_variable * cancallforward = ast_true(v->value); } else if (!strcasecmp(v->name, "mailbox")) { ast_copy_string(mailbox, v->value, sizeof(mailbox)); + } else if (!strcasecmp(v->name, "hasvoicemail")) { + if (ast_true(v->value) && ast_strlen_zero(mailbox)) { + ast_copy_string(mailbox, cat, sizeof(mailbox)); + } } else if (!strcasecmp(v->name, "callreturn")) { callreturn = ast_true(v->value); } else if (!strcasecmp(v->name, "callwaiting")) { |