Project

General

Profile

API - OriginateCall

API Originate Call se foloseste pentru a initia apeluri catre clienti via extensiile logate in centrala.

Procesul se face in trei pasi:

  • Originate call: transmiterea in centrala a numarului destinatie si a userului
  • Agent ring: telefonul agentului suna, iar cand raspunde se trece la pasul urmator
  • Endpoint ring: centrala apeleaza numarul destinatie iar cand acesta raspunde este conectat cu agentul

API URL

https://[YOUR-PBX-URL]/api/originate-call

Datele se transmit prin POST sau GET si trebuie sa fie de forma:

Array
(
    [api_username] => your_api_usr
    [api_password] => your_api_pass
    [data] => Array
        (
            [project_id] => 1
            [caller_id] => 0123456789
            [caller_id_name] => John Doe
            [type] => queue
            [destination] => test-queue
            [external_id] => asdf1234
            [async] => 1
            [outbound_number] => +40212345678
            [outbound_trunk] => default-trunk
            [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] => 0f25e797e72d0dbba96d2c571a7bd6ba
)

Parametri:

  • project_id: ID proiect in While1 Voice, obligatoriu
  • caller_id: numarul de telefon destinatie conform regulilor de outbound din centrala, obligatoriu
  • caller_id_name: nume destinatar, obligatoriu
  • type: tipul actiunii - user, queue, context, obligatoriu
  • destination: user-ul/coada/contextul din centrala While1 Voice pentru care se initiaza apelul, obligatoriu
  • external_id: ID-ul din aplicatia proprie partener, folosit pentru interogari ulterioare, obligatoriu
  • async: daca operatiunea se executa asyncron sau nu, optional, implicit 1
  • outbound_number: numarul care este afisat catre destinatar, optional
  • outbound_trunk: providerul prin care se face apelul, optional
  • vars: array cu diferite variabile pentru contextul din PBX, optional

Nota: daca optiunea async este 1, API va returna success daca user-ul este online (nu este garantat ca userul a raspuns). Daca optiunea async este 0 API va tine conexiunea deschisa pana cand se primeste timeout, answer sau reject de la user, returnand eroare sau success in functie de actiunea user-ului.

Exemplu generare parametri:

$params = array(
    'api_username' => 'your_api_usr',
    'api_password' => 'your_api_pass',
    'data' => array(
        'project_id' => 1,
        'caller_id' => '0123456789',
        'caller_id_name' => 'John Doe',
        'type' => 'queue', // user, queue, context
        'destination' => 'test-queue',
        'external_id' => 'asdf1234',
        'async' => 1,
        'outbound_number' => '+40212345678',
        'outbound_trunk' => 'default-trunk',
        '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/originate-call';
header('Content-Type: application/json');
echo curlPost($url, $params);

Raspuns

In caz de succes:

{

    "has_error": false,
    "messages": [ ],
    "results": [
        "Call successfully originated for queue: test-queue" 
    ]
}

Sau in caz de eroare:

{

    "has_error": true,
    "messages": [
        "Invalid Queue. Check if pbx queue exists" 
    ],
    "results": [ ]
}

Disponibil si in alte limbi: EN

Go to top