Call Service

  • Domain: https://cc-api-prod.quickom.com

Set up a webhook to receive Call events

  • In order to receive new Call realtime, implement a endpoint that will be called by QUICKOM to send you Call's info.
  • Endpoint's requirement:
    • Method: POST
    • Header: Signature: <Signature>
    • Body:
    {
        "request_id" : "Id of webhook event log",
        "call_id" : "",
        "start_time" : 123456789,
        "end_time" : 123456789,
        "customer_info" : {
            "customer_id" : "",
            "name" : "",
            "phone_number" : "",
            "email" : ""
        },
        "callee_info" : {
            "member_id" : "",
            "name" : "",
            "email" : "",
            "phone_number" : ""
        },
        "has_record" : true,
        "record_number" : 1,
        "record_files" : [
            {
                "record_id" : "",
                "start_time" : 123456789,
                "end_time" : 123456789
            }
        ]   
    }
    
    • Response: 200 OK
  • Configuration
  • Validate Signature
    • Your endpoint need to validate request via Signature header using Signing Secret above.
    • How to validate:
      • Build data = call_id + start_time + end_time + customer_id + member_id.
      • Create signature = HMACSHA256(Signing_Secret, data).
      • Validate request by compare Signature from header and signature you created.

Get Call's info

  • Endpoint : GET /api/enterprise/call/detail
  • Header: Authorization: <Your api key>
  • Request params:
Param Type Mandatory Description
call_id String YES Call's id
  • Response status code: 200
  • Response body:
{
    "call_id" : "",
    "start_time" : 123456789,
    "end_time" : 123456789,
    "customer_info" : {
        "customer_id" : "",
        "name" : "",
        "phone_number" : "",
        "email" : ""
    },
    "callee_info" : {
        "member_id" : "",
        "name" : "",
        "email" : "",
        "phone_number" : ""
    },
    "has_record" : true,
    "record_number" : 1,
    "record_files" : [
        {
            "record_id" : "",
            "start_time" : 123456789,
            "end_time" : 123456789
        }
    ]   
}

Get new Calls

In order to get Calls that we missed from webhook, using this api

  • Endpoint : GET /api/enterprise/call/new
  • Header: Authorization: <Your api key>
  • Request params:
Param Type Mandatory Description
limit Integer NO Number of calls you want to retrieve. Min-Max is 1-50. Default is 20
  • Response status code: 200
  • Response body:
[
    {
        "call_id" : "",
        "start_time" : 123456789,
        "end_time" : 123456789,
        "customer_info" : {
            "customer_id" : "",
            "name" : "",
            "phone_number" : "",
            "email" : ""
        },
        "callee_info" : {
            "member_id" : "",
            "name" : "",
            "email" : "",
            "phone_number" : ""
        },
        "has_record" : true,
        "record_number" : 1,
        "record_files" : [
            {
                "record_id" : "",
                "start_time" : 123456789,
                "end_time" : 123456789
            }
        ]   
    }
]

Download Call's record

Using for download Call recording file

Only work for Calls that has has_record = true

  • Endpoint : GET /api/enterprise/call/record/download
  • Header: Authorization: <Your api key>
  • Request params:
Param Type Mandatory Description
call_id String YES Call's id
record_index Integer NO Index of record file in record_files array
record_id String NO Id of record that define in record_files array
  • Important
    • record_index and record_id are allowed only one.
    • If both are specified, record_id will be used.
    • If both are not specified, the first record will be return.
  • Response status code: 200
  • Response body: Binary|Stream
Last Updated: 5/14/2021, 10:12:44 AM