From a3325e5bbe398b592a301a94e235635bd42330f4 Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 15 Sep 2004 19:54:46 +0000 Subject: [PATCH] Make ADSI in voicemail configurable (bug #2209) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3788 f38db490-d61c-443f-a65b-d21fe96a405b --- apps/app_voicemail.c | 33 ++++++++++++++++++++++++--------- configs/voicemail.conf.sample | 6 ++++++ 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 42e0349fa..d442cde0a 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -184,14 +184,8 @@ static char ext_pass_cmd[128]; static char *tdesc = "Comedian Mail (Voicemail System)"; -static char *adapp = "\x00\x00\x00\x0F"; - -static char *adsec = "\x9B\xDB\xF7\xAC"; - static char *addesc = "Comedian Mail"; -static int adver = 1; - static char *synopsis_vm = "Leave a voicemail message"; @@ -283,6 +277,10 @@ static char pagerfromstring[100]; static char emailtitle[100]; static char charset[32] = "ISO-8859-1"; +static char adsifdn[4] = "\x00\x00\x00\x0F"; +static char adsisec[4] = "\x9B\xDB\xF7\xAC"; +static int adsiver = 1; + STANDARD_LOCAL_USER; @@ -2044,7 +2042,7 @@ static int adsi_load_vmail(struct ast_channel *chan, int *useadsi) bytes += adsi_data_mode(buf + bytes); adsi_transmit_message(chan, buf, bytes, ADSI_MSG_DISPLAY); - if (adsi_begin_download(chan, addesc, adapp, adsec, adver)) { + if (adsi_begin_download(chan, addesc, adsifdn, adsisec, adsiver)) { bytes = 0; bytes += adsi_display(buf + bytes, ADSI_COMM_PAGE, 3, ADSI_JUST_CENT, 0, "Load Cancelled.", ""); bytes += adsi_display(buf + bytes, ADSI_COMM_PAGE, 4, ADSI_JUST_CENT, 0, "ADSI Unavailable", ""); @@ -2142,7 +2140,7 @@ static int adsi_load_vmail(struct ast_channel *chan, int *useadsi) bytes = 0; /* Load the session now */ - if (adsi_load_session(chan, adapp, adver, 1) == 1) { + if (adsi_load_session(chan, adsifdn, adsiver, 1) == 1) { *useadsi = 1; bytes += adsi_display(buf + bytes, ADSI_COMM_PAGE, 3, ADSI_JUST_CENT, 0, "Scripts Loaded!", ""); } else @@ -2157,7 +2155,7 @@ static void adsi_begin(struct ast_channel *chan, int *useadsi) int x; if (!adsi_available(chan)) return; - x = adsi_load_session(chan, adapp, adver, 1); + x = adsi_load_session(chan, adsifdn, adsiver, 1); if (x < 0) return; if (!x) { @@ -4347,6 +4345,7 @@ static int load_config(void) char *exitcxt = NULL; char *extpc; int x; + int tmpadsi[4]; cfg = ast_load(VOICEMAIL_CONFIG); ast_mutex_lock(&vmlock); @@ -4642,6 +4641,22 @@ static int load_config(void) strncpy(pagerfromstring,s,sizeof(pagerfromstring)-1); if ((s=ast_variable_retrieve(cfg, "general", "charset"))) strncpy(charset,s,sizeof(charset)-1); + if ((s=ast_variable_retrieve(cfg, "general", "adsifdn"))) { + sscanf(s, "%2x%2x%2x%2x", &tmpadsi[0], &tmpadsi[1], &tmpadsi[2], &tmpadsi[3]); + for (x=0; x<4; x++) { + memcpy(&adsifdn[x], &tmpadsi[x], 1); + } + } + if ((s=ast_variable_retrieve(cfg, "general", "adsisec"))) { + sscanf(s, "%2x%2x%2x%2x", &tmpadsi[0], &tmpadsi[1], &tmpadsi[2], &tmpadsi[3]); + for (x=0; x<4; x++) { + memcpy(&adsisec[x], &tmpadsi[x], 1); + } + } + if ((s=ast_variable_retrieve(cfg, "general", "adsiver"))) + if (atoi(s)) { + adsiver = atoi(s); + } if ((s=ast_variable_retrieve(cfg, "general", "emailtitle"))) { ast_log(LOG_NOTICE, "Keyword 'emailtitle' is DEPRECATED, please use 'emailsubject' instead.\n"); strncpy(emailtitle,s,sizeof(emailtitle)-1); diff --git a/configs/voicemail.conf.sample b/configs/voicemail.conf.sample index f026e3d82..315611a76 100755 --- a/configs/voicemail.conf.sample +++ b/configs/voicemail.conf.sample @@ -36,6 +36,12 @@ maxlogins=3 ;directoryintro=dir-intro ; The character set for voicemail messages can be specified here ;charset=ISO-8859-1 +; The ADSI feature descriptor number to download to +;adsifdn=0000000F +; The ADSI security lock code +;adsisec=9BDBF7AC +; The ADSI voicemail application version number. +;adsiver=1 ; Skip the "[PBX]:" string from the message title ;pbxskip=yes ; Change the From: string