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. 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. Valor aceitos de 0 a 5000.
|
number
|
Mandatório
|
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";
}
?>
|
/exten/extenadd - Adicionar Ramal
Endpoint utilizado para adicionar um ramai no PABX.
Nota: Mandatório executar o Endpoint applyconfig após a inclusão/deleção de ramais para efetivar as configurações!
|
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
exten
|
Número do ramal. Somente dígitos. Máximo 20 caracteres.
|
number
|
Mandatório
|
name
|
Nome/Identificação do ramal
|
string
|
Opcional
|
cid
|
Numero de identificação do ramal.
|
number
|
Opcional
|
secret
|
Senha de registro do ramal.
|
number
|
Mandatório
|
callwaiting
|
Habilita/Desabilita chamada em espera.
|
boolean
|
Opcional
|
ringtimer
|
Tempo de ring do ramal.
|
number
|
Opcional
|
recording
|
Habilita/Desabilita a gravação do ramal.
|
boolean
|
Opcional
|
dtmfmode
|
Tipo do DTMF enviado pelo ramal - Ver Tipo TDMF
|
string
|
Opcional
|
context
|
Permissão de discagem do ramal - Ver Permissão de discagem
|
number
|
Opcional
|
callgroup
|
ID do grupo chamada do ramal - Ver Grupo de chamada
|
number
|
Opcional
|
pickupgroup
|
ID do grupo captura do ramal - Ver Grupo de captura
|
number
|
Opcional
|
src_perms
|
Permissão de origem ramal em ligação - Ver Permissão ramal origem
|
string
|
Opcional
|
dst_perms
|
Permissão de destino do ramal em ligação - Ver Permissão do ramal destino
|
string
|
Opcional
|
codeclist
|
Lista de codec's aceitos pelo ramal - Ver Codecs
String com valores separados por virgula.
|
string
|
Opcional
|
provisioning_enable
|
Habilita provisionamento no ramal
- 0 - Desabilitado
- 1 - Habilitado
|
number
|
Opcional
|
provisioning_macaddr
|
Endereço MAC do ramal/Dispositivo provisionado.
|
number
|
Opcional
|
provisioning_profile
|
Perfil de provisionamento - ID do perfil de provisionamento configurado no PBX.
|
number
|
Opcional
|
status
|
Lista de ramais.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
exten
|
Identificação do ramal adicionado.
|
string
|
|
|
/utech/v1/exten/extenadd/?token=1234&exten=1000
{
"name":"Nome do Usuario",
"cid":"4033334840",
"secret":"1234",
"callwaiting":true,
"ringtimer":30,
"provisioning_enable":"1",
"provisioning_macaddr":"00:11:22:33:44:55",
"provisioning_profile":"2",
"recording":true,
"dtmfmode":"info",
"context":1,
"callgroup":2,
"pickupgroup":2,
"src_perms":"GDET",
"dst_perms":"gdet",
"codeclist":"alaw,ulaw,gsm,g729"
}
{
"status": "ok",
"exten": "1000"
}
{
"status": "error",
"cause": "Invalid parameter format [exten]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.dominio.com";
$ext['name'] = "Nome do Usuario";
$ext['cid'] = "4033334840";
$ext['secret'] = "1234";
$ext['callwaiting'] = true;
$ext['ringtimer'] = 30;
$ext['provisioning_enable'] = "1";
$ext['provisioning_macaddr'] = "00:11:22:33:44:55";
$ext['provisioning_profile'] = "2";
$ext['recording'] = true;
$ext['dtmfmode'] = 'info';
$ext['context'] = 1;
$ext['callgroup'] = 2;
$ext['pickupgroup'] = 2;
$ext['src_perms'] = "GDET";
$ext['dst_perms'] = "gdet";
$ext['codeclist'] = "alaw,ulaw,gsm,g729";
$url = "$ipaddr/utech/v1/exten/extenadd/?token=$token&exten=1000";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($ext,JSON_UNESCAPED_SLASHES));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$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/extendel - Remover ramal
Endpoint utilizado Remover um ramal.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
exten
|
Número do ramal. Somente números. Máximi 20 caracteres.
|
number
|
Mandatório
|
status
|
Lista de ramais.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
exten
|
Identificação do ramal removido.
|
|
|
/utech/v1/exten/extenlist/?token=1234&exten=1000
{
"status": "ok",
"exten": "1000
}
{
"status": "error",
"cause": "Invalid parameter format [exten]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.dominio.com";
$url = "$ipaddr/utech/v1/exten/extendel/?token=$token&exten=1000";
$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";
}
?>
|
/core/applyconfig - Aplicar a configuração
Endpoint utilizado aplica a configuração do PABX. Mandatório para adição e exclusão de ramais.
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
status
|
Lista de ramais.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
|
|
/utech/v1/core/applyconfig/?token=1234
{
"status": "ok",
"exten": "1000
}
{
"status": "error",
"message": "Error String"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.dominio.com";
$url = "$ipaddr/utech/v1/core/applyconfig/?token=$token";
$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";
}
?>
|