Airtel IQ Reporting API

The Call Detail Record (CDR) reporting surface of Airtel IQ. Returns detailed per-call records — time, date, duration, caller ID, destination number, status and call-recording URL — for voice traffic placed through Airtel IQ Intelliphones and call flows. Swagger 2.0 published openly at openapi.airtel.in.

OpenAPI Specification

bharti-airtel-iq-reporting-openapi.yml Raw ↑
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: '<strong>Call Detail Record (CDR)</strong> 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

    <br><strong>Sample CDR(Call Data Record)</strong> 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.

    <br>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