0

用户接听电话后如何更改某人的状态(setPresenceState)?我需要将该人的状态设置为“忙碌”。

我想我可以在“enterState:active”事件触发时将状态设置为忙碌,但我该怎么做呢?

4

3 回答 3

1

在我们的文档中,我们说我们会在通话时自动将在线状态设置为“忙碌”,但查看我们的代码,看起来我们目前没有这样做。我会解决这个问题,但与此同时,我将举例说明你如何自己做到这一点(以防你想要一些其他行为)。

vline.MediaSession一般的想法是在进入状态时将出席状态设置为忙碌active。本例中,client假设为已登录vline.Clientsession假设为登录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);
于 2013-12-05T18:30:06.340 回答
-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。)

于 2015-10-18T21:16:54.527 回答
-1

一切正常,当您发送视频通话时,没有人可以发送其他视频通话

于 2015-10-18T21:20:20.720 回答