使用vLine API更改人员的状态

时间:2013-11-28 06:49:32

标签: vline

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

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

3 个答案:

答案 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)

一切都会正常工作,当你发送视频通话时,没有人可以发送其他视频通话