用户接受呼叫后,如何更改人员的状态(setPresenceState)?我需要将该人员的状态设置为"忙碌"。
我想当"enterState:active"事件启动时,我可以将存在设置为忙碌,但我到底该如何做到这一点?
在我们的文档中,我们说在进行调用时,我们会自动将状态设置为"忙碌",但仔细查看我们的代码,我们目前似乎没有这样做。我会解决这个问题,但同时我会举一个例子,说明你如何自己做到这一点(以防你想有其他行为)。
一般的想法是当vline.MediaSession
进入active
状态时将存在状态设置为繁忙。在本例中,假设client
为登录的vline.Client
,session
为登录后返回的vline.Session
client.on('add:mediaSession', function(event) {
var mediaSession = event.target;
mediaSession.on('enterState:active', function() {
session.setPresence('busy');
}, this);
mediaSession.on('enterState:closed', function() {
session.setPresence('online');
}, this);
}, this);
一切都会正常工作,当你发送视频通话时,没有人可以发送其他视频通话
PresenceStates"忙"不起作用,任何你想做的事情。。我使用"do_not_disturb"PresenceStates,而不是,并重置"do_not _disturb"的状态,即使媒体会话"断开连接"或被客户端或人员中断。
你明白了吗?
添加此代码而不是:
//----------------------------------------------------------------
client.on('add:mediaSession', function(event) {
var mediaSession = event.target;
mediaSession.on('enterState:active', function() {
session.setPresence('do_not_disturb');
}, this);
mediaSession.on('enterState:closed', function() {
session.setPresence('online');
}, this);
mediaSession.on('enterState:outgoing', function() {
session.setPresence('do_not_disturb');
}, this);
mediaSession.on('enterState:incoming', function() {
session.setPresence('do_not_disturb');
}, this);
mediaSession.on('enterState:disconnected', function() {
session.setPresence('online');
}, this);
}, this);
//----------------------------------------------------------------
要重置"do_not_disturb"的状态,发生了什么事件,即使客户端或个人中断了会话,也只需在以下位置添加此代码:
//获取与用户名关联的人员对象:session.getPerson(userId).done(function(person){
session.setPresence('online');
(vline.MediaSession被假定为处于活动状态。会话被假定为vline。登录后返回会话。)