Merge "res_parking: Fix blind transfer dynamic lots creation."

changes/79/2479/1
Joshua Colp 10 years ago committed by Gerrit Code Review
commit 77a9272431

@ -250,6 +250,20 @@ Queue
'queue show'.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
------------------------------------------------------------------------------
res_parking:
- The dynamic parking lot creation channel variables PARKINGDYNAMIC,
PARKINGDYNCONTEXT, PARKINGDYNEXTEN, and PARKINGDYNPOS are now looked
for in the parker's channel instead of the parked channel. This is only
of significance if the parker uses blind transfer or the DTMF one-step
parking feature. You need to use the double underscore '__' inheritance
for these variables. The indefinite inheritance is also recommended
for the PARKINGEXTEN variable.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
------------------------------------------------------------------------------

@ -687,13 +687,13 @@ void ast_unreal_call_setup(struct ast_channel *semi1, struct ast_channel *semi2)
ast_connected_line_copy_from_caller(ast_channel_connected(semi2), ast_channel_caller(semi1));
ast_channel_language_set(semi2, ast_channel_language(semi1));
ast_channel_musicclass_set(semi2, ast_channel_musicclass(semi1));
ast_channel_parkinglot_set(semi2, ast_channel_parkinglot(semi1));
/* Crossover the accountcode and peeraccount to cross the unreal bridge. */
ast_channel_accountcode_set(semi2, ast_channel_peeraccount(semi1));
ast_channel_peeraccount_set(semi2, ast_channel_accountcode(semi1));
ast_channel_musicclass_set(semi2, ast_channel_musicclass(semi1));
ast_channel_cc_params_init(semi2, ast_channel_get_cc_config_params(semi1));
/*

@ -496,7 +496,7 @@ struct ast_bridge *park_common_setup(struct ast_channel *parkee, struct ast_chan
lot = parking_lot_find_by_name(lot_name);
if (!lot) {
lot = parking_create_dynamic_lot(lot_name, parkee);
lot = parking_create_dynamic_lot(lot_name, parker);
}
if (!lot) {

@ -236,6 +236,7 @@ static struct ast_channel *park_local_transfer(struct ast_channel *parker, const
/* Before we actually dial out let's inherit appropriate information. */
ast_channel_lock_both(parker, parkee);
ast_channel_req_accountcodes(parkee, parker, AST_CHANNEL_REQUESTOR_REPLACEMENT);
ast_channel_parkinglot_set(parkee, ast_channel_parkinglot(parker));
ast_connected_line_copy_from_caller(ast_channel_connected(parkee), ast_channel_caller(parker));
ast_channel_inherit_variables(parker, parkee);
ast_channel_datastore_inherit(parker, parkee);
@ -481,6 +482,9 @@ static int parking_park_call(struct ast_bridge_channel *parker, char *exten, siz
ast_channel_unlock(parker->chan);
lot = parking_lot_find_by_name(lot_name);
if (!lot) {
lot = parking_create_dynamic_lot(lot_name, parker->chan);
}
if (!lot) {
ast_log(AST_LOG_WARNING, "Cannot Park %s: lot %s unknown\n",
ast_channel_name(parker->chan), lot_name);
@ -497,7 +501,8 @@ static int feature_park_call(struct ast_bridge_channel *bridge_channel, void *ho
{
SCOPED_MODULE_USE(AST_MODULE_SELF);
return parking_park_call(bridge_channel, NULL, 0);
parking_park_call(bridge_channel, NULL, 0);
return 0;
}
/*!

Loading…
Cancel
Save