There is a bug in the demo code. We will fix it and update the code soon.
is there any update on this?
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
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.