Изменить состояние присутствия человека с помощью API vLine

Как я могу изменить статус человека (setPresenceState) после того, как пользователь принимает вызов? Мне нужно установить состояние "занят" для человека.

Я думаю, что могу установить присутствие на занятое, когда срабатывает событие "enterState:active", но как именно это сделать?

3 ответа

В нашей документации мы говорим, что мы автоматически устанавливаем состояние присутствия "занято", когда по вызову, но просматривая наш код, похоже, что в данный момент мы этого не делаем. Я исправлю это, но пока приведу пример того, как вы можете сделать это самостоятельно (на случай, если вы захотите иметь другое поведение).

Общая идея состоит в том, чтобы установить состояние присутствия на занят, когда 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 "занято" не работает, все, что вы хотите сделать.. Я использую PresenceStates "do_not_disturb" вместо и сбрасываю состояние "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, какое событие произойдет, и даже если клиент или человек прервали сеанс, просто добавьте этот код после:

// извлекаем объект person, связанный с username: session.getPerson (userId).done (function (person) {

session.setPresence('online');

(Предполагается, что vline.MediaSession находится в активном состоянии. Сеанс считается vline.Session, возвращаемым после входа в систему.)

Другие вопросы по тегам