Port "hasvoicemail" change from SIP to other channel drivers

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@123113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Tilghman Lesher 17 years ago
parent b815ecf349
commit cc09f7c8ef

@ -10656,7 +10656,7 @@ static int build_channels(struct dahdi_chan_conf *conf, int iscrv, const char *v
/** The length of the parameters list of 'dahdichan'.
* \todo Move definition of MAX_CHANLIST_LEN to a proper place. */
#define MAX_CHANLIST_LEN 80
static int process_dahdi(struct dahdi_chan_conf *confp, struct ast_variable *v, int reload, int skipchannels)
static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct ast_variable *v, int reload, int skipchannels)
{
struct dahdi_pvt *tmp;
char *ringc; /* temporary string for parsing the dring number. */
@ -10736,6 +10736,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")) {
@ -11425,7 +11429,7 @@ static int setup_dahdi(int reload)
memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
v = ast_variable_browse(cfg, "channels");
res = process_dahdi(&conf, v, reload, 0);
res = process_dahdi(&conf, "", v, reload, 0);
ast_mutex_unlock(&iflock);
ast_config_destroy(cfg);
if (res)
@ -11434,7 +11438,7 @@ static int setup_dahdi(int reload)
if (cfg) {
char *cat;
const char *chans;
process_dahdi(&conf, ast_variable_browse(cfg, "general"), 1, 1);
process_dahdi(&conf, "", ast_variable_browse(cfg, "general"), 1, 1);
for (cat = ast_category_browse(cfg, NULL); cat ; cat = ast_category_browse(cfg, cat)) {
if (!strcasecmp(cat, "general"))
continue;
@ -11443,7 +11447,7 @@ static int setup_dahdi(int reload)
struct dahdi_chan_conf sect_conf;
memcpy(&sect_conf, &conf, sizeof(sect_conf));
process_dahdi(&sect_conf, ast_variable_browse(cfg, cat), reload, 0);
process_dahdi(&sect_conf, cat, ast_variable_browse(cfg, cat), reload, 0);
}
}
ast_config_destroy(cfg);

@ -1489,6 +1489,10 @@ static struct oh323_peer *build_peer(const char *name, struct ast_variable *v, s
peer->ha = ast_append_ha(v->name, v->value, peer->ha);
} 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));
}
}
}
ASTOBJ_UNMARK(peer);

@ -9347,6 +9347,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")) {

@ -3728,6 +3728,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")) {

@ -2202,6 +2202,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")) {

Loading…
Cancel
Save