Как попросить пользователя присоединиться к каналу, чтобы начать звонок с помощью Agora.io

Я использую Agora.io в своем проекте React Native для видеозвонков, и я хочу знать, когда я позвоню кому-нибудь и я присоединюсь к каналу, но как я могу показать пользовательский интерфейс входящего вызова в приложении на мобильном телефоне получателя. Чтобы он также мог присоединиться к каналу, чтобы начать звонок. Пожалуйста, дайте мне знать, если у вас есть ресурсы. Спасибо

Вот код для инициализации agro sdk

init = async () => {
    const {appId} = this.state;
    this._engine = await RtcEngine.create(appId);
    await this._engine.enableVideo();
    this.startCall();
    this._engine.addListener('Warning', (warn) => {
      console.log('Warning', warn);
    });

    this._engine.addListener('Error', (err) => {
      console.log('Error', err);
    });

    this._engine.addListener('UserJoined', (uid, elapsed) => {
      console.log('UserJoined', uid, elapsed);
      // Get current peer IDs
      const {peerIds} = this.state;
      // If new user
      if (peerIds.indexOf(uid) === -1) {
        this.setState({
          // Add peer ID to state array
          peerIds: [...peerIds, uid],
        });
      }
    });

    this._engine.addListener('UserOffline', (uid, reason) => {
      console.log('UserOffline', uid, reason);
      const {peerIds} = this.state;
      this.setState({
        // Remove peer ID from state array
        peerIds: peerIds.filter((id) => id !== uid),
      });
    });

    // If Local user joins RTC channel
    this._engine.addListener('JoinChannelSuccess', (channel, uid, elapsed) => {
      console.log('JoinChannelSuccess', channel, uid, elapsed);
      // Set state variable to true
      this.setState({
        joinSucceed: true,
      });
    });
  };

Вот код для начала звонка

 startCall = async () => {
    // Join Channel using null token and channel name
    await this._engine?.joinChannel(
      this.state.token,
      this.state.channelName,
      null,
      0,
    );
  };

как получатель может принять звонок


person Zaid Qureshi    schedule 06.01.2021    source источник


Ответы (1)


В Agora SDK нет встроенных функций для этого. Отличной библиотекой для этого будет react-native-callkeep.

https://github.com/react-native-webrtc/react-native-callkeep

По сути, эта библиотека поможет вам нарисовать пользовательский интерфейс, когда кто-то пытается вам позвонить. Он использует push-уведомления firebase для уведомления вызываемого.

person vineeth srini    schedule 11.01.2021