Pull to refresh

Comments 42

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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


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

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

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

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

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

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

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


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

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


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

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


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

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

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

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

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

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

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


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

pbxes.org, ruvoip.net, zadarma.com


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

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


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

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


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

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

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

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

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

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


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

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

Вы просите


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поделитесь опытом как Вы смогли добиться отправки inline keyboard от "user" до "user"?

Интересно выглядит заголовок "отправитель" через siptgbot (как то в этом процессе учавствует ваш бот)

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

Бот не имеет возможности отправлять сообщения пользователю, который на него не подписан (не выболнена команда /start).

Пробовал переадресовать сообщение от бота к пользователю, но кнопки не пересылаются в этом случае.

Sign up to leave a comment.

Articles