[ API ] Gerenciar Menu de URA - IVR

Endereço de Chamada da API

GET /api/manageIvr/API_TOKEN/API_KEY/0

Este Ponto de Acesso permite que você Gerenciar os Menus de URA (IVR) para integração com os Números Entrantes (DID)
Para nosso exemplo, iremos deduzir que o endereço do servidor será sip.nextbilling.com.br. Nesse caso, o endereço da API seria:

Endereço da API exemplo

GET https://sip.nextbilling.com.br/api/manageIvr/API_TOKEN/API_KEY/0

Parâmetros:

  • id_cliente: Obter o cadastro de um registro em específico

  • descricao: Descrição do Registro

  • alow_dial_extension: 0 - Apenas opção de URA permitido | 1 - Permite digitar opção da URA ou um número de ramal para discagem direta

  • timeout_response: Tempo em segundos para um Digito do Cliente

  • timeout_digit: Tempo em Segundos entre os Dígitos

  • perfil_horario: Objeto informando o ID do perfil de horário, ex: "perfil_horario": {id: 12}

  • audio_invalido: Objeto informando o ID do Audio de Opção inválida, ex: "audio_invalido": {id: 12}

  • audio_timeout: Objeto informando o ID do Audio de Tempo Esgostado, ex: "audio_timeout": {id: 12}

  • have_question: Inteiro que ativa ou desativa a Pesquisa de Satisfação: 0 - inativo | 1 - ativo

  • audio_question: Objeto informando o ID do Audio da Pesquisa de Satisfação, ex: "audio_timeout": {id: 12}

  • closed_audio: Objeto informando o ID do Audio de Fora de Funcionamento, ex: "closed_audio": {id: 12}

  • closed_action: Objeto informando a ação a ser tomada caso a URA esteja Fora do Horário de Funcionamento, ex: 

    • "closed_action": {"action": "hangup", "action_data": ""} (Nesse caso a chamada seria desligada se fora de Funcionamento)

    • "closed_action": {"action": "voicemail", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Linha referente a caixa postal)

  • action1: Objeto informando a ação a ser realizada assim que a chamada entrar nessa URA, ex: 

    • "action1": {"action": "hangup", "action_data": ""} (Nesse caso a chamada seria desligada)

    • "action1": {"action": "voicemail", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Linha referente a caixa postal)

    • "action1": {"action": "background", "action_data": "23"} (Nesse caso, action_data deve conter o ID do Audio a ser reproduzido)

    • "action1": {"action": "dial", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Linha IP a ser chamada)

    • "action1": {"action": "queue", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Fila de Atendimento a ser chamada)

  • option0: Objeto informando a ação a ser realizada quando o usuário digitar a opção 0, ex: 

    • "option0": {"action": "hangup", "action_data": ""} (Nesse caso a chamada seria desligada)

    • "option0": {"action": "voicemail", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Linha referente a caixa postal)

    • "option0": {"action": "dial", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Linha que será chamada)

    • "option0": {"action": "queue", "action_data": "23"} (Nesse caso, action_data deve conter o ID da Fila de Atendimento que a chamada será enviada)

    • "option0": {"action": "ivr", "action_data": "23"} (Nesse caso, action_data deve conter o ID do Bloco de URA (IVR) que a chamada será desviada)

    • "option0": {"action": "portal", "action_data": "0"} (Nesse caso a chamada será enviada para um Portal de Voz)

    • "option0": {"action": "extension", "action_data": "0"} (Nesse caso, a URA irá solicitar ao cliente que digite o número da Linha que ele quer falar)

    • "option0": {"action": "execute_invalid", "action_data": "0"} (Nesse caso, a URA irá executar a ação presente na optioni que é o executado quando se digita uma opção inválida na URA)

  • option1: Objeto informando a ação a ser realizada quando o usuário digitar a opção 1 no telefone

  • option2: Objeto informando a ação a ser realizada quando o usuário digitar a opção 2 no telefone

  • option3: Objeto informando a ação a ser realizada quando o usuário digitar a opção 3 no telefone

  • option4: Objeto informando a ação a ser realizada quando o usuário digitar a opção 4 no telefone

  • option5: Objeto informando a ação a ser realizada quando o usuário digitar a opção 5 no telefone

  • option6: Objeto informando a ação a ser realizada quando o usuário digitar a opção 6 no telefone

  • option7: Objeto informando a ação a ser realizada quando o usuário digitar a opção 7 no telefone

  • option8: Objeto informando a ação a ser realizada quando o usuário digitar a opção 8 no telefone

  • option9: Objeto informando a ação a ser realizada quando o usuário digitar a opção 9 no telefone

  • option_star: Objeto informando a ação a ser realizada quando o usuário digitar a opção * (Asterisco) no telefone

  • option_hash: Objeto informando a ação a ser realizada quando o usuário digitar a opção # (Hashtag) no telefone

  • optiont: Objeto informando a ação a ser realizada quando o usuário não digitar nada no Bloco de URA

  • optioni: Objeto informando a ação a ser realizada quando o usuário digitar uma opção que não tiver uma ação configurada

  • status: Status do Registro: 0 - Inativo | 1 - Ativo

 

A chamada para obter os dados da consulta, é realizado utilizando um HTTP GET para o endereço de consumo da API. Um exemplo de chamada a essa API seria:

Exemplo de chamada a API utilizando cURL

$ curl -X GET 'https://sip.nextbilling.com.br/api/manageIvr/7cb40d54-4ebf-55a6-875a-5f57234e97cc-9990/b12c87a7-6dd6-5f99-9b47-c7c3be66fe73-8629/0?id_record=0

 

Utilizando essa chamada, você obteria o retorno em JSON semelhante a saída a seguir:

Retorno JSON

 

{ "error":0, "reason":"OK", "records": 1, "data":[ { "id": "26", "id_cliente": 9, "descricao": "Ura de Teste 1", "timeout_response": 10, "timeout_digit": 3, "perfil_horario": { "id": 3, "descricao": "Criado via API" }, "audio_invalido": { "id": 3, "descricao": "Audio Teste 1" }, "audio_timeout": { "id": 3, "descricao": "Audio Teste 1" }, "have_question": 1, "audio_question": { "id": 3, "descricao": "Audio Teste 1" }, "closed_audio": { "id": 3, "descricao": "Audio Teste 1" }, "closed_action": { "action": "voicemail", "action_data": { "id": 21, "desc": "SIP\/fernando1 ==> 1896" } }, "action1": { "action": "background", "action_data": { "id": 3, "desc": "Audio Teste 1" } }, "option0": { "action": "execute_invalid", "action_data": [] }, "option1": { "action": "queue", "action_data": { "id": 33, "desc": "Fila API - Full" } }, "option2": { "action": "dial", "action_data": { "id": 20, "desc": "SIP\/fernando3 ==> 64726" } }, "option3": { "action": "voicemail", "action_data": { "id": 18, "desc": "SIP\/fernando_telip ==> 3195322" } }, "option4": { "action": "execute_invalid", "action_data": [] }, "option5": { "action": "execute_invalid", "action_data": [] }, "option6": { "action": "execute_invalid", "action_data": [] }, "option7": { "action": "execute_invalid", "action_data": [] }, "option8": { "action": "execute_invalid", "action_data": [] }, "option9": { "action": "execute_invalid", "action_data": [] }, "option_star": { "action": "execute_invalid", "action_data": [] }, "option_hash": { "action": "execute_invalid", "action_data": [] }, "optiont": { "action": "queue", "action_data": { "id": 32, "desc": "Fila API 3" } }, "optioni": { "action": "hangup", "action_data": [] }, "status": 1 } ] }

Campo

Descrição

Campo

Descrição

error

1 em caso de erro

reason

Descrição caso tenha ocorrido algum erro

records

Total de Registros encontrados na pesquisa sem a paginação solicitada

data.id_cliente

ID do Assinante

data.size

Tamanho do Arquivo de Audio em bytes

data.duration

Duração do Arquivo em Segundos

data.is_moh

0 - Arquivos de Audio | 1 - Música de Espera

 

Alterando um Menu de URA (IVR)

Endereço de Chamada da API

POST /api/manageIvr/API_TOKEN/API_KEY/0?id_record=23

Este Ponto de Acesso permite que você altere um registro do sistema. Os campos necessários para atualizar um registro estão relacionados na Tabela 1 desse manual.

Exclusão de um Menu de URA (IVR)

Este Ponto de Acesso permite que você remova um Registro do Sistema.