To implement a Web phone using Javascript, use the RingCentral Web phone SDK.
This is the modified version of the example code on Github:
var appKey = '...';
var appSecret = '...';
var appName = '...';
var appVersion = '...';
var sdk = new RingCentral.SDK({
appKey: appKey,
appSecret: appSecret,
appName: appName,
appVersion: appVersion,
server: RingCentral.SDK.server.production // or .sandbox
});
var remoteVideoElement = document.getElementById('remoteVideo');
var localVideoElement = document.getElementById('localVideo');
var platform = sdk.platform();
platform.auth().setData(tokens)
if (platform.loggedIn()){
platform.post('/client-info/sip-provision', {
sipInfo: [{transport: 'WSS'}]
})
.then(function(res) { // Doing nested then because we need loginResponse in a simple way
return new RingCentral.WebPhone(res.json(), { // optional
appKey: appKey,
appName: appName,
appVersion: appVersion,
uuid: loginResponse.json().endpoint_id,
logLevel: 1, // error 0, warn 1, log: 2, debug: 3
audioHelper: {
enabled: true, // enables audio feedback when web phone is ringing or making a call
incoming: 'path-to-audio/incoming.ogg', // path to audio file for incoming call
outgoing: 'path-to-audio/outgoing.ogg' // path to aduotfile for outgoing call
},
media:{
remote: remoteVideoElement,
local: localVideoElement
},
//to enable QoS Analytics Feature
enableQos:true
});
})
.then(function(webPhone){
// YOUR CODE HERE
})
}
Thank you Phong Vu. your answer was very helpful for me. I had completed the integration and everything is working fine. But I didn't find any option to dismiss/reject the call in RingCentral Web phone SDK.
This is the way I am initiating the call.
var session = webphone.userAgent.invite(toNumber, {
fromNumber : fromNumber
});
And one more doubt is I am not able to record the calls. Do we need a paid account to enable Call Recondings or can we test with the sandbox account?
The last doubt is Do we need the RingCentral paid plan to apply for production? When I am trying to apply for production its showing the messege as below.
https://i.snipboard.io/TO3pqe.jpg
Please help me to solve these confusions.
Thanks,
Mike