Voltar
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.
- Trocar o endereço "pabx.exemplo.com" pelo domínio ou endereço IP do PABX uTech
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.exemplo.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.exemplo.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.exemplo.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.exemplo.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.exemplo.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.exemplo.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.exemplo.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
|
- Ver descrição dos campos em:
|
|
/utech/v1/exten/extenlist/?token=1234&page=0
{
"status": "ok",
"extenlist": {
"extens": {
"2000": {
"exten": "1000",
"name": "Ramal 1000 - teste",
"outboundcid": "4833331000",
"codecs": "alaw,gsm",
"context": "1",
"dtmfmode": "info",
"provisioning_enable": 0,
"provisioning_macaddr": "",
"provisioning_profile": "0",
"callgroup": "1",
"pickupgroup": "1",
"ringtimer": "15",
"recording": true,
"src_perms": "TD",
"dst_perms": "td"",
"status": "Unreachable",
"adrress": ""
}
},
"total": "1",
"count": 1,
"page": "0"
}
}
{
"status": "error",
"cause": "Invalid parameter format [page]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.exemplo.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 ramal 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.exemplo.com";
$headers = array('Content-Type: application/json');
$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/extenedit - Editar Ramal
Endpoint utilizado para editar um ramal do 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 editado.
|
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.exemplo.com";
$headers = array('Content-Type: application/json');
$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/extenedit/?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.
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 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/extendel/?token=1234&exten=1000
{
"status": "ok",
"exten": "1000
}
{
"status": "error",
"cause": "Invalid parameter format [exten]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.exemplo.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";
}
?>
|
/contacts/contactlist - Lista de contatos
Endpoint utilizado para buscar a lista de contatos do PABX. Tamanho máximo da lista será de 200 ramais. Se houver mais contatos 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.
GET /v1/contacts/contactlist
|
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
|
contactlist
|
Dados dos ramais.
|
json
- contacts: Lista de ramais
- page: pagina retornada
- total: total de ramais da plataforma
- count: total de ramais retornados na requisição
- name: Nome/Indetificação do contato (string - Tamanho máx. 100)
- "birthday": Data de nascimento do contato Formato YYYY-MM-DD
- email - Email do contato (string - Tamanho máx. 200)
- type- Tipo do contato (integer - Tamanho máx. 2).
- 0 - Cliente
- 1 - Fornecedor
- 2 - Representante
- 3 - Vendedor
- 4 - Filial
- 5 - Outros
- company: Nome da empresa do contato (string - Tamanho máx. 200).
- area: "Identificação do setor da empresa ref. ao contato (string - Tamanho máx. 100).
- title: Identificação da ocupação / cargo do contato (string - Tamanho máx. 100).
- cpf: CPF do contato - (string - Tamanho máx. 14)
- cnpj: CNPJ do contato - (string - Tamanho máx. 18)
- rg: Número do RG do contato (string - Tamanho máx. 12)
- document: Texto (string - Tamanho máx. 50).
- code: Código do contato (string - Tamanho máx. 100)
- address: Endereço do conato (string - Tamanho máx. 65535)
- postalcode: CEP do contato (string - Tamanho máx. 10).
- observations: Texto para informações do contato (string - Tamanho máx. 65535)
- attendant: Número do ramal atendedor do contato. Utilizado para direcionar chamadas do contato diretamente para um ramal/fila do pabx. (string - Tamanho máx. 20)
|
- Ver descrição dos campos em:
|
|
/utech/v1/contacts/contactlist/?token=1234&page=0
{
"status": "ok",
"contactlist": {
"contacts": {
"61": {
"name": "John Doe",
"birthday": "1970-01-01",
"email": "john.doe@email.com.br",
"type": "2",
"company": "uTech Tecnologia",
"area": "Documentacao",
"title": "Engenheiro",
"cpf": "111.111.111-11",
"cnpj": "12.121.212/1212-12",
"rg": "123.123.123",
"document": "1.2.3.4",
"code": "4321",
"address": "Rua Idalina Pereira dos Santos, 67 - Sala 702",
"postalcode": "88025-260",
"observations": "Teste",
"attendant": "1000",
"numbers": {
"mobile": {
"priority": "0",
"number": "48988887777"
},
"home": {
"priority": "1",
"number": "4833334840"
},
"business": {
"priority": "2",
"number": "4833334840"
},
"extension": {
"number": "1001"
},
"whatsapp": {
"priority": "3",
"number": "48999998888"
},
"facebook": {
"number": "1234567890"
},
"telegram": {
"number": "utechnet_bot"
},
"twitter": {
"number": "utechnet"
},
"instagram": {
"number": "utechoficial"
}
}
}
},
"total": 1,
"count": 0,
"page": 0
}
}
{
"status": "error",
"cause": "Invalid parameter format [page]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.exemplo.com";
$url = "$ipaddr/utech/v1/contacts/contactlist/?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";
}
?>
|
/contacts/contactadd - Adicionar contato
Endpoint utilizado para adicionar um contato no PABX.
GET /v1/contacts/contactadd
|
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
name
|
Nome/Identificação do contato
|
string - Max. 100.
|
Mandatório
|
birthday
|
Data de nascimento - Formato YYYY-MM-AA.
|
string
|
Opcional
|
email
|
Email do contato.
|
string - Max. 200.
|
Opcional
|
type
|
Tipo do contato.
- 0 - Cliente
- 1 - Fornecedor
- 2 - Representante
- 3 - Vendedor
- 4 - Filial
- 5 - Outros
|
integer Max. 2
|
Opcional
|
company
|
Identificação da empresa do contato.
|
string - Max 200
|
Opcional
|
area
|
Identificação do setor do contato.
|
string Max 100
|
Opcional
|
title
|
Identificação do cargo do contato.
|
string Max 100
|
Opcional
|
cpf
|
CPF do contato
|
string Max 14
|
Opcional
|
cnpj
|
CNPJ do contato.
|
string Max 18
|
Opcional
|
rg
|
RG do contato
|
string Max 12
|
Opcional
|
document
|
Documento do contato
|
string 50
|
Opcional
|
code
|
Código de identificação do contato.
|
string Max 100
|
Opcional
|
address
|
Endereço do contato
|
string Max 65535
|
Opcional
|
postalcode
|
CEP do contato
|
string Max 10
|
Opcional
|
observations
|
Texto para informações do contato.
|
string Max 65535
|
Opcional
|
attendant
|
Número do ramal atendedor do contato.
|
string Max 20
|
Opcional
|
number
|
numbers
|
Lista de contatos e prioridades.
|
Array
|
Mandatório (pelo menos 1 número)
|
mobile
|
Número celular/móvel.
- number: Número
- priority: Prioridade
|
Array
|
Opcional
|
home
|
Número residencial.
- number: Número
- priority: Prioridade
|
Array
|
Opcional
|
business
|
Número comercial.
- number: Número
- priority: Prioridade
|
Array
|
Opcional
|
whatsapp
|
Número Whatsapp.
- number: Número
- priority: Prioridade
|
Array
|
Opcional
|
extension
|
Ramal.
|
Array
|
Opcional
|
facebook
|
Ramal.
|
Array
|
Opcional
|
telegram
|
Ramal.
|
Array
|
Opcional
|
twitter
|
Ramal.
|
Array
|
Opcional
|
instagram
|
Ramal.
|
Array
|
Opcional
|
status
|
Lista de ramais.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
id
|
Identificação do contato adicionado.
|
string
|
|
|
/utech/v1/contacts/contactadd/?token=1234
{
"name": "John Doe",
"birthday": "1970-01-01",
"email": "john.doe@email.com.br",
"type": "2",
"company": "uTech Tecnologia",
"area": "Documentacao",
"title": "Engenheiro",
"cpf": "111.111.111-11",
"cnpj": "12.121.212/1212-12",
"rg": "123.123.123",
"document": "1.2.3.4",
"code": "4321",
"address": "Rua Idalina Pereira dos Santos, 67 - Sala 702",
"postalcode": "88025-260",
"observations": "Teste",
"attendant": "1000",
"numbers": {
"mobile": {
"priority": "0",
"number": "48988887777"
},
"home": {
"priority": "1",
"number": "4833334840"
},
"business": {
"priority": "2",
"number": "4833334840"
},
"extension": {
"number": "1001"
},
"whatsapp": {
"priority": "3",
"number": "48999998888"
},
"facebook": {
"number": "1234567890"
},
"telegram": {
"number": "utechnet_bot"
},
"twitter": {
"number": "utechnet"
},
"instagram": {
"number": "utechoficial"
}
}
}
{
"status": "ok",
"id": "456"
}
{
"status": "error",
"cause": "Contact already exist"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.exemplo.com";
$numbers['mobile'] = array("priority" => 1, "number" => "48988887777");
$numbers['whatsapp'] = array("priority" => 2, "number" => "48988887777");
$contact['name'] = "John Doe";
$contact['birthday'] = "1970-01-01";
$contact['email'] = "john.doe@email.com.br";
$contact['type'] = "2";
$contact['company'] = "uTech Tecnologia";
$contact['area'] = "Documentacao";
$contact['title'] = "Engenheiro";
$contact['cpf'] = "111.111.111-11";
$contact['cnpj'] = "12.121.212/1212-12";
$contact['rg'] = "123.123.123";
$contact['document'] = "1.2.3.4";
$contact['code'] = "4321";
$contact['address'] = "Rua Idalina Pereira dos Santos, 67 - Sala 702";
$contact['postalcode'] = "88025-260";
$contact['observations'] = "Teste";
$contact['attendant'] = "1000";
$contact['numbers'] = $numbers;
$headers = array('Content-Type: application/json');
$url = "http://$ipaddr/utech/v1/contacts/contactadd/?token=$token";
$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($contact));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "http status code: $httpcode\n";
echo "data: $result\n";
print_r($result);
?>
|
/contacts/contactdel - Remover contato
Endpoint utilizado Remover um contato da lista de contatos.
GET /v1/contacts/contactdel
|
token
|
Token definido na configuração do PABX uTech.
|
string
|
Mandatório
|
id
|
ID do contato.
|
number
|
Mandatório
|
status
|
Lista de ramais.
- ok: Requisição correta.
- error: Erro na requisição.
|
string
|
id
|
Identificação do contato removido.
|
|
|
/utech/v1/contacts/contactdel/?token=1234&id=555
{
"status": "ok",
"id": "1000
}
{
"status": "error",
"cause": "Invalid parameter format [id]"
}
|
Exemplo em PHP
<?php
$token = "1234";
$ipaddr = "pabx.exemplo.com";
$url = "$ipaddr/utech/v1/contacts/contactdel/?token=$token&id=555";
$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 aplicar 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.exemplo.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";
}
?>
|
Voltar