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
- Method:
- Configuration
- Go to https://cc.quickom.com/dashboard/web-hook.
- Under
Endpoints Call Webhook
section, selectAdd Endpoint
. - Input your endpoint URL and description.
- Click
Add Endpoint
. - Save
Signing Secret
for using later.
- Validate Signature
- Your endpoint need to validate request via
Signature
header usingSigning 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 andsignature
you created.
- Build
- Your endpoint need to validate request via
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
andrecord_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