Compartir vía


Obtención de serverCallId como requisito para las API de servidor de grabación de llamadas desde la aplicación de JavaScript

En un escenario de llamada de punto a punto mediante el SDK de cliente de llamada, para usar la grabación de llamadas desde Azure Communications, tendrá que obtener serverCallId. En el ejemplo siguiente se muestra cómo obtener serverCallId desde una aplicación de servidor de JavaScript.

La grabación de llamadas es una característica extendida de la llamada a la API principal. 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 característica de grabación de la instancia de llamada:

const callRecordingApi = call.feature(Features.Recording);

Suscríbase a los cambios de grabación:

const recordingStateChanged = () => {
    let recordings = callRecordingApi.recordings;

    let state = SDK.RecordingState.None;
    if (recordings.length > 0) {
        state = recordings.some(r => r.state == SDK.RecordingState.Started)
            ? SDK.RecordingState.Started
            : SDK.RecordingState.Paused;
    }
    
	console.log(`RecordingState: ${state}`);
}

const recordingsChangedHandler = (args: { added: SDK.RecordingInfo[], removed: SDK.RecordingInfo[]}) => {
    args.added?.forEach(a => {
        a.on('recordingStateChanged', recordingStateChanged);
    });

    args.removed?.forEach(r => {
        r.off('recordingStateChanged', recordingStateChanged);
    });

    recordingStateChanged();
};

callRecordingApi.on('recordingsUpdated', recordingsChangedHandler);

Obtenga servercallId, que se puede usar para iniciar, detener, pausar y reanudar sesiones de grabación. Una vez conectada la llamada, use el método getServerCallId para obtener el id. de llamada del servidor.

callAgent.on('callsUpdated', (e: { added: Call[]; removed: Call[] }): void => {
    e.added.forEach((addedCall) => {
        addedCall.on('stateChanged', (): void => {
            if (addedCall.state === 'Connected') {
                addedCall.info.getServerCallId().then(result => {
                    dispatch(setServerCallId(result));
                }).catch(err => {
                    console.log(err);
                });
            }
        });
    });
});

Vea también

Para más información, consulte los siguientes artículos.