swagger: '2.0'
info:
version: 1.0.0
title: Airtel IQ API Documentation
host: openapi.airtel.in
basePath: /gateway/airtel-xchange-reporting/v2/api-docs
tags:
- name: Airtel IQ Sample CDR(Call Data Record) API
description: 'Call Detail Record (CDR) is the detailed record of the call, which contains
various call details such as Time, Date, Duration, Caller_ID, Destination_Number, Status, recording
URL, etc. of the call
Sample CDR(Call Data Record) API is a sample API to test the CDR integration
of Integrator with Airtel IQ. The Integrator needs to develop a post API similar to this API, on which
all these details would be posted.
For the actual integration for Inbound/Outbound calls, the Integrator endpoint for receiving CDR
can either be preconfigured at Airtel IQ end or can be passed in the callBackURLs in callFlowConfiguration
of execute callflow Api.'
paths:
/sampleCdr:
post:
tags:
- Airtel IQ Sample CDR(Call Data Record) API
summary: Post CDR
operationId: postSampleCdrUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: request
description: request
required: true
schema:
$ref: '#/definitions/SampleRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/SampleResponse'
deprecated: false
definitions:
CallQualityParamsVo:
type: object
properties:
averageJitter:
type: number
format: double
averageLatency:
type: number
format: double
averagePacketLoss:
type: number
format: double
mos:
type: number
format: double
packetsReceived:
type: number
format: double
packetsSent:
type: number
format: double
title: CallQualityParamsVo
SampleRequest:
type: object
properties:
Billable_Duration:
type: string
example: 00:58
description: 'Billable duration of the caller. Format : mm:ss'
Call_ID:
type: string
example: 12345678
description: Unique field generated at session level, used for searching the CDR logs in the UI
Call_Type:
type: string
example: INBOUND
description: 'Indicates whether the call is INBOUND or OUTBOUND. “Inbound” indicates that call
session is formed post receiving call on Airtel provided number (Eg: Number masking)“Outbound”
indicates that session is formed post initiating call from Airtel CLI to Caller (Eg:- Click
to Call)'
Caller_Circle_Name:
type: string
example: MP and Chattisgarh
description: Circle from where caller no. is registered
Caller_Duration:
type: integer
format: int64
example: 42495
description: 'Total call duration. Sum of Caller_Waiting_Time and Conversation_Duration. Format:
Epoch millis'
Caller_ID:
type: string
example: 9999999999
description: In case of Outbound, this is fixed line no. from where the call has been initiated
to the destination no. In case of Inbound, this is the no. to which the call has been landed
on
Caller_Name:
type: string
example: Xyz
description: Name of party A
Caller_Number:
type: string
example: 9999999998
description: Number of party A
Caller_Operator_Name:
type: string
example: Airtel
description: Operator to which caller no. is registered from
Caller_Retry_Count:
type: string
example: 2
description: Number of retries before call is picked up at caller no. end
Caller_Status:
type: string
example: Answer
description: 'Action triggered for the call initiated to the caller, Eg: Disconnected, NetworkError,
NotReachable, Busy, Noanswer, Removed, Answer'
Caller_Status_Detail:
type: string
example: 16 | 699 | Normal call clearing | Disconnected
description: Sip code, Cause code and description, status of party A
Caller_Waiting_Time:
type: string
example: 00:21
description: 'Duration for which the IVR was played i.e. Duration when the welcome tone started
and till the time destination number picked the call, Format: mm:ss'
Conversation_Duration:
type: string
example: 00:58
description: 'The duration between when the call was answered by Destination number AND the call
ended. Format : mm:ss'
Customer_Name:
type: string
example: XYZ
description: Customer name field in the format stored by Airtel in system
DTMF_Capture:
type: string
example: 1 | 3 | 9
description: DTMF inputs during call
Date:
type: string
example: 14/07/2020
description: 'Date of call. Format : dd/mm/yyyy'
Destination_CLI:
type: string
example: 8045477000
description: Fixed Line number that is being used for initiating call to destination number
Destination_Circle_Name:
type: string
example: MP and Chattisgarh
description: Circle to which the call is made
Destination_Name:
type: string
example: Abc
description: Name of party B
Destination_Number:
type: string
example: 9999999999
description: Party B number
Destination_Operator_Name:
type: string
example: Airtel
description: Operator to which the destination no. is registered on
Destination_Retry_Count:
type: integer
format: int32
example: 2
description: Number of retries before call is picked up at destination no. end
Destination_Status:
type: string
example: Answer
description: 'Action triggered for the call initiated to the destination number, Eg: Disconnected,
NetworkError, NotReachable, Busy, Noanswer, Removed, Answer'
Destination_Status_Detail:
type: string
example: 17 | 486 | User Busy | Busy
description: Sip code, Cause code and description, status of party B
Hangup_Cause:
type: string
example: SYSTEM_INITIATED
description: Captures the cause of hangup. If the call disconnected by the system after MaxTries
are exhausted, it is captured as SYSTEM_INITIATED hung up.In all other cases, user (either destination
or caller) hangs up the call, this is captured USER_INITIATED. In case it is USER_INITIATED,
participant's name, who initiated hangup, is captured
Missed_Destination_Number:
type: string
example: 09999999999 | 09999999998
description: Numbers which were called but did not pick up before destination number
Overall_Call_Duration:
type: string
example: 01:17
description: 'Total duration of call. Format: mm:ss'
Overall_Call_Status:
type: string
example: Answered
description: Status of call. In case of more than one participants, this is set to Answered if
any of the participants, other than first one, picked up the call. If no one else picked, it
is set to Missed.In case of single participant, it is checked if any other participant was to
be added on the call or not. If yes, it is set to Missed, since other participant could not
be added.If not, it is set to Answered if the first participant picked up the call, else set
to Missed.
Pulse_Count:
type: integer
format: int32
example: 4
description: Count of pulses recorded for this call
Recording:
type: string
description: URL from which user can fetch call recording
Session_ID:
type: string
example: 5ea2aded87fcb12816bcd27b
description: Application generated unique session ID
Time:
type: string
example: 08:42:06
description: Real time of call in hh:mm:ss format
audios:
type: array
description: List of audios played during call
items:
$ref: '#/definitions/audio'
callType:
type: string
example: INBOUND
description: 'Indicates whether the call is INBOUND or OUTBOUND, “Inbound” indicates that call
session is formed post receiving call on Airtel provided number (Eg: Number masking)“Outbound”
indicates that session is formed post initiating call from Airtel CLI to Caller (Eg:- Click
to Call)'
conversationDuration:
type: integer
format: int64
example: 12225
description: 'The duration between when the call was answered by Destination number AND the call
ended . Format : Epoch millis'
customerId:
type: string
description: Unique customer ID stored in Airtel database
duration:
type: integer
format: int32
example: 77998
description: 'Total duration of call. Format: Epoch millis'
endTime:
type: integer
format: int64
example: 1594696326667
description: 'Real time end date. Format : Epoch millis'
events:
type: array
description: Events received during the call
items:
$ref: '#/definitions/event'
fromWaitingTime:
type: integer
format: int64
example: 41774
description: 'Duration for which the IVR was played i.e. Duration when the welcome tone started
and till the time destination number picked the call. Format: Epoch millis'
overallCallStatus:
type: string
example: Answered
description: Status of call. In case of more than one participants, this is set to Answered if
any of the participants, other than first one, picked up the call. If no one else picked, it
is set to Missed.In case of single participant, it is checked if any other participant was to
be added on the call or not. If yes, it is set to Missed, since other participant could not
be added.If not, it is set to Answered if the first participant picked up the call, else set
to Missed.
participants:
type: array
description: Participant level details
items:
$ref: '#/definitions/participant'
startTime:
type: integer
format: int64
example: 1594696326667
description: 'Real time start date. Format : Epoch millis'
timestamp:
type: string
example: '2020-07-14 02:54:09'
description: 'End time of call. Format : yyyy-MM-dd hh:mm:ss'
title: SampleRequest
SampleResponse:
type: object
properties:
message:
type: string
example: CREATED
description: message
statusCode:
type: string
example: 201
description: status code
title: SampleResponse
audio:
type: object
properties:
audioURL:
type: string
description: Sound File URL which can be played during the wait time of the call
dtmfInput:
type: string
example: 1
description: DTMF input provided for audio
endTime:
type: string
format: date-time
example: 1594695096005
description: 'end time of audio. Format : Epoch millis'
startTime:
type: string
format: date-time
example: 1594695096005
description: 'start time of audio. Format : Epoch millis'
status:
type: string
example: Stopped
description: 'Status of audio. Eg: Stopped, Played, NotFound, Others'
title: audio
description: Object specifying Audio information passed
event:
type: object
properties:
audioURL:
type: string
description: audio URL in event, if event is received for any audio
causeCode:
type: string
example: 699
description: If the event is for a hang up scenario, this field specifies reasons for hang up
comments:
type: string
description: Comments for event, if any
event:
type: string
example: CalledNumber
description: Actual event
eventId:
type: string
example: 12ab
description: event ID
eventType:
type: string
example: CALL
description: 'Event type. Eg : RECORD, MEDIA, DTMF, CALL'
metaData:
type: object
description: Metadata for event
participantAddress:
type: string
example: 9999999999
description: Participant number for whom event received
participantIndex:
type: integer
format: int32
sipCode:
type: string
example: 16
description: SIP responses are the codes used by Session Initiation Protocol for communication
and indicate the status of the request. This field specifies sip code in event, if any
time:
type: string
format: date-time
example: 1594695097249
description: 'Time of event. Format : Epoch millis'
waitTime:
type: string
description: This field will be populated when there is waiting component in call flow
title: event
description: Event received during call
participant:
type: object
properties:
amdCause:
type: string
amdStatus:
type: string
audios:
type: array
description: Sound File URL which can be played during the wait time of the call
items:
$ref: '#/definitions/audio'
billableDuration:
type: integer
format: int32
example: 100
description: Billable duration for participant, in milliseconds
callAnswerTime:
type: string
format: date-time
example: 1594695097242
description: 'Time at which participant answered call. Format : Epoch millis'
callQualityParams:
description: call quality parameters
$ref: '#/definitions/CallQualityParamsVo'
callReason:
type: string
callerId:
type: string
example: 8045477000
description: Caller ID/ Virtual Number displayed to participant
callerIdCircle:
type: string
example: Karnataka
description: Circle or state of callerId
callerIdCountryCode:
type: string
example: '+91'
description: Country code of CallerId
callerIdInternationalPoint:
type: string
callerIdType:
type: string
description: Type of callerId. Values can be TOLL_FREE or sim recording ..
chargeType:
type: string
example: DOMESTIC
description: DOMESTIC/INTERNATIONAL based on countryCode of callerID and participant
enum:
- DOMESTIC
- INTERNATIONAL
circleId:
type: string
example: 102
description: 'Unique circle ID for this participant address. Eg : 102 for Delhi'
circleName:
type: string
example: Delhi
description: Unique circle name for this participant address
duration:
type: integer
format: int32
example: 137137
description: 'Total duration for participant. Format : Epoch millis'
endTime:
type: string
format: date-time
example: 1594695097242
description: 'End time for participant. Format : Epoch millis'
hangupCause:
type: string
example: SYSTEM_INITIATED
description: 'Captures the cause of hangup. Eg : SYSTEM_INITIATED or USER_INITIATED'
internationPoint:
type: string
mergeType:
type: string
description: Merge type of participant
operatorId:
type: string
example: ATL
description: 'Unique operator ID for this participant address. Eg : ATL for Airtel'
operatorName:
type: string
example: Airtel
description: Unique operator name for this participant address
parallelDisconnected:
type: boolean
participantAddress:
type: string
example: 999999999
description: Participant number
participantCallType:
type: string
example: INBOUND
description: Captures if the participant was dialled out or he/she dialled into the call
enum:
- INBOUND
- OUTBOUND
- VoiceBot
participantIndex:
type: integer
format: int32
participantName:
type: string
example: Abc
description: Name of participant
participantNumberCountryCode:
type: string
example: '+91'
description: Country code of Participant
participantNumberType:
type: string
description: Type of participant Number. Values can be TOLL_FREE or mobile or international
enum:
- TOLL_FREE
- MOBILE
- INTERNATIONAL
- VoiceBot
pulse:
type: integer
format: int32
example: 2
description: Pulse recorded for participant
requestName:
type: string
requestNo:
type: integer
format: int32
retryCount:
type: integer
format: int32
example: 1
description: Number of retries to participant
secondaryCLI:
type: string
startTime:
type: string
format: date-time
example: 1594695097242
description: 'Start time for participant. Format : Epoch millis'
status:
type: string
example: Disconnected
description: 'Action triggered for the call initiated to the participant no. Eg : Disconnected,
NetworkError, NotReachable, Busy, Noanswer, Removed, Answer'
title: participant
description: Object specifying Participant information passed