|
|
Linha 1 008: |
Linha 1 008: |
| | | |
| $token = "1234"; | | $token = "1234"; |
− | $callid = "1234567890";
| |
− | $port = "80";
| |
| $ipaddr = "pabx.dominio.com"; | | $ipaddr = "pabx.dominio.com"; |
| | | |
− | $url = "";
| + | $url = "$ipaddr/utech/v1/exten/extenlist/?token=$token&page=0"; |
− | $url = "$ipaddr:$port/utech/v1/exten/extenlist/?token=1234&page=0 | + | |
| | | |
| $ch = curl_init($url); | | $ch = curl_init($url); |
Edição de 12h43min de 16 de outubro de 2024
Introdução
- A API do PABX uTech está disponível para a versão 1.0.1 - Qui 20 Sep 2023 ou superior.
Configuração do PABX
- Para habilitar ou desabilitar o acesso a API, acesse a interface WEB do PABX, menu GESTÃO ⇒ Configuração. Depois clique na aba Integrações ⇒ Geral. Não opção API uTech'
- Habilite ou desabilite a opção Habilitar API.
- Configure um token de acesso no campo Token. É mandatório a configuração de um token. Se o campo ficar vazio, não será possível a utilização da API.
Nota: utilize um token forte, pois a API deixará seu PABX aberto para tentativas de uso da API!
|
Observações
- A API retorna valores no formato JSON.
- Utiliza protocolo HTTP.
Endpoints
/call/makecall - Gerar chamadas
Endpoint utilizado para gerar uma chamada. Ao executar o endpoint, será gerada uma chamada para o numero origem (parâmetro source). Quando a origem atender a chamada, será gerado pelo PABX uma chamada para o numero destino (parâmetro destination). Quando o destino atender a chamada, origem e destino estarão em conversação.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
source
|
Numero origem da chamada. Ramal, fila, etc.
|
string
|
Mandatório
|
destination
|
Número destino da chamada.
|
string
|
Mandatório
|
status
|
Estado da geração da chamada.
- ok: Chamada será realizada.
- error: Erro na requisição.
|
string
|
id
|
Identificador da chamada (callid). Essa identificação será utilizada para requisições de status e gravação, etc.
|
string
|
cause
|
Em caso de erro na requisição, uma string de causa do erro será preenchida.
|
string
|
|
|
GET /utech/v1/call/makecall/?token=1234&source=2000&destination=04833334840
{
"status": "ok",
"id": "1695129954.462751335"
}
{
"status": "error",
"cause": "Authentication error"
}
|
Exemplo em PHP
<?php
$token = "1234";
$source = "2001";
$destination = "4833334840";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call/makecall/?token={$token}&source={$source}&destination={$destination}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/call/get_record - Fazer download de gravações
Endpoint utilizado para fazer o download de uma gravação. Se o ID passado corresponder a uma chamada válida e houver gravação dessa chamada, o PABX uTech irá iniciar o download da gravação. Caso contrário, será retornado erro 404 e um json com a causa.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
id
|
Identificador da chamada que deseja realizar o download da gravação.
|
string
|
Mandatório
|
status
|
Estado da geração da chamada.
- error: Erro na requisição.
|
string
|
cause
|
Em caso de erro na requisição, uma string de causa do erro será preenchida.
|
string
|
|
|
/utech/v1/call/get_record/?token=1234&id=1694435179.3
A gravação!
{
"status": "error",
"cause": "Invalid callid"
}
|
Exemplo em PHP
<?php
$token = "1234";
$callid = "1234567890";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call/get_record/?token={$token}&id={$callid}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/call/get_rec_uri - Buscar link de gravações
Endpoint utilizado para buscar o link para de download de uma gravação. Se o ID passado corresponder a uma chamada válida e houver gravação dessa chamada, o PABX uTech retornar um json com o link da gravação. Caso contrário, será retornado erro 404 e um json com a causa.
GET /v1/call/get_record_uri
|
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
id
|
Identificador da chamada que deseja realizar o download da gravação.
|
string
|
Mandatório
|
status
|
Estado da geração da chamada.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
url
|
Link para download da gravação.
|
uri
|
cause
|
Em caso de erro na requisição, uma string de causa do erro será preenchida.
|
string
|
|
|
/utech/v1/call/get_record_uri/?token=1234&id=1694435179.3
{
"status": "ok",
"url": "https://dominio/storage/19092023/4001_6002_eb00000a_18750_003351.wav"
}
{
"status": "error",
"cause": "Invalid callid"
}
|
Exemplo em PHP
<?php
$token = "1234";
$callid = "1234567890";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call/get_record_uri/?token={$token}&id={$callid}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/call/summary - Buscar dados/resumo de chamadas
Endpoint utilizado para buscar informações de uma chamada, como NA, NB, duração entre outros.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
id
|
Identificador da chamada que deseja buscar o sumário.
|
string
|
Mandatório
|
status
|
Estado da geração da chamada.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
summary
|
Dados da chamada consultada:
- callid: Identificação da chamada.
- url: Link para download da gravação.
- 'start_date: Data/Hora de inicio da chamada.
- end_data: Data/Hora de finalização da chamada.
- talk_duration: Tempo, em segundos,de conversação.
- total_duration: Tempo, em segundos,total da chamada.
- price: Custo da chamada.
- caller: Numero origem.
- called: Numero destino.
|
array/json
|
cause
|
Em caso de erro na requisição, uma string de causa do erro será preenchida.
|
string
|
|
|
/utech/v1/call/summary/?token=1234&id=1694435179.3
{
"status": "ok",
"summary": {
"callid": "1694435179.3",
"url": "https://dominio/storage/19092023/4001_6002_eb00000a_18750_003351.wav",
"start_date": "2023-09-19T00:33:51-03:00",
"end_data": "2023-09-19T00:33:55-03:00",
"talk_duration": "33",
"total_duration": 42,
"price": "0",
"caller": "2000",
"called": "4833334840"
}
}
{
"status": "error",
"cause": "Invalid callid"
}
|
Exemplo em PHP
<?php
$token = "1234";
$callid = "1234567890";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call/summary/?token={$token}&id={$callid}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/call/call_status - Buscar o status atual de chamadas
Endpoint utilizado para buscar o estado atual de uma chamada.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
id
|
Identificador da chamada que deseja realizar o download da gravação.
|
string
|
Mandatório
|
status
|
Estado da geração da chamada.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
state
|
Estado da chamada:
- answered: Chamada atendida.
- unanswered: Chamada não atendida.
- proceeding: Chamada originada/enviada ao destino.
- calling: Chamada iniciada.
- diverted: Chamada desviada.
- transferred: Chamada transferida.
|
array/json
|
id
|
Identificador da chamada enviado na requisição.
|
string
|
cause
|
Em caso de erro na requisição, uma string de causa do erro será preenchida.
|
string
|
|
|
/utech/v1/call/call_status/?token=1234&id=1694435179.3
{
"status": "ok",
"id": "1695384025.44",
"state": "answered"
}
{
"status": "error",
"cause": "Invalid callid"
}
|
Exemplo em PHP
<?php
$token = "1234";
$callid = "1234567890";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call/call_status/?token={$token}&id={$callid}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/call/endcall - Desligar/Derrubar chamadas
Endpoint utilizado para derrubar/desligar uma chamada ativa..
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
id
|
Identificador da chamada que deseja realizar desligar.
|
string
|
Mandatório
|
status
|
Estado da geração da chamada.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
callstate
|
Status da chamada:
- finished: Chamada finalizada.
|
string
|
id
|
Identificador da chamada enviado na requisição.
|
string
|
|
|
/utech/v1/call/endcall/?token=1234&id=1694435179.3
{
"status": "ok",
"callstate": "finished",
"id": "1695383395.42"
}
{
"status": "error",
"cause": "Invalid callid"
}
|
Exemplo em PHP
<?php
$token = "1234";
$callid = "1234567890";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call//endcall/?token={$token}&id={$callid}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/call/callback - Callback para Filas
Endpoint utilizado gerar uma chamada de callback para as filas do PABX. PABX uTEch irá discar para o número definido no parâmetro number', e quando o usuário atender, a chamada é enviada para a fila do PABX definida no parâmetro queue
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
queue
|
Número da fila no PABX.
|
number
|
Mandatório
|
number
|
Numero destino da chamada.
|
number
|
Mandatório
|
status
|
Estado da geração da chamada.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
id
|
Identificador da chamada para consulta do status.
|
string
|
|
|
/utech/v1/call/callback/?token=1234&queue=555000&number=4833334840
{
"status": "ok",
"id": "1695383395.42"
}
{
"status": "error",
"cause": "Invalid callid"
}
|
Exemplo em PHP
<?php
$token = "1234";
$callid = "1234567890";
$port = "80";
$ipaddr = "pabx.dominio.com";
$url = "";
$url = "$ipaddr:$port/utech/v1/call/callback/?token={$token}&queue={$queue}&number={$number}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|
/exten/extenlist - Lista de Ramais
Endpoint utilizado para buscar a lista de ramais do PABX. Tamanho máximo da lista será de 200 ramais. Se houver mais ramais configurados no PABX uTech, deve-se utilizar o parâmetro page, para buscar os próximos 200. A página padrão é 0 (zero). Os valores aceitos para o parâmetro page são de 0 a 5000.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
page
|
Número da página. Página padrão é 0 (zero). Valor aceitos de 0 a 5000.
|
number
|
Não mandatório - Será utilizado pagina zero
|
status
|
Lista de ramais.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
extenlist
|
Dados dos ramais.
|
json
- extens: Lista de ramais
- page: pagina retornada
- total: total de ramais da plataforma
- count: total de ramais retornados na requisição
|
|
|
/utech/v1/exten/extenlist/?token=1234&page=0
{
"status": "ok",
"extenlist": {
"extens": {
"2000": {
"exten": "2000",
"name": "Ramal 2000"
}
},
"total": "1",
"count": 1,
"page": "0"
}
}
{
"status": "error",
"cause": "Invalid parameter format [page]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.dominio.com";
$url = "$ipaddr/utech/v1/exten/extenlist/?token=$token&page=0";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if(!$result) {
echo "error!\n";
return 2;
}
print_r(json_decode($result, true));
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode != 200) {
echo "HTTP return code error [$httpcode]\n";
}
?>
|