aboutsummaryrefslogtreecommitdiffstats
path: root/main/global_datastores.c
diff options
context:
space:
mode:
authortwilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-01-30 17:47:41 +0000
committertwilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-01-30 17:47:41 +0000
commit739550eb035e3081d45df7ac1f244eddf82a3017 (patch)
tree879c18b4f776cfa4cdcd9ad64ebd9d41f9ee4974 /main/global_datastores.c
parent0ff5ae8abf03b712c34e869948652f20dbd858f9 (diff)
Fix feature inheritance with builtin features
When using builtin features like parking and transfers, the AST_FEATURE_* flags would not be set correctly for all instances when either performing a builtin attended transfer, or parking a call and getting the timeout callback. Also, there was no way on a per-call basis to specify what features someone should have on picking up a parked call (since that doesn't involve the Dial() command). There was a global option for setting whether or not all users who pickup a parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT, AUTOMON, or PARKCALL. This patch: 1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the dialplan or with setvar in channels that support it. This variable can be set to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the equivalent dial options), to set what features should be activated on this channel. The patch moves the setting of the features datastores into the bridging code instead of app_dial to help facilitate this. 2) adds global options parkedcallparking, parkedcallhangup, and parkedcallrecording to be similar to the parkedcalltransfers option for globally setting features. 3) has builtin_atxfer call builtin_parkcall if being transfered to the parking extension since tracking everything through multiple masquerades, etc. is difficult and error-prone 4) attempts to fix all cases of return calls from parking and completed builtin transfers not having the correct permissions (closes issue #14274) Reported by: aragon Patches: fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396) Tested by: aragon, otherwiseguy Review http://reviewboard.digium.com/r/138/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@172517 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/global_datastores.c')
-rw-r--r--main/global_datastores.c27
1 files changed, 0 insertions, 27 deletions
diff --git a/main/global_datastores.c b/main/global_datastores.c
index ca04a0fe9..5b9630257 100644
--- a/main/global_datastores.c
+++ b/main/global_datastores.c
@@ -79,35 +79,8 @@ static void *dialed_interface_duplicate(void *data)
return new_list;
}
-
-static void *dial_features_duplicate(void *data)
-{
- struct ast_dial_features *df = data, *df_copy;
-
- if (!(df_copy = ast_calloc(1, sizeof(*df)))) {
- return NULL;
- }
-
- memcpy(df_copy, df, sizeof(*df));
-
- return df_copy;
-}
-
-static void dial_features_destroy(void *data) {
- struct ast_dial_features *df = data;
- if (df) {
- ast_free(df);
- }
-}
-
const struct ast_datastore_info dialed_interface_info = {
.type = "dialed-interface",
.destroy = dialed_interface_destroy,
.duplicate = dialed_interface_duplicate,
};
-
-const struct ast_datastore_info dial_features_info = {
- .type = "dial-features",
- .destroy = dial_features_destroy,
- .duplicate = dial_features_duplicate,
-};