diff options
author | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-01-12 23:21:29 +0000 |
---|---|---|
committer | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-01-12 23:21:29 +0000 |
commit | 07ddb232b321ca7e213c04a4b50fcff07ea6bc7c (patch) | |
tree | 25f2e07c91b4e00b3f461488cefeb45ad68c51f9 | |
parent | faee778ff78f07b0fe8f2dea253f7b4b69440dd5 (diff) |
Implement pin usage in MeetMe. Bug #816
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1990 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | apps/app_meetme.c | 33 | ||||
-rwxr-xr-x | apps/app_voicemail.c | 6 | ||||
-rwxr-xr-x | sounds.txt | 4 |
3 files changed, 37 insertions, 6 deletions
diff --git a/apps/app_meetme.c b/apps/app_meetme.c index b1555e9fd..580ebb5c3 100755 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -699,13 +699,36 @@ static int conf_exec(struct ast_channel *chan, void *data) strcpy(confno, ""); } else { if (strlen(cnf->pin)) { - /* XXX Should prompt user for pin if pin is required XXX */ + char pin[AST_MAX_EXTENSION]; + if (inpin && *inpin) { + strncpy(pin, inpin, sizeof(pin) - 1); + } else { + /* Prompt user for pin if pin is required */ + res = ast_app_getdata(chan, "conf-getpin", pin, sizeof(pin) - 1, 0); + } + if (res == 0) { + if (!strcasecmp(pin, cnf->pin)) { + /* Pin correct */ + allowretry = 0; + /* Run the conference */ + res = conf_run(chan, cnf, confflags); + } + } + /* Pin invalid or error */ + res = ast_streamfile(chan, "conf-invalidpin", chan->language); + if (!res) + ast_waitstream(chan, ""); + res = -1; + if (allowretry) + strcpy(confno, ""); + } else { + /* No pin required */ + allowretry = 0; + + /* Run the conference */ + res = conf_run(chan, cnf, confflags); } - allowretry = 0; - - /* Run the conference */ - res = conf_run(chan, cnf, confflags); } } } while (allowretry); diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 10bd7d848..c1902a036 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -1467,8 +1467,12 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int myserveremail = vmu->serveremail; sendpage(myserveremail, vmu->pager, msgnum, ext, chan->callerid, end - start, vmu); } - } else + } else { + res = ast_streamfile(chan, "vm-mailboxfull", chan->language); + if (!res) + res = ast_waitstream(chan, ""); ast_log(LOG_WARNING, "No more messages possible\n"); + } } else ast_log(LOG_WARNING, "No format for saving voicemail?\n"); free_user(vmu); diff --git a/sounds.txt b/sounds.txt index 924245d57..b3acf57ec 100755 --- a/sounds.txt +++ b/sounds.txt @@ -28,8 +28,12 @@ %conf-getchannel.gsm%Please enter your channel number followed by the pound key. +%conf-getpin.gsm%Please enter the conference pin number. + %conf-invalid.gsm%That is not a valid conference number. Please try again. +%conf-invalidpin.gsm%That pin is invalid for this conference. + %conf-onlyperson.gsm%You are currently the only person in this conference. %demo-abouttotry.gsm%I am about to attempt an Inter-Asterisk Exchange connection to a demonstration server located at Digium. In order for this to work you must already be connected to the Internet. Please wait a moment while I attempt to make the connection. |