Project

General

Profile

API - Call Detail Records - CDR

API CDR se foloseste pentru a citi lista de apeluri din centrala

API URL

https://[YOUR-PBX-URL]/api/cdr

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

Array
(
    [page] => 1
    [filters] => Array
        (
            [date_between] => Array
                (
                    [0] => 2024-01-01 00:00:00
                    [1] => 2024-01-15 23:59:59
                )
            [project_id] =>
            [user_id] =>
            [inbound_route_id] => 
            [direction] => 
            [call_status] => 
            [telephone_like] => 
            [telephone] => 
            [source] => 
            [destination] => 
            [hour_between] => 
            [from_id] => 
            [uniqueid] => 
            [linkedid] => 
            [external_id] => 
            [has_transcription] => 
            [has_monitor_file] => 
            [has_recording_file] => 
        )

    [api_hash] => 07112231a9c89f5b108af08608a97b07
)

Parametrul action trebuie sa aiba valoarea read. Parametrul page este implicit 1, va trebui incrementat pentru a extrage datele de pe toate paginile.

Headere HTTP:

Content-Type: text/xml
Authorization: Bearer <token>

Filtre:

  • date_between: intervalul pentru care se face filtrare
  • project_id: ID proiect in centrala
  • user_id: ID user in centrala
  • inbound_route_id: ID-uri Inbound routes
  • direction: tipul de apel: inbound sau outbound (IN, OUT)
  • call_status: status apel (NO ANSWER, CONGESTION, FAILED, BUSY, ANSWERED)
  • telephone_like: filtru dupa un numar de telefon indiferent (wildcard)
  • telephone: filtru dupa un numar de telefon indiferent (exact)
  • source: numarul de telefon de la care s-a initiat apelul
  • destination: numarul de telefon catre care s-a initiat apelul
  • hour_between: intervalul orar pentru care se face filtrare
  • from_id: ID start pentru extragere informatii (cand se retine ultimul ID sincronizat)
  • uniqueid: ID apel
  • linkedid: ID apeluri inrudite
  • external_id: ID extern

Exemplu generare parametri:

$params = array(
    'page' => 1,
    'filters' => array(
        'date_between' => array('2024-01-01 00:00:00', '2024-01-15 23:59:59'), // array(from, to)
        'project_id' => null,
        'user_id' => null, // Users IDs
        'inbound_route_id' => null, // array(1,2,3,4) Inbound Routes IDs
        'direction' => null, // IN, OUT
        'call_status' => null, // NO ANSWER, CONGESTION, FAILED, BUSY, ANSWERED
        'telephone_like' => null, // Wildcard search for source OR destination
        'telephone' => null, // Exact search for source OR destination
        'source' => null, // Wildcard search for source
        'destination' => null, // Wildcard search for destination
        'hour_between' => null, // array(from, to)
        'from_id' => null, // >= id
        'uniqueid' => null,
        'linkedid' => null,
        'has_transcription' => null,
        'has_monitor_file' => null,
        'has_recording_file' => null,
        'external_id' => null,
    )
);

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/cdr';
$token = 'your_api_token';
echo curlPost($url, http_build_query($params), array("Authorization: Bearer {$token}"));

Raspuns

In caz de succes:

{

    "has_error": false,
    "messages": [ ],
    "pagination": {
        "row_count": 0,
        "page_size": 100,
        "current_page": 0,
        "max_page": 0
    },
    "results": [ ]

}

Sau in caz de eroare:

{

    "has_error": true,
    "messages": [
        "Invalid filter: from_idxx" 
    ],
    "pagination": [ ],
    "results": [ ]

}

Disponibil si in alte limbi: EN

Go to top