]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_hep: Provide an option to pick the UUID type 14/2814/3
authorMatt Jordan <mjordan@digium.com>
Thu, 12 May 2016 01:17:15 +0000 (20:17 -0500)
committerMatt Jordan <mjordan@digium.com>
Fri, 13 May 2016 12:44:20 +0000 (07:44 -0500)
commit89ae4466eacc6ae2bef56b2e10000046be7ae2c0
treea2dbe01acfd33ac1c3ec2a28b5fc8f565567aa19
parenta01ce2b88912cd802bb045e40fe264906e55bc45
res_hep: Provide an option to pick the UUID type

At one point in time, it seemed like a good idea to use the Asterisk
channel name as the HEP correlation UUID. In particular, it felt like
this would be a useful identifier to tie PJSIP messages and RTCP
messages together, along with whatever other data we may eventually send
to Homer. This also had the benefit of keeping the correlation UUID
channel technology agnostic.

In practice, it isn't as useful as hoped, for two reasons:
1) The first INVITE request received doesn't have a channel. As a
   result, there is always an 'odd message out', leading it to be
   potentially uncorrelated in Homer.
2) Other systems sending capture packets (Kamailio) use the SIP Call-ID.
   This causes RTCP information to be uncorrelated to the SIP message
   traffic seen by those capture nodes.

In order to support both (in case someone is trying to use res_hep_rtcp
with a non-PJSIP channel), this patch adds a new option, uuid_type, with
two valid values - 'call-id' and 'channel'. The uuid_type option is used
by a module to determine the preferred UUID type. When available, that
source of a correlation UUID is used; when not, the more readily available
source is used.

For res_hep_pjsip:
 - uuid_type = call-id: the module uses the SIP Call-ID header value
 - uuid_type = channel: the module uses the channel name if available,
                        falling back to SIP Call-ID if not
For res_hep_rtcp:
 - uuid_type = call-id: the module uses the SIP Call-ID header if the
                        channel type is PJSIP and we have a channel,
                        falling back to the Stasis event provided
                        channel name if not
 - uuid_type = channel: the module uses the channel name

ASTERISK-25352 #close

Change-Id: Ide67e59a52d9c806e3cc0a797ea1a4b88a00122c
CHANGES
configs/samples/hep.conf.sample
include/asterisk/res_hep.h
res/res_hep.c
res/res_hep.exports.in
res/res_hep_pjsip.c
res/res_hep_rtcp.c