Невозможно получить ответы по подписке от Avaya IP Office с использованием протокола MTCTI-3JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно получить ответы по подписке от Avaya IP Office с использованием протокола MTCTI-3

Сообщение Anonymous »

Я интегрируюсь с системой Avaya IP Office с использованием протокола MTCTI-3 на Java. Я успешно установил соединение WebSocket и убедился, что связь по пинг-понгу работает должным образом. Однако когда я отправляю запрос на подписку, он достигает сервера (подтверждается через Avaya SysMonitor), но я не получаю никакого подтверждения или ответа от сервера.
Что у меня есть? Готово:
  • Соединение WebSocket установлено: Соединение WebSocket активно, и я вижу 101 Реакция переключения протоколов во время рукопожатие.
  • Подтвержденное общение в пинг-понге:

    Отправка пинга:

    Код: Выделить всё

    ws.sendPing(ByteBuffer.wrap("keepalive".getBytes()));
  • Получение понга:

Код: Выделить всё

 @Override
public CompletionStage onPong(WebSocket webSocket, ByteBuffer message) {
System.out.println("Pong received: " + new String(message.array()));
return null;
}
  • Это соединение работает отлично, и я вижу соответствующие журналы в Avaya IP Office SysMonitor.
    < /ol>
  • Полезная нагрузка подписки:

    I отправляю следующее сообщение Protobuf, чтобы подписаться на очередь группы поиска:

Код: Выделить всё

 Message
{
subscribe
{
requestid=2
subscribe_id=7500
queue
{
flags=0x3
ccflags=0x40039
name=TestCTI
}
}
}
  • Сериализованная полезная нагрузка Protobuf:

    Код: Выделить всё

    1A 18 08 02 10 D2 1D 22 10 08 03 10 39 80 04 1A 05 53 61 6C 65 73
  • Обрамлен префиксом длиной 4 байта:

    Код: Выделить всё

    00 00 00 18 1A 18 08 02 10 D2 1D 22 10 08 03 10 39 80 04 1A 05 53 61 6C 65 73
  • Запрос отправляется с помощью:

    Код: Выделить всё

    ws.sendBinary(ByteBuffer.wrap(framedMessage), true);
[*]Проверенные журналы в SysMonitor: Запрос на подписку достигает сервера (подтверждено в журналах). Однако я не вижу никакого подтверждения или ответа на подписку.

[*]Имитация активности в очереди подписки: Звонки передаются в группу поиска «Продажи» для генерации событий, но ответы на WebSocket не поступают.

[*]Реализованный ответ Обработка:
  • Код: Выделить всё

    onBinary()
    используется для обработки ответов сервера:

    Код: Выделить всё

    @Override
    public CompletionStage onBinary(WebSocket webSocket, ByteBuffer data, boolean last) {
    try {
    IpoMtcti3.Message message = IpoMtcti3.Message.parseFrom(data.array());
    System.out.println("Server Response: " + message.toString());
    } catch (Exception e) {
    System.err.println("Error parsing response: " + e.getMessage());
    }
    webSocket.request(1);
    return null;
    

Наблюдения:
  • Подключение через WebSocket и пинг-понг работают без проблем.
  • Сообщение о подписке получено сервером (подтверждено) через журналы), но нет подтверждения или последующих событий.
Вопросы:
  • Существуют ли особые требования или конфигурации для IP Office сможет правильно обрабатывать запросы на подписку?
  • Неправильно ли полезная нагрузка Protobuf или кадрирование для этого типа подписки?
  • Как я могу отладить это, чтобы определить, почему сервер не отправляет ответ?
Будем очень признательны за любую помощь или рекомендации! Сообщите мне, если потребуются дополнительные сведения или журналы.
Примечание. Я попробовал этот код Avaya IPO с MTCTI-3 Api

Подробнее здесь: https://stackoverflow.com/questions/792 ... cti-3-prot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»