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