Add some additional option support for non-default parking lots.
authorJeff Peeler <jpeeler@digium.com>
Wed, 3 Feb 2010 20:48:36 +0000 (20:48 +0000)
committerJeff Peeler <jpeeler@digium.com>
Wed, 3 Feb 2010 20:48:36 +0000 (20:48 +0000)
The options are: parkedcallparking, parkedcallhangup, parkedcallrecording, and
parkedcalltransfers. Previously these options were only available for the
default parking lot.

(closes issue #16641)
Reported by: bluecrow76
Patches:
      asterisk-1.6.2.1-features.c.diff uploaded by bluecrow76 (license 270)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244598 65c4cc65-6c06-0410-ace0-fbb531ad65f3

CHANGES
main/features.c

diff --git a/CHANGES b/CHANGES
index bda1cf1..0327789 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1300,6 +1300,8 @@ Call Features (res_features) Changes
     pickup
   * Added parkedcallrecording option to control one-touch record w/ parking
     pickup
+  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
+    parkedcalltransfers option support for multiple parking lots.
   * Added BRIDGE_FEATURES variable to set available features for a channel
   * The built-in method for doing attended transfers has been updated to
      include some new options that allow you to have the transferee sent
index 8ff27ba..329dd17 100644 (file)
@@ -3865,7 +3865,39 @@ static struct ast_parkinglot *build_parkinglot(char *name, struct ast_variable *
                        }
                } else if (!strcasecmp(confvar->name, "findslot")) {
                        parkinglot->parkfindnext = (!strcasecmp(confvar->value, "next"));
-               }
+               } else if (!strcasecmp(confvar->name, "parkedcalltransfers")) {
+                        ast_log(LOG_DEBUG, "Setting parking lot %s %s to %s\n", name, confvar->name, confvar->value);
+                        if (!strcasecmp(confvar->value, "both"))
+                                parkinglot->parkedcalltransfers = AST_FEATURE_FLAG_BYBOTH;
+                        else if (!strcasecmp(confvar->value, "caller"))
+                                parkinglot->parkedcalltransfers = AST_FEATURE_FLAG_BYCALLER;
+                        else if (!strcasecmp(confvar->value, "callee"))
+                                parkinglot->parkedcalltransfers = AST_FEATURE_FLAG_BYCALLEE;
+                } else if (!strcasecmp(confvar->name, "parkedcallreparking")) {
+                        ast_log(LOG_DEBUG, "Setting parking lot %s %s to %s\n", name, confvar->name, confvar->value);
+                        if (!strcasecmp(confvar->value, "both"))
+                                parkinglot->parkedcallreparking = AST_FEATURE_FLAG_BYBOTH;
+                        else if (!strcasecmp(confvar->value, "caller"))
+                                parkinglot->parkedcallreparking = AST_FEATURE_FLAG_BYCALLER;
+                        else if (!strcasecmp(confvar->value, "callee"))
+                                parkinglot->parkedcallreparking = AST_FEATURE_FLAG_BYCALLEE;
+                } else if (!strcasecmp(confvar->name, "parkedcallhangup")) {
+                        ast_log(LOG_DEBUG, "Setting parking lot %s %s to %s\n", name, confvar->name, confvar->value);
+                        if (!strcasecmp(confvar->value, "both"))
+                                parkinglot->parkedcallhangup = AST_FEATURE_FLAG_BYBOTH;
+                        else if (!strcasecmp(confvar->value, "caller"))
+                                parkinglot->parkedcallhangup = AST_FEATURE_FLAG_BYCALLER;
+                        else if (!strcasecmp(confvar->value, "callee"))
+                                parkinglot->parkedcallhangup = AST_FEATURE_FLAG_BYCALLEE;
+                } else if (!strcasecmp(confvar->name, "parkedcallrecording")) {
+                        ast_log(LOG_DEBUG, "Setting parking lot %s %s to %s\n", name, confvar->name, confvar->value);
+                        if (!strcasecmp(confvar->value, "both"))
+                                parkinglot->parkedcallrecording = AST_FEATURE_FLAG_BYBOTH;
+                        else if (!strcasecmp(confvar->value, "caller"))
+                                parkinglot->parkedcallrecording = AST_FEATURE_FLAG_BYCALLER;
+                        else if (!strcasecmp(confvar->value, "callee"))
+                                parkinglot->parkedcallrecording = AST_FEATURE_FLAG_BYCALLEE;
+                }
                confvar = confvar->next;
        }
        /* make sure parkingtime is set if not specified */