diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index bd01be0fe8981d75bc7b5b74fec63f47b2f9c27f..d1bdd8275c06ac3505e66243d65317be63a45c9b 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -764,7 +764,7 @@ static void prep_email_sub_vars(struct ast_channel *ast, struct ast_vm_user *vmu snprintf(passdata, passdatasize, "%d", msgnum); pbx_builtin_setvar_helper(ast, "VM_MSGNUM", passdata); pbx_builtin_setvar_helper(ast, "VM_MAILBOX", mailbox); - pbx_builtin_setvar_helper(ast, "VM_CALLERID", ast_callerid_merge(callerid, sizeof(callerid), cidname, cidnum)); + pbx_builtin_setvar_helper(ast, "VM_CALLERID", ast_callerid_merge(callerid, sizeof(callerid), cidname, cidnum, "Unknown Caller")); pbx_builtin_setvar_helper(ast, "VM_CIDNAME", (cidname ? cidname : "an unknown caller")); pbx_builtin_setvar_helper(ast, "VM_CIDNUM", (cidnum ? cidnum : "an unknown caller")); pbx_builtin_setvar_helper(ast, "VM_DATE", date); @@ -1395,7 +1395,7 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int chan->exten, chan->priority, chan->name, - ast_callerid_merge(callerid, sizeof(callerid), chan->cid.cid_name, chan->cid.cid_num), + ast_callerid_merge(callerid, sizeof(callerid), chan->cid.cid_name, chan->cid.cid_num, "Unknown"), date, (long)time(NULL)); fclose(txt); } else diff --git a/callerid.c b/callerid.c index b5b55e14f60070944d15ee401d26730f93e2332d..82b2400481084e082062329ea70057dc7be973ba 100755 --- a/callerid.c +++ b/callerid.c @@ -679,8 +679,10 @@ int ast_callerid_callwaiting_generate(unsigned char *buf, char *name, char *numb return __ast_callerid_generate(buf, name, number, 1, codec); } -char *ast_callerid_merge(char *buf, int bufsiz, const char *name, const char *num) +char *ast_callerid_merge(char *buf, int bufsiz, const char *name, const char *num, const char *unknown) { + if (!unknown) + unknown = "<unknown>"; if (name && num) snprintf(buf, bufsiz, "\"%s\" <%s>", name, num); else if (name) @@ -688,7 +690,7 @@ char *ast_callerid_merge(char *buf, int bufsiz, const char *name, const char *nu else if (num) strncpy(buf, num, bufsiz - 1); else - strncpy(buf, "<unknown>", bufsiz - 1); + strncpy(buf, unknown, bufsiz - 1); return buf; } int ast_callerid_split(const char *buf, char *name, int namelen, char *num, int numlen) diff --git a/include/asterisk/callerid.h b/include/asterisk/callerid.h index 4008192c8a78b52d93caa6a7ba7340c808285f8b..a10b2cb7d1731187e0d920a91112ab7e175a0d10 100755 --- a/include/asterisk/callerid.h +++ b/include/asterisk/callerid.h @@ -165,7 +165,7 @@ extern int ast_isphonenumber(char *n); extern int ast_callerid_split(const char *src, char *name, int namelen, char *num, int numlen); -extern char *ast_callerid_merge(char *buf, int bufsiz, const char *name, const char *num); +extern char *ast_callerid_merge(char *buf, int bufsiz, const char *name, const char *num, const char *unknown); /* * Caller*ID and other GR-30 compatible generation