https://a.storyblok.com/f/270183/84363/b249aeb846/blog_parental-control_1200x600.png

Proteja seus filhos na internet com a Voice API da Vonage e o Android 10

Publicado em May 24, 2021

Tempo de leitura: 5 minutos

Crie um aplicativo proxy para ocultar números de telefone confidenciais

Vivemos em um mundo cada vez mais digital, e as crianças costumam ser as primeiras a usar novas tecnologias e Applications. Elas podem ser hábeis no uso das tecnologias digitais, mas nem sempre compreendem a segurança online, incluindo quais dados podem compartilhar com estranhos e quais não devem compartilhar.

Nesta postagem, vamos mostrar como você pode usar a Voice API da Vonage para proteger um dos ativos de dados mais valiosos: o número de telefone. Em algumas etapas simples, vamos criar um aplicativo de controle parental que ocultará o número de telefone do seu filho usando a Voice API e o Android 10. Para isso, vamos desenvolver um aplicativo Android leve e conectá-lo a um servidor de webhooks NodeJS.

Você pode encontrar o código completo do tutorial aqui.

Conceito

Este tutorial vai ajudá-lo a criar dois componentes: um aplicativo para Android e um servidor de webhooks em NodeJS. Ao concluir, você terá um aplicativo básico de controle parental capaz de encaminhar chamadas por meio da Voice API da Vonage em dispositivos com Android 10.

Recurso de redirecionamento de chamadas do Android 10

Para redirecionar chamadas, usaremos um novo recurso do Android 10: as funções. As funções concedem a uma aplicação acesso a determinadas funções do sistema, como o redirecionamento de chamadas. O Android 10 introduziu o RoleManager, que controla o acesso a essas funções.

No nosso caso, vamos usar ROLE_CALL_REDIRECTION, juntamente com um CallRedirectionService (CallRedirectionService). Vamos integrar ambos à Voice API para ocultar o número de telefone do usuário.

Usuário

O usuário (neste caso, um pai ou mãe no aparelho do filho) fará o download e instalará um aplicativo para Android. Em seguida, ele o configurará com o número de telefone da criança, de modo que, assim que uma chamada for feita a partir do aparelho, um método de gancho será chamado e redirecionará a chamada para um número da Vonage.

Para determinar para qual número redirecionar, a cada chamada efetuada, o aplicativo enviará uma solicitação HTTP ao seu servidor de webhook, que estabelece uma correspondência entre o número de destino e o número de telefone do usuário. Em resposta, o servidor retornará o número da Vonage para o qual a chamada deve ser feita.

Por fim, o dispositivo executará a chamada para o número da Vonage e o servidor de webhook retornará o mapeamento adequado para conectar a chamada, por meio da Vonage, ao destino original.

Android Proxy CallAndroid Proxy Call

Pré-requisitos

Voice API

A Voice API da Vonage será usada para ocultar o número de nossas chamadas e criar o proxy.

Para este tutorial, você precisará de:

  1. Um aplicativo de voz

  2. Um número que você vinculou ao seu aplicativo

Ferramentas

Recomendamos usar o ngrok para expor seu servidor de webhooks e Android Studio para trabalhar no aplicativo Android.

Configuração

Servidor de Webhooks

O código-fonte completo do servidor de webhooks pode ser encontrado aqui.

O example.env arquivo contém todos os parâmetros necessários para configurar o servidor de webhooks. Para este tutorial, basta inserir o número que você vinculou ao seu aplicativo no painel de controle.

Então, primeiro, preencha example.env, VONAGE_PROXY_NUMBER é o número que você atribuiu ao seu aplicativo. VONAGE_PROXY_NUMBER_LOCAL é o mesmo número, mas formatado para uso local. É assim que você deseja que seu dispositivo Android disque para o seu número da Vonage, e isso é importante porque será usado para as chamadas feitas.

Em segundo lugar, copie o arquivo para .env:

cp example.env .env`

Em terceiro lugar, instale e execute o servidor usando o seguinte comando:

npm install && npm run start`

Seu servidor já deve estar em execução localmente.

NOTA: Em nossa implementação, o retorno de chamada só fica disponível depois que o usuário (ou a criança, nesse caso) inicia uma chamada.

Aplicativo para Android

Abordaremos os principais pontos para a criação do aplicativo. Se você não tem nenhum conhecimento sobre Android, recomendamos usar este guia para criar seu primeiro aplicativo.

O código-fonte completo do aplicativo de exemplo pode ser encontrado aqui.

Manifesto

Abrir AndroidManifest.xml em /app/src/main e adicione a BIND_CALL_REDIRECTION_SERVICE permissão. Isso permitirá que seu serviço seja notificado quando uma nova chamada for executada e que a redirecione.

    <service
        android:name=".CallRedirectionServiceImplementation"
        android:permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
        <intent-filter>
            <action android:name="android.telecom.CallRedirectionService" />
        </intent-filter>
    </service>

Serviço

Estenda a interface CallRedirectionService (‘CallRedirectionServiceImplementation’ no nosso caso) e sobrescreva o método método ‘onPlaceCall’ . Esse método será chamado a cada chamada GSM efetuada.

class CallRedirectionServiceImplementation : CallRedirectionService() {
    override fun onPlaceCall(handle: Uri, initialPhoneAccount: PhoneAccountHandle allowInteractiveResponse: Boolean) {
        //redirection logic here
    }
}

Observe as limitações do redirecionamento de chamadas:

Tempo — A execução da implementação do seu método deve ser concluída em até cinco segundos; caso contrário, ela será considerada malsucedida. Caminho — Para qualquer chamada do sistema ao método `onPlaceCall`, você deve garantir que todos os caminhos possíveis terminem em um dos seguintes métodos: `placeCallUnmodified`, `cancelCall` ou `redirectCall`.

Interface do usuário

Crie uma atividade para controlar seu serviço de redirecionamento. A atividade deve obter a função e solicitar a aprovação do usuário, além de permitir que ele ative e desative o redirecionamento.

Aquisição de papéis:

  1. Verifique se a função está disponível antes de tentar obtê-la (isRoleAvailable)

  2. Executar a intenção criada por createRequestRoleIntent

  3. Receba o resultado em ‘OnActivityResult’. Verifique o resultado antes de prosseguir.

Com grande poder vem grande responsabilidade

Depois de adquirir uma função, você não pode devolvê-la ao sistema. A posse da função significa que você possui certos privilégios que serão revogados imediatamente assim que você perder a posse da função. Em um sistema Android, só pode haver um aplicativo que adquira uma função específica em um determinado momento.

Painel de controle

Faça login no painel de controle da Vonage e acesse seu aplicativo de voz. Preencha o campo “URL de resposta” com o endereço do seu servidor + /answer. Deve ficar assim http://${server_adress}/answer. Da mesma forma, preencha a URL de “evento” com http://${server_adress}/event.

NOTA: Se você estiver usando o ngrok, o endereço deve ser algo como https://${your_ngrok_id}.ngrok.io

Guia do usuário

Agora que você já tem seu servidor de webhooks em funcionamento, seu aplicativo de Voice configurado para solicitar NCCOs a partir dele e um aplicativo para Android desenvolvido, é hora de experimentar sua solução.

  1. Instale o aplicativo no seu dispositivo Android e abra-o.

  2. Configure-o digitando o número de telefone do aparelho.

  3. Clique em “ativar”. Você deverá ver uma mensagem solicitando que conceda permissão de redirecionamento ao aplicativo; por favor, aceite.

  4. Ligue para qualquer número, usando o discador nativo, e sua chamada será encaminhada por um servidor proxy.

  5. Para acompanhar o fluxo de eventos, dê uma olhada nos registros do webhook!

android screenandroid screen

O discador nativo indicará que a ligação está sendo feita pelo seu aplicativo

Resumo

Aprendemos nas seções anteriores como utilizar a Voice API em conjunto com o recurso “Redirecionamento de Chamadas” do Android 10 para criar uma solução integrada de mascaramento de chamadas.

Proteger as crianças é uma causa nobre, mas é, sem dúvida, apenas uma fração do que você pode alcançar com a solução que criamos — crie um proxy de chamadas para mais casos de uso ou até mesmo amplie sua solução e adicione um proxy de SMS!

A flexibilidade da Voice API permite que você crie soluções para diversas necessidades, mas talvez o mais importante seja que ela permite ampliar os recursos de voz de última geração com base na sua lógica e infraestrutura existentes.

Para acessar a versão completa deste tutorial, você pode encontrá-la no GitHub.

Se você quiser saber mais sobre o que pode fazer com nossas APIs, acesse nosso portal para desenvolvedores.

Compartilhar:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Assaf Passal And Roy Ben Shushan

Guest Author