Compartir a través de


Audioconferencia de reuniones de Microsoft Teams

En este artículo se describe cómo utilizar Azure Communication Services Calling SDK para recuperar los detalles de las conferencias de audio de reunión de Microsoft Teams. Esta función permite a los usuarios que ya están conectados a una reunión de Microsoft Teams poder obtener el id. de conferencia y el número de teléfono de acceso telefónico local asociado a la reunión. La característica de audioconferencia de reuniones de equipos devuelve una recopilación de todos los números gratuitos y de pago. La colección incluye nombres de país o región y nombres de ciudad simultáneos, lo que proporciona a los usuarios el control de qué detalles de marcado de las reuniones de Teams se van a usar.

Requisitos previos

Soporte técnico

En esta sección se describe la compatibilidad con audioconferencias en Azure Communication Services.

Identidades y tipos de llamadas

En la siguiente tabla se muestra la compatibilidad con los tipos de llamada e identidad.

Identidades Reuniones en Teams Sala Llamada 1:1 Llamada grupal Llamada de interoperabilidad de Teams individual Llamada de interoperabilidad de Teams de grupo
Usuario de Communication Services ✔️
Usuario de Microsoft 365 ✔️

Operations

En la tabla siguiente se muestra la compatibilidad con las API individuales en la llamada al SDK para tipos de identidad individuales.

Operations Usuario de Communication Services Usuario de Microsoft 365
Obtención de detalles de audioconferencia ✔️ ✔️

SDK

En la tabla siguiente se muestra compatibilidad con la característica audioconferencia en SDK individuales de Azure Communication Services.

Platforms Web IU Web iOS Interfaz de usuario de iOS Android UI de Android Windows
Se admite ✔️

Instalación del SDK

Use el comando npm install para instalar los SDK comunes y de llamada de Azure Communication Services para JavaScript:

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

Inicialización de los objetos necesarios

Se requiere una instancia de CallClient para la mayoría de las operaciones de llamada. Al crear una nueva instancia de CallClient, puede configurarla con opciones personalizadas, como una instancia de Logger.

Con la instancia de CallClient, puede crear una instancia de CallAgent llamando al createCallAgent. Este método devuelve un objeto de instancia CallAgent de manera asincrónica.

El método createCallAgent utiliza CommunicationTokenCredential como argumento. Acepta un token de acceso de usuario.

Puede usar el método getDeviceManager en la instancia de CallClient para acceder a deviceManager.

const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");

// Set the logger's log level
setLogLevel('verbose');

// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()

Cuál es la mejor forma de administrar la conectividad del SDK en la infraestructura de Microsoft

La instancia de Call Agent le ayuda a administrar llamadas (para unirse o iniciar llamadas). Para trabajar con el SDK de llamadas, debe conectarse a la infraestructura de Microsoft para obtener notificaciones de llamadas entrantes y coordinar otros detalles de la llamada. Call Agent tiene dos posibles estados:

Conectado: un valor connectionStatue Call Agent con estado Connected significa que el SDK de cliente está conectado y es capaz de recibir notificaciones de la infraestructura de Microsoft.

Desconectado: un valor connectionStatue Call Agent con estado Disconnected indica que hay un problema que impide que el SDK se conecte correctamente. Call Agent se debe volver a crear.

  • invalidToken: si un token ha expirado o no es válido, la instancia de Call Agent se desconecta con este error.
  • connectionIssue: si hay un problema cuando el cliente se conecta a la infraestructura de Microsoft, después de muchos reintentos, Call Agent expone el error connectionIssue.

Para comprobar si el Call Agent local está conectado a la infraestructura de Microsoft, inspeccione el valor actual de la propiedad connectionState. Durante una llamada activa, puede escuchar el evento connectionStateChanged para determinar si Call Agent cambia de Conectado a Desconectado.

const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'

const connectionStateCallback = (args) => {
    console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
    // it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);

Audioconferencia de reuniones de Microsoft Teams es una característica extendida de la API principal de Call. En primer lugar, debe importar las características de llamada desde el SDK de llamada:

import { Features} from "@azure/communication-calling";

A continuación, puede obtener el objeto de API de la característica de la instancia de llamada:

const audioConferencingFeature = call.feature(Features.TeamsMeetingAudioConferencing);

Obtener los detalles de audioconferencia de una reunión

Use la siguiente API para obtener los detalles de audioconferencia de una reunión

try {
     const details: SDK.TeamsMeetingAudioConferencingDetails = audioConferencingFeature.getTeamsMeetingAudioConferencingDetails();
     console.log(`Microsoft Teams Meeting Conference Id: ${details.phoneConferenceId}`);
     details.phoneNumbers.forEach(dialInPhoneNumber => {
        if (dialInPhoneNumber.tollPhoneNumber) { 
            console.log(`Dial-In Toll PhoneNumber: ${dialInPhoneNumber.tollPhoneNumber.phoneNumber}`);
        }
        else if (dialInPhoneNumber.tollFreePhoneNumber) { 
            console.log(`Dial-In TollFree PhoneNumber: ${dialInPhoneNumber.tollFreePhoneNumber.phoneNumber}`);
        } 
        else if (dialInPhoneNumber.countryName) {
            console.log(`Dial-In Country Name: ${dialInPhoneNumber.countryName}`);
        }
        else if (dialInPhoneNumber.cityName) {
            console.log(`Dial-In City Name: ${dialInPhoneNumber.cityName}`);
        }
    })
} catch (e) {
    console.error(e);
}

Solución de problemas

Código SubCode Categoría de resultado Motivo Solución
400 45950 ExpectedError La característica de audioconferencia solo está disponible en reuniones de Teams Unirse a la reunión de Teams con audioconferencia configurada
405 45951 ExpectedError Audioconferencia deshabilitada del servicio ACS Creación de una incidencia de soporte técnico de Azure para solicitar asistencia
403 45952 ExpectedError Los detalles de audioconferencia no están disponibles antes de unirse a la reunión Asegúrese de que el objeto de llamada está en estado connected antes de invocar la API para recuperar los detalles de la audioconferencia
403 45953 ExpectedError Los detalles de audioconferencia no están disponibles en la sala de espera Asegúrese de que el objeto de llamada está en estado connected antes de invocar la API para recuperar los detalles de la audioconferencia

Pasos siguientes