Call detail record

From TBwiki
(Difference between revisions)
Jump to: navigation, search
(Customer defined CDR records)
(Customer defined CDR records)
 
(13 intermediate revisions by one user not shown)
Line 71: Line 71:
 
== Customer defined CDR records  ==
 
== Customer defined CDR records  ==
  
From release *******, The Customer defined CDR records is supported, you can select the SIP generic headers and their parameters as a CDR records used in TextCdr and Radius CDR, see the list below to see the headers that are not supported by this new feature.
+
From release 3.1.101.1, The Customer defined CDR records is supported, you can select the SIP generic headers and their parameters as a CDR records used in TextCdr and Radius CDR, look at the list below to see the sip call headers that are not supported by this new feature. And from release 3.1.114.1, you can use the accounting header defined in sip_headers_manipulation.rb
 +
 
  
 
For activating the feature, log on the web portal of SBC and go to Gateway->CDR Options->Use Customer CDR header, enter the CDR records you  
 
For activating the feature, log on the web portal of SBC and go to Gateway->CDR Options->Use Customer CDR header, enter the CDR records you  
Line 80: Line 81:
 
P-CHARGE-INFO=P-CHARGE-INFO:all
 
P-CHARGE-INFO=P-CHARGE-INFO:all
 
                                                                                                  
 
                                                                                                  
This example means that 2 CDR records are needed, one is TERM-IOI and other one is P-CHARGE-INFO. Each line represents a CDR record and lines are separated by a line return. In this example, CDR record TERM-IOI comes from the received SIP header "P-Charging-Vector" and use its param "term-ioi" as the value of CDR record TERM-IOI. For the second line, CDR record is P-CHARGE-INFO and it comes from received SIP header "P-CHARGE-INFO", the parameter "all" means all of the content of sip header "P-CHARGE-INFO" will be used as the value of CDR record P-CHARGE-INFO. If Radius CDR is used, the attribute name will be like Telcob-generic-cdr-nameX (X will be from 1 to 8 , depends on the number of Customer defined CDR records ).  
+
This example means that 2 CDR records are needed, one is TERM-IOI and other one is P-CHARGE-INFO. Each line represents a CDR record and lines are separated by a line return. In this example, CDR record TERM-IOI comes from the received SIP header "P-Charging-Vector" and use its param "term-ioi" as the value of CDR record TERM-IOI. For the second line, CDR record is P-CHARGE-INFO and it comes from received SIP header "P-CHARGE-INFO", the parameter "all" means all of the content of sip header "P-CHARGE-INFO" will be used as the value of CDR record P-CHARGE-INFO. If Radius CDR is used, the attribute name will be like Telcob-generic-cdr-nameX (X will be from 1 to 16 , depends on the number of Customer defined CDR records ).  
  
Usage example in text CDR:  Test='@{TERM-IOI}',PCV='@{P-CHARGE-INFO}'
 
  
Usage example in Radius CDR: Telcob-generic-cdr-name1  TERM-IOI=xxxxxxxxxxxx
+
Usage example:
  
                            Telcob-generic-cdr-name2  P-CHARGE-INFO=xxxxxxxxxxx     
+
Text CDR:  Test='@{TERM-IOI}',PCV='@{P-CHARGE-INFO}'
 +
 
 +
Radius CDR: Telcob-generic-cdr-name1  TERM-IOI=xxxxxxxxxxxx , Telcob-generic-cdr-name2  P-CHARGE-INFO=xxxxxxxxxxx     
  
 
Radius server needs to parse the received value like "TERM-IOI=xxxxxxxxxxxx" for attribute "Telcob-generic-cdr-name1"
 
Radius server needs to parse the received value like "TERM-IOI=xxxxxxxxxxxx" for attribute "Telcob-generic-cdr-name1"
  
limitation:
 
  
1. The maximal number of Customer defined CDR records is 8.
+
If you want to use accounting header with this feature, you need to add the accounting header in script sip_headers_manipulation.rb , for example:
 +
def filter_sip_headers_manipulation params
 +
  call[:manipulation][:accounting] = {}
 +
  call[:manipulation][:accounting]["header1"] = "value1"
 +
  call[:manipulation][:accounting]["header2"] = "value2"
 +
end
 +
 
 +
The header1 and header2 are the accounting headers name you defined for your cdr purpose. After adding them in sip_headers_manipulation.rb, in text-area box "Customer CDR headers settings", you add :
 +
 
 +
HISTORY-INFO=header1:all
 +
 
 +
ruri=header2:all
 +
 
 +
 
 +
Limitation:
 +
 
 +
1. The maximal number of Customer defined CDR records is 16.
  
 
2. All of sip header in the the following list are not supported by the feature.
 
2. All of sip header in the the following list are not supported by the feature.
  
 
3. List of SIP header that are not supported:
 
3. List of SIP header that are not supported:
 +
Accept
 +
Accept-Contact
 +
Accept-Encoding
 +
Accept-Language
 +
Alert-Info
 +
Allow
 +
Allow-Events
 +
Also
 +
Anonymity
 +
Authentication-Info
 +
Authorization
 +
Call-ID
 +
Call-Info
 +
Contact
 +
Content-Disposition
 +
Content-Encoding
 +
Content-Language
 +
Content-Length
 +
Content-Type
 +
CSeq
 +
Date
 +
Encryption
 +
Error-Info
 +
Event
 +
Expires
 +
From
 +
In-Reply-To
 +
Max-Forwards
 +
MIME-version
 +
Min-Expires
 +
Min-SE
 +
Organization
 +
P-Asserted-Identity
 +
P-Media-Authorization
 +
P-Preferred-Identity
 +
Priority
 +
Privacy
 +
Proxy-Authenticate
 +
Proxy-Authorization
 +
Proxy-Require
 +
RAck
 +
Reason
 +
Record-Route
 +
Refer-To
 +
Referred-By
 +
Reject-Contact
 +
Remote-Party-ID
 +
Replaces
 +
Reply-To
 +
Request-Disposition
 +
Require
 +
Response-Key
 +
Retry-After
 +
Route
 +
RPID-Privacy
 +
RSeq
 +
Security-Client
 +
Security-Server
 +
Security-Verify
 +
Server
 +
Service-Route
 +
Session-Expires
 +
Subject
 +
Subscription-State
 +
Supported
 +
Timestamp
 +
To
 +
Unsupported
 +
User-Agen
 +
Via
 +
Warning
 +
WWW-Authenticate
  
  

Latest revision as of 16:55, 19 February 2021

Call detail records, or CDR for short, are the foundation of subscriber billing activities by telecom service providers. They are data records containing call-related information such as:

  • Incoming Network
  • Outgoing Network
  • Calling number
  • Called number
  • Start time
  • End Time

See this link from more details Wikipedia - Call Retail Record

Contents

TelcoBridges and call detail records

TelcoBridges TMG800, TMG3200 and TMG7800 products support the generation of call detail records in text format. They also support the ability to export call detail records to a RADIUS server for accounting purposes. Both methods can be used simultaneously.

Text CDRs are stored locally on the TMG units and must be extracted from the system either manually, or automatically.

If the network supports RADIUS, this method is preferred as each record will be sent in a timely manner to an external database for storage.

CDR High-level drawing v2.bmp

Call Detail Records Generation

TelcoBridges CDRs are generated on a per-leg bases when the call is answered and when the call is terminated.

In the cases illustrated below:

Id is a 128 bits unique identifier for all the records of a same call.

  • h323-conf-id for RADIUS and @{SessionId} for Text CDR

'Original Id is a 128 bits unique identifier used for Call Transfer records. Each call transfer outgoing legs has its own unique Id with its Original Id associated call legs (incoming+outgoing).

  • h323-incoming-conf-id for RADIUS and @{OriginalSessionId} for Text CDR

Case 1: Call Answered

CDR CallAnswer.jpg

Case 2: Call Unanswered

CDR UnansweredCall.jpg

Case 3: Call Transferred

CDR CallTransferBleg.jpg

CDR CallTransferCleg.jpg

Text-based Call Detail Records

Text-based call detail records

RADIUS Call Detail Records

RADIUS

Call Detail Records in High Availability (HA) Environment

The term HA refers to a system equipped with primary and secondary host controllers (i.e. An SBC deployed in a 1+1 configuration, a TMG7800 gateway with redundant controllers or Tmedia gateways deployed in a 1+1 configuration)

  • Text CDR only Mode
    • The active gateway application is storing text-based CDR records on the active host (i.e. non-zero bytes of CDR log file)
    • Each CDR record will only be present either on the primary or on the secondary host
    • The user needs to merge the CDR records from both the primary and secondary hosts to get all the data
  • RADIUS CDR only Mode
    • CDR records will be sent out to the RADIUS server(s) from the gateway application on the active host only
    • No CDR records are stored on the HA system
  • Text and RADIUS CDR Mode
    • CDR records will be sent out to RADIUS server(s) from the gateway application on the active host
    • The active gateway application is also storing text-based CDR records on the active host (i.e. non-zero bytes of CDR log file)
    • Also, each text-based CDR record will only be present either on the primary or on the secondary host
    • The user needs to merge the CDR records from both the primary and secondary hosts to get all the data
  • RADIUS CDR with text CDR fallback Mode
    • If the RADIUS server(s) is(are) in service
      • CDR records will be sent out to the RADIUS server(s) from the gateway application on the active host only
    • If the RADIUS server(s) is(are) out of service
      • The active gateway application is storing text-based CDR records on the active host (i.e. non-zero bytes of CDR log file)
      • Each CDR record will only be present either on the primary or on the secondary host
      • The user needs to merge the CDR records from both the primary and secondary hosts to get all the data


Customer defined CDR records

From release 3.1.101.1, The Customer defined CDR records is supported, you can select the SIP generic headers and their parameters as a CDR records used in TextCdr and Radius CDR, look at the list below to see the sip call headers that are not supported by this new feature. And from release 3.1.114.1, you can use the accounting header defined in sip_headers_manipulation.rb


For activating the feature, log on the web portal of SBC and go to Gateway->CDR Options->Use Customer CDR header, enter the CDR records you want in text-area box "Customer CDR headers settings" with the format like "cdr record"="sip header":"header parameter", for example:

TERM-IOI=P-Charging-Vector:term-ioi

P-CHARGE-INFO=P-CHARGE-INFO:all

This example means that 2 CDR records are needed, one is TERM-IOI and other one is P-CHARGE-INFO. Each line represents a CDR record and lines are separated by a line return. In this example, CDR record TERM-IOI comes from the received SIP header "P-Charging-Vector" and use its param "term-ioi" as the value of CDR record TERM-IOI. For the second line, CDR record is P-CHARGE-INFO and it comes from received SIP header "P-CHARGE-INFO", the parameter "all" means all of the content of sip header "P-CHARGE-INFO" will be used as the value of CDR record P-CHARGE-INFO. If Radius CDR is used, the attribute name will be like Telcob-generic-cdr-nameX (X will be from 1 to 16 , depends on the number of Customer defined CDR records ).


Usage example:

Text CDR: Test='@{TERM-IOI}',PCV='@{P-CHARGE-INFO}'

Radius CDR: Telcob-generic-cdr-name1 TERM-IOI=xxxxxxxxxxxx , Telcob-generic-cdr-name2 P-CHARGE-INFO=xxxxxxxxxxx

Radius server needs to parse the received value like "TERM-IOI=xxxxxxxxxxxx" for attribute "Telcob-generic-cdr-name1"


If you want to use accounting header with this feature, you need to add the accounting header in script sip_headers_manipulation.rb , for example:

def filter_sip_headers_manipulation params
 call[:manipulation][:accounting] = {}
 call[:manipulation][:accounting]["header1"] = "value1"
 call[:manipulation][:accounting]["header2"] = "value2" 
end

The header1 and header2 are the accounting headers name you defined for your cdr purpose. After adding them in sip_headers_manipulation.rb, in text-area box "Customer CDR headers settings", you add :

HISTORY-INFO=header1:all

ruri=header2:all


Limitation:

1. The maximal number of Customer defined CDR records is 16.

2. All of sip header in the the following list are not supported by the feature.

3. List of SIP header that are not supported:

Accept
Accept-Contact
Accept-Encoding
Accept-Language
Alert-Info
Allow
Allow-Events
Also
Anonymity
Authentication-Info
Authorization
Call-ID
Call-Info
Contact
Content-Disposition
Content-Encoding
Content-Language
Content-Length
Content-Type
CSeq
Date
Encryption
Error-Info
Event
Expires
From
In-Reply-To
Max-Forwards
MIME-version
Min-Expires
Min-SE
Organization
P-Asserted-Identity
P-Media-Authorization
P-Preferred-Identity
Priority
Privacy
Proxy-Authenticate
Proxy-Authorization
Proxy-Require
RAck
Reason
Record-Route
Refer-To
Referred-By
Reject-Contact
Remote-Party-ID
Replaces
Reply-To
Request-Disposition
Require
Response-Key
Retry-After
Route
RPID-Privacy
RSeq
Security-Client
Security-Server
Security-Verify
Server
Service-Route
Session-Expires
Subject
Subscription-State
Supported
Timestamp
To
Unsupported
User-Agen
Via
Warning
WWW-Authenticate
Personal tools