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

Reply via email to