PABX/APIuTech

De uTech Tecnologia
Edição feita às 20h28min de 27 de fevereiro de 2024 por Utechnet (disc | contribs)

Ir para: navegação, pesquisa

Tabela de conteúdo


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ÃOConfiguração. Depois clique na aba IntegraçõesGeral. 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!


Pabx-apiutech-config.png


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.


GET /v1/call/makecall


Parâmetros:
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


Resposta:
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
Exemplo:
GET /utech/v1/call/makecall/?token=1234&source=2000&destination=04833334840


200 OK:
{
  "status": "ok",
  "id": "1695129954.462751335"
}
Erro 4XX/5XX:
{
  "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.


GET /v1/call/get_record


Parâmetros:
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


Resposta:
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
Exemplo:
/utech/v1/call/get_record/?token=1234&id=1694435179.3


200 OK:
A gravação!
Erro 4XX/5XX:
{
  "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


Parâmetros:
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


Resposta:
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
Exemplo:
/utech/v1/call/get_record_uri/?token=1234&id=1694435179.3


200 OK:
{
  "status": "ok",
  "url": "https://dominio/storage/19092023/4001_6002_eb00000a_18750_003351.wav"
}
Erro 4XX/5XX:
{
  "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.


GET /v1/call/summary


Parâmetros:
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


Resposta:
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
Exemplo:
/utech/v1/call/summary/?token=1234&id=1694435179.3


200 OK:
{
  "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"
  }
}
Erro 4XX/5XX:
{
  "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.


GET /v1/call/call_status


Parâmetros:
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


Resposta:
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
Exemplo:
/utech/v1/call/call_status/?token=1234&id=1694435179.3


200 OK:
{
  "status": "ok",
  "id": "1695384025.44",
  "state": "answered"
}
Erro 4XX/5XX:
{
  "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..


GET /v1/call/endcall


Parâmetros:
token Token definido na configuração do PABX uTech. string Mandatório
id Identificador da chamada que deseja realizar desligar. string Mandatório


Resposta:
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
Exemplo:
/utech/v1/call/endcall/?token=1234&id=1694435179.3


200 OK:
{
  "status": "ok",
  "callstate": "finished",
  "id": "1695383395.42"
}
Erro 4XX/5XX:
{
  "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.


GET /v1/call/callback


Parâmetros:
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


Resposta:
status Estado da geração da chamada.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
cause Status da chamada:
  • finished: Chamada finalizada.
string
id Identificador da chamada para consulta do status. string
Exemplo:
/utech/v1/call/endcall/?token=1234&id=1694435179.3


200 OK:
{
  "status": "ok",
  "callstate": "finished",
  "id": "1695383395.42"
}
Erro 4XX/5XX:
{
  "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";
}
?>



Ferramentas pessoais
Espaços nominais

Variantes
Visualizações
Ações
Navegação
Ferramentas