Compartilhar via


Guia de Início Rápido: Chamada de saída para um número de telefone

Comece a usar os Serviços de Comunicação do Azure usando o SDK de Chamada dos Serviços de Comunicação para adicionar chamadas PSTN ao aplicativo.

Importante

Os Serviços de Comunicação do Azure oferecem suporte a chamadas de emergência para números de emergência apenas nos Estados Unidos, Porto Rico, Canadá, Dinamarca, Reino Unido e Austrália.

As chamadas de voz (PSTN) dos Serviços de Comunicação do Azure podem ser usadas para discar o número de emergência 911 nos Estados Unidos, Porto Rico e Canadá, para discar o número de emergência 112 na Dinamarca, para discar 000 na Austrália e para discar os números de emergência 999 e 112 no Reino Unido. Os Serviços de Comunicação do Azure atualmente não dão suporte a discar esses números de emergência de fora desses países ou regiões, nem a discar serviços de emergência em outros países ou regiões.

Exemplo de código

Encontre o código finalizado para este guia de início rápido no GitHub

Observação

A chamada de saída para um número de telefone pode ser acessada usando a Biblioteca de Interface do Usuário do Serviços de Comunicação do Azure. A Biblioteca de Interface do Usuário permite que os desenvolvedores adicionem um cliente de chamada habilitado para PSTN em seu aplicativo com apenas algumas linhas de código.

Pré-requisitos

Configurando

Criar um novo aplicativo do Node.js

Abra o terminal ou a janela de comando para criar um diretório para seu aplicativo e navegue até ele.

mkdir calling-quickstart
cd calling-quickstart

Execute npm init -y para criar um arquivo package.json com as configurações padrão.

npm init -y

Instalar o pacote

Use o comando npm install para instalar o SDK de Chamada dos Serviços de Comunicação do Azure para JavaScript.

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

A opção --save lista a biblioteca como uma dependência no arquivo package.json.

Configurar o framework de aplicativos

Este guia de início rápido usa o pacote para agrupar os ativos do aplicativo. Execute o seguinte comando para instalá-lo e listá-lo como uma dependência de desenvolvimento em seu package.json:

npm install parcel --save-dev

Crie um arquivo index.html no diretório raiz do projeto. Usaremos esse arquivo para configurar um layout básico que permitirá que o usuário faça uma chamada.

O código é o seguinte:

<!DOCTYPE html>
<html>
  <head>
    <title>Communication Client - Calling Sample</title>
  </head>
  <body>
    <h4>Azure Communication Services</h4>
    <h1>Calling Quickstart</h1>
    <input 
      id="callee-phone-input"
      type="text"
      placeholder="Who would you like to call?"
      style="margin-bottom:1em; width: 230px;"
    />
    <div>
      <button id="call-phone-button" type="button">
        Start Call
      </button>
      &nbsp;
      <button id="hang-up-phone-button" type="button" disabled="true">
        Hang Up
      </button>
    </div>
    <script src="./app.js" type="module"></script>
  </body>
</html>

Crie um arquivo no diretório raiz do projeto chamado app.js para conter a lógica do aplicativo deste guia de início rápido. Adicione o código a seguir para importar o cliente de chamada e obter referências aos elementos DOM para que possamos anexar a nossa lógica de negócios.

import { CallClient, CallAgent } from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';

let call;
let callAgent;

const calleePhoneInput = document.getElementById("callee-phone-input");
const callPhoneButton = document.getElementById("call-phone-button");
const hangUpPhoneButton = document.getElementById("hang-up-phone-button");

async function init() {
    const callClient = new CallClient();
    const tokenCredential = new AzureCommunicationTokenCredential('<USER ACCESS TOKEN with VoIP scope>');
    callAgent = await callClient.createCallAgent(tokenCredential);
    //callPhoneButton.disabled = false;
}

init();

Iniciar uma chamada para um telefone

Especifique o número de telefone que você adquiriu no recurso dos Serviços de Comunicação, que é usado para iniciar a chamada:

Aviso

Os números de telefone devem ser fornecidos no formato padrão internacional E.164. (por exemplo: +12223334444)

Adicione um manipulador de eventos para iniciar uma chamada para o número de telefone que você forneceu quando o callPhoneButton receber um clique:

callPhoneButton.addEventListener("click", () => {
  // start a call to phone
  const phoneToCall = calleePhoneInput.value;
  call = callAgent.startCall(
    [{phoneNumber: phoneToCall}], { alternateCallerId: {phoneNumber: 'YOUR AZURE REGISTERED PHONE NUMBER HERE: +12223334444'}
  });
  // toggle button states
  hangUpPhoneButton.disabled = false;
  callPhoneButton.disabled = true;
});

Encerrar uma chamada para um telefone

Adicione um ouvinte de eventos para encerrar a chamada atual quando o hangUpPhoneButton for clicado:

hangUpPhoneButton.addEventListener("click", () => {
  // end the current call
  call.hangUp({
    forEveryone: true
  });

  // toggle button states
  hangUpPhoneButton.disabled = true;
  callPhoneButton.disabled = false;
});

A propriedade forEveryone encerra a chamada para todos os participantes da chamada.

Executar o código

Use o comando npx parcel index.html para criar e executar o seu aplicativo.

Abra o navegador e navegue até http://localhost:1234/. Você deverá ver o seguinte aplicativo Web:

Captura de tela do Aplicativo JavaScript concluído.

Faça uma chamada para um número de telefone real fornecendo um número de telefone no campo de texto adicionado e clicando no botão Iniciar Chamada Telefônica.

Importante

Os Serviços de Comunicação do Azure oferecem suporte a chamadas de emergência para números de emergência apenas nos Estados Unidos, Porto Rico, Canadá, Dinamarca, Reino Unido e Austrália.

As chamadas de voz (PSTN) dos Serviços de Comunicação do Azure podem ser usadas para discar o número de emergência 911 nos Estados Unidos, Porto Rico e Canadá, para discar o número de emergência 112 na Dinamarca, para discar 000 na Austrália e para discar os números de emergência 999 e 112 no Reino Unido. Os Serviços de Comunicação do Azure atualmente não dão suporte a discar esses números de emergência de fora desses países ou regiões, nem a discar serviços de emergência em outros países ou regiões.

Exemplo de código

Encontre o código finalizado para este guia de início rápido no GitHub

Pré-requisitos

Verificação de pré-requisitos

  • Para exibir os números de telefone associados ao seu recurso dos Serviços de Comunicação, entre no portal do Azure, localize o recurso em questão e abra a guia números de telefone no painel de navegação esquerdo.

Configurando

Adicionar a funcionalidade de PSTN ao seu aplicativo

Adicione o tipo PhoneNumber ao seu aplicativo modificando MainActivity.java:

import com.azure.android.communication.common.PhoneNumberIdentifier;

Iniciar uma chamada para um telefone

Especifique o número de telefone que você adquiriu de dentro do recurso dos Serviços de Comunicação. Esse número é usado como uma ID de chamador para iniciar a chamada:

Aviso

Observe que os números de telefone devem ser fornecidos no formato padrão internacional E.164. (por exemplo: +12223334444)

Modifique o manipulador de eventos startCall() em MainActivity.java para que ele possa manipular chamadas telefônicas:

    private void startCall() {
        EditText calleePhoneView = findViewById(R.id.callee_id);
        String calleePhone = calleePhoneView.getText().toString();
        PhoneNumberIdentifier callerPhone = new PhoneNumberIdentifier("+12223334444");
        StartCallOptions options = new StartCallOptions();
        options.setAlternateCallerId(callerPhone);
        options.setVideoOptions(new VideoOptions(null));
        call = agent.startCall(
                getApplicationContext(),
                new PhoneNumberIdentifier[] {new PhoneNumberIdentifier(calleePhone)},
                options);
    }

Iniciar o aplicativo e chamar o bot de eco

Agora, o aplicativo pode ser iniciado usando o botão "Executar Aplicativo" na barra de ferramentas (Shift+F10). Para fazer uma chamada, forneça um número de telefone no campo de texto adicionado e selecione o botão CHAMAR.

Aviso

Observe que os números de telefone devem ser fornecidos no formato padrão internacional E.164. (por exemplo: +12223334444)

Captura de tela que mostra o aplicativo concluído.

Importante

Os Serviços de Comunicação do Azure oferecem suporte a chamadas de emergência para números de emergência apenas nos Estados Unidos, Porto Rico, Canadá, Dinamarca, Reino Unido e Austrália.

As chamadas de voz (PSTN) dos Serviços de Comunicação do Azure podem ser usadas para discar o número de emergência 911 nos Estados Unidos, Porto Rico e Canadá, para discar o número de emergência 112 na Dinamarca, para discar 000 na Austrália e para discar os números de emergência 999 e 112 no Reino Unido. Os Serviços de Comunicação do Azure atualmente não dão suporte a discar esses números de emergência de fora desses países ou regiões, nem a discar serviços de emergência em outros países ou regiões.

Pré-requisitos

Verificação de pré-requisitos

  • Para exibir os números de telefone associados ao seu recurso dos Serviços de Comunicação, entre no portal do Azure, localize o recurso em questão e abra a guia números de telefone no painel de navegação esquerdo.
  • Você pode compilar e executar o aplicativo usando o SDK de Chamada dos Serviços de Comunicação do Azure para iOS:

Configurando

Iniciar uma chamada para um telefone

Especifique o número de telefone que você adquiriu no recurso dos Serviços de Comunicação, que é usado para iniciar a chamada:

Aviso

Observe que os números de telefone devem ser fornecidos no formato padrão internacional E.164. (por exemplo: +12223334444)

Modifique o manipulador de eventos startCall que é executado quando o botão Iniciar Chamada é tocado:

func startCall() {
        // Ask permissions
        AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
            if granted {
                let startCallOptions = StartCallOptions()
                startCallOptions.alternateCallerId = PhoneNumberIdentifier(phoneNumber: "<YOUR AZURE REGISTERED PHONE NUMBER>")
                self.callAgent!.startCall(participants: [PhoneNumberIdentifier(phoneNumber: self.callee)], options: startCallOptions) { (call, error) in
                    if (error == nil) {
                        self.call = call
                    } else {
                        print("Failed to get call object")
                    }
                }
            }
        }
    }

Executar o código

Você pode compilar e executar o aplicativo no simulador de iOS selecionando Produto>Executar ou usando o atalho de teclado (⌘-R).

Aparência final do aplicativo de início rápido

Você pode fazer uma chamada para o telefone fornecendo um número de telefone no campo de texto adicionado e clicando no botão Iniciar Chamada.

Aviso

Observe que os números de telefone devem ser fornecidos no formato padrão internacional E.164. (por exemplo: +12223334444)

Observação

Na primeira vez que você fizer uma chamada, o sistema solicitará o acesso ao microfone. Em um aplicativo de produção, você deve usar verificar o status de permissão da API AVAudioSession e atualizar normalmente o comportamento do aplicativo quando a permissão não for concedida.

Limpar os recursos

Se quiser limpar e remover uma assinatura dos Serviços de Comunicação, exclua o recurso ou o grupo de recursos. Excluir o grupo de recursos também exclui todos os recursos associados a ele. Saiba mais sobre como limpar recursos.

Próximas etapas

Para obter mais informações, consulte os seguintes artigos: