Голосовой SIP / Telegram шлюз

Голосовой SIP / Telegram шлюз


С тех пор, как различные мессенджеры стали настолько популярны, что уже трудно найти смартфон без WhatsApp / Viber / Telegram или чего-то подобного, среди работников телекома регулярно появляются идеи пустить в эти сети свой VoIP трафик. Вот только самые крупные игроки рынка совершенно не торопятся сотрудничать с кем-попало. Поэтому большинству приходится искать кустарные решения, основанные на реверс-инжиниринге протоколов, которые регулярно выпиливаются владельцами.

Telegram тут серьезно отличается от конкурентов. Исходники серверной части у него конечно закрыты, а вот с клиентскими приложениями все намного лучше. Реализация протокола - пожалуйста. Библиотека для голосовых звонков? И это есть! Так значит и готовое решение по SIP-Telegram шлюзу есть? Есть. Вот только делиться ими никто не спешит.

Предлагаю изменить ситуацию, разместив на Github под свободной лицензией исходники реализации голосового шлюза, которую мы некоторое время используем у себя. Но обо всем по порядку.

Что представляет из себя проект на данный момент?

Standalone приложение на чистом C++. Используются только официальные библиотеки телеграма, а именно libtgvoip и tdlib. В качестве SIP стэка используется pjsip.

Шлюз может использоваться для осуществления SIP->Telegram вызов по нику или номеру телефона. Можно принять Telegram->SIP вызов, который будет перенаправленный на указанный в настройках URI.

Шлюз довольно требователен к железу. Всему виной opus@48k (48000 sampling rate), который используется для голосовых звонков телеграме. При проведении нагрузочного теста удалось поднять 100 параллельных вызовов на домашнем Intel i7 3-го поколения. Транскод, в случае необходимости, должен выполняться софтсвичем, за которым устанавливается шлюз.

Для желающих протестировать шлюз развернут в AWS и доступен по адресу 18.217.18.12 без регистрации. Можно набрать со своей АТС, либо зайти в любой онлайн SIP клиент (допустим этот) и набрать tg#<ник>@18.217.18.12 или +<номер>@18.217.18.12 Только не забудьте при этом проверить, что настройки приватности вашей учетной записи разрешают звонки от неизвестных номеров.

Все еще интересно? Хотите получить доступ к исходникам? Тогда предлагаю дружно скинуться на донат автору на ingiegogo. Если нужная сумма будет собрана в течение месяца, то исходники появятся на Github. А если нет, то денежные средства будут возвращены.



Report Page