Udostępnij za pośrednictwem


Pobierz serverCallId jako wymaganie dotyczące wywoływania interfejsów API serwera nagrywania z poziomu aplikacji JavaScript

W scenariuszu komunikacji równorzędnej z elementem równorzędnym przy użyciu zestawu SDK klienta wywołującego, aby można było użyć funkcji nagrywania połączeń z usługi Azure Communications, musisz uzyskać element serverCallId. W poniższym przykładzie pokazano, jak pobrać element serverCallId z aplikacji serwera JavaScript.

Nagrywanie wywołań to rozszerzona funkcja podstawowego interfejsu API wywołań. Najpierw należy zaimportować funkcje wywołujące z zestawu Sdk wywoływania.

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

Następnie możesz pobrać obiekt interfejsu API funkcji rejestrowania z wystąpienia wywołania:

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

Subskrybuj rejestrowanie zmian:

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

Pobierz servercallIdpolecenie , które może służyć do uruchamiania/zatrzymywania/wstrzymywania/wznawiania sesji nagrywania. Po nawiązaniu połączenia użyj getServerCallId metody , aby uzyskać identyfikator wywołania serwera.

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

Zobacz też

Aby uzyskać więcej informacji, zobacz następujące artykuły: