PABX/APIuTech

De uTech Tecnologia
(Diferença entre revisões)
Ir para: navegação, pesquisa
(/exten/extenlist - Lista de Ramais)
(/exten/extenadd - Adicionar Ramal)
Linha 1 044: Linha 1 044:
  
 
{| style="width: 50%; background-color: #76b5c5;font-size:16px;padding: 12px;"  
 
{| style="width: 50%; background-color: #76b5c5;font-size:16px;padding: 12px;"  
| '''GET''' /v1/exten/'''extenlist'''
+
| '''GET''' /v1/exten/'''extenadd'''
 
|}
 
|}
 
<BR>
 
<BR>
Linha 1 050: Linha 1 050:
 
| '''Parâmetros:'''
 
| '''Parâmetros:'''
 
|}
 
|}
 +
 
{| class="wikitable" width="80%"
 
{| class="wikitable" width="80%"
 
|-
 
|-
Linha 1 057: Linha 1 058:
 
| Mandatório
 
| Mandatório
 
|-
 
|-
! scope="row" style="width: 20%" align="right"| '''page'''
+
! scope="row" style="width: 20%" align="right"| '''exten'''
| Número da página. Valor aceitos de 0 a 5000.
+
| Número do ramal. Somente dígitos. Máximo 20 caracteres.
 
| ''number''
 
| ''number''
 
| Mandatório
 
| Mandatório
 +
|}
 +
<BR>
 +
* '''POST''':
 +
 +
{| class="wikitable" width="80%"
 +
|-
 +
! scope="row" style="width: 20%;vertical-align:top;" align="right"| '''name'''
 +
| Nome/Identificação do ramal
 +
| ''string''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''cid'''
 +
| Numero de identificação do ramal.
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''secret'''
 +
| Senha de registro do ramal.
 +
| ''number''
 +
| Mandatório
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''callwaiting'''
 +
| Habilita/Desabilita chamada em espera.
 +
| ''boolean''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''ringtimer'''
 +
| Tempo de ring do ramal.
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''recording'''
 +
| Habilita/Desabilita a gravação do ramal.
 +
| ''boolean''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''dtmfmode'''
 +
| Tipo do DTMF enviado pelo ramal - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|Tipo TDMF]]
 +
| ''string''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''context'''
 +
| Permissão de discagem do ramal - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|Permissão de discagem]]
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''callgroup'''
 +
| ID do grupo chamada do ramal - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|Grupo de chamada]]
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''pickupgroup'''
 +
| ID do grupo captura do ramal - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|'''Grupo de captura''']]
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''src_perms'''
 +
| Permissão de origem ramal em ligação - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|'''Permissão ramal origem''']]
 +
| ''string''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''dst_perms'''
 +
| Permissão de destino do ramal em ligação - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|'''Permissão do ramal destino''']]
 +
| ''string''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''codeclist'''
 +
| Lista de ''codec's'' aceitos pelo ramal - Ver [[PABX/Importação_de_Ramais#Campos_aceitos|'''Codecs''']]
 +
''String'' com valores separados por virgula.
 +
| ''string''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''provisioning_enable'''
 +
| Habilita provisionamento no ramal
 +
* 0 - Desabilitado
 +
* 1 - Habilitado
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''provisioning_macaddr'''
 +
| Endereço MAC do ramal/Dispositivo provisionado.
 +
| ''number''
 +
| Opcional
 +
|-
 +
! scope="row" style="width: 20%" align="right"| '''provisioning_profile'''
 +
| Perfil de provisionamento - ID do perfil de provisionamento configurado no PBX.
 +
| ''number''
 +
| Opcional
 +
 
|}
 
|}
 
<BR>
 
<BR>
Linha 1 074: Linha 1 164:
 
| ''string''
 
| ''string''
 
|-
 
|-
! scope="row" style="width: 20%" align="right"| '''extenlist'''
+
! scope="row" style="width: 20%" align="right"| '''exten'''
| Dados dos ramais.
+
| Identificação do ramal adicionado.
| ''json''
+
| string
* '''extens''': Lista de ramais
+
* '''page''': pagina retornada
+
* '''total''': total de ramais da plataforma
+
* '''count''': total de ramais retornados na requisição
+
 
|}
 
|}
  
Linha 1 094: Linha 1 180:
 
|}
 
|}
 
<pre style="width: 50%;>
 
<pre style="width: 50%;>
/utech/v1/exten/extenlist/?token=1234&page=0
+
/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"
 +
}
 
</pre>
 
</pre>
 
<BR>
 
<BR>
Linha 1 103: Linha 1 207:
 
{
 
{
 
   "status": "ok",
 
   "status": "ok",
   "extenlist": {
+
   "exten": "1000"
    "extens": {
+
      "2000": {
+
        "exten": "2000",
+
        "name": "Ramal 2000"
+
      }
+
    },
+
    "total": "1",
+
    "count": 1,
+
    "page": "0"
+
  }
+
 
}
 
}
 
</pre>
 
</pre>
Linha 1 123: Linha 1 217:
 
{
 
{
 
   "status": "error",
 
   "status": "error",
   "cause": "Invalid parameter format [page]"
+
   "cause": "Invalid parameter format [exten]"
 
}
 
}
 
</pre>
 
</pre>
Linha 1 138: Linha 1 232:
 
$ipaddr = "pabx.dominio.com";
 
$ipaddr = "pabx.dominio.com";
  
$url = "$ipaddr/utech/v1/exten/extenlist/?token=$token&page=0";
 
  
$ch = curl_init($url);
+
$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/extenlist/?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_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
+
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
+
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
+
 
$result = curl_exec($ch);
 
$result = curl_exec($ch);
 
if(!$result) {
 
if(!$result) {

Edição de 19h32min de 16 de outubro de 2024

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


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": "2000",
        "name": "Ramal 2000"
      }
    },
    "total": "1",
    "count": 1,
    "page": "0"
  }
}
Erro 4XX/5XX:
{
  "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.


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.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/extenlist/?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";
}
?>



Ferramentas pessoais
Espaços nominais

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