summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/bridging.c3
-rw-r--r--main/cel.c2
-rw-r--r--main/channel.c11
-rw-r--r--main/features.c40
-rw-r--r--main/parking.c12
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;