API - CallQueue / Save¶
API CallQueue / Save se foloseste pentru programa apeluri pentru a fi sunate mai tarziu, conform unui orar prestabilit, folosing Originate call.
API URL¶
https://[YOUR-PBX-URL]/api/call-queue
Datele se trasmit prin POST sau GET si trebuie sa fie de forma:¶
Array
(
[action] => save
[data] => Array
(
[project_id] => 1
[type] => queue
[destination] => test-queue
[campaign_name] => Test campaign
[campaign_info] => Some special info
[outbound_type] => auto
[attend_type] => attended
[outbound_number] => +40212345678
[outbound_trunk] => default-trunk
[calls] => Array
(
[0] => Array
(
[caller_id] => 0123456789
[caller_id_name] => John Doe
[priority] => 0
[schedule] =>
[external_id] => asdf1234
[max_retries] => 5
[vars] => Array
(
[SKIP_WELCOME] => 1
[SKIP_WE_ARE_RECORDING] => 1
[SKIP_ENTER_QUEUE] => 0
[BACKEND_LINK] => https://[YOUR-EXTERNAL-CRM-URL]/?change_this_url=1234
)
)
)
)
[api_hash] => 20b093246dac88454f390553e813aa0d
)
Parametrul action trebuie sa aiba valoarea save
Parametri:¶
- project_id: ID proiect in centrala
- type: tipul destinatiei catre care se trimite apelul intern (user, queue, context)
- destination: user-ul/coada din centrala pentru care se initiaza apelul
- campaign_name: nume campanie
- campaign_info: informatii suplimentare camapanie
- outbound_type: tipul de campanie automata sau manuala (auto, manual)
- attend_type: apelul se realizeaza cu sau fara un agent (attended, unattended)
- outbound_number: numarul care este afisat catre destinatar, optional
- outbound_trunk: providerul prin care se face apelul, optional
- calls: array cu apelurile
- caller_id: numarul de telefon care este apelat
- caller_id_name: numele persoanei care este apelata
- priority: prioritatea apelului in call queue
- schedule: data si ora la care se programeaza apelul. Format: Y-m-d H:i:s (ex: 2017-02-16 00:00:00)
- external_id: ID din baza de date externa (ex: activity ID)
- max_retries: numarul maxim de incercari pana se abandoneaza apelul
- vars: array cu diferite variabile pentru contextul din PBX, optional
Headere HTTP:¶
Content-Type: text/xml Authorization: Bearer <token>
Exemplu generare parametri:
$params = array(
'action' => 'save',
'data' => array(
'project_id' => 1,
'type' => 'queue', // user, queue, context
'destination' => 'test-queue',
'campaign_name' => 'Test campaign',
'campaign_info' => 'Some special info',
'outbound_type' => 'auto', // auto, manual
'attend_type' => 'attended', // attended, unattended
'outbound_number' => '+40212345678', // dnid
'outbound_trunk' => 'default-trunk',
'calls' => array(
array(
'caller_id' => '0123456789',
'caller_id_name' => 'John Doe',
'priority' => 0,
'schedule' => '', // default NOW()
'external_id' => 'asdf1234',
'max_retries' => 5,
'vars' => array(
'SKIP_WELCOME' => 1,
'SKIP_WE_ARE_RECORDING' => 1,
'SKIP_ENTER_QUEUE' => 0,
'BACKEND_LINK' => 'https://[YOUR-EXTERNAL-CRM-URL]/?change_this_url=1234', // for pop-up
),
)
)
)
);
Exemplu generare hash:
$params['api_hash'] = md5(http_build_query($params) . 'your_api_key'); // make hash
Exemplu trimitere date:
$url = 'https://[YOUR-PBX-URL]/api/call-queue';
$token = 'your_api_token';
echo curlPost($url, http_build_query($params), array("Authorization: Bearer {$token}"));
Date trimise JSON¶
{
"api_username": "your_api_usr",
"api_password": "your_api_pass",
"action": "save",
"data": {
"project_id": 1,
"type": "queue",
"destination": "test-queue",
"campaign_name": "Test campaign",
"campaign_info": "Some special info",
"outbound_type": "auto",
"attend_type": "attended",
"outbound_number": "+40212345678",
"outbound_trunk": "default-trunk",
"calls": [
{
"caller_id": "0123456789",
"caller_id_name": "John Doe",
"priority": 0,
"schedule": "",
"external_id": "asdf1234",
"max_retries": 5,
"vars": {
"SKIP_WELCOME": 1,
"SKIP_WE_ARE_RECORDING": 1,
"SKIP_ENTER_QUEUE": 0,
"BACKEND_LINK": "https://[YOUR-EXTERNAL-CRM-URL]/?change_this_url=1234"
}
}
]
},
"api_hash": "19a84b02b61cb907611cd986f10062db"
}
Raspuns¶
In caz de succes:
{
"has_error": false,
"messages": [ ],
"pagination": [ ],
"results": [
{
"external_id": "asdf12345",
"queue_id": 79,
"schedule": "2017-02-20 15:22:32"
}
]
}
Sau in caz de eroare:
{
"has_error": true,
"messages": [
"Call #0 is already scheduled with queue_id #78"
],
"pagination": [ ],
"results": [ ]
}
Disponibil si in alte limbi: EN