From b527525ffc031bdc825dd8c95e5b41e89cff3488 Mon Sep 17 00:00:00 2001 From: Jeff Peeler Date: Wed, 3 Feb 2010 20:48:36 +0000 Subject: Add some additional option support for non-default parking lots. 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 --- main/features.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'main/features.c') diff --git a/main/features.c b/main/features.c index 8ff27ba2c..329dd17c5 100644 --- a/main/features.c +++ b/main/features.c @@ -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 */ -- cgit v1.2.3