diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/bridging.c | 3 | ||||
-rw-r--r-- | main/cel.c | 2 | ||||
-rw-r--r-- | main/channel.c | 11 | ||||
-rw-r--r-- | main/features.c | 40 | ||||
-rw-r--r-- | main/parking.c | 12 |
5 files changed, 19 insertions, 49 deletions
diff --git a/main/bridging.c b/main/bridging.c index 110f5255b..348ce48e8 100644 --- a/main/bridging.c +++ b/main/bridging.c @@ -719,8 +719,9 @@ static int bridge_channel_push(struct ast_bridge_channel *bridge_channel) bridge_channel_pull(swap); } - /* Clear any BLINDTRANSFER since the transfer has completed. */ + /* Clear any BLINDTRANSFER and ATTENDEDTRANSFER since the transfer has completed. */ pbx_builtin_setvar_helper(bridge_channel->chan, "BLINDTRANSFER", NULL); + pbx_builtin_setvar_helper(bridge_channel->chan, "ATTENDEDTRANSFER", NULL); bridge->reconfigured = 1; return 0; diff --git a/main/cel.c b/main/cel.c index 30838f369..bc1182aa7 100644 --- a/main/cel.c +++ b/main/cel.c @@ -1333,7 +1333,7 @@ static void cel_parking_cb( case PARKED_CALL: report_event_snapshot(parked_payload->parkee, AST_CEL_PARK_START, NULL, parked_payload->parkinglot, - S_COR(parked_payload->parker, parked_payload->parker->name, NULL)); + parked_payload->parker_dial_string); break; case PARKED_CALL_TIMEOUT: report_event_snapshot(parked_payload->parkee, AST_CEL_PARK_END, NULL, "ParkedCallTimeOut", NULL); diff --git a/main/channel.c b/main/channel.c index 3bc5c0a75..ce11e50b7 100644 --- a/main/channel.c +++ b/main/channel.c @@ -6565,6 +6565,17 @@ const char *ast_channel_oldest_linkedid(const char *a, const char *b) } } +void ast_channel_name_to_dial_string(char *channel_name) +{ + char *dash; + + /* Truncate after the dash */ + dash = strrchr(channel_name, '-'); + if (dash) { + *dash = '\0'; + } +} + /*! * \internal * \brief Transfer COLP between target and transferee channels. diff --git a/main/features.c b/main/features.c index 577a17655..9128551d8 100644 --- a/main/features.c +++ b/main/features.c @@ -282,46 +282,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") <para>Bridge together two channels already in the PBX.</para> </description> </manager> - <managerEvent language="en_US" name="ParkedCallTimeOut"> - <managerEventInstance class="EVENT_FLAG_CALL"> - <synopsis>Raised when a parked call times out.</synopsis> - <syntax> - <parameter name="Exten"> - <para>The parking lot extension.</para> - </parameter> - <parameter name="Channel"/> - <parameter name="Parkinglot"> - <para>The name of the parking lot.</para> - </parameter> - <parameter name="CallerIDNum"/> - <parameter name="CallerIDName"/> - <parameter name="ConnectedLineNum"/> - <parameter name="ConnectedLineName"/> - <parameter name="UniqueID"/> - </syntax> - <see-also> - <ref type="managerEvent">ParkedCall</ref> - </see-also> - </managerEventInstance> - </managerEvent> - <managerEvent language="en_US" name="ParkedCallGiveUp"> - <managerEventInstance class="EVENT_FLAG_CALL"> - <synopsis>Raised when a parked call hangs up while in the parking lot.</synopsis> - <syntax> - <xi:include xpointer="xpointer(/docs/managerEvent[@name='ParkedCallTimeOut']/managerEventInstance/syntax/parameter[@name='Exten'])" /> - <parameter name="Channel"/> - <xi:include xpointer="xpointer(/docs/managerEvent[@name='ParkedCallTimeOut']/managerEventInstance/syntax/parameter[@name='Parkinglot'])" /> - <parameter name="CallerIDNum"/> - <parameter name="CallerIDName"/> - <parameter name="ConnectedLineNum"/> - <parameter name="ConnectedLineName"/> - <parameter name="UniqueID"/> - </syntax> - <see-also> - <ref type="managerEvent">ParkedCall</ref> - </see-also> - </managerEventInstance> - </managerEvent> <managerEvent language="en_US" name="Pickup"> <managerEventInstance class="EVENT_FLAG_CALL"> <synopsis>Raised when a call pickup occurs.</synopsis> diff --git a/main/parking.c b/main/parking.c index a3da860b7..02695cd01 100644 --- a/main/parking.c +++ b/main/parking.c @@ -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; |