用户接听电话后如何更改某人的状态(setPresenceState)?我需要将该人的状态设置为“忙碌”。
我想我可以在“enterState:active”事件触发时将状态设置为忙碌,但我该怎么做呢?
用户接听电话后如何更改某人的状态(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 处于激活状态。假设 session 为登录后返回的 vline.Session。)
一切正常,当您发送视频通话时,没有人可以发送其他视频通话