mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
res_parking: Replace Parker snapshots with ParkerDialString
This process also involved a large amount of rework regarding how to redial the Parker when a channel leaves a parking lot due to timeout. An attended transfer channel variable has been added to attended transfers to extensions that will eventually park (but haven't at the time of transfer) as well. This resolves one of the two BUGBUG comments remaining in res_parking. (issues ASTERISK-21877) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2638/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -79,13 +79,12 @@ static void parked_call_payload_destructor(void *obj)
|
||||
struct ast_parked_call_payload *park_obj = obj;
|
||||
|
||||
ao2_cleanup(park_obj->parkee);
|
||||
ao2_cleanup(park_obj->parker);
|
||||
ao2_cleanup(park_obj->retriever);
|
||||
ast_string_field_free_memory(park_obj);
|
||||
}
|
||||
|
||||
struct ast_parked_call_payload *ast_parked_call_payload_create(enum ast_parked_call_event_type event_type,
|
||||
struct ast_channel_snapshot *parkee_snapshot, struct ast_channel_snapshot *parker_snapshot,
|
||||
struct ast_channel_snapshot *parkee_snapshot, const char *parker_dial_string,
|
||||
struct ast_channel_snapshot *retriever_snapshot, const char *parkinglot,
|
||||
unsigned int parkingspace, unsigned long int timeout,
|
||||
unsigned long int duration)
|
||||
@@ -106,11 +105,6 @@ struct ast_parked_call_payload *ast_parked_call_payload_create(enum ast_parked_c
|
||||
ao2_ref(parkee_snapshot, +1);
|
||||
payload->parkee = parkee_snapshot;
|
||||
|
||||
if (parker_snapshot) {
|
||||
ao2_ref(parker_snapshot, +1);
|
||||
payload->parker = parker_snapshot;
|
||||
}
|
||||
|
||||
if (retriever_snapshot) {
|
||||
ao2_ref(retriever_snapshot, +1);
|
||||
payload->retriever = retriever_snapshot;
|
||||
@@ -120,6 +114,10 @@ struct ast_parked_call_payload *ast_parked_call_payload_create(enum ast_parked_c
|
||||
ast_string_field_set(payload, parkinglot, parkinglot);
|
||||
}
|
||||
|
||||
if (parker_dial_string) {
|
||||
ast_string_field_set(payload, parker_dial_string, parker_dial_string);
|
||||
}
|
||||
|
||||
payload->parkingspace = parkingspace;
|
||||
payload->timeout = timeout;
|
||||
payload->duration = duration;
|
||||
|
Reference in New Issue
Block a user