Call Channels#
About Call Channels#
The Channels API allows queries to find active channels for an account, a user, or a device. Given a call-id for a channel, a limited set of commands are allowed to be executed against that channel (such as hangup, transfer, or play media).
NOTE: Konami is an outdated and unsupported 2600Hz module. If you need support on this module, please ensure you are signed up for Konami Pro.
Fetch active channels system wide.#
Note
For super duper admin only. Be sure to set system_config
->crossbar.channels
->system_wide_channels_list
flag to true
GET /v2/channels
curl -v -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
http://{SERVER}:8000/v2/channels
Fetch active channels for an account#
GET /v2/accounts/{ACCOUNT_ID}/channels
curl -v -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/channels
{
"auth_token": "{AUTH_TOKEN}",
"data": [
{
"answered": true,
"authorizing_id": "63fbb9ac78e11f3ccb387928a423798a",
"authorizing_type": "device",
"destination": "user_zu0bf7",
"direction": "outbound",
"other_leg": "d220c187-e18edc42-bab2459d@10.26.0.91",
"owner_id": "72855158432d790dfb22d03ff64c033e",
"presence_id": "user_zu0bf7@account.realm.com",
"timestamp": 63573977746,
"username": "user_zu0bf7",
"uuid": "dab25c76-7479-4ed2-ba92-6b725d68e351"
}
],
"request_id": "{REQUEST_ID}",
"revision": "{REVISION}",
"status": "success"
}
Fetch channels for a user or device#
GET /v2/accounts/{ACCOUNT_ID}/users/{USER_ID}/channels
For user with {USER_ID}
:
curl -v -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/users/{USER_ID}/channels
For device with {DEVICE_ID}
:
GET /v2/accounts/{ACCOUNT_ID}/devices/{DEVICE_ID}/channels
curl -v -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/devices/{DEVICE_ID}/channels
Fetch a channel's details#
GET /v2/accounts/{ACCOUNT_ID}/channels/{UUID}
curl -v -X GET \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/channels/{UUID}
Execute an application against a Channel#
Note
This API requires Konami Pro to be running and metaflows to be enabled on the call
POST /v2/accounts/{ACCOUNT_ID}/channels/{UUID}
curl -v -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-d '{"data": {"action": "transfer", "target": "2600", "takeback_dtmf": "*1", "moh": "media_id" }}' \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/channels/{UUID}
Available action
values are transfer
, hangup
, break
, callflow
, and intercept
.
Transfer#
curl -v -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-d '{"data":{"module":"transfer","data":{"target":"2600","Transfer-Type":"blind","leg":"bleg"}},"action":"metaflow"}' \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/channels/{UUID}
Key | Description | Type | Default |
---|---|---|---|
leg |
Defines which leg of the call to take action against | string('self' | 'bleg') |
self |
target |
Extension/DID to transfer the {UUID} |
string() |
|
transfer-type |
What type of transfer to perform | string('attended' | 'blind') |
blind |
moh |
Music on hold to play while transferring | string() |
Put a feature (metaflow) on a channel#
Note
This API requires Konami Pro to be running and metaflows to be enabled on the call
PUT /v2/accounts/{ACCOUNT_ID}/channels/{UUID}
curl -v -X PUT \
-H "Content-Type: application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-d '{"action":"metaflow", "data": {"data": { "module": "hangup" }}}' \
http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/channels/{UUID}
The Metaflow feature is a metaflow
object which validates with its corresponding JSON schema.
Reasoning#
The POST
action requires that every Metaflow action would have to be coded into the module.
Benefits#
The Metaflow feature allows adding new types of Metaflows without changing the code.
It also allows full Metaflows and not only single actions, i.e., the children
node is also processed.