Question

please tell me the flow of testing the conference call functionality in RingCentral WebPhone Demo

  • 22 December 2023
  • 5 replies
  • 180 views

I login in RingCentral WebPhone Demo https://ringcentral.github.io/ringcentral-web-phone/

than I Received a call from partyA and after that I click on start conference button to start conference call and I also make call to another caller partyB then pop up get open and I again click on start conference button but my conference call not start please tell me the correct steps to test the conference call functionality on demo app


5 replies

Userlevel 1

There is a bug in the demo code. We will fix it and update the code soon.

is there any update on this?

Userlevel 1

It's updated but I have not tried it yet. You can just retry the online demo.

It is not working for me can you please test it for your sides and tell me the steps also

Userlevel 1

I test the latest code and it works well. Unfortunately, the demo just only creates a conference call and transfers the original call to a conference call with 2 parties. It does not provide methods to make a new call and transfer the third party to the conference call. That will be left for developers to implement. Here are the core functions and you need to develop them further.

function initConference() {
    if (!onConference) {
      getPresenceActiveCalls()
        .then((res) => res.json())
        .then((response) => {
          const pId = response.activeCalls[0].partyId;
          const tId = response.activeCalls[0].telephonySessionId;
          getConfVoiceToken(pId, tId).then((voiceToken) => {
            startConferenceCall(voiceToken, pId, tId);
            onConference = true;
          });
        });
    }
  }

function getPresenceActiveCalls() {
    return platform.get('/restapi/v1.0/account/~/extension/~/presence?detailedTelephonyState=true');
  }

function getConfVoiceToken(pId, tId) {
    return platform
      .post('/restapi/v1.0/account/~/telephony/conference', {})
      .then((res) => res.json())
      .then((res) => {
        confSessionId = res.session.id;
        return res.session.voiceCallToken;
      });
  }

function startConferenceCall(number, pId, tId) {
    const session = webPhone.userAgent.invite(number, {
      fromNumber: username,
    });
    session.on('established', () => {
      onAccepted(session);
      console.log('Conference call started');
      bringIn(tId, pId)
        .then((res) => res.json())
        .then((response) => {
          console.log('Adding call to conference successful', response);
        })
        .catch((e) => {
          console.error('Conference call failed', e.stack || e);
        });
    });
  }

function bringIn(tId, pId) {
    const url = '/restapi/v1.0/account/~/telephony/sessions/' + confSessionId + '/parties/bring-in';
    return platform.post(url, {
      telephonySessionId: tId,
      partyId: pId,
    });
  }

The demo app initiate a conference call and immediately calls the bringIn() function, passing the telephony session id and the party id.

You need to implement a control to make a new call or bringIn existing call by calling the the bringIn method passing the telephonySessionId and partyId of the third call party.

Reply