Author: sayer
Date: 2009-03-25 15:40:16 +0100 (Wed, 25 Mar 2009)
New Revision: 1335
Modified:
trunk/apps/voicemail/AnswerMachine.cpp
trunk/apps/voicemail/AnswerMachine.h
Log:
reenabled email_address override config, which got lost somewhere in the way
Modified: trunk/apps/voicemail/AnswerMachine.cpp
===================================================================
--- trunk/apps/voicemail/AnswerMachine.cpp 2009-03-25 12:59:32 UTC (rev
1334)
+++ trunk/apps/voicemail/AnswerMachine.cpp 2009-03-25 14:40:16 UTC (rev
1335)
@@ -72,6 +72,7 @@
EXPORT_SESSION_FACTORY(AnswerMachineFactory,MOD_NAME);
+string AnswerMachineFactory::EmailAddress;
string AnswerMachineFactory::RecFileExt;
string AnswerMachineFactory::AnnouncePath;
string AnswerMachineFactory::DefaultAnnounce;
@@ -478,6 +479,9 @@
DBG("Voicebox will%s save empty messages.\n",
SaveEmptyMsg?"":" not");
+ // override email address
+ EmailAddress = cfg.getParameter("email_address");
+
return 0;
}
@@ -495,22 +499,29 @@
int vm_mode = MODE_VOICEMAIL;
string iptel_app_param = getHeader(req.hdrs, PARAM_HDR);
+ string mode = get_header_keyvalue(iptel_app_param,"mod", "Mode");
- if (!iptel_app_param.length()) {
- throw AmSession::Exception(500, "voicemail: parameters not found");
- }
+ if (!EmailAddress.length()) {
- language = get_header_keyvalue(iptel_app_param, "lng", "Language");
- email = get_header_keyvalue(iptel_app_param, "eml", "Email-Address");
-
- string mode = get_header_keyvalue(iptel_app_param,"mod", "Mode");
- if (!mode.empty()) {
- if (mode == "box")
- vm_mode = MODE_BOX;
- else if (mode == "both")
- vm_mode = MODE_BOTH;
- else if (mode == "ann")
- vm_mode = MODE_ANN;
+ if (!iptel_app_param.length()) {
+ throw AmSession::Exception(500, "voicemail: parameters not found");
+ }
+
+ language = get_header_keyvalue(iptel_app_param, "lng", "Language");
+ email = get_header_keyvalue(iptel_app_param, "eml", "Email-Address");
+
+ if (!mode.empty()) {
+ if (mode == "box")
+ vm_mode = MODE_BOX;
+ else if (mode == "both")
+ vm_mode = MODE_BOTH;
+ else if (mode == "ann")
+ vm_mode = MODE_ANN;
+ }
+ } else {
+ // overrides email address
+ vm_mode = MODE_VOICEMAIL;
+ email = EmailAddress;
}
if (((vm_mode == MODE_BOTH) || (vm_mode == MODE_VOICEMAIL)) &&
@@ -519,7 +530,7 @@
email.c_str(), iptel_app_param.c_str());
throw AmSession::Exception(500, "voicemail: no email address");
}
-
+
user = get_header_keyvalue(iptel_app_param,"usr", "User");
if (!user.length())
user = req.user;
@@ -531,33 +542,33 @@
domain = get_header_keyvalue(iptel_app_param, "dom", "Domain");
if (!domain.length())
domain = req.domain;
-
+
typ = get_header_keyvalue(iptel_app_param, "typ", "Type");
if (!typ.length())
typ = DEFAULT_TYPE;
-
+
uid = get_header_keyvalue(iptel_app_param, "uid", "UserID");
if (uid.empty())
uid=user;
-
+
did = get_header_keyvalue(iptel_app_param, "did", "DomainID");
if (did.empty())
did=domain;
-
-
+
+
// checks
if (uid.empty())
throw AmSession::Exception(500, "voicemail: user missing");
-
+
if (sender.empty())
throw AmSession::Exception(500, "voicemail: sender missing");
-
+
if (((vm_mode == MODE_BOX) || (vm_mode == MODE_BOTH))
&& (NULL == MessageStorage)) {
throw AmSession::Exception(500, "voicemail: no message storage available");
}
-
-
+
+
DBG("voicemail invocation parameters: \n");
DBG(" Mode: <%s> \n", mode.c_str());
DBG(" Email: <%s> \n", email.c_str());
Modified: trunk/apps/voicemail/AnswerMachine.h
===================================================================
--- trunk/apps/voicemail/AnswerMachine.h 2009-03-25 12:59:32 UTC (rev
1334)
+++ trunk/apps/voicemail/AnswerMachine.h 2009-03-25 14:40:16 UTC (rev
1335)
@@ -73,6 +73,7 @@
AmDynInvoke* msg_storage;
public:
+ static string EmailAddress;
static string RecFileExt;
static string AnnouncePath;
static string DefaultAnnounce;
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev