diff options
author | Jonathan Rose <jrose@digium.com> | 2014-05-22 15:52:30 +0000 |
---|---|---|
committer | Jonathan Rose <jrose@digium.com> | 2014-05-22 15:52:30 +0000 |
commit | d00882108fabd3798aa6566aa5697d82459e753e (patch) | |
tree | 0cb38a4b41e85b73f89486b8492a0fc3078e3ba9 /main/parking.c | |
parent | 912bbdd1ddf98b4e6d99b3cb258f103c09ee132f (diff) |
res_pjsip_refer: Fix bugs involving Parking/PJSIP/transfers
PJSIP would never send the final 200 Notify for a blind transfer
when transferring to parking. This patch fixes that. In addition,
it fixes a reference leak when performing blind transfers to
non-bridging extensions.
Review: https://reviewboard.asterisk.org/r/3485/
........
Merged revisions 414400 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@414403 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/parking.c')
-rw-r--r-- | main/parking.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/main/parking.c b/main/parking.c index db274a3ff..f7f1dfb5c 100644 --- a/main/parking.c +++ b/main/parking.c @@ -142,7 +142,9 @@ int ast_parking_park_bridge_channel(struct ast_bridge_channel *parkee, const cha return table->parking_park_bridge_channel(parkee, parkee_uuid, parker_uuid, app_data); } -int ast_parking_blind_transfer_park(struct ast_bridge_channel *parker, const char *context, const char *exten) +int ast_parking_blind_transfer_park(struct ast_bridge_channel *parker, + const char *context, const char *exten, transfer_channel_cb parked_channel_cb, + struct transfer_channel_data *parked_channel_data) { RAII_VAR(struct ast_parking_bridge_feature_fn_table *, table, ao2_global_obj_ref(parking_provider), ao2_cleanup); @@ -153,10 +155,10 @@ int ast_parking_blind_transfer_park(struct ast_bridge_channel *parker, const cha if (table->module_info) { SCOPED_MODULE_USE(table->module_info->self); - return table->parking_blind_transfer_park(parker, context, exten); + return table->parking_blind_transfer_park(parker, context, exten, parked_channel_cb, parked_channel_data); } - return table->parking_blind_transfer_park(parker, context, exten); + return table->parking_blind_transfer_park(parker, context, exten, parked_channel_cb, parked_channel_data); } int ast_parking_park_call(struct ast_bridge_channel *parker, char *exten, size_t length) |