Merge "res_hep_rtcp: Provide chan_sip Call-ID for RTCP messages."

This commit is contained in:
Jenkins2 2017-05-11 16:39:54 -05:00 committed by Gerrit Code Review
commit 57217e4cc2
3 changed files with 25 additions and 5 deletions

View File

@ -51,6 +51,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 14.3.0 to Asterisk 14.4.0 ------------
------------------------------------------------------------------------------

View File

@ -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.

View File

@ -53,12 +53,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);