PABX/APIuTech

De uTech Tecnologia
Ir para: navegação, pesquisa

Voltar


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.
  • 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.


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.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.


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.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


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.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.


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.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.


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.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..


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.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


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
id Identificador da chamada para consulta do status. string
Exemplo:
/utech/v1/call/callback/?token=1234&queue=555000&number=4833334840


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


GET /v1/exten/extenlist


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


Resposta:
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











Exemplo:
/utech/v1/exten/extenlist/?token=1234&page=0


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


GET /v1/exten/extenadd


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


  • POST:
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


Resposta:
status Lista de ramais.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
exten Identificação do ramal adicionado. string
Exemplo:
/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"
}


200 OK:
{
  "status": "ok",
  "exten": "1000"
}
Erro 4XX/5XX:
{
  "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!


GET /v1/exten/extenedit


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


  • POST:
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


Resposta:
status Lista de ramais.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
exten Identificação do ramal editado. string
Exemplo:
/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"
}


200 OK:
{
  "status": "ok",
  "exten": "1000"
}
Erro 4XX/5XX:
{
  "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!


GET /v1/exten/extendel


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


Resposta:
status Lista de ramais.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
exten Identificação do ramal removido.
Exemplo:
/utech/v1/exten/extendel/?token=1234&exten=1000


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


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


Resposta:
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)






Exemplo:
/utech/v1/contacts/contactlist/?token=1234&page=0


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


Parâmetros:
token Token definido na configuração do PABX uTech. string Mandatório


  • POST:
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.
  • number: Número
Array Opcional
facebook Ramal.
  • number: Número
Array Opcional
telegram Ramal.
  • number: Número
Array Opcional
twitter Ramal.
  • number: Número
Array Opcional
instagram Ramal.
  • number: Número
Array Opcional


Resposta:
status Lista de ramais.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
id Identificação do contato adicionado. string
Exemplo:

/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"
    }
  }
}





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


Parâmetros:
token Token definido na configuração do PABX uTech. string Mandatório
id ID do contato. number Mandatório


Resposta:
status Lista de ramais.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
id Identificação do contato removido.
Exemplo:
/utech/v1/contacts/contactdel/?token=1234&id=555


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


GET /v1/core/applyconfig


Parâmetros:
token Token definido na configuração do PABX uTech. string Mandatório


Resposta:
status Lista de ramais.
  • ok: Requisição correta.
  • error: Erro na requisição.
string
Exemplo:
/utech/v1/core/applyconfig/?token=1234


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

Ferramentas pessoais
Espaços nominais

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