PABX/APIuTech
(→/exten/extenlist - Lista de Ramais) |
(→/core/applyconfig - Aplicar a configuração) |
||
(9 edições intermediárias de um usuário não apresentadas) | |||
Linha 908: | Linha 908: | ||
== /exten/extenlist - Lista de Ramais == | == /exten/extenlist - Lista de Ramais == | ||
<BR> | <BR> | ||
− | 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 | + | 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. |
{| style="width: 100%;" | {| style="width: 100%;" | ||
Linha 1 011: | Linha 1 011: | ||
$url = "$ipaddr/utech/v1/exten/extenlist/?token=$token&page=0"; | $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"; | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | |} | ||
+ | <BR><BR> | ||
+ | |||
+ | == /exten/extenadd - Adicionar Ramal == | ||
+ | <BR> | ||
+ | Endpoint utilizado para adicionar um ramai no PABX. | ||
+ | <BR> | ||
+ | {| style="width: 100%; background-color: orange;" | ||
+ | | '''Nota''': Mandatório executar o Endpoint '''applyconfig''' após a inclusão/deleção de ramais para efetivar as configurações! | ||
+ | |} | ||
+ | |||
+ | {| style="width: 100%;" | ||
+ | |- | ||
+ | | style="width: 50%"| | ||
+ | |||
+ | |||
+ | {| style="width: 50%; background-color: #76b5c5;font-size:16px;padding: 12px;" | ||
+ | | '''GET''' /v1/exten/'''extenadd''' | ||
+ | |} | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Parâmetros:''' | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" width="80%" | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%;vertical-align:top;" align="right"| '''token''' | ||
+ | | Token definido na configuração do PABX uTech. | ||
+ | | ''string'' | ||
+ | | Mandatório | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%" align="right"| '''exten''' | ||
+ | | Número do ramal. Somente dígitos. Máximo 20 caracteres. | ||
+ | | ''number'' | ||
+ | | 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> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Resposta:''' | ||
+ | |} | ||
+ | {| class="wikitable" width="80%" | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%;" align="right"| '''status''' | ||
+ | | Lista de ramais. | ||
+ | * '''ok''': Requisição correta. | ||
+ | * '''error''': Erro na requisição. | ||
+ | | ''string'' | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%" align="right"| '''exten''' | ||
+ | | Identificação do ramal adicionado. | ||
+ | | string | ||
+ | |} | ||
+ | |||
+ | <!-- Tabela Lateral --> | ||
+ | <!-- Tabela Lateral --> | ||
+ | <!-- Tabela Lateral --> | ||
+ | | style="width: 20%;margin-left: auto; margin-right: 0px;""| | ||
+ | <!-- Tabela Lateral --> | ||
+ | | style="width: 30%;margin-left: auto; margin-right: 0px;""| | ||
+ | |||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Exemplo:''' | ||
+ | |} | ||
+ | <pre style="width: 50%;> | ||
+ | /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> | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''200 OK:''' | ||
+ | |} | ||
+ | <pre> | ||
+ | { | ||
+ | "status": "ok", | ||
+ | "exten": "1000" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Erro 4XX/5XX:''' | ||
+ | |} | ||
+ | <pre> | ||
+ | { | ||
+ | "status": "error", | ||
+ | "cause": "Invalid parameter format [exten]" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |} | ||
+ | <BR><BR> | ||
+ | === Exemplo em PHP === | ||
+ | {| class="wikitable" width="65%" | ||
+ | | | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $token = "1234"; | ||
+ | $ipaddr = "pabx.dominio.com"; | ||
+ | |||
+ | |||
+ | $ext['name'] = "Nome do Usuario"; | ||
+ | $ext['cid'] = "4033334840"; | ||
+ | $ext['secret'] = "1234"; | ||
+ | $ext['callwaiting'] = true; | ||
+ | $ext['ringtimer'] = 30; | ||
+ | $ext['provisioning_enable'] = "1"; | ||
+ | $ext['provisioning_macaddr'] = "00:11:22:33:44:55"; | ||
+ | $ext['provisioning_profile'] = "2"; | ||
+ | $ext['recording'] = true; | ||
+ | $ext['dtmfmode'] = 'info'; | ||
+ | $ext['context'] = 1; | ||
+ | $ext['callgroup'] = 2; | ||
+ | $ext['pickupgroup'] = 2; | ||
+ | $ext['src_perms'] = "GDET"; | ||
+ | $ext['dst_perms'] = "gdet"; | ||
+ | $ext['codeclist'] = "alaw,ulaw,gsm,g729"; | ||
+ | |||
+ | $url = "$ipaddr/utech/v1/exten/extenadd/?token=$token&exten=1000"; | ||
+ | |||
+ | $ch = curl_init(); | ||
+ | curl_setopt($ch, CURLOPT_URL, $url); | ||
+ | curl_setopt($ch, CURLOPT_POST, true); | ||
+ | curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); | ||
+ | curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($ext,JSON_UNESCAPED_SLASHES)); | ||
+ | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | ||
+ | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); | ||
+ | $result = curl_exec($ch); | ||
+ | if(!$result) { | ||
+ | echo "error!\n"; | ||
+ | return 2; | ||
+ | } | ||
+ | |||
+ | print_r(json_decode($result, true)); | ||
+ | |||
+ | $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); | ||
+ | if($httpcode != 200) { | ||
+ | echo "HTTP return code error [$httpcode]\n"; | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | |} | ||
+ | <BR><BR> | ||
+ | |||
+ | == /exten/extendel - Remover ramal == | ||
+ | <BR> | ||
+ | Endpoint utilizado Remover um ramal. | ||
+ | {| style="width: 100%; background-color: orange;" | ||
+ | | '''Nota''': Mandatório executar o Endpoint '''applyconfig''' após a inclusão/deleção de ramais para efetivar as configurações! | ||
+ | |} | ||
+ | |||
+ | {| style="width: 100%;" | ||
+ | |- | ||
+ | | style="width: 50%"| | ||
+ | |||
+ | |||
+ | {| style="width: 50%; background-color: #76b5c5;font-size:16px;padding: 12px;" | ||
+ | | '''GET''' /v1/exten/'''extendel''' | ||
+ | |} | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Parâmetros:''' | ||
+ | |} | ||
+ | {| class="wikitable" width="80%" | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%;vertical-align:top;" align="right"| '''token''' | ||
+ | | Token definido na configuração do PABX uTech. | ||
+ | | ''string'' | ||
+ | | Mandatório | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%" align="right"| '''exten''' | ||
+ | | Número do ramal. Somente números. Máximi 20 caracteres. | ||
+ | | ''number'' | ||
+ | | Mandatório | ||
+ | |} | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Resposta:''' | ||
+ | |} | ||
+ | {| class="wikitable" width="80%" | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%;" align="right"| '''status''' | ||
+ | | Lista de ramais. | ||
+ | * '''ok''': Requisição correta. | ||
+ | * '''error''': Erro na requisição. | ||
+ | | ''string'' | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%" align="right"| '''exten''' | ||
+ | | Identificação do ramal removido. | ||
+ | |} | ||
+ | |||
+ | <!-- Tabela Lateral --> | ||
+ | <!-- Tabela Lateral --> | ||
+ | <!-- Tabela Lateral --> | ||
+ | | style="width: 20%;margin-left: auto; margin-right: 0px;""| | ||
+ | <!-- Tabela Lateral --> | ||
+ | | style="width: 30%;margin-left: auto; margin-right: 0px;""| | ||
+ | |||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Exemplo:''' | ||
+ | |} | ||
+ | <pre style="width: 50%;> | ||
+ | /utech/v1/exten/extendel/?token=1234&exten=1000 | ||
+ | </pre> | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''200 OK:''' | ||
+ | |} | ||
+ | <pre> | ||
+ | { | ||
+ | "status": "ok", | ||
+ | "exten": "1000 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Erro 4XX/5XX:''' | ||
+ | |} | ||
+ | <pre> | ||
+ | { | ||
+ | "status": "error", | ||
+ | "cause": "Invalid parameter format [exten]" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |} | ||
+ | <BR><BR> | ||
+ | === Exemplo em PHP === | ||
+ | {| class="wikitable" width="65%" | ||
+ | | | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $token = "1234"; | ||
+ | $ipaddr = "pabx.dominio.com"; | ||
+ | |||
+ | $url = "$ipaddr/utech/v1/exten/extendel/?token=$token&exten=1000"; | ||
+ | |||
+ | $ch = curl_init($url); | ||
+ | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | ||
+ | curl_setopt($ch, CURLOPT_POST, false); | ||
+ | curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); | ||
+ | curl_setopt($ch, CURLOPT_TIMEOUT, 30); | ||
+ | $result = curl_exec($ch); | ||
+ | if(!$result) { | ||
+ | echo "error!\n"; | ||
+ | return 2; | ||
+ | } | ||
+ | |||
+ | print_r(json_decode($result, true)); | ||
+ | |||
+ | $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); | ||
+ | if($httpcode != 200) { | ||
+ | echo "HTTP return code error [$httpcode]\n"; | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | |} | ||
+ | <BR><BR> | ||
+ | |||
+ | == /core/applyconfig - Aplicar a configuração == | ||
+ | <BR> | ||
+ | Endpoint utilizado aplicar a configuração do PABX. Mandatório para adição e exclusão de ramais. | ||
+ | |||
+ | {| style="width: 100%;" | ||
+ | |- | ||
+ | | style="width: 50%"| | ||
+ | |||
+ | |||
+ | {| style="width: 50%; background-color: #76b5c5;font-size:16px;padding: 12px;" | ||
+ | | '''GET''' /v1/core/'''applyconfig''' | ||
+ | |} | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Parâmetros:''' | ||
+ | |} | ||
+ | {| class="wikitable" width="80%" | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%;vertical-align:top;" align="right"| '''token''' | ||
+ | | Token definido na configuração do PABX uTech. | ||
+ | | ''string'' | ||
+ | | Mandatório | ||
+ | |} | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Resposta:''' | ||
+ | |} | ||
+ | {| class="wikitable" width="80%" | ||
+ | |- | ||
+ | ! scope="row" style="width: 20%;" align="right"| '''status''' | ||
+ | | Lista de ramais. | ||
+ | * '''ok''': Requisição correta. | ||
+ | * '''error''': Erro na requisição. | ||
+ | | ''string'' | ||
+ | |} | ||
+ | |||
+ | <!-- Tabela Lateral --> | ||
+ | <!-- Tabela Lateral --> | ||
+ | <!-- Tabela Lateral --> | ||
+ | | style="width: 20%;margin-left: auto; margin-right: 0px;""| | ||
+ | <!-- Tabela Lateral --> | ||
+ | | style="width: 30%;margin-left: auto; margin-right: 0px;""| | ||
+ | |||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Exemplo:''' | ||
+ | |} | ||
+ | <pre style="width: 50%;> | ||
+ | /utech/v1/core/applyconfig/?token=1234 | ||
+ | </pre> | ||
+ | <BR> | ||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''200 OK:''' | ||
+ | |} | ||
+ | <pre> | ||
+ | { | ||
+ | "status": "ok", | ||
+ | "exten": "1000 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | {| style="width: 80%; font-size:18px;padding: 12px;" | ||
+ | | '''Erro 4XX/5XX:''' | ||
+ | |} | ||
+ | <pre> | ||
+ | { | ||
+ | "status": "error", | ||
+ | "message": "Error String" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |} | ||
+ | <BR><BR> | ||
+ | === Exemplo em PHP === | ||
+ | {| class="wikitable" width="65%" | ||
+ | | | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $token = "1234"; | ||
+ | $ipaddr = "pabx.dominio.com"; | ||
+ | |||
+ | $url = "$ipaddr/utech/v1/core/applyconfig/?token=$token"; | ||
$ch = curl_init($url); | $ch = curl_init($url); |
Edição atual tal como 19h44min de 16 de outubro de 2024
[editar] Introdução
- A API do PABX uTech está disponível para a versão 1.0.1 - Qui 20 Sep 2023 ou superior.
[editar] 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! |
[editar] Observações
- A API retorna valores no formato JSON.
- Utiliza protocolo HTTP.
[editar] Endpoints
[editar] /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 /utech/v1/call/makecall/?token=1234&source=2000&destination=04833334840
{ "status": "ok", "id": "1695129954.462751335" }
{ "status": "error", "cause": "Authentication error" } |
[editar] 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"; } ?> |
[editar] /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.
|
/utech/v1/call/get_record/?token=1234&id=1694435179.3
A gravação!
{ "status": "error", "cause": "Invalid callid" } |
[editar] 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"; } ?> |
[editar] /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.
|
/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" } |
[editar] 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"; } ?> |
[editar] /call/summary - Buscar dados/resumo de chamadas
Endpoint utilizado para buscar informações de uma chamada, como NA, NB, duração entre outros.
|
/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" } |
[editar] 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"; } ?> |
[editar] /call/call_status - Buscar o status atual de chamadas
Endpoint utilizado para buscar o estado atual de uma chamada.
|
/utech/v1/call/call_status/?token=1234&id=1694435179.3
{ "status": "ok", "id": "1695384025.44", "state": "answered" }
{ "status": "error", "cause": "Invalid callid" } |
[editar] 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"; } ?> |
[editar] /call/endcall - Desligar/Derrubar chamadas
Endpoint utilizado para derrubar/desligar uma chamada ativa..
|
/utech/v1/call/endcall/?token=1234&id=1694435179.3
{ "status": "ok", "callstate": "finished", "id": "1695383395.42" }
{ "status": "error", "cause": "Invalid callid" } |
[editar] 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"; } ?> |
[editar] /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
|
/utech/v1/call/callback/?token=1234&queue=555000&number=4833334840
{ "status": "ok", "id": "1695383395.42" }
{ "status": "error", "cause": "Invalid callid" } |
[editar] 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"; } ?> |
[editar] /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.
|
/utech/v1/exten/extenlist/?token=1234&page=0
{ "status": "ok", "extenlist": { "extens": { "2000": { "exten": "2000", "name": "Ramal 2000" } }, "total": "1", "count": 1, "page": "0" } }
{ "status": "error", "cause": "Invalid parameter format [page]" } |
[editar] 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"; } ?> |
[editar] /exten/extenadd - Adicionar Ramal
Endpoint utilizado para adicionar um ramai no PABX.
Nota: Mandatório executar o Endpoint applyconfig após a inclusão/deleção de ramais para efetivar as configurações! |
|
/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]" } |
[editar] Exemplo em PHP
<?php $token = "1234"; $ipaddr = "pabx.dominio.com"; $ext['name'] = "Nome do Usuario"; $ext['cid'] = "4033334840"; $ext['secret'] = "1234"; $ext['callwaiting'] = true; $ext['ringtimer'] = 30; $ext['provisioning_enable'] = "1"; $ext['provisioning_macaddr'] = "00:11:22:33:44:55"; $ext['provisioning_profile'] = "2"; $ext['recording'] = true; $ext['dtmfmode'] = 'info'; $ext['context'] = 1; $ext['callgroup'] = 2; $ext['pickupgroup'] = 2; $ext['src_perms'] = "GDET"; $ext['dst_perms'] = "gdet"; $ext['codeclist'] = "alaw,ulaw,gsm,g729"; $url = "$ipaddr/utech/v1/exten/extenadd/?token=$token&exten=1000"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($ext,JSON_UNESCAPED_SLASHES)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $result = curl_exec($ch); if(!$result) { echo "error!\n"; return 2; } print_r(json_decode($result, true)); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($httpcode != 200) { echo "HTTP return code error [$httpcode]\n"; } ?> |
[editar] /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! |
|
/utech/v1/exten/extendel/?token=1234&exten=1000
{ "status": "ok", "exten": "1000 }
{ "status": "error", "cause": "Invalid parameter format [exten]" } |
[editar] Exemplo em PHP
<?php $token = "1234"; $ipaddr = "pabx.dominio.com"; $url = "$ipaddr/utech/v1/exten/extendel/?token=$token&exten=1000"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $result = curl_exec($ch); if(!$result) { echo "error!\n"; return 2; } print_r(json_decode($result, true)); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($httpcode != 200) { echo "HTTP return code error [$httpcode]\n"; } ?> |
[editar] /core/applyconfig - Aplicar a configuração
Endpoint utilizado aplicar a configuração do PABX. Mandatório para adição e exclusão de ramais.
|
/utech/v1/core/applyconfig/?token=1234
{ "status": "ok", "exten": "1000 }
{ "status": "error", "message": "Error String" } |
[editar] Exemplo em PHP
<?php $token = "1234"; $ipaddr = "pabx.dominio.com"; $url = "$ipaddr/utech/v1/core/applyconfig/?token=$token"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $result = curl_exec($ch); if(!$result) { echo "error!\n"; return 2; } print_r(json_decode($result, true)); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($httpcode != 200) { echo "HTTP return code error [$httpcode]\n"; } ?> |