Идея этого материала пришла мне в прошлом году, когда сделав большой круг по нашей необъятной, я в конце месяца получил счета за роуминг. Несмотря на уверения сотовых компаний о свободном роуминге внутри страны, смс или Интернет-трафик может тарифицироваться отдельно. А включенные в тариф минуты действуют только в «домашнем регионе». Ну а поскольку в этом году планы предусматривают путешествия не только по родной стране, то я начал реализовывать свою задумку — собственная стационарная АТС дома, которая сможет связаться со мной в любой точке земного шара.
Попутно я решил проблему телефонной связи между квартирами и домами родственников, поскольку время внутренних переговоров исчислялось не просто часами, а десятками часов.
Небольшой спойлер: в результате удалось установить Asterisk на NAS и роутер



Так я пришел к тому, что нужна собственная телефония. Можно было бы выбрать какой-либо из сервисов SIP-телефонии, которые в большом количестве присутствуют на рынке. Но у меня был сформирован список требований, которым не удовлетворял ни один из операторов:

  • Самостоятельный выбор внутренних номеров
  • Выход на внешние линии связи с возможностью звонков на городские и сотовые номера
  • Возможность выбора оператора, предоставляющего IP-телефонию
  • Возможность задействовать SIM-карту выбранного оператора с обычным «телефонным» тарифом
  • Наличие голосового меню для переадресации входящего звонка нужному абоненту
  • Минимальная или нулевая стоимость обслуживания\поддержания внутренней связи

Многие операторы предоставляют виртуальную АТС и даже голосовое меню. Но эта услуга уже является платной. Некоторые операторы позволяют звонить внутри своей сети бесплатно, но возникает проблема набора длинных номеров. И уж точно никто не позволяет использовать SIM-карту выбранного оператора с минимальной стоимостью звонков или предоплаченными минутами. Так я решил сам стать собственным оператором связи.

Шаг первый. Выбор платформы: виртуализация

Так как я уже имел дело с IP-телефонией, то решено было поднимать свою АТС на базе Asterisk — это бесплатно, есть масса форумов, мануалов и… почему бы нет? Я обзавелся несколькими радиотрубками с поддержкой SIP и начал думать над платформой для работы Астериска. Выносить в облака или на виртуальный сервер- это означало бы, что рано или поздно придется платить, но тогда рушится идея сделать телефонию бесплатно. Поэтому я решил задействовать функцию виртуализации на своём NAS QNAP TS-451. Об этой фишке сетевого накопителя я уже писал, так что можно почитать подробнее. Производительности системы с головой хватало не только для работы самого Астериска, но и для работы web-интерфейса, поэтому я решил использовать дистрибутив Elastix. Надо сказать, что последний доступный на официальном сайте Elastix.org дистрибутив под номером 5 уже является условно бесплатным, поэтому рекомендую на торрентах поискать дистрибутив версии 4 — он был бесплатен и распространялся свободно, но теперь на сайте не доступен.

Создание пользователей в Elastix описано многократно, а вот остальное освещено в сети не так подробно. Поэтому я опишу подключение SIP-провайдера «Мультифон» от Мегафона и создание голосового меню с переадресацией.

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


Настройки текстом для тех, кто хочет добавить себе транк Мультифон:

Транк Мультифон
Peer Details:

username=номер_телефона
type=peer
secret=пароль
port=5060
nat=yes
insecure=port,invite
host=sbc.megafon.ru
fromuser=номер_телефона
fromdomain=multifon.ru
dtmfmode=inband
context=from-trunk

Register String:
номер_телефона: пароль@multifon.ru/номер_телефона

Итак, мы подключились к SIP-провайдеру и теперь можем переадресовать входящий звонок на любой из внутренних номеров. Но что делать, если хочется, чтобы позвонивший сам выбирал, на какой внутренний номер ему набрать? Можно создать голосовое меню с выбором адресата. Сделаю пошаговое описание.

Создаем голосовое меню в Elastix

Переходим в пункт System Recordings. Здесь уже написаны параметры голосовой записи, которую необходимо сделать: PCM, 16 bit, 8000 Hz. Это можно сделать как в стандартной звукозаписывающей утилите, так и в сторонних программах вроде SoundForge.



После того, как создано голосовое приветствие и загружено на сервер, переходим в пункт меню IVR. Создаем новое голосовое меню и выбираем файл приветствия, а также реакцию на нажатие кнопок. В моем случае я выбрал, что по нажатию цифры «3» будет вызываться номер «101» и так далее. Если же выбирается ошибочная кнопка или звонящий не нажимает ни одну кнопку, то переадресация идет на внутренний номер 304.



Теперь надо сделать, чтобы входящий звонок попадал на наше голосовое меню. Заходим в пункт Inbound Routes и создаем новое правило. В последнем пункте «Set Destination» выбираем IVR и ранее созданную очередь, которую я назвал «dozvon».


Сохраняем и пользуемся. Все это проработало около месяца без сбоев, но этого мне показалось мало. Ведь не у каждого дома стоит NAS с виртуалкой или сервер, на котором можно поднять Астериск, но почти у каждого дома есть роутер!

Возможные проблемы и их решение с виртуальным сервером

В процессе создания сервера и переадресации портов, выяснилось, что работа двух виртуалок и одного физического сервера на одном сетевом порту не очень эффективна. Самым простым решением было воспользоваться возможностями системы виртуализации и отдельный сетевой интерфейс выделить под виртуальную машину. Сделать это оказалось очень просто встроенными средствами QNAP. После этого, на первом сетевом интерфейса остался работать сам NAS+1-я виртуальная машина, а на втором сетевом интерфейсе — вторая виртуалка.



Шаг второй: поднимаем Asterisk на роутере

Так получилось, что я пользуюсь провайдером Yota, но не пользуюсь их оригинальными роутерами. Уже давно у меня поселился отличный роутер от Zyxel — Keenetic LTE. Пару лет назад я его уже испытывал в самых суровых условиях глубинки и остался полностью доволен — об этом есть отдельный материал на Хабре.

В последних прошивках NDMS, а если быть точнее, то начиная с прошивки 2.08.B, для семейства роутеров Zyxel Keenetic включена поддержка пакетов OPKG. Это значит, что можно ставить самый разнообразный софт. (Есть масса софта, адаптированного под роутеры Zyxel) Так почему бы не поставить туда Asterisk? Важно, чтобы роутер имел минимум 128 Мб оперативки. Сказано — сделано!
Тем приятнее, что специалисты Zyxel даже подготовили мануал по разворачиванию Asterisk для своих роутеров. В принципе, чтобы развернуть на роутере телефонию, достаточно следовать пошаговой инструкции. А я расскажу, как я усовершенствовал и довел функционирование этой системы до той, что крутилась на отдельном виртуальном сервере.

Первое, с чем я столкнулся, была неясная проблема с запуском роутера после программной перезагрузки. Оказалось, что моя флешка, подключенная к USB порту роутера, потребляет ток до 0.16А. Этого оказалось достаточно, чтобы LTE модем в роутере Zyxel Keenetic LTE периодически не мог стартовать. Все вылечилось подключением флешки через внешний USB-хаб с дополнительным питанием. Взял проверенный временем и многими людьми D-Link DUB-H7. На этом проблемы закончились. Полагаю, что роутеры с парой USB портов будут работать без таких костылей.

Теперь приступаем к настройкам Астериска. Здесь уже надо править все ручками. Есть два пути: зайти по SSH и там править (MC присутствует) или же зайти по шаре на IP-адрес роутера и править файлы при помощи Notepad++. Меня устраивали оба варианта и я приступил к делу. Добавил своих пользователей, прописал транк мультифона в файле sip.conf. Осталось только сделать голосовую очередь. Голосовой файл приветствия я поместил в \\192.168.1.1\Asterisk-blue\var\lib\asterisk\sounds\ru, а в файл extensions.conf внес следующие правки.

Делаем голосовое меню в Asterisk
[external-outgoing]
;------------------ Multifon — exten => _8..........,1,NoOp()
exten => _8..........,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _8..........,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _8..........,n,Answer()
exten => _8..........,n,Wait(2)
exten => _8..........,n,Playback(/opt/var/lib/asterisk/sounds/itsp_names/multifon)
exten => _8..........,n,Dial(SIP/Multifon/7${EXTEN:1},,T)
exten => _8..........,n,Hangup()

[multifon-incoming];===== Incoming call from Multifon =====
exten => _........,1,NoOp()
exten => _........,n,Wait(4)
exten => _........,n,Answer()
exten => _........,n(play),NoOp()
exten => _........,n,Wait(1)
exten => _........,n,Playback(hello)
exten => _........,n,Wait(0,5)
exten => _........,n,Playback(priv)
exten => _........,n,Set(TIMEOUT(digit)=1)
exten => _........,n,NoOp()
exten => _........,n,WaitExten(7)

exten => _1,1,NoOp()
exten => _1,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _1,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _1,n,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _1,n(dial_ext),Dial(SIP/101,60,mt)

exten => _2,1,NoOp()
exten => _2,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _2,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _2,n,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _2,n(dial_ext),Dial(SIP/302,60,mt)

exten => _3,1,NoOp()
exten => _3,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _3,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _3,n,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _3,n(dial_ext),Dial(SIP/304,60,mt)

Итак, все заработало. Исходящие звонки идут через Мультифон, внутренние звонки между абонентами бесплатны, а входящие через Мультифон могут быть адресованы любому из трех абонентов. Но мне этого показалось мало. И жаль, что только Мегафон дает альтернативную сотовой линии SIP связь. Как быть, если захочется воспользоваться другим сотовым провайдером? Решение проблемы есть!

Шаг третий: привязываем к нашему Астериску любого оператора сотовой связи

Последним шагом стало подключение к нашему серверу телефонии любого оператора сотовой связи. Самым логичным решением явилось бы подключение GSM-SIP шлюза, который на выходе дает SIP-транк. Но стоимость таких устройств на 1 sim-карту начинается от 9 тыс.рублей, поэтому было решено пойти другим путем. Находим модем с поддержкой голосовых функций. В нашем случае это оказался Huawei E3131. Как его разлочить и включить голосовые функции многократно рассказано в сети, поэтому на это отвлекаться не буду. Вставляем нужную нам sim-карту в порт USB-хаба и первым делом отключаем в меню его работу в качестве 3G модема.



После чего начинаем конфигурировать файлы Астериска. Первым делом установим пакет Dongle командой в консоли opkg install asterisk11-chan-dongle. После установки, открываем файл dongle.conf и правим, чтобы получилось следующее:

Рабочий файл dongle.conf
[dongle]
interval=15

[defaults]
context=dongle-incoming
rxgain=0
txgain=0
usecallingpres=yes
callwaiting=no
dtmf=inband
mindtmfgap=45; minimal interval from end of previews DTMF from begining of next in ms
mindtmfduration=80; minimal DTMF tone duration in ms
mindtmfinterval=200; minimal interval between ends of DTMF of same digits in ms

[GSM1]
audio=/dev/ttyUSB1
data=/dev/ttyUSB2
imei=*****************; E3131 — ввести IMEI модема

Сохраняем файл и переходим к файлу extensions.conf. Мультифон можно закомментировать, а для работы с модемом добавить.

Прописываем для работы звонков через USB-модем в файле extensions.conf
[dongle-outgoing]; для исходящих вызовов:
;------------------ GSM1 Donle — exten => _8..........,1,NoOp()
exten => _8..........,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _8..........,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _8..........,n,Answer()
exten => _8..........,n,Wait(2)
exten => _8..........,n,Playback(/opt/var/lib/asterisk/sounds/itsp_names/beeline-gsm)
exten => _8..........,n,Dial(DONGLE/GSM1/8${EXTEN:1},,T)
exten => _8..........,n,Hangup()

[dongle-incoming]; для входящих вызовов:
exten => s,1,NoOp()
exten => s,n,Wait(4)
exten => s,n,Answer()
exten => s,n(play),NoOp()
exten => s,n,Wait(1)
exten => s,n,Playback(hello)
exten => s,n,Wait(0,5)
exten => s,n,Playback(priv)
exten => s,n,Set(TIMEOUT(digit)=1)
exten => s,n,NoOp()
exten => s,n,WaitExten(7)

exten => _1,1,NoOp()
exten => _1,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _1,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _1,n,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _1,n(dial_ext),Dial(SIP/101,60,mt)

exten => _2,1,NoOp()
exten => _2,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _2,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _2,n,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _2,n(dial_ext),Dial(SIP/302,60,mt)

exten => _3,1,NoOp()
exten => _3,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
exten => _3,n,Set(__SIP_CODEC_INBOUND=ulaw)
exten => _3,n,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _3,n(dial_ext),Dial(SIP/304,60,mt)

Теперь все завелось и заработало, как надо. Входящие звонки на номер принимает Астериск и пользователь выбором цифры определяет, куда ему звонить. Исходящий звонок идет через любого оператора сотовой связи, где бы вы ни находились. То есть можно вставить в USB-модем свою sim-карту и ехать в любую точку планеты. Там достаточно иметь выход в сеть, а на смартфоне\ноутбуке иметь SIP-клиента, который подключится к вашему серверу Asterisk. Решение обкатано и работает. Возникающие глюки лечились добавлением USB-хаба с внешним питанием и заменой флешки, так как некоторые накопители работали со сбоями. На всю работу по вводу телефонии в работу уйдет один вечер.

Чтобы эта работа не пропала, можно одной командой создать бэкап всего Астериска на флешке:

Делаем бэкап Астериска на флешке
tar cvzf /opt/backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt/ bin etc home lib lost+found root sbin share tmp usr var

Бонус для владельцев Zyxel Keenetic LTE

Надо отметить, что этот роутер также оснащен двумя SIP-клиентами с физическими портами FXS, к которым можно подключить любой аналоговый телефон. И этот клиент легко подключается к серверу Астериск, который крутится на нем же.

Бонус для владельцев Zyxel Keenetic*

Если не хочется тратиться на покупку SIP-телефонов, то роутеры линейки Keenetic поддерживают DECT-адаптер от Zyxel, который добавляет функцию SIP-телефонии с возможностью подключения любой беспроводной трубки стандарта DECT.

Заключение

Задача бесплатной связи между разнесенными абонентами с частыми и длительными переговорами решена. Задача «присутствия» абонента в городе и бесплатная связь с владельцем номера, где бы владелец ни находился, также решена. Решение с виртуализацией на сетевом накопителе QNAP TS-451 выигрывает за счет возможности конфигурировать Asterisk через web-интерфейс. Зато решение с роутером не требует практически никаких затрат. Астериск — это просто! Зачем платить за роуминг, когда связь может быть бесплатной?

Хочу отдельно поблагодарить команду Zyxel за отзывчивость, помощь в экспериментах и увеличение функциональности своих устройств.

P.S. Как правильно прокомментировали ниже, почти все операторы сотовой связи запрещают использование sim-карты для создания GSM-гейта. По факту, никто вас блокировать не будет, пока вы не начнете коммерческую эксплуатацию своего гейта. Автор ответственности за ваши действия не несет.
Тем не менее, я знаю случаи, когда компании использовали десятки sim-карт в GSM-шлюзах для дешевых звонков на сотовые номера.
Поделиться с друзьями
-->

Комментарии (80)


  1. MAXInator
    28.03.2017 12:26
    +5

    Как перестать платить за роуминг

    Несмотря на уверения сотовых компаний о свободном роуминге внутри страны, смс или Интернет-трафик может тарифицироваться отдельно.

    Так как перестать платить за роуминг?


    1. saege5b
      28.03.2017 12:38

      Двухсторонний спутниковый канал :)


    1. shuvaevgl
      28.03.2017 13:12

      Сделать так, чтобы sim-карта оставалась в «домашнем регионе». Как это сделать и описано в статье.


      1. MAXInator
        28.03.2017 13:21

        Решение из статьи подразумевает покупку симкарты местного оператора, чтобы не платить за интернет-роуминг:

        достаточно иметь выход в сеть, а на смартфоне\ноутбуке иметь SIP-клиента, который подключится к вашему серверу Asterisk


        1. shuvaevgl
          28.03.2017 13:29
          +1

          Вы уехали в Крым из Перми. Вам нужно продолжать делать звонки с Пермского номера, при этом не платя лишних денег. У вас оператор Билайн, который в Крыму перейдет в международный роуминг. Как поможет делу симка местного опсоса?


          1. dmitriylyalyuev
            28.03.2017 14:04
            +2

            Ставите свой Пермский Билайн в модем на Астериске, покупаете симку в Крыму с локальным инетом, подключаетесь по SIP к Астериску и звоните через SIP с Пермского номера.


            1. dubakov
              28.03.2017 14:17
              -5

              Шо, таки в Крыму появилось что-то круче GPRS и уже можно говорить голосом через SIP?

              Неужели дарагие расияне, 3г сделали или LTE несмотря на санкции?


              1. dmitriylyalyuev
                28.03.2017 14:29
                +2

                Опустим политический сарказм… Этот сайт не про политику.

                Стоило бы съездить и посмотреть. Прошлым летом я спокойно сидел на пляже в Утесе и разговаривал по видео Вайбера с братом из Мск.

                Детали сейчас не вспомню, но вроде 4Г работало вполне нормально от МТС. Да, других вариантов не было. Билайн и Мегафон там не было.


              1. shuvaevgl
                28.03.2017 14:32
                +2

                По Крыму неплохое покрытие 3G. Есть и 4G. В прошлом году, во время поездок с картой МТС не испытывал проблем с Интернетом вообще.


              1. FAT16
                29.03.2017 15:22

                <no_politics>
                В городах (В Севастополе, Симферополе, Ялте точно) достаточно бодрый LTE, за городом/на трассах 3G. Может где-нибудь в горах и 2G, но я не сталкивался


                1. FAT16
                  29.03.2017 15:30

                  Вот карта покрытия одного из операторов https://volnamobile.ru/about/map/


            1. Anselm_nn
              28.03.2017 14:21

              Даже проще, если МФ, местный интернет и любой sip клиент из google play. Но можно и дома что-то собрать, у МТС аналог мультифона вроде был тоже, у би не в курсе


              1. shuvaevgl
                28.03.2017 14:32

                Я пытался найти SIP у опсосов, кроме Мегафона, но яндекс выдал SIP только у эстонского Теле2.


                1. Anselm_nn
                  29.03.2017 18:48

                  Ну вот, что выдает гугл https://vc.ru/n/wi-fi-calling
                  Лично я всю жизнь с мегафоном, на себе не тестил других


                  1. shuvaevgl
                    29.03.2017 20:00

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


                    1. Anselm_nn
                      30.03.2017 19:01

                      любой wifi, как и мультифон. https://vc.ru/n/mts-skype
                      в противном случае смысла в этом бы не было, откуда в какой-нить Камбодже wi-fi МТСа?


                      1. shuvaevgl
                        30.03.2017 19:17

                        Ну если это еще будет работать. Про мультифон хоть реклама шла, об этой фишке МТС я тут узнал


            1. shuvaevgl
              28.03.2017 14:34

              Или подключаетесь к ближайшему Wi-Fi. Можно сделать на своем сервере голосовой ящик и во время отсутствия все сообщения будут сыпаться туда. Потом переслушали и позвонили, кому нужно — все это со своего Пермского номера.


            1. sergey_prokofiev
              28.03.2017 15:46

              покупаете симку в Крыму с локальным инетом

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


              1. shuvaevgl
                28.03.2017 15:47

                А как при этом на скайп перенаправить звонки со своего номера из Пермской сотовой сети?


                1. sergey_prokofiev
                  28.03.2017 15:49

                  Оставить пермскую карточку в другом телефоне. Затем

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


                  1. shuvaevgl
                    28.03.2017 15:55

                    Этим Вы тут же демонстрируете, что находитесь не на месте, а удаленно. Как здесь уже писали, что можно по разным странам оставить GSM-гейты и звонить по минимальному тарифу. А некоторые тарифы позволяют внутрисетевые звонки совершать бесплатно. Ставим несколько гейтов, создаем правила набора на каждого оператора и звоним бесплатно :)
                    У меня, например, тариф предусматривает бесплатные звонки на весь Мегафон по РФ. Добавить еще 3 модема с симками других операторов и без предоплатных тарифов — можно звонить вообще бесплатно на все сотовые :)


                    1. sergey_prokofiev
                      28.03.2017 15:59

                      Возможны есть случаи, когда «демонстрация того что я удаленно и при этом жалко потратить 3-5 баксов на роуминг». Но я с ними не сталкивался.
                      С другой стороны, процесс покупки (к примеру) в россии американской симки(чтобы засунуть ее в железяку, локальная связь почти всегда важней чем удаленная) — то еще удовольствие. Поэтому для международных звонков и роуминга эта схема попросту бесполезна. Для внутренних — да, рабочий вариант, но там и тарифы в разы ниже, поэтому целесообразность под вопросом.


                    1. sergey_prokofiev
                      28.03.2017 18:18

                      Ставим несколько гейтов, создаем правила набора на каждого оператора и звоним бесплатно :)

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


              1. senglory
                28.03.2017 19:33

                А если надо казаться доступным по тому же номеру, но не платить конский прайс за роуминг?


                1. sergey_prokofiev
                  28.03.2017 19:36

                  Можно реальную ситуацию, когда ну ооочень нужно быть доступным по тому же номеру, и при этом жалко 5(ок, 50) баксов за роуминг?


                  1. shuvaevgl
                    28.03.2017 20:55

                    Если ты фрилансер и должен находиться дома для постоянной связи с офисом. Собираешься и работаешь на берегу моря. Вот тут крайне необходимо такое решение.


                    1. sergey_prokofiev
                      28.03.2017 21:08

                      Зачем фрилансеру телефон для связи с офисом? телефон умеет шарить экран или по по не удобно логи пересылать?
                      И почему не сказать манагеру: «я поехал на море, но на моей работе это не скажется. На пляже есть вай фай и банкомат рядом.»


                      1. shuvaevgl
                        28.03.2017 21:34

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


                        1. sergey_prokofiev
                          28.03.2017 21:58

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


                  1. senglory
                    28.03.2017 20:55

                    Например, когда баксов не 50, а 500. Например, когда надо надолго сменить географию и сделать это так, чтобы на другой стороне не знали.


                    1. sergey_prokofiev
                      28.03.2017 21:08

                      Опять таки реального примера нет, одни сочинения.


                      1. shuvaevgl
                        28.03.2017 21:41

                        Вы бывали за границей со своим телефоном?


                        1. sergey_prokofiev
                          28.03.2017 22:00

                          Ну как вам сказать…
                          за последние лет 10 я езжу в командировки в среднем 1-2 раза в год, и в добавок к этому еще езжу на отдых за границу тоже 1-2 раза в год. Я всегда беру с собой свой телефон и не имею никаких проблем с коммуникацией, даже когда цены роуминга были космические а моя зп — в 2 раза ниже.
                          Я ответил на вопрос? :)


  1. dmitriylyalyuev
    28.03.2017 14:05

    Реализовывал такое на прошлой работе.
    Центральная АТС была в облаке. Через ВПН «точки приземления» коннектились к центральной АТС.
    Звонили по Украине, Белорусии и Испании по локальным тарифам.


    1. shuvaevgl
      28.03.2017 14:35

      Хорошо, когда местная АТС соглашается выделять потоки в SIP — работать с такими одно удовольствие.


      1. dmitriylyalyuev
        28.03.2017 14:38

        Не, мы ставили свистки 3G от Huawei (если не ошибаюсь) и через них пускали звонки. Качество хуже, чем SIP потоки, но вполне устраивало. Да и до сих пор работает, на сколько мне известно.


        1. shuvaevgl
          28.03.2017 15:00

          То есть в удаленных местах стояли компы с подключенными «свистками» и выполняли роль гейта в местную сотовую сеть?
          Есть возможность уточнить, какие модемы использовались? Чтобы гарантированно не отваливалось устройство длительное время.


          1. dmitriylyalyuev
            28.03.2017 15:09

            Да, схема именно такая. Модель свистков точно не помню. Не работаю в компании уже пару лет. Но гуглится вот такое:

            Chan_dongle is able to work with many different USB modems from Huawei, such as K3715, E169 / K3520, E155X, E175X, K3765 and others.

            Какой-то из этих и использовали. E155X, если мне совсем память не изменяет. Искали на барахолках типа OLX.


            1. shuvaevgl
              28.03.2017 15:48

              Для этого либо комп надо, либо GSM-шлюз иметь в точке «приземления». Но решение работает и это отлично!


              1. dmitriylyalyuev
                28.03.2017 15:55

                Raspberry Pi или аналог стоит не дорого. В Гродно мы на нем и делали.


                1. shuvaevgl
                  28.03.2017 15:58

                  Пожалуй даже дешевле GSM-гейта получится. Raspberri Pi стоит от 4300 р+модем ~1000р. В Малину можно воткнуть до 4 модемов без внешнего USB-хаба (если питания хватит). В любом случае, один GSM-гейт стоит от 9 тыс. рублей. Так что с экономической точки зрения это целесообразно.
                  Малинки подключались как SIP-клиенты? Или просто проброс USB-устройства до сервака?


                  1. dmitriylyalyuev
                    28.03.2017 16:08

                    У каждой малинки свой Астериск как SIP-клиент.


                  1. safari2012
                    29.03.2017 13:57

                    да ладно. год назад RPi3 уже стоили 2500р. на али/ебей


                    1. shuvaevgl
                      29.03.2017 14:05
                      +1

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


  1. nafigat
    28.03.2017 15:01
    +2

    Пользуюсь в чем-то подобным «двухквартирным» решением третий год. На двух Raspberry Pi (первого и второго поколения) развернуто FreePBX, соединенные между собой. В Raspberry Pi вставлены 3G-модемы с симками местных операторов. Также настроено несколько «резервных» операторских SIP-транков — при необходимости их можно оплатить и использовать. Домашние wi-fi роутеры соединены через свою облачную VPN (на самом деле даже несколько VPN)) — таким образом закрывается вопрос с требуемым статическим IP хотя бы на одном роутере, ну и с безопасностью тоже. Клиенты софтовые на смартфонах и компьютерах. В случае необходимости звонить не из домашнего региона, подключаемся (смартфоном или компьютером) к тому же VPN, выбираем любую нашу АТС (FreePBX) и звоним. Находясь в домашней wi-fi (любой из двух) процедура еще проще, т.к. подключение к VPN уже обеспечено роутерами. Как правило, качество связи (стабильность соединения и разборчивость речи) лучше, чем при использовании Skype или Viber при прочих равных условиях.


    1. shuvaevgl
      28.03.2017 15:02
      +1

      То есть не я один решил, что звонки между домами должны быть бесплатны — это приятно!


  1. Mnemonik
    28.03.2017 15:35

    Статья не первая про одно и то же и не последняя. Сам сделал тоже самое 4 года назад и даже статью об этом написал.
    Не забывайте добавлять в конце что создание GSM шлюзов по вашему договору оказания услуг с оператором — незаконно и все вот это вот — незаконно как только симка ставится в модем на SIP канале.


    1. shuvaevgl
      28.03.2017 15:51

      Оператор видит входящие и исходящие звонки. Количество звонков не бесконечно, абонент не перемещается. Вычислить могут разве что по IMEI, но его тоже можно перешить от старого убитого сотового. А как еще оператор может вычислить GSM-гейт?


      1. dmitriylyalyuev
        28.03.2017 15:57

        Оператор не будет этого даже пытаться делать. До тех пор, пока вы продавать гейт не будете.


      1. Mnemonik
        28.03.2017 16:16
        +1

        Я ж разве сказал что оператор будет ловить? Я сказал что по договору оказания услуг между вами и оператором — это незаконно. Вероятно все же стоить добавлять это к публичным статьям на технических ресурсах… А то знаете, так можно и статью «как сделать так, чтобы счетчик за электеричество не крутился» на гиктаймс тиснуть. Тоже технологично и позволяет экономить.


      1. NaHCO3
        30.03.2017 05:19

        Здесь была статья давно. Операторы как раз жаловались на мошенников и рассказывали про биг дату и эвристики


    1. tmin10
      29.03.2017 09:36

      Хм, а какой закон нарушается в данном случае? Скорее всего нарушается только договор, заключённый с оператором, и никаких санкций от государства за это не будет.


  1. arheops
    28.03.2017 16:41

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


    1. shuvaevgl
      28.03.2017 16:51

      Безопасность Астериска — это вопрос отдельный. Он поднимался на профильных форумах. Я использую iptables, который просто отсекает ненужные подсети. В идеальном случае, если в удаленных точках статический ip-адрес — этого достаточно для полной защиты.


      1. arheops
        28.03.2017 17:14
        +1

        Вы написали еще-одну-статью о том, как настроить астериск. И ни слова о безопасности, нелегальности действий и так далее. Зачем удивлятся, что вам об этом напоминают? Вы знаете про iptables, те кто будут читать статью — очень вероятно вообще этого слова не слышали. Статья с точки зрения технологий — самый начальный уровень, потому стоит ожидать того же уровня от тех, кто решит повторить.

        К тому же еще и эластикс 4, один из самых плохих вариантов с точки зрения безопасности.


  1. danyaShep
    28.03.2017 17:33

    Как перестать платить за роуминг

    Перестать пользоваться опсосами, у которых еще есть такое понятие как «роуминг» и начать уже звонить через интернет.


    1. shuvaevgl
      28.03.2017 20:59

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


      1. danyaShep
        28.03.2017 23:54
        +1

        У viber нет такого понятия, у whatsapp и skype тоже. У интернета, слава космосу, нет понятия роуминга. Посмотреть youtube с сервера в штатах не дороже, чем рутюб с российских серверов.
        У моря есть wifi. Там где есть wifi, есть безлимитная связь со всем миром.


  1. Barabek
    28.03.2017 17:46

    Нелюбить мобильных операторов, конечно, модно. Возможно, не все готовы платить за мобильность и доплачивать за полную независимость от местоположения внутри страны… Это право каждого, это рынок. Кстати, у всх операторов есть тарифы без этих возможностей. Однако, почему вы оцениваете ваше решение, как "не платить за роуминг"? Из статьи мы видим, что:


    • нужно иметь железо дома (как минимум мощный роутер
    • платить за статический IP
    • покупать симки в других регионах. Разве не очевидно, что затраты на стартовый пакет + не использованный остаток, после вашего отъезда — это потеря денег?
      Можно еще поднять вопрос о стоимости вашего времени на настройку и поддержку решения, но тут, видимо, вопрос личных увлечений, так что не будем.


    1. shuvaevgl
      28.03.2017 21:33

      Затраты времени окупились сразу же, поскольку связь между домами стала бесплатной.
      На новом месте достаточно иметь Wi-Fi и не покупать симку местного провайдера


      1. Barabek
        28.03.2017 22:59

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


        1. shuvaevgl
          29.03.2017 00:06

          Вы пробовали обучить бабушку, которая помнит ВОВ, пользоваться Viber? Я даже пробовать не буду. Кейс самый что ни на есть жизненный. Бабушкофоны пользуются спросом, потому что это просто и работает. Да и мне проще набрать короткий номер, а потом позвонить на сотовый с DECT-трубки — эргономически его удобнее держать, чем смарт у уха, а номер остается все тот же — сотовый.


  1. golomin
    28.03.2017 18:04

    Мегафон даёт полноценное индивидуальное решение в виде «Мультифона» и приложения Emotion. То есть — однажды настроив emotion в смартфоне, можно спокойно менять сим-карту на местную при нахождении в роуминге. Звонки приходят на домашний номер, исходящие — через интернет и бонусом — определяется ваш входящий номер.


  1. KMVp
    28.03.2017 21:42
    -1

    При наличии WiFi интернета WiFi Calling и его частный случай у МТСа: MTSConnect хорошо справляется с такой задачей. Плюсом прием входящих на свой номер. Тарифы в этом случае домашние. Себе подобную «городильню» тоже сделал. Но все-таки пользоваться ей не так уж удобно.


  1. Gonchar_POTT
    28.03.2017 21:42

    «Мультифон» и приложение Emotion, к сожалению, крайне не стабильно работает. С большой вероятностью вам не удастся сделать более одного исходящего вызова: потребуется закрыть приложение через «выход» и запустить его по новой. Что, кстати, тоже не всегда гарантирует успех. Проверено на собственном опыте.


    1. shuvaevgl
      28.03.2017 21:46

      Тогда можно у мультифона использовать сторонний SIP-клиент


  1. sdveg
    28.03.2017 21:44

    Читаю не первый раз подобную статью, а в отпуске кладу 10 долларов на сипнет, беру симку за границей и звоню через приложение, пару раз через смс пришлось (интернет совсем не работал). Такое решение пару раз очень помогло в критический момент.

    По входящим тоже можно настроить, мне нежно было я перезванивал.


    1. shuvaevgl
      28.03.2017 21:45

      Здесь задача оставаться на связи со своим номером. Принимать и звонить со своего номера, где бы ни находился


  1. dion
    30.03.2017 13:01

    Со звонками таки подобное достаточно просто делается. Сам таким для поездок пользуюсь, только с Raspberry pi + модем в качестве железа.

    А вот SMS-ки 'пробросить' заметно сложнее. У меня сейчас вышло что-то типа своего sms2email, работающего в обе стороны (можно написать письмо на номер@my-sip-server.tld и оно 'отправится' SMS-кой), но мне такое решение не очень нравится.


    1. shuvaevgl
      30.03.2017 16:30

      В случае Мегафона можно взять сим-карту с собой, а в настройках мультифона поставить звонки на мльтифон. Тогда и звонки пройдут и смс получите.


  1. agaruppa
    01.04.2017 22:40

    Решение невероятно спорное. Если есть интернет есть множество способов звонить, в том числе и через sip программы. Тоже раньше изобретал ерунду и использовал сим травел пока мой оператор не сделал роуминг по всему миру полный безлимит за 10 $ в день, а в США за 5. Учитывая что по всей стране роуминга нет а интернет есть всегда даже за рубежом проблем давно не испытываю и отказался от травел сим так как тариф оператора такой же или даже выгоднее. Учитывая бесплатные смс на весь мир то вообще красиво.


    1. shuvaevgl
      02.04.2017 12:40

      Задача была сохранить эффект присутствия на «рабочем» месте в своем городе, затратив при этом минимум средств


    1. dion
      03.04.2017 15:01

      $10 в день — вполне приличная сумма. за 2 недели это уже 140 баксов…


      1. sergey_prokofiev
        03.04.2017 20:17

        Может в какой нить Индонезии это целое состояние, но в той же Калифорнии в сутки официантам больше на чай оставляют(в командировке, питание 2 раза в день в приличном общепите). Крохоборство какое то…


        1. shuvaevgl
          03.04.2017 21:52

          Есть такая идеология: Надо не тратить меньше, а зарабатывать больше.


          1. sergey_prokofiev
            03.04.2017 22:49

            Именно. Поэтому все эти приседания для того чтобы сэкономить 20$ и обмануть манагера выглядят забавно и наивно.


            1. dion
              04.04.2017 08:20

              Ну обмануть это другое несколько другое.

              Я вот свою ситуацию поясню. У меня есть два номера (исторически так сложилось). Один скорее личный, второй больше для спама, но границы четкой нет. Телефон на 2 SIM карты покупать не хочется (вернее есть телефон, но он либо 2sim либо sim+flash). В итоге второй номер УЖЕ воткнут в модем и проброшен на телефон по SIP (плюс услованя переадресация, если не отвечают).

              Соответственно для меня цена вопроса звонков в роуминге УЖЕ равна цене интернета.


  1. dmitry_ch
    04.04.2017 08:27

    Еще бы multifon работал стабильно.


    А то я байку слышал, что в Мегафоне сложно найти человека, который все особенности этой платформы понимает, и, когда какая-то с ней проблема, никто особо не знает, как починить — посему такие даунтаймы (у телефонной-то платформы).


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


  1. sergey_prokofiev
    04.04.2017 08:31
    -1

    Ну обмануть это другое несколько другое.

    Выше по треду аффтар несколько раз приводил пример что его велосипед нужен для того, чтобы обманывать менеджера о своем месторасположении.
    Телефон на 2 SIM карты покупать не хочется (вернее есть телефон, но он либо 2sim либо sim+flash).

    Как по мне, это классический пример создания трудностей себе же и героическому их преодолению — купить обязательно 2 симки, но не покупать 2х тлф(или же тлф с 2мя симками). Если копнуть глубже…
    У меня один номер с года эдак 2003(и еще одно время пользовал travelsim, когда зарабатывал меньше и цены на роуминг были совсем конскими) и… все :)