Index: channels/chan_sip.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v retrieving revision 1.587 diff -u -r1.587 chan_sip.c --- channels/chan_sip.c 9 Dec 2004 14:54:13 -0000 1.587 +++ channels/chan_sip.c 11 Dec 2004 04:05:16 -0000 @@ -395,6 +395,7 @@ char language[MAX_LANGUAGE]; /* Default language for this user */ char musicclass[MAX_LANGUAGE]; /* Music on Hold class */ char useragent[256]; /* User agent in SIP request */ + char mailbox[AST_MAX_EXTENSION]; /* Mailbox setting for MWI checks */ struct ast_codec_pref prefs; /* codec prefs */ unsigned int callgroup; /* Call group */ unsigned int pickupgroup; /* Pickup Group */ @@ -5413,6 +5414,8 @@ } if (!ast_strlen_zero(user->cid_name) && !ast_strlen_zero(p->cid_name)) strncpy(p->cid_name, user->cid_name, sizeof(p->cid_name) - 1); + if (mailbox) + strncpy(user->mailbox, mailbox, mailboxlen-1); strncpy(p->username, user->name, sizeof(p->username) - 1); strncpy(p->peersecret, user->secret, sizeof(p->peersecret) - 1); strncpy(p->peermd5secret, user->md5secret, sizeof(p->peermd5secret) - 1); @@ -5498,7 +5501,7 @@ strncpy(p->peername, peer->name, sizeof(p->peername) - 1); strncpy(p->authname, peer->name, sizeof(p->authname) - 1); if (mailbox) - snprintf(mailbox, mailboxlen, ",%s,", peer->mailbox); + strncpy(mailbox, peer->mailbox, mailboxlen-1); if (!ast_strlen_zero(peer->username)) { strncpy(p->username, peer->username, sizeof(p->username) - 1); strncpy(p->authname, peer->username, sizeof(p->authname) - 1); @@ -8319,7 +8322,9 @@ } else user->ospauth = 0; #endif - } + } else if (!strcasecmp(v->name, "mailbox")) { + strncpy(user->mailbox, v->value, sizeof(user->mailbox)-1); + } /*else if (strcasecmp(v->name,"type")) * ast_log(LOG_WARNING, "Ignoring %s\n", v->name); */