Лето, отпуск, asterisk или сам себе VoIP оператор

Лето, отпуск, asterisk


Собрался я вместе со своим товарищем в период летнего отпуска поколесить на авто по Европе. А серой осенью есть мысли отправиться поближе к экватору. И вполне резонно встал вопрос связи. Skype, ICQ и прочие сервисы это конечно хорошо, но только не для старшего поколения. Жена и друзья без вопросов, а родители? Супруга сразу же сказала что передастом (человек который передает что-либо) быть не желает. Еще неплохо было бы свой номер рабочим оставить, чтоб у людей не было ощущения, что я канул в небытие. Опять же учитывая непростую роуминговую тарификацию наших операторов сотовой связи, в которой разбираться у меня нет никакого желания, сформировалось представление того, что я хочу получить в итоге.

  1. Звонки из любой точки мира по местным тарифам
  2. Прием звонков на свой личный номер
  3. Голосовые сообщения если я не доступен
  4. Голосовая почта
  5. Прием и передача смс
  6. Безопасность соединения


Выбор программного обеспечения



Для реализации бюджетного VoIP как нельзя лучше подходит Asterisk, с которым мне периодически приходится сталкиваться по работе. Дешево, сердито и надежно.

GSM шлюз это конечно хорошо, но даже goip это 12 тыс.руб. и более. Поэтому единственный вариант который мне показался приемлемым это chan_dongle и парочка huawei.

Прием и передача смс это либо jabber, либо электронная почта.

Безопасность отдельная тема. Все таки считаю что не замечательно будет, если астериск голой попой на всеобщее обозрение выставить. Если к астериску подключатся с ноутбука, то в общем то без разницы какой будет VPN. Но это же не правильно и не удобно каждый раз доставать ноут. А учитывая что у меня неистовая любовь к андроиду, я изучил маркет на предмет vpn клиентов и на своего старичка galaxy s поставил OpenVPN.

Итак, приступим


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

Так как на хабре предпочитают jedi way и не любят стандартные маны по установке, будем ставить астериск 11 ручками и спрячем подробности под спойлеры. OpenVPN будем ставить как смертные. Выбор 11 астериска обусловлен новым модулем xmpp, в котором появилась возможность обрабатывать входящие сообщения.

Openvpn

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

В общем, накатываем openVPN на что ни будь торчащее в сеть, в моем случае дебиан.

Для сервера
Ставим OpenVPN
sudo su
aptitude update
aptitude upgrade
aptitude install openvpn


Создадим директорию и скопируем комплект скриптов из примеров:
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/


Редактируем vars
nano /etc/openvpn/easy-rsa/vars

Я правил:
export KEY_COUNTRY="RU"
export KEY_PROVINCE="REGION"
export KEY_CITY="GLUBINKA"
export KEY_ORG="KROILOVO CORP"
export KEY_EMAIL=”KC@example.ru”


Дальше генерируем сертификаты и переносим в каталог с настройками:
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/


Теперь необходимо сгенерировать сертификаты для клиентов
cd /etc/openvpn/easy-rsa/
source vars
./build-key client_name ,где clien_name имя клиента


На клиентские устройства необходимо передать:
/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/clien_name.crt
/etc/openvpn/easy-rsa/keys/ clien_name.key
/etc/openvpn/ta.key


Мой server.conf
port 1110
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 192.168.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client  #чтоб клиенты видели друг  друга
tls-auth ta.key 0
keepalive 10 120
comp-lzo
max-clients 10
persist-key
persist-tun
status openvpn-status.log
verb 3


Для клиентов linux
Ставим OpenVPN
sudo su
aptitude update
aptitude upgrade
aptitude install openvpn

в /etc/openvpn должны лежать
ca.crt
clien_name.crt
сlien_name.key
ta.key
client_name.conf

Мой client_name.conf
Client
dev tun
proto tcp
remote serverIP 1110
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client_name.crt
key client_name.key
tls-auth ta.key 1
comp-lzo
verb 3


Для клиентов Android
Из google play ставим OpenVPN for Android
Копируем на флешку устройства сертификаты, сгенерированные на сервере
Задаем адрес и порт сервера, добавляем сертификаты и соединяемся.


В итоге получаем все устройства в одной VPN.
У меня получилось 5 устройств:
  1. Сервер OpenVPN
  2. Asterisk
  3. Ноутбук
  4. Телефон
  5. Телефон компаньона


Asterisk

Идем на asterisk.org и в downloads качаем. В тот момент когда я ставил asterisk.org лежал. Поэтому ставил 11.2.1 так как оно на компе валялось. На данный момент доступен 11.4.0. Не думаю что сильно отличается, но changelog не читал.
Установка Asterisk
sudo su
mkdir /usr/src/asterisk
cd /usr/src/asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
aptitude update
aptitude upgrade

Ставим зависимости
aptitude install build-essential linux-headers-`uname -r` g++ libmysqlclient-dev libxml2-dev libncurses5-dev libsqlite3-dev libssl-dev libsrtp0-dev unixodbc-dev

Так как в планируется использовать jabber, то нужно поставить iksemel и openssl. Без них модуль xmpp не соберется
aptitude install libssl-dev libssl1.0.0 libiksemel-dev libiksemel3

Начинаем ставить
tar xvf asterisk-11-current.tar.gz
cd asterisk-11-current
./configure
make menuselect

Добавил xmpp и ael остальное по дефолту
make
make install

делаем
make samples

чтобы получить дефолтовые конфиги.
делаем
make config 

чтобы астериск запускался демоном.


Chan dongle

Дальше нам нужно собрать chan_dongle. Чудесный проект, который поддерживал товарищ BG2, но толи запал пропал, толи в силу непреодолимых обстоятельств обновлений у проекта не было достаточно давно (что прискорбно) и под 11 астериском оно собираться отказывается напрочь. Но гитхаб нам поможет.
Установка chan_dongle
aptitude install git
cd /usr/src/asterisk
wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip
unzip asterisk11.zip

ну а дальше по мануалу
aclocal
autoconf
automake –a
./configure
Make
Make install



Дальше читаем вики проекта wiki.e1550.mobi и находим модемы из списка поддерживаемых. В моем случае это оказались E1550 и E173. С самими модемами все просто, гуглим на предмет usbmodeswitch ну или под windows переводим в режим только модем через терминал. На моем Е1550 еще потребовалось активировать голосовые функции. В Dongle.conf особых изменений не делал, только добавил IMSI своих симок, по которым модуль будет выбирать ту самую симку, и контекст для входящих.
изменения dongle.conf
context=dongle-incoming
[mts]
imsi=25001xxxxxxxxxx;
exten=911 
[megafon]
imsi=25002xxxxxxxxxx;
exten=921 


теперь в CLI астериска перегружаем модуль и проверяем зацепились ли модемы
dongle reload now
dongle show devices

Если все увиделось и все хорошо то можно приступать к настройке всего этого добра.

Настройка Asterisk

В sip.conf прописываем пользователей
sip.conf
[general]
language = ru;
tcpenable = yes ;
transport = tcp,udp;

[LOCAL-USERS](!)
type = friend ; 
host = dynamic ;
context = from-office ;
disallow = all ; 
allow = ulaw ; 
allow = alaw ; 
allow = gsm ;
monitor = yes ;
callcounter = yes ;
callwaiting = no ;
rtptimeout = 10;
rtpholdtimeout = 20;
dtmfmode = rfc2833 ;
[10](LOCAL-USERS) ;
username = 10 ;
secret = passfor10 ;
[11](LOCAL-USERS) ;
username = 11 ;
secret = passfor11 ;
[12](LOCAL-USERS);
username = 12 ;
secret = passfor12;
[13](LOCAL-USERS);
username = 13 ;
secret = passfor13;
[14](LOCAL-USERS);
username = 14 ;
secret = passfor14;


Cоздаем очередь в queues.conf
queues.conf
[general]
persistentmembers = yes ;
autofill = yes ;
monitor-type = MixMonitor

[WORKGROUP]
strategy = ringall;
ringinuse = yes ;
timeout = 20 ;
retry = 1 ;
maxlen = 0 ; 
member => SIP/10
member => SIP/11
member => SIP/12
member => SIP/13
member => SIP/14


Так как для восприятия более удобным считаю AEL, то диалплан писал исключительно на нем.
Extensions.ael
Globals {
     __TRANSFER_CONTEXT=transfer; //Дефолтовый контекст для перевода звонков
};
context transfer{
        _1X => Dial(SIP/${EXTEN},60,t);   //перевод звонков
}
context from-office {    
        includes {			; //инклудим контексты чтоб кашу не устраивать
                mobile-numbers;
                city-numbers;
                local-users;
        };
};
context mobile-numbers {  ;//все мобильные
        _89XXXXXXXXX =>  Dial(Dongle/s:25002/${EXTEN},,T);  //Кроить дак кроить, звонить будем с рабочего номера :)
};
context city-numbers {   ; //городские
        _XXXXXX => Dial(Dongle/s:25002/${EXTEN},,T);
};
context dongle-incoming {   ;// входящие c chan_dongle
        921 =>  Queue(WORKGROUP,t,,,60); //все входящие с рабочего отправляем в очередь workgroup
        911 =>{  ;// все входящие на личный
            Answer;
            Dial(SIP/10,60,tT); //набираем на андроид
            Dial(SIP/11,60,tT); //набираем на ноут
            Playback(/tmp/ya_v_otpuske); //говорим что я в отпуске 
            Jabbersend(asterisk@jabber_example.ru,grasp@jabber_example.ru,Тебе звонили с номера {CALLERID(num)});   // шлем в jabber номер звонящего
            Hangup;
};
        sms => {
            Jabbersend(asterisk@jabber_example.ru,grasp@jabber_example.ru,${CALLERID(num)} ${SMS});   //в jabber шлем входящие смс
            Hangup();
        };
        ussd => {
            Jabbersend(asterisk@ jabber_example.ru,grasp@jabber_example.ru,${USSD});  // //в jabber шлем входящие ussd
            Hangup();
        };
};
context local-users {
        _500 => { ;  // для записи голосовых файлов
            Wait(2);
            Record(/tmp/ast:wav);
            Wait(2);
            Playback(/tmp/ast);
            Wait(2);
            Hangup;
        };
        _600 => { ; // запрос баланса, ответ придет в jabber
            System(/usr/sbin/asterisk -x 'dongle ussd mts *100#');
            System(/usr/sbin/asterisk -x 'dongle ussd megafon *100#');
        };
        _1X => {
            Dial(SIP/${EXTEN},60,tT);  // Для внутренних звонков
        };
};


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

На андроиде поставил 2х клиентов 3сх и CSipSimple. Были проблемы со звуком в одну сторону, но разбираться было особенно некогда, поэтому в openVPN поставил галочку “перенаправлять весь трафик через VPN” и все заработало. Проверял через 3G и wifi, работает не заикается.

Для jabber поднял openfire. Думаю описывать не стоит да и можно что то стороннее использовать. В xmpp.conf прописал настройки и все с пол пинка запустилось. OpenFire ставил исключительно из любопытства, так как под него есть плагин для астериска, но это отдельная история. Остается еще прикрутить отправку смс через jabber, но пока еще окончательно не решил действительно ли оно мне надо. Еще надо бы настроить голосовую почту, но вроде тоже пока не сильно актуально, вернусь из отпуска и будет ясно.

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

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

Подробнее
Реклама
Комментарии 51
  • 0
    Круто конечно, но сейчас у большинства ОпСосов вполне сносные роумнинговые тарифы на мобильную связь, особенно при условии подключения скидок. Например Мегафон 6 р. входящие и даже подключать ничего не надо, по умолчанию всё работает. И никакого тебе геммороя с поиском бесплатного Wi-Fi…
    • 0
      К сожалению рабочая симка на корпоративном тарифе, в связи с чем все несколько усложняется.
      • +2
        У мегафона вообще есть замечательный мультифон — они просто раздают бесплатно sip аккаунт, не нужен ни впн, ни донгл.
      • 0
        Что-то не до конца понял — абонентам, звонящим на мобильный номер дается сообщение «я в отпуске» и отсылается извещение о звонке по джабберу? А сообщение будет получено только когда будет какая-нибудь остановка с инетом? Или будет какая-то местная симка с 3G? Но если именно «колесить», то придется покупать кучу симок, или есть что -то оптимальное по цене/трафику на Европу? Ну и исходящий звонок — опять таки ловим нормальный инет для него? У меня просто тоже в плане такая поездка, вот и хочется выяснить все поточнее. На текущий момент обходился симкой Симтрэвел, а на основном номере — голосовое сообщение с указанием моего номера.
        • +2
          Моя вина, не подробно описал схему. При звонке на рабочий номер, звонки заворачиваются в очередь. В этой очереди все мои устройства и вторая линия на VoIP телефоне напарника, который будет потеть в офисе и трудиться за двоих. При звонке на мой личный номер сначала астериск будет пытаться соединить с андроидом, потом с ноутом и если я не доступен, то будет играться вавка про то что я в отпуске и смогу связаться со всеми жаждущими при первой же возможности. Ну и в конце сообщение в jabber. Думал еще сделать перевод звонка на сотовый напарника через личный номер, если в очереди никто не ответит, но он категорически против.
          • 0
            добавьте это в пост, иначе не очень понятно, зачем все это :)
        • 0
          По поводу постоянной 3g связи не задумывался еще, на местности разберусь, ибо путь не близкий. А так планируется еще неделю у друга погостить, так что там буду на связи.
        • 0
          Мой опыт — какой-нибудь из travel sim операторов, и в итоге звонки порядка 0.20 EUR/минуту. И не надо искать wi-fi или местные сим карты.
          • 0
            Я на самом деле здесь первый раз услышал о trevel sim. Симку я уже заказываю, но исключительно чтоб 3g не искать, пусть будет трансфер через asterisk. Вся эта затея родилась после того, как я съездил в Питер и за 2 дня пребывания проговорил порядка 1 тысячи по личному и порядка 2 тысяч по рабочему. Мне показалось это антигуманным и волосы зашевелились по всему телу, когда я представил какие будут счета за пределами нашей родины.
            • НЛО прилетело и опубликовало эту надпись здесь
              • +2
                Не поверите, никаких усилий не прилагал. А по поводу скидок и прочих прелестей. Я не готов сидеть разбираться, куда там нужно смс послать, чтоб чего ни будь там включить. Я на самом деле лучше в это время asterisk´ом для общего развития позанимаюсь или книгу какую ни будь почитаю. Опять же куча историй, как по прошествии полугода услуга становится платной и потом придется думать почему мой оператор такой плохой берет с меня деньги за воздух. Еще не маловажный момент, если взять в расчет мою рассеянность, я обязательно забуду, когда и что нужно включить/выключить. В общем, это не для меня. В моем понимании самый лучший тариф, это когда 1 минута стоит n рублей, 2 минуты 2*n, a 1 мегабайт стоит x рублей, ну и так далее. А какие сейчас тарифы? Это просто беда, после 10-ти минут разговора в день, со второй минуты, вы получаете манну небесную, просветление и возможно даже познаете сущность бытия, но это только при условии, что в прошлом месяце вы потратили больше 300 рублей и в данный момент времени на вашем счету не менее 100 рублей, а если нет, то звездочка и будьте добры прочитайте что там у нас мелким шрифтом в низу страницы написано… обидно что у них там маркетологов много, сами навряд ли запутаются :)
                • 0
                  Ну, я предпочитаю подход в комплексе:
                  Для дальних поездок и домашнего телефона — астериск, для России — включить опцию на инет…
              • 0
                При поездках по России вообще не нужно ничего делать, включаешь опция и поехал. 1.5 на мегафоне исходящие и 0 р входящие.
                В Киев гоняю — тут я конечно имею симку местную но и московскую не отключаю, для московской снимки есть Nokia с фонариком;)
                Международные звонки в принципе терпимы но чаще я использую или служебный sip или просто звоню с киевского мобильника.
            • 0
              Собрался я вместе со своим товарищем в период летнего отпуска поколесить на авто по Европе. А серой осенью есть мысли отправиться поближе к экватору.

              нормально так :) покладистая у вас жена :)
              • 0
                Просто золото. Даже представить себе не могу, кто еще меня терпеть сможет. А осенью, это как раз жену выгуливать.
              • 0
                Статья замечательная, спасибо. Думаю пару схемок для пояснения логики работы не помешает.
                • 0
                  какие бы вы хотели увидеть? Просто посчитал, что диалплан простой и по комментариям должно быть понятно.
                  • 0
                    Ну обычные схемы.
                    Например по логике:
                    «Сервер» -(тип связи)- «Астериск» -(драйвера)- «Модем» -(GSM)- «Оператор сотовой связи»
                    в другую сторону
                    Сервер -(WiFi, VPN)- «Андроид устройство с набором софта „

                    Если физика, то что, как и к чему подключали (USB порты указывать не обязательно).
                    Хотя уже наверное не надо. Лично у меня вопросов уже нет.
                • –1


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

                  Вы убили всю суть протокола SIP. А почтовый сервер у вас тоже за натом стоит и вы наверно подключаетесь к нему по VPN?
                  • +1
                    И в чем суть открытого во все стороны протокола SIP для домашнего пользователя?
                    Не всем хочется гонять SIP и RTP без шифрования
                    Да, можно прикрутить tls к sip и пускать srtp, но иногда проще настроить vpn(для всего), тем более что в астериске часто находят дыры
                    Вы путаете теплое с мягким
                    • 0
                      Протокол SIP в первую очередь создавался с целью установки сессий между двумя клиентами, в том числе клиентами разных серверов. Точно также как и протокол Mail. А то как его используют сейчас (для звонков по транкам) меня просто раздражает. Любой человек должен иметь возможность позвонить вам на прямую sip:vasya@pupkin.ru, а не только по телефонным номерам. Вы все ругаете ОПСОСов а сами боитесь быть независимыми.

                      Это я не персонально о вас, а о всех тех, кто «боится выставить попу наружу».
                      • 0
                        Понимаете, не всем надо получать звонки «снаружи» тем более от всех подряд(привет спамеры)
                        Менеджерам это может быть удобно, но мне как обычному(домашнему) пользователю астериска нужны:
                        Пара транков на выход, один два на вход и подключение к астериску откуда угодно для совершения звонков через него
                        • 0
                          Вопрос ведь не в вашем конкретном случае, а в культуре в целом. Вы опубликовали статью на популярном ресурсе, соответственно создали некий пример, а то каким именно способом будет использован данный пример вы не в состоянии предсказать. Я увидел то что мне как профессионалу в данной отрасли не понравилось, вот и решил высказать свое мнение.

                          Я не писал комментарий с целью как-то вас дискредитировать. Моя цель культурное просвещение читателей.
                          • 0
                            Прошу прощения, перепутал вас с автором.
                        • 0
                          Выставили попу наружу.
                          благодаря багу минус 40 тыс деревянных с баланс. за одни сутки.
                          спрятались обратно.
                          плачу. (ударение везде.)
                          • 0
                            Вот поэтому не надо делать «попу», а надо уметь строить качественные защищенные системы, иными словами уметь прилично одеваться когда выходите из дома. А дома можете и голым ходить.

                            В нашем распоряжении находятся тысячи транков, и мы до сегодняшнего дня уверенно выдерживаем все попытки взлома. А что касаемо спама, так мне вообще неизвестны случаи спама по SIP. И да, мы готовы уже сегодня с ним бороться.
                            • 0
                              Вы крутой и сильный. А я вот «сцу». Я еще одного момента не понимаю. Вы всеми своими комментариями предлагаете из пушки по воробьям. Развертывание в данной конфигурации у меня заняло 1 вечер. А если делать по вашему примеру, то мне еще понадобится специалист по безопасности как минимум и еще пару узко заточенных людей. Зачем мне на компе с антресолей разворачивать астериск как для предприятия? Если вы до сегодняшнего дня выдерживаете попытки взлома и все делали один, то честь вам и хвала, снимаю шляпу и посыпаю голову пеплом.
                              • 0
                                Если вы до сегодняшнего дня выдерживаете попытки взлома и все делали один

                                — Не один.
                                • 0
                                  Кто-то может объяснить, какие проблемы безопасности от открытого порта 5060? Про корявые софтфоны речь не идет.
                                  • 0
                                    Проблемы могут быть в двух случаях, кривой конфиг, позволяющий звонить неавторизованным пользователям через транк. И глюк самого сервака когда при брутфорсе он посылает SIP запрос предназначенный другому на адрес с которого ведется атака, но этот глюк давно закрыли, а защищатся от подобных атак можно при помощи Iptable.

                                    Я не рассматриваю такие методы как простое воровство и физическое расположение снифира на пути следования трафика.
                                    Все остальное это больная фантазия.
                                    • 0
                                      То есть никаких.
                                      Если человек настроил систему так, чтобы звонили все за его счет, то это не проблема безопасности.
                              • 0
                                О каком баге речь?
                                • 0
                                  ТОчно не знаю.
                                  знаю, что наружу был открыт только :5060
                                  Сборка Elastix.
                                  Звонки разрешались только с определенного IP, который в серой сетке и с авторизацией.
                                  как они смогли — мне не известно.
                                  пришлось просто закрыть все нафиг и перевести сервер в серую сеть, ибо sip нам нужен только внутри офиса. наружу стоит плата digium.
                                  в общем, я теперь знаю, что в Монако звонить дорого.
                          • 0
                            Вообще то выставлять Астериск в интернет просто так, это глупая идея.
                            • 0
                              Просто так выставлять и Mail / jabber сервер глупо. Это вопрос компетентности.
                              • 0
                                Почему тогда в конторах, у которых на cisco callmanager денег не хватило, даже IAX между офисами по VPN гоняют?
                                • 0
                                  Наверно им так захотелось.
                          • –1
                            Сразу вспомнилось с баша:
                            У меня дефффка есть знакомая с… мммммм… неуровновешенной психикой. А парень у нее при кладбище работает — памятники делает. Мы их зовем Истериск и Обелиск))) Галлы)))))
                            • 0
                              Мда, как оказывается всё сложно…
                              А мы по весне в Тайланде видимо, сделали что-то не так…
                              Сперва вышли на сайт Мегафона и подключили «мультифон».
                              Потом в телефоне (Zopo на 4-м андроиде) выключили вообще обе симки, и вместо этого завели sip-аккаунт для звонков через мультифон.
                              И, собственно, всё. Исходящие есть, входящие дозваниваются, тариф — местный, никакого роуминга.
                              «Передастом» быть не пришлось, всё осталось как обычно, покуда был вай-фай.
                              В общем — не совсем понятно, зачем мутить целую схему с отдельным сервером, модемом и диалпланом, когда можно просто зарулить тот же «мегафон» напрямую в sip, без всяких модемов. Вроде как и дешевле выйдет.
                              • 0
                                Мегафон корпоративный, мультифон не заработал. МТС личный, FMC для физиков нету. Похоже я счастливчик :)
                              • 0
                                Была вот такая статья по схожей тематике habrahabr.ru/post/160299/
                                • 0
                                  Признаюсь, не искал на предмет подобных статей. Может быть и зря время потратил.
                                  • 0
                                    Я предыдущую статью не читал и даже специально не искал, но решил разобраться, что такое chan_dongle и наткнулся.
                                    К тому же у вас лучше проработана логика работы.
                                    Так что определенно не зря!
                                • +1
                                  «использовать что ни будь наше» А-А-а-а! -то, -либо, -нибудь!
                                  • 0
                                    Дико извиняюсь, может, чего не знаю, но зачем вы генерите ta.key, если tls-auth в конфигах не видно?
                                    • 0
                                      Спасибо что заметили. Просто когда игрался с клиентами на андроид, на одном из них не нашел кужа tls ключ пехнуть. Поправил
                                    • 0
                                      ИМХО, лучше использовать какое-то решение, например облачная АТС.
                                      В которой купить номер в своем городе (на своем телефоне поставить переадресацию), и настроить что бы 3 внутренних номера АТС звонили одновременно:
                                      1. На софтфоне, настроенный на внутренний СИП номер
                                      2. На ноуте, например на PhonerLite
                                      3. Поставить перееадресацию на СИМ карту в той стране в которой находишься(предварительно купив ее)
                                      • 0
                                        Блин, какие же умные некоторые комментаторы — просто диву даешься.

                                        Давайте конкретные вводные рассмотрим: существует номер телефона МТС, на который, к тому же, переадресуется телефонный трафик с корпоративного прямого городского номера. Номеру МТС уже много лет (более десяти), соответственно, он есть у множества людей, в том числе и у отсутствующих в моей записной книжке. Сообщить всем о смене номера не только невозможно, но и нежелательно. Само собой, на МТС относительно безлимитный тариф (Ultra 2011). Обычный сценарий звонка: как входящие, так и исходящие звонки длительностью более 10 минут (это чтобы про Ноль без границ не вспоминали), платить за опции не хочется, к тому же даже с опциями получается неудобно (это опять же о Ноле без границ).

                                        Задача: в течение полугода обеспечить возможность звонить и отвечать на звонки с номера МТС, будучи при этом в совершенно другой стране.

                                        Сможете предложить иное, более удобное и дешевое решение, нежели описал автор (и подобное которому реализовал, кстати, я)?

                                        Автору: статья в целом полезная, спасибо за неё. При реализации задумки она оказала позитивное мотивирующее действие, очень надеялся найти положительный опыт, когда продумывал решение проблемы. Хотя делал всё не по ней, и вообще лично мне показалось гораздо удобнее не городить огород с VPN, а реализовать авторизацию TLS прямо на Asterisk + шифрование трафика SRTP.
                                        Сервер: FreePBX Distro (Asterisk 11)
                                        Клиент: Nexus 4 (Android) + CSipSimple
                                        Связь как WiFi, так и 3G, испробовано на T-Mobile и Bob (A1) — все это в Вене.
                                        В течение уже почти месяца: полёт нормальный.
                                        Недостатки, конечно, есть. Например, задержка примерно в 0.2-0.3 секунды — это было проверено еще на месте, при тестовых звонках. Так же неудобно, что нельзя сразу ответить на SMS: я настроил редирект входящих SMS на электронную почту, потому что с SIP Messaging разбираться перед отъездом было некогда, а сейчас как-то всё лень.

                                        Но самое главное: я не плачу ни копейки больше, чем абонентская плата по моему тарифному плану.
                                        • 0
                                          По поводу удобства смс. Обратите внимание на жаббер. Если мне память не изменяет, начиная с 10 астериска в jabber.conf(в 11 соответственно xmpp.conf) появились параметры sendtodialplan и context. Через него можно реализовать сообщения. Если интересно, напишите в личку, скину вам свою недоделку для примера.
                                          • 0
                                            Да, я примерно в этом направлении и думал, но учитывая, что тот же CSipSimple поддерживает SIP Messaging, особо не вижу смысла делать отдельную связку — можно (теоретически) организовать всё в одном флаконе (в одном клиенте). Но для общего развития (и если не получится с SIP Messaging) с удовольствием посмотрю на ваше решение.
                                            Сейчас отпишусь в личку, спасибо.

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