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
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso de Communication Services implementado. Cree un recurso de Communication Services.
- Un token de acceso de usuario para habilitar el cliente de llamada. Para obtener más información, Creación y administración de tokens de acceso.
- Opcional: Complete la guía de inicio rápido para agregar llamadas de voz a la aplicación.
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 deCall 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 errorconnectionIssue
.
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 |