SIP <-> Telegram: sip.tg

    Уверен, многие задавались вопросом: вот есть Телеграм, год назад он обзавёлся звонками, у него открытое API, но почему-то до сих пор никто не сделал связку с протоколом SIP. Ведь это даёт неограниченные возможности: от замены SIP-звонилок до организации ещё одного канала коммуникации с пользователями Вашего бизнеса. Сегодня я расскажу историю появления первого такого шлюза, который теперь доступен абсолютно всем!

    Когда-то давно я попал на ресурс Talk37 (ныне это ruVoIP.net) и мне он очень понравился. Несмотря на то, что в последнее время он приобрёл дурную славу благодаря стараниям любителей даркнета, активное сообщество проекта — это всё-таки люди, которые болеют за него душой. Я отдельно благодарю его создателя Дмитрия Серова за отзывчивость и упорный труд.

    ruVoIP.net — это бесплатная виртуальная АТС, причём её функционалу позавидовала бы почти любая коммерческая АТС. Каждый зарегистрированный в ней пользователь получает при регистрации свой внутренний номер, на который можно дозвониться множеством способов. И вот, 24 сентября 2017 года, первый прототип шлюза увидел свет: теперь стало возможно дозвониться до пользователей ruVoIP.net через Телеграм! Вернее… что значит возможно? Мы создали отдельного пользователя Телеграм, который научился принимать звонки и приветствовать звонящих с просьбой ввести внутренний номер. Но куда ввести? Как ввести? Вообщем, что-то заработало и вызвало у всех активных участников огромную радость сродни запуску ракеты в космос. И не важно, что оно часто падало, не было никакого DTMF, а звук напоминал старый КВ-приёмник.

    Время шло, шлюз улучшался, а ruVoIP.net вышел в ТОП поисковых систем по запросу «sip телеграм». Мне начали поступать запросы от разных людей, которые хотят сделать такой же шлюз; были в том числе и коммерческие предложения. К сожалению, архитектура прототипа не позволяла его расширение и была слишком сложна для использования конечными пользователями, поэтому я был вынужден всем отказывать с обещаниями что-то сделать. Я очень хотел что-то отрелизить к новому году, но мне это оказалось не под силу.

    К 12 февраля 2018 года новая версия шлюза, наконец, достигла уровня, когда её уже стало можно пощупать — началось закрытое бета-тестирование. Проект подобного масштаба я делаю впервые, поэтому не всё получилось организованно, но свою пользу принесло: в конечном счёте удалось исправить ещё около пары десятков багов на тех юзкейсах, о которых я даже не думал.

    Что получилось


    Я не могу утверждать, что удалось исправить абсолютно все баги. В процессе работы я активно общался с желающими сделать такой же шлюз и у меня выстраивалась картина того что нужно пользователям. С другой же стороны, каждая функция очень сильно зависит от возможностей самого Телеграм. Далеко не всё удалось сделать удобно (а что-то не удалось сделать вовсе) из-за ограничений платформы.

    В результате получилось два основных режима: Операторы и Шлюзы. Настройки обоих режимов производятся через бота @siptg_bot.

    Операторы


    Это режим замены SIP Softphone мессенджером Телеграм. Если у Вас уже есть аккаунт у какого-то SIP-провайдера, но Вы не хотите устанавливать (на телефон) очередной Softphone, который занимает память, расходует батарею, требует тонкой настройки кодеков и плохо подстраивается под качество канала передачи данных, то этот режим для Вас. Разрешается создавать до 20 независимых подключений к SIP-провайдерам с одного аккаунта Телеграм (ограничение искусственное, возможно позже будет скорректировано). Звонки для каждого провайдера работают в обе стороны: возможны как входящие, так и исходящие звонки. Редактирование аккаунта выглядит примерно так:


    Кнопки содержат либо текущее значение опции, либо её название, если значение не задано (исключение составляет Пароль). На каждой странице настроек есть справка, которая вызывается по нажатию кнопки Помощь.

    Как принимать звонки?


    Поскольку боты в Телеграм не умеют звонить, у сервиса имеется отдельный аккаунт @siptg, который выполняет эту функцию. При входящем звонке номер и имя звонящего абонента берутся из SIP-заголовков и приходят в виде отдельного сообщения; вместе с сообщением также приходит DTMF-клавиатура:


    Примечание: я понимаю, что текущая реализация выглядит странно и не удобно, но это вынужденная мера: API Телеграм не позволяет определять имя абонента используя локальную адресную книгу; по той же причине не представляется возможным поместить информацию о номере звонящего на экран звонка.

    Как звонить?


    Здесь мы снова сталкиваемся с ограничениями Телеграм: нельзя набрать произвольный номер телефона, можно только позвонить другому пользователю. Поэтому для звонка на произвольный номер предусмотрено два способа:
    • отправить номер телефона в виде сообщения;
    • приложить к сообщению контакт, содержащий номер телефона.

    Для удобства, оба способа можно применять как к боту (@siptg_bot), так и к аккаунту для звонков (@siptg). Если настроено несколько аккаунтов операторов, то появится запрос о выборе оператора для звонка:

    Далее поступает входящий звонок в Телеграм и, после поднятия трубки, начинается соединение с набранным номером.

    Примечание: для каждого оператора можно указать правила трансформации набранного номера и ограничить его использование для номеров, соответствующих регулярному выражению. В случае, если набранный номер не соответствует регулярному выражению ограничения, оператор исключается из запроса о выборе оператора для звонка. В случае безальтернативного выбора запрос не появляется. Более подробная информация доступна в момент редактирования Правил набора номера.

    Шлюзы


    Наиболее интересным режимом работы является режим Шлюзы. Этот режим позволяет использовать аккаунт Телеграм через SIP: принимать звонки и звонить со своего аккаунта Телеграм другим пользователям. Например, Вы можете создать для своего бизнеса специальный аккаунт Телеграм, сообщить его своим клиентам в качестве контактного и принимать звонки, интегрируя их в общую очередь виртуальной АТС. А поскольку звонки возможны в обе стороны, у Ваших операторов также будет возможность перезвонить клиенту при необходимости; при этом клиент увидит звонок от имени Вашей компании.

    Для чего нужна отдельная сессия Телеграм?


    Мессенджер Телеграм разрешает использование одного аккаунта с разных утройств, при этом на каждом устройстве создаётся отдельная сессия. Поскольку при использовании sip.tg в режиме шлюза интеграция с SIP выполняется от имени Вашего аккаунта, необходимо создать новую сессию Телеграм. Создание сессии доступно через настройки бота: в разделе Шлюзы нужно нажать кнопку Войти и следовать инструкциям.

    Примечание. API Телеграм не позволяет получить ограниченный доступ к Вашему аккаунту, в связи с чем, создавая новую сессию, Вы даёте своё согласие на передачу полных прав над своим аккаунтом Телеграм сервису sip.tg. Администрация сервиса прилагает все усилия, чтобы ограничить использование Вашего аккаунта Телеграм третьими лицами, не передаёт информацию о Вашей сессии Телеграм третьим лицам и не использует Ваш аккаунт Телеграм для целей, отличных от заявленных, однако не несёт ответственности за возможный ущерб, который может возникнуть в результате хищения данной информации третьими лицами путём взлома, либо физического доступа к оборудованию сервиса.

    Как подключить Телеграм к виртуальной АТС?


    После создания сессии, можно настроить подключение своего аккаунта Телеграм к виртуальной АТС. Для этого нужно создать новое SIP-подключение в разделе Шлюзы настроек бота:

    Имеется два способа подключения: входящее (кнопка Новый вх.: Вы настраиваете виртуальную АТС для подключения к серверам sip.tg) и исходящее (кнопка Новый исх.: сервера sip.tg подключаются к виртуальной АТС). Можно создать несколько как входящих, так и исходящих подключений и использовать их независимо на разных устройствах (при этом, общее число подключений не должно превышать 20). Флажки DTMF вх. и DTMF исх. позволяют управлять отображением клавиатуры донабора внутреннего номера и отображением номера звонящего абонента при входящем звонке.

    Как звонить и принимать звонки?


    Вне зависимости от выбранного способа подключения к виртуальной АТС, входящие и исходящие звонки производятся одинаково: при входящем звонке виртуальной АТС передаётся номер и имя звонящего пользователя Телеграм, а для исходящего звонка достаточно набрать номер пользователя Телеграм. В качестве номера пользователя Телеграм можно использовать одно из следующих значений:
    • реальный номер телефона пользователя, привязанный к его аккаунту;
    • username пользователя;
    • *ID пользователя.

    Здесь также отмечу следующие особенности:
    1. При входящем звонке, если о пользователе известна только часть данных, в качестве номера указываются первое из доступных значений: номер телефона, username или ID. Т.е., если номер телефона пользователя не известен, но пользователь указал username, то в качестве номера будет возвращён username. Если у пользователя не известен ни номер телефона, ни установлено username, то в качестве номера будет указан *ID.
    2. Звонить пользователю по его ID можно только в том случае, если ранее было прямое или косвенное с ним взаимодействие: обмен сообщениями, предыдущие звонки и т.п.


    Кое-что ещё


    Аккаунт для звонков @siptg зарегистрирован на реальный номер телефона. Почему бы его не использовать для чего-нибудь ещё? Первое что приходит в голову — это организовать шлюз доступа в Телеграм из ТфОП. Да, я над этим уже думал, но пока его делать не стал. А сделал следующее.

    Бывает, уезжая в роуминг, требуется оставаться на связи. Поскольку принимать звонки на российскую сим-карту очень дорого, я подумал, что неплохо было бы сделать приём входящих звонков в Телеграм! Всё что потребуется — это настроить переадресацию на российском номере и купить местную сим-карту для доступа в Интернет.

    Для переадресации входящих звонков в Телеграм нужно выполнить USSD-запрос **21*+79581006789# перед поездкой. После поездки выполните команду ##21# для отключения переадресации.

    Примечания:
    1. Стоимость услуги переадресации оплачивается согласно Вашему тарифному плану как звонок на мобильный номер города Москвы.
    2. Номер телефона, на который зарегистрирован аккаунт Телеграм, должен совпадать с номером телефона, на котором устанавливается переадресация.
    3. Корректная работа данной функции зависит от Вашего оператора связи. В частности, работа с нероссийскими операторами связи не гарантируется.


    Что будет дальше?


    Говоря откровенно, неопределённость в отношении Телеграм в России как была, так и остаётся. Кроме того, судьба проекта целиком зависит и от команды Телеграм. Я не знаю какой будет реакция команды, поскольку, имея неудачный опыт обращения в техническую поддержку ранее, я не стал обращаться вновь. В случае одобрения можно будет существенно улучшить текущую реализацию и я вижу от этого абсолютную пользу для всех: проект открывает новые возможности Телеграм как платформы, что, в конечном счёте, должно привлечь и новую аудиторию.

    Также у меня есть чёткое понимание того, что нужно делать дальше, я хорошо знаю узкие места, которыми нужно будет заняться. Я также понимаю, что в результате хабраэффекта всё может сломаться, поскольку я не выделил на старте больших мощностей, но надеюсь, что заложенная возможность масштабирования позволит сократить время восстановления. Тем не менее, если всё будет действительно плохо — заходите дня через 2-3 :).

    Конкретных планов по коммерциализации проекта у меня пока нет, первое время весь функционал будет полностью бесплатен. Тем не менее, если Вы ожидаете большую нагрузку на своём операторе или шлюзе — сообщите об этом заранее, обратившись в техническую поддержку: уже имеется возможность перевести Ваши аккаунты на отдельный сервер. Если имеется запрос на конкретную функциональность — также обращайтесь: вместе подумаем как это можно решить наиболее оптимально.

    В заключении оставлю ссылки на все ресурсы проекта:
    • siptg — аккаунт для звонков;
    • siptg_bot — бот для настройки;
    • siptg_news — новостной канал;
    • siptg_public — открытая группа пользователей sip.tg;
    • siptg_support — техническая поддержка.
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну, и что?
    Реклама
    Комментарии 41
    • +1
      Да, хорошая задумка! Тоже недавно думал над союзом SIP и telegram, но только для сборка статистики звонков. Т.е. чтобы в чат приходила информация о дате звонка, номера, длительности. У Вас же планы гораздо глобальнее, непременно буду следить за проектом.
      • 0
        Что под капотом? FreeSWITCH, Kamailio, или (не дай бог!) Asterisk?
        • +1
          Да, это ни в коем случае не Asterisk. О том что именно — я хотел рассказать позже. Пока что могу сказать, что все realtime части написаны на C++, а логика — на Python 3.
        • 0
          А видео поддерживается?
          • +1
            На текущий момент в телеграме нет поддержки видео звонков.
          • 0
            Если только скриншотами в чат… Кстати, это идея!
          • +1
            а проект коммерческий, исходный код можно посмотреть?
            • +1
              Тут есть кампания на Индигого по сбору денег на опенсорс версию шлюза в телеграм. Это не имеет отношения к шлюзу автора поста, но тем не менее может быть интересно вам

              www.indiegogo.com/projects/telegram-to-sip-voice-gateway--2# мопед не мой ))

              к примеру, зачем кому-то передавать свой аккаунт в тг, если можно будет поставить свой шлюз?
            • +2
              Вы даёте своё согласие на передачу полных прав над своим аккаунтом Телеграм сервису sip.tg. Администрация сервиса прилагает все усилия, чтобы ограничить использование Вашего аккаунта Телеграм третьими лицами, не передаёт информацию о Вашей сессии Телеграм третьим лицам и не использует Ваш аккаунт Телеграм для целей, отличных от заявленных, однако не несёт ответственности за возможный ущерб, который может возникнуть в результате хищения данной информации третьими лицами путём взлома, либо физического доступа к оборудованию сервиса

              Никого не пугает?
              • +1
                Вы даёте своё согласие на передачу полных прав над своим аккаунтом Телеграм сервису sip.tg.


                О как! Не, такое сразу лесом.
                • 0
                  Да, мне этот вариант тоже не нравится, но никакого другого не оставалось. Возможно, это станет поводом для команды Телеграм задуматься над уровнем передачи прав. Пока можно для целей шлюза использовать не основной аккаунт. Также есть режим Операторы, который можно использовать без передачи прав над своим аккаунтом.
                  • 0
                    Я только сейчас сообразил. Сессии-то в Телеграме синхронизируются. То есть если открыты две, например на мобильнике и на десктопе — все сообщения от всех собеседников будут дублироваться в обе сессии.
                    Теперь появляется третья, для шлюза.
                    И туда все точно так же сливается.

                    Если я где-то ошибся — поправьте, пожалуйста, но на первый взгляд это выглядит именно так.
                  • +1
                    От всей души спасибо автору топика за столь нужный функционал. Теперь не надо использовать свою АТС. А сервера, если не секрет, где находятся? Как у них с задержкой?
                    PS Пошел тестить))
                    • 0
                      Основные сервера пока только в Германии. Но локация, скорее всего, будет расширяться.
                    • 0
                      Для переадресации входящих звонков в Телеграм нужно выполнить USSD-запрос **21*+79581006789# перед поездкой. После поездки выполните команду ##21# для отключения переадресации.

                      А еще можно использовать для входящих в метро в телегу (привет, Теле2!). Переадрессация по условию «недоступен»: **62*+79581006789#
                      • 0
                        Правильно ли я понял, что для полноценной работы в режиме альтернативного SIP клиента необходимо передать хозяевам сервиса не только полный доступ к личному аккаунту Telegram, но также логин/пароль для подключения к SIP провайдеру со всеми вытекающими?
                        • 0
                          Неправильно. Доступ к Вашему аккаунту Телеграм требуется только в режиме Шлюзы, целевой аудиторией которого является бизнес, кому важно быть на связи со своими клиентами в т.ч. через Телеграм. Для использования Телеграм в режиме альтернативного SIP клиента необходимы только данные для подключения к Вашему SIP провайдеру (используя режим Операторы).
                          • 0
                            При первом субъективном взгляде у сервиса в настоящий момент нежизнеспособный сценарий применения — в особенности, если это для бизнеса. Доступ к своему аккаунту Telegram адекватный человек третьему лицу никогда не даст. Мотивировать использовать отдельный аккаунт — тоже не вариант, т.к. надежнее держать тогда отдельный SIP клиент. Кроме того, еще и вы, как промежуточное звено, все разговоры прослушивать и записывать сможете. Ну а раскрывать данные подключения к своему провайдеру связи — вообще верх опрометчивости, кто будет отвечать за неожиданную утечку средств с баланса, когда такое случится.
                            • 0
                              отдельный аккаунт — тоже не вариант, т.к. надежнее держать тогда отдельный SIP клиент

                              По-моему Вы запутались и не слишком утрудили себя разобраться в особенностях работы каждого из режимов, даже несмотря на мои разъяснения.

                              Кроме того, еще и вы, как промежуточное звено, все разговоры прослушивать и записывать сможете.

                              Техническая возможность есть. Но это не в моих интересах, о чём честно заявлено в Соглашении об использовании.

                              Ну а раскрывать данные подключения к своему провайдеру связи — вообще верх опрометчивости, кто будет отвечать за неожиданную утечку средств с баланса, когда такое случится.

                              Вы когда-нибудь пользовались услугами Виртуальных АТС? Слышали что-нибудь, например, про pbxes.org? А про реализацию Push-режима в Groundwire читали?

                              Как бы то ни было, я не настаиваю на использовании Вами сервиса sip.tg. Если Вам ближе свой Asterisk у себя в комнате, запертый в сейфе, с выделенной линией e1 — это Ваш выбор. Везде действует закон: безопасность обратно пропорциональна удобству.
                              • 0
                                По поводу отдельного SIP клиента — верно, моя неточность, в режиме шлюза это не поможет.

                                Отдельными облачными виртуальными АТС не пользовался и не планирую, хотя прекрасно знаю предмет.
                                Использую и Groundwire, и CloudSoftphone (тот же Acrobits, что и Groundwire), но только со своими Push серверами SIPIS — читали о таком?

                                Вы не обижайтесь, пожалуйста. А то, смотрю, в сердцах минусовать меня стали. У меня есть профессиональная субъективная точка зрения об организации безопасности голосовых сервисов — я же помочь вам хотел, потому акцентировал внимание на критичных проблемных деталях. Хотите — учитывайте, не хотите — не надо.
                                • –2
                                  У меня есть профессиональная субъективная точка зрения об организации безопасности голосовых сервисов


                                  Вы абсолютно правы, никто в здравом уме не станет пробивать дыру в собственной безопасности, передавая доступ к аккаунту третьей стороне, да еще и имеющей возможность записи всех разговоров.
                                  • 0
                                    Невозможно сделать решение одновременно и безопасным, и удобным. Если у Вас бизнес, простите, из разряда магазина нижнего белья, Вы никогда не будете сосредотачивать усилия на содержании своей собственной IT-инфраструктуры — ВАТС, шлюз в Телеграм и т.д. В такой ситуации оптимальнее воспользоваться именно услугами организаций, которые занимаются этим профессионально: каждый должен заниматься своим делом.

                                    Я прекрасно понимаю ответственность за конфиденциальные данные пользователей. Я не позиционирую сервис как подпольный и рассматриваю вариант заключения договорных отношений не только путём договора оферты.

                                    А по поводу паранойи касательно прослушивания и записи разговоров — есть ли у Вас уверенность, что Ваш SIP-провайдер этого не делает? Откуда Вы знаете, у кого реально закупается трафик Вашим провайдером и как он идёт? Это же не означает, что каждый должен становиться оператором, чтобы исключить абсолютно все риски. Надо быть реалистами.

                                    P.S. Минус был за первый Ваш пункт.
                                    • 0
                                      Невозможно сделать решение одновременно и безопасным, и удобным.

                                      А я лично думаю, что это возможно и обязательно нужно стараться так делать. Наши общие знакомые из Acrobits именно так и поступили, предоставив желающим установить их Push сервер на своей стороне, как опцию. Неплохих успехов добились, кстати.

                                      Я прекрасно понимаю ответственность за конфиденциальные данные пользователей.

                                      Так а в чем ваша ответственность заключается по договору, если у клиента по какой-то причине кредит исчезнет или доброжелатели ему пришлют запись его разговора с клиентом? Оправдываться будете — что вы тут ни при чем или компенсацию выплатите? Это риторические вопросы.

                                      По последнему абзацу. Моя компания — оператор связи. За 20 лет собак съедено приличное число и кухня известна в мельчайших деталях. Не хотелось бы расстраивать, но вас обязательно ждут ситуации, которые научат целесообразности позиции моей, и высказывавшихся выше коллег, которую вы пока обозначаете «паранойей». Тогда и поговорим о реализме. Желаю вам опыта.
                                      • 0
                                        А я лично думаю, что это возможно и обязательно нужно стараться так делать.

                                        Давайте поговорим конструктивно. Вместо критики, предложите правильное решение: какую часть из шлюза нужно выделить в opensource и передать, как опцию в Acrobits, клиенту, и что тогда останется от текущего проекта? Опишите весь pipeline как должны будут ходить звонки из SIP в Telegram и обратно, что останется от бота, как будет работать DTMF из Telegram? Действительно ли это всё будет лишь опцией?

                                        Моя компания — оператор связи.

                                        Этим всё сказано. Вы хотите сказать, что нельзя пользоваться услугами виртуальных АТС, потому что они могут украсть кредит и переслать доброжелателю запись разговора, что каждый сам должен создавать своего оператора связи. А если кто-то этого не делает — вас обязательно ждут ситуации, которые научат целесообразности позиции моей, и высказывавшихся выше коллег. И это несмотря на то, что рынок предложений виртуальных АТС огромен, а значит люди этим пользуются. Получается, они все не правы, а правы Вы и высказавшиеся выше коллеги?
                                        • –2
                                          Вместо критики, предложите правильное решение: какую часть из шлюза нужно выделить в opensource и передать, как опцию в Acrobits, клиенту, и что тогда останется от текущего проекта? Опишите весь pipeline


                                          Я думаю, это тянет на нехило платную консультацию.
                                          • 0
                                            Вот только не надо пафоса. Вы, судя по всему, не съели ещё ни одной собаки в вопросах интеграции с голосом в Телеграм, но уже жаждите оказать нехило платную консультацию. Это ещё большой вопрос кто у кого должен брать консультацию.

                                            А я вот знаю что получится. Если вынести голос можно достаточно безболезненно (возможно, это даже будет сделано спустя время), то вынос сигнализации (по аналогии с SIPS) уже тянет на отдельный проект, поскольку нужно будет выносить не только SIP, но и Телеграм. Данные авторизации Телеграм, на минуточку, это не 3 строчки в конфиге (логин/пароль/сервер), а отдельный процесс получения ключа авторизации сессии => необходимо запилить отдельную утилиту, которая будет это делать.

                                            И, касательно удобства, текущий бот для удобной настройки, тоже уходит в топку при таком решении, поскольку не сможет редактировать приватные настройки у Вас на сервере. Безопасность повышается — удобство понижается, о чём я и говорил.
                                            • –2
                                              Вот только не надо пафоса.


                                              Да, а еще чего не надо?

                                              По поводу съеденных собак — я как и коллега выше, около 20 лет в индустрии телекома, причем как инженер, а не как менеджер/продажник, и ел такое, что вам не приснится даже в страшном сне. Это раз. Два — все имеет свою цену, в том числе и разработка концепции безопасного, user-friendly и отказоустойчивого шлюза SIP <-> TG. То, что предлагаете вы — это классическая MITM-схема, пользоваться ей в здравом уме и твердой памяти нельзя никак.

                                              необходимо запилить отдельную утилиту, которая будет это делать.


                                              Так надо запилить, а не отнимать у пользователя его приватность в угоду простоте разработки собственного ПО.
                                              • 0
                                                Да, а еще чего не надо?

                                                я как и коллега выше, около 20 лет в индустрии телекома

                                                Пока ни Вы, ни Ваш коллега не продемонстрируете опыт интеграции голоса с Телеграм, не имеет никакого смысла оплачивать ваши консультации — вашего опыта будет недостаточно для подобных консультаций.

                                                То, что предлагаете вы — это классическая MITM-схема

                                                Тогда выходит, что любая облачная виртуальная АТС — это MITM, и пользоваться ей в здравом уме и твердой памяти нельзя никак. Но что мы видим на самом деле? Пользуются, и ещё как! Потому что это, чёрт возьми, удобно!

                                                в угоду простоте разработки собственного ПО

                                                Не путайте тёплое с мягким. Не в угоду простоте, а в угоду удобства. Я нигде не говорил, что это было бы сложно запилить.
                                                • –2
                                                  Пока ни Вы, ни Ваш коллега не продемонстрируете опыт интеграции голоса с Телеграм


                                                  А, собственно, зачем нам это делать?

                                                  Потому что это, чёрт возьми, удобно!


                                                  Нет, потому, что они не требуют передать им пароли от не имеющих к ним отношения сервисов. А вы требуете у пользователя credentials для подключения к внешнему SIP-провайдеру, и вот эта строчка еще про передачу полных прав над своим аккаунтом Телеграм. Все это убивает первоначальную идею Телеграма — безопасные, зашифрованные и недоступные третьей стороне сообщения и звонки. Я уже даже не спрашиваю, как у вас с сертификацией хранения и обработки подобных данных. Где гарантия, что завтра логин/пароль от сипа от вас не утекут на сторону и мне не выжрут баланс? Кто мне его компенсирует? Где гарантия, что завтра, пользуясь моей сессией Телеграма, не начнут спамить куда ни попадя каким-нибудь буллшитом от моего имени? И ладно бы только спамить, по сути — вы получаете все сообщения пользователя, сессии синхронизируются. У вас подразумевается хоть какая-то юридическая ответственность перед пользователем сервиса? Ребят, вы просите дофига приватных данных, а в ответ что? Пара строчек в «пользовательском соглашении»? Как-то это… нехорошо.

                                                  Невозможно сделать решение одновременно и безопасным, и удобным.


                                                  У Telegram получилось.
                                                  • 0
                                                    А, собственно, зачем нам это делать?

                                                    Вы и впрямь уверены, что, не зная предметной области (в частности, интеграции голоса в Телеграм), можно предлагать нехилую платную консультацию? Спасибо, не надо.

                                                    потому, что они не требуют передать им пароли от не имеющих к ним отношения сервисов.

                                                    Что Вы говорите?! К примеру, тот же, упомянутый ранее, бесплатный pbxes.org, ruvoip.net, zadarma.com (как бы сюрпризом для Вас не звучало, но там есть такая опция!). Да и тонна других коммерческих облачных ВАТС.

                                                    Касательно полных прав над Телеграмом — я уже говорил: это отдельный режим, и я не настаиваю на его использовании. Да, меня напрягает эта ответственность сильно больше, но раз пользователям это действительно нужно и нет никаких других альтернатив — я был вынужден пойти на такой шаг, честно предупредив пользователя, и делая всё возможное для предотвращения утечек. Я готов к диалогу с клиентом для поиска обоюдного решения, в т.ч. с точки зрения юридической ответственности.

                                                    У Telegram получилось.

                                                    Вот когда они придут сюда и скажут: у нас теперь есть SIP-интеграция, тогда и скажем: да, получилось.
                                                    • –2
                                                      предлагать нехилую платную консультацию?


                                                      Заметьте, я ее и не предлагал. Я говорил о том, что запрошенная вами информация стоит нормальных денег.

                                                      pbxes.org, ruvoip.net, zadarma.com


                                                      Что конкретно и для чего они просят им передать?

                                                      честно предупредив пользователя


                                                      Предупредив? Вы обязаны в инструкции по настройке большими красными буквами написать «Внимание, в случае использования этого режима мы получаем возможность читать всю Вашу переписку с любым из ваших собеседников, а также писать что угодно кому угодно от Вашего имени!». Иначе это не предупреждение, а формальная отписка.
                                                      А по-хорошему, этот режим надо выпилить к бесу совсем.

                                                      Вот когда они придут сюда и скажут: у нас теперь есть SIP-интеграция, тогда и скажем: да, получилось


                                                      А им не нужна SIP-интеграция, SIP-пространство небезопасно. У них получилось сделать безопасный и удобный продукт.
                                                      Без SIP.
                                                      • 0
                                                        Заметьте, я ее и не предлагал. Я говорил о том, что запрошенная вами информация стоит нормальных денег.

                                                        Предлагал Ваш коллега, а Вы кивали, указывая и на свой безупречный опыт в телекоме, но умалчивая об отсутствии такового в вопросах, связанных с Телеграм. Честнее было бы и Вам, и Вашему коллеге написать, что опыта интеграции с Телеграм у вас нет, но вы готовы над этим подумать.

                                                        Вы обязаны в инструкции по настройке

                                                        Не Вам мне указывать что и кому я обязан. Я подумаю над Вашим пожеланием.

                                                        А им не нужна SIP-интеграция, SIP-пространство небезопасно. У них получилось сделать безопасный и удобный продукт.
                                                        Без SIP.

                                                        Во-первых, не Вам за них отвечать что им нужно, а что нет. А во-вторых, Вы просите сделать сделать связку небезопасного SIP с безопасным Телеграм. Я понимаю, что это возможно, но чтобы это было и удобно, и безопасно — решение должно исходить именно от команды Телеграм.
                                                        • –2
                                                          Честнее было бы и Вам, и Вашему коллеге написать


                                                          Не Вам указывать, что и кому было бы честнее сделать. Я не буду думать над Вашим предложением.

                                                          А еще я не поленюсь написать про ваш сервис в Телеграм, чтобы они знали про потенциальную точку раскрытия пользовательской информации.

                                                          Вы просите


                                                          Я? Я ничего не просил делать. Я лишь задал несколько конкретных вопросов, которые Вы, разумеется, проигнорировали.
                                                          • 0
                                                            Послушайте. Думается, мы оба слегка погорячились. Мне действительно жаль, что так вышло. Мне не сложно извиниться за слова, возможно, вас задевшие. Даже здесь, не в личке.

                                                            Предлагаю вернуться обратно на рельсы конструктива.

                                                            Так получилось, что наружу Телеграма не торчит никакого API для осуществления голосовых вызовов. То есть без «костылей» зашлюзовать SIP с Telegram нереально. Просто невозможно, это не предусмотрено на стороне Телеграма. Я глубоко сомневаюсь, что Телеграммщики прикрутят SIP в обозримом будущем, так как а) SIP-пространство небезопасно, б) у них есть задачи поинтереснее — TON.

                                                            Но и вы поймите меня правильно — режим с передачей аккаунта, с дополнительной сессией — это слишком. Это вот прямо слишком-слишком. Это действительно прямое копирование всех сообщений себе. И, будем честными, нет гарантии, что некий не в меру любопытный сисадмин сервиса удержится от соблазна поглядеть, что там пишут друг другу люди. Тут все необходимо жестоко шифровать.
                                                            Если уж без передачи аккаунта не обойтись — то может быть, лучше принудительно заводить дополнительный аккаунт каждому пользователю при регистрации на вашем сервисе, и чтобы он его использовал только для вашего шлюза? А на стороне шлюза — фильтр, принимающий события только от таких вот «дополнительных» аккаунтов, чтобы пользователи не цепляли свой основной. И при регистрации принудительно им туда (и в почту) писать все как есть, что мол это — ТОЛЬКО для шлюза, не вздумайте еще что-то тут делать, все раскрыто, иначе никак не можем сделать.

                                                            Как-то так, в общем. Тяжелый день и взвывшая паранойя.
                                                            • 0
                                                              Я без преувеличения сказал, что подумаю над предложением о дополнительном информировании пользователей при создании сессии Телеграм. Если повезёт, и мне удастся установить контакт с командой Телеграм, я приму во внимание и их рекомендации по работе с персональными данными пользователей.

                                                              Также заверю, что сервис находится в одних руках, поэтому любопытных сисадминов нет. Когда ситуация начнёт меняться, будут меняться и принципы работы с данными, составляющими конфиденциальные сведения.

                                                              P.S. И будьте очень аккуратны в словах. Мне действительно было очень неприятно с Вами общаться, особенно вот эта ваша нехилая платная консультация
                            • 0
                              (удалено)
                              • 0
                                Инженеры приветствую!
                                Внесу свои пять копеек: сам я 20 лет в телекоме (Тфоп, GSM инженерия по передаче данных), и последние 6 лет проекты VoIP

                                В тестеры этого проэкта попал случайно с начала февраля — отличное решение, ВАУ эффект в ритейле и рознице и спрос я уверен будет однозначно!

                                Безопасность — да сам сразу сделал новый аккаунт после того как понял что двухфакторный телеграм неудобно! По опыту прослушки чужой информации могу сказать одно -линейные сотрудники это одно, дети и родственники это другое! Но посторонний трафик реально поверьте — комуто сильно так же нужен как запахи ваших конечностей в конце рабочего дня… ИМХО! Шлюз работает до сих пор кому интересно звоните — тестируйте мой IVR

                                По поводу SIP учетки это другое тут все проще и каждый открыв книжку про телеграм в состоянии наваять себе бота для CallBack! Я имею ввиду каждого опытного телекомца — тк астерискер без Python сейчас, как Космонавт без скафандра:):)
                                Если свой сервак взломать шансов меньше, чем кто-то чужой взломает и угонят уменно ваш SIP кредит:):) ИМХО

                                А Андрей спасибо за продукт и за публичный релиз!
                                • 0
                                  двухфакторный телеграм неудобно

                                  Здесь неудобство связано именно с безопасностью: чтобы не запрашивать пароль в виде открытого текста, поскольку есть возможность попросить пользователя на время отключить двухфакторную авторизацию, чего не скажешь про SIP-пароли.

                                  посторонний трафик реально поверьте — комуто сильно так же нужен

                                  Смею всех заверить, что проект находится в одних руках. Разговоры не записываются и если их кто и может прослушать, так это только ваш SIP-провайдер (и цепочка провайдеров по пути), но этим грешит весь SIP. Знаю, что есть SRTP, но невозможно всё сделать сразу — дойдёт и до этого очередь.

                                  Если свой сервак взломать шансов меньше, чем кто-то чужой взломает и угонят уменно ваш SIP кредит:):) ИМХО

                                  Во-первых, SIP-кредит потенциально может быть только на аккаунтах Операторов пользователей, которые никак не связаны с аккаунтами Шлюзов, к которым, в теории, возможно подобрать пароль путём перебора sip.tg. Во-вторых, перебор паролей пресекается, и достаточно эффективно: IP-адреса таких сканеров очень быстро попадают в бан. В-третьих, в худшем случае, в случае подбора пароля появится только возможность позвонить и принять звонок от/на Ваше имя — т.е. никакой утечки SIP-кредита всё равно не произойдёт. И даже этот наихудший сценарий почти исключён.
                                  • 0
                                    Имелось ввиду данные SIP глобально, не только с кредитами, т.к. многие уверены больше всего в безопасности своего сервера!
                                    Ну вот Например я скормил боту на сервис свою учетку ID@sip.domain и её пароль!

                                    Как она «спаривается» именно с моим телеграмом, и какова вероятность оригинации вызова с нее, кем-то(чем-то), кроме моего телеграмма привязанного командами к боту! Бот видит и разделяет нас как?
                                    По уникальному chat_id?
                                    • 0
                                      Конечно, у каждого аккаунта Телеграм есть свой уникальный ID, который проходит двойную проверку. Сначала бот определяет: к каким аккаунтам у пользователя есть доступ (при формировании списка операторов для исходящего звонка), а затем — собственно шлюз, при выборе конкретного провайдера.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое