summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES6
-rw-r--r--configs/samples/hep.conf.sample6
-rw-r--r--res/res_hep_rtcp.c18
3 files changed, 25 insertions, 5 deletions
diff --git a/CHANGES b/CHANGES
index d93903dfe..990e5d8ac 100644
--- a/CHANGES
+++ b/CHANGES
@@ -33,6 +33,12 @@ res_pjsip_config_wizard
endpoint/outbound_proxy, aor/outbound_proxy and registration/outbound_proxy
parameters.
+res_hep_rtcp
+------------------
+ * If the 'call-id' value is specified for the uuid_type option and a
+ chan_sip channel is used the resulting HEP traffic will now contain the
+ SIP Call-ID instead of the Asterisk channel name.
+
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.14.0 to Asterisk 13.15.0 ----------
------------------------------------------------------------------------------
diff --git a/configs/samples/hep.conf.sample b/configs/samples/hep.conf.sample
index 3d1e74139..32bd8df39 100644
--- a/configs/samples/hep.conf.sample
+++ b/configs/samples/hep.conf.sample
@@ -24,5 +24,9 @@ capture_id = 1234 ; A unique integer identifier for this
; with each packet from this server.
uuid_type = call-id ; Specify the preferred source for the Homer
; correlation UUID. Valid options are:
- ; - 'call-id' for the PJSIP SIP Call-ID
+ ; - 'call-id' for the PJSIP or chan_sip SIP
+ ; Call-ID
; - 'channel' for the Asterisk channel name
+ ; Note: If 'call-id' is specified but the
+ ; channel is not PJSIP or chan_sip then the
+ ; Asterisk channel name will be used instead.
diff --git a/res/res_hep_rtcp.c b/res/res_hep_rtcp.c
index f4f1dfe3b..21e7d6be7 100644
--- a/res/res_hep_rtcp.c
+++ b/res/res_hep_rtcp.c
@@ -55,12 +55,22 @@ static char *assign_uuid(struct ast_json *json_channel)
return NULL;
}
- if (uuid_type == HEP_UUID_TYPE_CALL_ID && ast_begins_with(channel_name, "PJSIP")) {
- struct ast_channel *chan = ast_channel_get_by_name(channel_name);
+ if (uuid_type == HEP_UUID_TYPE_CALL_ID) {
+ struct ast_channel *chan = NULL;
char buf[128];
- if (chan && !ast_func_read(chan, "CHANNEL(pjsip,call-id)", buf, sizeof(buf))) {
- uuid = ast_strdup(buf);
+ if (ast_begins_with(channel_name, "PJSIP")) {
+ chan = ast_channel_get_by_name(channel_name);
+
+ if (chan && !ast_func_read(chan, "CHANNEL(pjsip,call-id)", buf, sizeof(buf))) {
+ uuid = ast_strdup(buf);
+ }
+ } else if (ast_begins_with(channel_name, "SIP")) {
+ chan = ast_channel_get_by_name(channel_name);
+
+ if (chan && !ast_func_read(chan, "SIP_HEADER(call-id)", buf, sizeof(buf))) {
+ uuid = ast_strdup(buf);
+ }
}
ast_channel_cleanup(chan);