我如何取消注册用户代理与RingCentral Web电话客户端库



我可以看到我必须注册一个SIP设备使用/restapi/v1.0/client-info/sip-provision端点基于这个API资源:https://developers.ringcentral.com/api-docs/latest/SipDeviceRegistration.html

基于RingCentral Web Phone Client Library,使用RingCentral JS-SDK,我能够提供SIP设备:

// Setup RingCentral
var RC = require('ringcentral');
var sdk = new RC({
    server: process.env.RC_SERVER,
    appKey: process.env.RC_APP_KEY,
    appSecret: process.env.RC_APP_SECRET 
});
var platform = sdk.platform();
// Login
platform
    .login({
        username: process.env.RC_USERNAME,
        extension: process.env.RC_EXTENSION,
        password: process.env.RC_PASSWORD 
    })
    .catch(function(e) {
        console.error('RC LOGIN ERROR: ', e);
        throw e;
    });
// SIP Provision
platform
            .post('/client-info/sip-provision', {
                sipInfo: [{transport: 'WSS'}]
            })
            .then(function(res) {
                io.emit('sipProvisionResponse', res.json());
            })
            .catch(function(e) {
                console.error(e);
                throw e;
            });

一旦设备的sip配置完成,我就使用该信息来实例化WebPhone

var webPhone;
var rcSipProvision; // Is set to result of request to /restapi/v1.0/client-info/sip-provision
rcSipProvision = data.sipInfo[0] || data.sipInfo;;
//console.log('RingCentral: ', RingCentral);
webPhone = new RingCentral.WebPhone(data, {
  logLevel:1,
  audioHelper: {
    enabled: true, // enables audio feedback when phone is ringing or making call
    incoming: '/audio/incoming.ogg', // path to audio file for incoming call
    outgoing: '/audio/outgoing.ogg' // path to audio file for outgoing call
  }
});
$callButton.removeAttr('disabled');
webPhone.userAgent.on('invite', onInvite);
webPhone.userAgent.on('connecting', onConnecting);
webPhone.userAgent.on('connected', onConnected);
webPhone.userAgent.on('disconnected', onDisconnected);
webPhone.userAgent.on('registered', onRegistered);
webPhone.userAgent.on('unregistered', onUnregistered);
webPhone.userAgent.on('registrationFailed', onRegistrationFailed);
webPhone.userAgent.on('message', onMessage);

使用上面的我能够使用web电话客户端库邀请其他人使用webPhone.userAgent.invite的WebRTC呼叫。如果用户关闭浏览器并终止会话怎么办?如何通过终止SIP配置和注销用户代理来确保我的应用程序更新RingCentral ?

我不知道如何取消注册RingCentral WebPhone客户端库中引用的用户代理,因为这包含在RingCentral WebPhone客户端库,RingCentral JS SDK或riigncentral API参考的SIP设备注册中创建的WebPhone中。

我没有看到WebPhone暴露了取消用户代理注册的能力,我正在试图找出如何正确地做到这一点。

欢迎任何帮助

RingCentral Web Phone是SIP.JS的自定义包装器,因此为了取消注册,您只需要调用SIP.JS的方法:http://sipjs.com/api/0.7.0/ua/#unregisteroptions

在你的情况下,它将是webPhone.userAgent.unregister

最新更新