Доброго времени суток.
Скачал тестовую программу VoIPTest
https://github.com/hipersayanX/VoipTest. Данная программа использует библиотеку QXMPP
https://github.com/qxmpp-project/qxmpp, которая в свою очередь использует OPUS и VPX. Все это дело собрал на Win7 x64 с помощью Qt5.
Вроде бы все работает, за исключением двух моментов:
1. Звук приходит с жуткой задержкой и воспроизводится немного дергано (видео передается нормально).
Сначала грешил на кодек. Попробовал пересобирать с кодеком SPEEX и без кодека вообще - безрезультатно. Пробовал сделать свою программу для передачи звука. Использовал один QIODevice для передачи звука в канал и один QIODevice для приема звука из канала. Тут же нам предлагают использовать QXmppRtpAudioChannel и для приема и для передачи. Это немного смущает.
2. Если оба компьютера находятся в одной локальной сети, то вызов можно совершить. Если компьютеры находятся в разных сетях, вызов совершить нельзя.
Для соединения между сетями используется STUN. С помощью Wireshark смотрел пакеты. Если оба компьютера находятся в одной ЛВС, в Wireshark появляются исходящие пакеты STUN на локальный адрес абонента(например 192.168.1.2 - 192.168.1.3), после чего от абонента приходит STUN пакет с ответом в котором содержится ip и порт. Если же компьютеры находятся в разных сетях, STUN пакеты все равно уходят на локальный адрес абонента(например 192.168.1.2 - 192.168.3.15), но ответа, разумеется не приходит, так как абонент находится в другой сети.
Если я не ошибаюсь, STUN пакеты должны уходить на STUN сервер, а не на локальный адрес абонентов.
На гитхабе вопрос задал, но ответа не дождался.
Подскажите, пожалуйста, как эти проблемы можно решить.