API - CDR¶
API CDR se foloseste citi lista de apeluri din centrala
API URL¶
https://[YOUR-PBX-URL]/api/cdr.php
Datele se trasmit prin POST sau GET si trebuie sa fie de forma:¶
Array ( [page] => 1 [filters] => Array ( [date_between] => [project_id] => [direction] => [call_status] => [telephone] => [source] => [destination] => [hour_between] => [from_id] => ) [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
- direction: tipul de apel: inbound sau outbound (IN, OUT)
- call_status: staturs apel (NO ANSWER, CONGESTION, FAILED, BUSY, ANSWERED)
- telephone: filtru dupa un numar de telefon indiferent
- 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)
Exemplu generare parametri:
$params = array(
'page' => 1,
'filters' => array(
'date_between' => null, // array(from, to)
'project_id' => null,
'direction' => null, // IN, OUT
'call_status' => null, // NO ANSWER, CONGESTION, FAILED, BUSY, ANSWERED
'telephone' => null, // Wildcard 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
)
);
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.php';
$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": [ ]
}
Go to top