ISUP correlation_id and and relating it to SIP

42 views
Skip to first unread message

Holger Freyther

unread,
Oct 14, 2016, 7:25:06 AM10/14/16
to Homer Developers
Good Morning,

I am wondering what to put into the correlation_id for ISUP. There is no such thing as Call-Id or any other free text field. The initial message contains the called and calling party number but not more info. The only information that is in all messages is the Circuit Identity (CIC) and the OPC/DPC from layers below.

Right now I think of PC-PC-CIC as correlation id and sort DPC/OPC by size so it will be the same regardless of which side the message sends. This allows to uniquely identify a CIC but not a "call" yet.

I can think of creating a call-id everytime an IAM message is seen and use that for messages too. It will only work if all traffic is going through where the captagent is sitting. Alternatively I have to deal with that when storing/handling the HEP message at the repository/storage.


do you have an idea what to use?

holger

Alexandr Dubovikov

unread,
Oct 14, 2016, 9:23:34 AM10/14/16
to home...@googlegroups.com

Hi Holger,

Base on my experience,  use a combination of CIC_OPC_DPC can be useful only inside SS7 network( correlation between trunks). Thinking global the best way use an external DB to convert CIC DPC to session_id that you use in MGCP/MEGACO and later in a SIP session. This give you full picture and full correlation across multiple protocols.

Wbr,
Alexandr


--
You received this message because you are subscribed to the Google Groups "Homer Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to homer-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Holger Freyther

unread,
Oct 23, 2016, 11:21:07 AM10/23/16
to Homer Developers


On Friday, October 14, 2016 at 3:23:34 PM UTC+2, Alexandr Dubovikov wrote:

Hi Holger,


Hey!
 

Base on my experience,  use a combination of CIC_OPC_DPC can be useful only inside SS7 network( correlation between trunks). Thinking global the best way use an external DB to convert CIC DPC to session_id that you use in MGCP/MEGACO and later in a SIP session. This give you full picture and full correlation across multiple protocols.


where would you turn this into a global session_id? There is no field in ISUP (afaik). So how would you allocate it and how would you synchronize it across systems? Would you manage such an id in captagent? Convert the correlation id once it hits a system like kamailio (e.g. use last session id for CIC_OPC_DPC/CIC_DPC_OPC unless this message is an IAM?).

holger

Alexandr Dubovikov

unread,
Oct 23, 2016, 11:44:09 AM10/23/16
to home...@googlegroups.com
Hi,

of course ISUP doesn't have this field. This should be an external DB there you have mapped OPC-DPC-CIC to your MGCP's endpoints name (http://www.cisco.com/c/en/us/support/docs/voice/media-gateway-control-protocol-mgcp/44130-understanding-mgcp.html). This is first step correlation. Second you have to correlate MGCP or MEGACO session name with SIP session id (http://www.wseas.us/e-library/conferences/2010/Corfu/COMMUNICATIONS/COMMUNICATIONS-40.pdf), Only in this case you will have complete chain. 

How I see it in case if you have MGCP/MEGACO: the captagent receive any SS7 message (IAM, REL, CPG)  and do external lookup (REDIS, MySQL) and receive predefined MGCP endpoints name and set it as correlation_id in HEP. The captagent have to duplicate also MGCP/MEGCAO packets and set same correlation_id as for SS7 (here we do no lookup). As an additional step we can extract session id from MGCP and set it as SESSION correlation_id (new field) and do same for SIP.

Without MGCP: you have to implement in SIP an additional header that will include OPC-DPC-CIC (comma separated: i.e: X-SS7: opc=1234;dp=2345;cic=12) and use this value as correlation_id.

sorry if I wrote not clear :-) I am open for any questions and discussions.

Wbr,
Alexandr



David Villasmil

unread,
Dec 15, 2016, 10:54:19 AM12/15/16
to Homer Developers
If this is over sigtran, you can use the transaction id... it's been a while, but i remember i created a tracer on multiple points that would send the data to a central mongodb, on which i'd use the tid's...

David Villasmil

unread,
Dec 15, 2016, 10:56:01 AM12/15/16
to Homer Developers
else, you could use OPC-DPC-CIC-Calling-Called and do a hash over them... if i remember correctly, this would identify uniquely this call.
Reply all
Reply to author
Forward
0 new messages