[Asterisk-Users] intel 537

Owais Zuber owais_asterisk at yahoo.com
Mon Apr 26 04:22:49 MST 2004


--- Brian Buhrow <buhrow at lothlorien.nfbcal.org> wrote:
> 	Hello steve.  Here is a patch I wrote for
> app_voicemail.c which does
> exactly as you describe.  When the outgoing message
> is playing, if the
> listener hits the "*" key, they're prompted for a
> mailbox and password,
> whereupon they can check their voicemail as if they
> were using the internal
> phone.  I found no other way of doing this.
> 	If you patch your app_voicemail.c, I have V1.44
> from CVS as of
> 12/11/2003, with this diff file, and recompile the
> app_voicemail.so module
> and install it in /usr/lib/asterisk/modules and
> then, from the command line
> of Asterisk, do:
> unload app_voicemail.so
> load app_voicemail.so
> you should have the new feature, all without having
> to stop and restart
> asterisk.
> Good luck, and let me know if it works for you.
> -Brian
> 
> --- app_voicemail.c.fcs	Thu Dec 11 12:55:25 2003
> +++ app_voicemail.c	Sat Feb 28 16:21:15 2004
> @@ -1083,7 +1083,7 @@
>  	char prefile[256]="";
>  	char fmt[80];
>  	char *context;
> -	char *ecodes = "#";
> +	char *ecodes = "*#";
>  	char *stringp;
>  	time_t start;
>  	time_t end;
> @@ -1117,12 +1117,12 @@
>  		if (mkdir(dir, 0700) && (errno != EEXIST))
>  			ast_log(LOG_WARNING, "mkdir '%s' failed: %s\n",
> dir, strerror(errno));
>  		if (ast_exists_extension(chan,
> strlen(chan->macrocontext) ? chan->macrocontext :
> chan->context, "o", 1, chan->callerid))
> -			ecodes = "#0";
> +			ecodes = "*#0";
>  		/* Play the beginning intro if desired */
>  		if (strlen(prefile)) {
>  			if (ast_fileexists(prefile, NULL, NULL) > 0) {
>  				if (ast_streamfile(chan, prefile,
> chan->language) > -1) 
> -				    res = ast_waitstream(chan, "#0");
> +				    res = ast_waitstream(chan, "*#0");
>  			} else {
>  				ast_log(LOG_DEBUG, "%s doesn't exist, doing
> what we can\n", prefile);
>  				res = invent_message(chan, vmu->context, ext,
> busy, ecodes);
> @@ -1138,6 +1138,10 @@
>  			silent = 1;
>  			res = 0;
>  		}
> +		if (res == '*') { /*break out to main vm*/
> +			free_user(vmu);
> +			return(100);
> +		}
>  		if (!res && !silent) {
>  			res = ast_streamfile(chan, INTRO,
> chan->language);
>  			if (!res)
> @@ -1156,6 +1160,10 @@
>  			free_user(vmu);
>  			return 0;
>  		}
> +		if (res == '*') { /*break out to main vm*/
> +			free_user(vmu);
> +			return(100);
> +		}
>  		if (res >= 0) {
>  			/* Unless we're *really* silent, try to send the
> beep */
>  			res = ast_streamfile(chan, "beep",
> chan->language);
> @@ -2678,6 +2686,9 @@
>  	}
>  	res = leave_voicemail(chan, ext, silent, busy,
> unavail);
>  	LOCAL_USER_REMOVE(u);
> +	if (res == 100) { /*The user requested vm main*/
> +		res = vm_execmain(chan, NULL);
> +	}
>  	return res;
>  }
>  
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
>
http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>   
http://lists.digium.com/mailman/listinfo/asterisk-users



	
		
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25¢
http://photos.yahoo.com/ph/print_splash



More information about the asterisk-users mailing list