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

Importante

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

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 e para discar números de emergência 999 e 112 no Reino Unido. Atualmente, os Serviços de Comunicação do Azure não suportam a discagem desses números de emergência de fora desses países ou regiões, nem a discagem de serviços de emergência em outros países ou regiões.

Código de Exemplo

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

Nota

As chamadas de saída para um número de telefone podem ser acessadas usando a Biblioteca de Interface do Usuário dos Serviços de Comunicação do Azure. A Biblioteca da 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

Configuração

Criar uma nova aplicação Node.js

Abra o terminal ou a janela de comando, crie um novo 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 npm install comando 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 --save opção lista a biblioteca como uma dependência em seu arquivo package.json .

Configurar a estrutura do aplicativo

Este guia de início rápido usa o parcel 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 seu projeto. Usaremos esse arquivo para configurar um layout básico que permitirá que o usuário faça uma chamada.

Aqui está o código:

<!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 seu projeto chamado app.js para conter a lógica do aplicativo para este início rápido. Adicione o código a seguir para importar o cliente chamador e obter referências aos elementos DOM para que possamos anexar 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 o telefone

Especifique o número de telefone adquirido no recurso Serviços de Comunicação 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 clicou callPhoneButton :

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;
});

Terminar uma chamada para o 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 forEveryone propriedade encerra a chamada para todos os participantes da chamada.

Executar o código

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

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

Screenshot of the completed JavaScript Application.

Você pode fazer 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 suportam chamadas de emergência apenas para números de emergência nos Estados Unidos, Porto Rico, Canadá, Dinamarca e Reino Unido.

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 e para discar números de emergência 999 e 112 no Reino Unido. Atualmente, os Serviços de Comunicação do Azure não suportam a discagem desses números de emergência de fora desses países ou regiões, nem a discagem de serviços de emergência em outros países ou regiões.

Código de Exemplo

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

Pré-requisitos

Verificação de pré-requisitos

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

Configuração

Adicionar funcionalidade PSTN ao seu aplicativo

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

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

Iniciar uma chamada para o telefone

Especifique o número de telefone adquirido no recurso Serviços de Comunicação. Este número é usado como um identificador de chamada 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 startCall() o manipulador de eventos no MainActivity.java, para que ele lide com 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);
    }

Inicie o aplicativo e chame o bot de eco

O aplicativo agora 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 LIGAR .

Aviso

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

Screenshot showing the completed application.

Importante

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

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 e para discar números de emergência 999 e 112 no Reino Unido. Atualmente, os Serviços de Comunicação do Azure não suportam a discagem desses números de emergência de fora desses países ou regiões, nem a discagem de 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 recurso Serviços de Comunicação, entre no portal do Azure, localize o recurso Serviços de Comunicação e abra a guia Números de telefone no painel de navegação esquerdo.
  • Você pode criar e executar seu aplicativo com o SDK de Chamada dos Serviços de Comunicação do Azure para iOS:

Configuração

Iniciar uma chamada para o telefone

Especifique o número de telefone adquirido no recurso Serviços de Comunicação 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 startCall o manipulador de eventos 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 criar e executar seu aplicativo no simulador do iOS selecionando Execução de produto>ou usando o atalho de teclado (⌘-R).

Final look and feel of the quick start app

Você pode fazer uma chamada para 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)

Nota

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

Clean up resources (Limpar recursos)

Se quiser limpar e remover uma assinatura dos Serviços de Comunicação, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele. Saiba mais sobre a limpeza de recursos.

Próximos passos

Para obter mais informações, consulte os seguintes artigos que podem estar em inglês: