Voice IN Service CDR Streaming

Voice IN CDR Streamer enables its users to receive near real-time CDRs. CDRs are delivered within 3 seconds after call completion to the customer’s designated HTTP endpoint.

HTTP request payload example:

{"type":"inbound-cdr", "id":"3d6af8ac-5ed1-11ea-bc9d-005056845b1e","attributes" : {"sub_customer_tf_connection_fee":0,"trm_initial_interval":null,"sub_customer_trm_duration":null,"metered_channels_duration":null,"sub_customer_trm_next_interval":null,"metered_channels_amount_no_vat":null,"local_tag":"10-04336EB9-5DBAF4AA000E6DDB-6A41F700","metered_channels_next_interval":null,"sub_customer_trm_rate":0,"disconnect_initiator":1,"legb_disconnect_reason":"","metered_channels_connection_fee":null,"duration":0,"is_last_cdr":true,"sub_customer_tf_duration":null,"customer_vat":0,"tf_connection_fee":0,"metered_channels_rate":null,"sub_customer_trm_connection_fee":0,"success":false,"dst_number":"97239723915909200","trm_duration":null,"tf_duration":null,"time_connect":null,"time_start":"2019-10-31 14:50:18.930234","sub_customer_trm_amount":null,"term_call_id":"","src_name":"","did_number":"972397239159092","early_media_present":false,"tf_initial_interval":null,"metered_channels_amount":null,"time_end":"2019-10-31 14:50:18.946403","trm_rate":0,"sub_customer_tf_next_interval":null,"trm_amount":null,"internal_disconnect_code":480,"trm_amount_no_vat":null,"sub_customer_tf_initial_interval":null,"trunk_destination":"iax:324@34234234","tf_rate":0,"out_pop_id":1,"sub_customer_tf_rate":0,"sub_customer_tf_amount":null,"sub_customer_trm_initial_interval":null,"tf_amount":null,"legb_disconnect_code":0,"routing_attempt":1,"is_redirected":false,"tf_next_interval":null,"metered_channels_initial_interval":null,"transport_protocol_id":null,"tf_amount_no_vat":null,"trm_next_interval":null,"trm_connection_fee":0,"src_number":"","user_agent":null,"internal_disconnect_reason":"DID number overloaded"}}
{"type":"inbound-cdr", "id" : "1c3f702a-5ed0-11ea-bc9c-005056845b1e","attributes" : {"sub_customer_tf_connection_fee":0,"trm_initial_interval":null,"sub_customer_trm_duration":null,"metered_channels_duration":null,"sub_customer_trm_next_interval":null,"metered_channels_amount_no_vat":null,"local_tag":"10-6C9724C3-5DBAF487000C0583-6A520700","metered_channels_next_interval":null,"sub_customer_trm_rate":0,"disconnect_initiator":3,"legb_disconnect_reason":"Bye","metered_channels_connection_fee":null,"duration":35,"is_last_cdr":true,"sub_customer_tf_duration":null,"customer_vat":0,"tf_connection_fee":0,"metered_channels_rate":null,"sub_customer_trm_connection_fee":0,"success":true,"dst_number":"972397239159092","trm_duration":null,"tf_duration":null,"time_connect":"2019-10-31 14:49:43.796925","time_start":"2019-10-31 14:49:43.775349","sub_customer_trm_amount":null,"term_call_id":"10-10-7ED7C3EC-5DBAF487000C1C19-8FCFC700","src_name":"4","did_number":"972397239159092","early_media_present":false,"tf_initial_interval":null,"metered_channels_amount":null,"time_end":"2019-10-31 14:50:18.85648","trm_rate":0,"sub_customer_tf_next_interval":null,"trm_amount":null,"internal_disconnect_code":200,"trm_amount_no_vat":null,"sub_customer_tf_initial_interval":null,"trunk_destination":"sip:972397239159092@didww.com","tf_rate":0,"out_pop_id":1,"sub_customer_tf_rate":0,"sub_customer_tf_amount":null,"sub_customer_trm_initial_interval":null,"tf_amount":null,"legb_disconnect_code":200,"routing_attempt":2,"is_redirected":false,"tf_next_interval":null,"metered_channels_initial_interval":null,"transport_protocol_id":1,"tf_amount_no_vat":null,"trm_next_interval":null,"trm_connection_fee":0,"src_number":"4","user_agent":"Asterisk PBX 11.13.1~dfsg-2+deb8u5","internal_disconnect_reason":"Bye"}}

Warning

Request Payload encoded as gzip so customer’s API should support gzip.

CDR attributes description:

type

String
CDR type. Voice IN CDR will be marked as inbound-cdr

id

String
Unique CDR identifier in UUID format.

attributes

Hash
Structure contains all CDR attributes. See description below.

time_start

Timestamp
Start time when the initial INVITE is received.

time_connect

Timestamp
Time after the successful handshake (200OK SIP).

time_end

Timestamp
Time when the call was disconnected.

duration

Integer
Call duration in seconds. For the non-connected calls duration will be 0.

disconnect_initiator

Integer
Indicates which part initiated disconnection. Possible values:

  • 0 Routing engine

  • 1 SBC

  • 2 Disconnect was initiated by called destination network

  • 3 Disconnect was initiated by call originator

internal_disconnect_code

Integer
DIDWW internal disconnect code.

internal_disconnect_reason

String
DIDWW internal disconnect reason.

legb_disconnect_code

Integer
SIP response code received from the destination network.

legb_disconnect_reason

String
SIP disconnect reason received from the destination network.

routing_attempt

Integer
Routing attempts to reach the destination network.

is_last_cdr

Boolean
Indicates the last attempt to reach the destination network in the event of fail-over.

success

Boolean
Indicates that the call was successful.

term_call_id

String
SIP Call-ID of call leg between the DIDWW and customer equipment.

local_tag

String
Internal identifier of the call record.

did_number

String
DID number in the full format.

src_name

String
Incoming caller name .

src_number

String
Incoming Caller-ID.

dst_number

String
Called destination number.

trunk_destination

String
Call destination in URI format.

customer_vat

Numeric
Charged VAT amount for the call.

tf_rate

Numeric
Customer Toll-Free rate.

tf_connection_fee

Numeric
Customer Toll-Free connection fee.

tf_initial_interval

Integer
Initial billing interval for Toll-Free service.

tf_next_interval

Integer
Next billing interval for Toll-Free service.

tf_duration

Integer
Call duration rounded to configured billing interval for Toll-Free service.

tf_amount

Numeric
Customer Toll-Free accumulated amount.

tf_amount_no_vat

Numeric
Customer Toll-Free accumulated amount without VAT.

trm_rate

Numeric
Customer termination rate. Applies when PSTN forwarding is used

trm_connection_fee

Numeric
Customer termination connection fee. Applies when PSTN forwarding is used.

trm_initial_interval

Integer
Initial billing interval length in seconds for the PSTN forwarding.

trm_next_interval

Integer
Next billing interval length seconds for the PSTN forwarding.

trm_duration

Integer
Call duration rounded to configured billing interval for the PSTN forwarding.

trm_amount

Numeric
Customer PSTN termination accumulated amount.

trm_amount_no_vat

Numeric
Customer PSTN termination accumulated amount without VAT.

metered_channels_rate

Numeric
Metered capacity rate.

metered_channels_connection_fee

Numeric
Metered capacity connection fee.

metered_channels_initial_interval

Integer
Metered capacity initial billing interval in seconds.

metered_channels_next_interval

Integer
Metered capacity next billing interval length.

metered_channels_duration

Integer
Metered capacity charged duration.

metered_channels_amount

Numeric
Customer metered capacity accumulated amount.

metered_channels_amount_no_vat

Numeric
Customer metered capacity accumulated amount excluding VAT.

sub_customer_id Numeric
Sub customer ID value.

sub_customer_tf_rate

Numeric
Sub customer rate for the Toll-Free service.

sub_customer_tf_connection_fee

Numeric
Sub customer connection fee for the Toll-Free service.

sub_customer_tf_initial_interval

Integer
Initial billing interval length in seconds for the Toll-Free service.

sub_customer_tf_next_interval

Integer
Next billing interval length in seconds for the Toll-Free service.

sub_customer_tf_duration

Integer
Sub customer call duration for the Toll-Free service and billing interval lengths.

sub_customer_tf_amount

Numeric
Sub customer amount for the Toll-Free service.

sub_customer_trm_rate

Numeric
Sub customer rate for the PSTN forwarding service.

sub_customer_trm_connection_fee

Numeric
Sub customer connection fee for the PSTN forwarding service.

sub_customer_trm_initial_interval

Integer
Initial billing interval for the PSTN forwarding service.

sub_customer_trm_next_interval

Integer
Next billing interval for the PSTN forwarding service.

sub_customer_trm_duration

Integer
Sub customer call duration for the PSTN forwarding service and billing interval lengths.

sub_customer_trm_amount

Numeric
Sub customer amount for the PSTN forwarding service.

out_pop_id

Integer
DIDWW Point of Presence for the call leg from DIDWW to customer. Possible values:

  • 1 USA New-York

  • 2 EU Frankfurt

  • 4 USA Los-Angeles

  • 5 USA Miami

  • 6 AS Singapore

  • 7 AS Hong Kong

  • 8 EU Amsterdam

transport_protocol_id

Integer
Transport protocol used between DIDWW and the customer gateway: Possible values:

  • 1 UDP

  • 2 TCP

  • 3 TLS

user_agent

String
User-Agent and Server header values from the customer gateway.

is_redirected

Boolean
Used to indicate if call was redirected by 3xx SIP response. Possible values:

  • True

  • False

early_media_present

Boolean
Indicates if early media stream is present in the destination gateway. Possible values:

  • True

  • False

Batching

CDRs are delivered in batches, HTTP POST request can contain multiple CDRs. Maximum batch size is 1000. Destination API should be able to process multiple CDRs in same request.

Error handling

If the destination API responds with 2xx HTTP code, streaming interface will consider all CDRs sent in that request as processed and they will be automatically deleted from the queue. In case of HTTP error (non 2xx response or timeout), CDRs will be stored in the queue and will re-attempt to deliver them after 3 seconds.

Warning

Queue length is limited to 10000 records per customer, long customers API downtime or increased delay to process the requests can cause data loss. Therefore, CDR Streaming mechanism can not be used as the only way to receive CDRs. See the API documentation for other CDR fetching mechanisms.