Мы разрабатываем VoIP-приложение с использованием PJSIP. Внутренний основной модуль находится на C++ 11, а внешний интерфейс - на Java. После C++ 11 потоков создано:Проблема с качеством голоса в приложении Android VoIP с PJSIP
- Основной поток
- Observer нить, которая просыпается каждые 3 минуты и быстро идет к сна
- SSL Чтение + запись нить (SSL чтения сокет подключен через интернет-сервер)
- часть времени TCP поток, который является активным/неактивным для RESTful API (создает сокет на 9100)
- SIP поток, который соединяется с PJSIP (создает сокет на 5060)
- 2 потока RTP для каждого вызова (создает пару гнезд, например. 40000, 40001)
Тот же модуль C++ 11 также присутствует в приложении iOS/MAC, где он работает нормально. Приложение Android также отлично работает, но качество голоса не всегда хорошо.
[Примечание: Мы исключили встроенный стек Android SIP, поскольку он не поддерживает 3G.]
Я подозревал, что C++ 11 (всего 8) нити виновника, а также отвечал на вопрос:
Но это кажется удаленной возможностью для меня, потому что во время голосового вызова активно только 4 потока:
2 SSL + 2 RTP (Кроме того, он отлично работает в iOS. MacOS).
Сейчас мое подозрение на PJSIP, потому что, если мы делаем звонок из:
- App в App то качество передачи голоса 70 +% времени хорошо
- приложение для GSM, то качество передачи голоса всегда хорош на стороне приложения, но всегда сотрясается со стороны GSM.
Любая помощь будет высоко оценена, и если она исправит проблему, вознаграждение будет вознаграждено. (Я уже начал щедрость около 12 января, но в то время не было ответа/комментария)