From 93818c761ba3dac3ccc44d3e9154c5ba690a5ff2 Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Thu, 2 Sep 2004 19:18:35 +0000 Subject: [PATCH] If '#' is sent for username, use callerid if available (bug #2301) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3713 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_voicemail.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index a811041ef3..dd227f13e0 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -3517,6 +3517,7 @@ static int vm_execmain(struct ast_channel *chan, void *data) struct ast_vm_user *vmu = NULL, vmus; char *context=NULL; int silentexit = 0; + char cid[256]=""; LOCAL_USER_ADD(u); memset(&vms, 0, sizeof(vms)); @@ -3576,10 +3577,21 @@ static int vm_execmain(struct ast_channel *chan, void *data) goto out; } if (ast_strlen_zero(vms.username)) { - if (option_verbose > 2) - ast_verbose(VERBOSE_PREFIX_3 "Username not entered\n"); - res = 0; - goto out; + char *callerid=NULL, *name=NULL; + if(chan->callerid != NULL) { + strncpy(cid, chan->callerid, sizeof(cid) - 1); + ast_callerid_parse(cid, &name, &callerid); + } + if(callerid != NULL) { + if (option_verbose > 2) + ast_verbose(VERBOSE_PREFIX_3 "No username but # key pressed. Using CID '%s'\n",callerid); + strncpy(vms.username, callerid, sizeof(vms.username) - 1); + } else { + if (option_verbose > 2) + ast_verbose(VERBOSE_PREFIX_3 "Username not entered\n"); + res = 0; + goto out; + } } if (useadsi) adsi_password(chan); -- GitLab