如何在用户接听电话后更改某人的状态(setPresenceState)? 我需要将状态设置为“忙碌”。
我认为当“enterState:active”事件触发时我可以将状态设置为忙,但我该怎么做呢?
答案 0 :(得分:1)
在我们的文档中,我们说我们在通话时会自动将状态设置为“忙”,但通过我们的代码查看,看起来我们目前没有这样做。我会解决这个问题,但与此同时,我将举例说明你如何自己做这件事(如果你想要有其他行为)。
一般的想法是在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);
答案 1 :(得分:-1)
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处于活动状态。 session被假定为登录后返回的vline.Session。)
答案 2 :(得分:-1)
一切都会正常工作,当你发送视频通话时,没有人可以发送其他视频通话