diff options
author | Mark Spencer <markster@digium.com> | 2004-09-02 19:18:35 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2004-09-02 19:18:35 +0000 |
commit | 93818c761ba3dac3ccc44d3e9154c5ba690a5ff2 (patch) | |
tree | f8520f72bfaafec44c60634368cad7b103672caf /apps/app_voicemail.c | |
parent | bc72d7584a6034039dd70f311b158ccdbbbab912 (diff) |
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
Diffstat (limited to 'apps/app_voicemail.c')
-rwxr-xr-x | apps/app_voicemail.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index a811041ef..dd227f13e 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); |