Question

i want to test conference call functionality in RingCentral WebPhone Demo

  • 9 January 2024
  • 1 reply
  • 64 views

I want to test the conference call functionality in ringcentral WebPhone Demo. can you please tell me the steps of this


1 reply

Userlevel 1

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 initiates 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 bring in existing call parties by calling the the bringIn() method passing the telephonySessionId and partyId of the third call party.

Reply