Оригинал материала: https://3dnews.ru./613743

Эй, SIPлый, позвонить есть? Нет? А если найду?

Рассмотрим классическую ситуацию. С одной стороны у нас есть абонент, который, уезжая в отпуск куда-нибудь в дальние страны, а то и просто «на деревню к дедушке», хочет оставаться на связи, но так, чтобы это не сильно ударяло по его бюджету. С другой стороны у нас есть операторы традиционной и мобильной связи, которые за эту самую связь в роуминге даже в пределах одной страны требуют мзду немалую. А с третьей стороны есть провайдеры SIP-телефонии, о которых уже не раз говорилось на страницах нашего ресурса. У них цены погуманнее, но и тонкостей в настройке гораздо больше. Наша задача сводится к тому, чтобы совместить дешевизну третьих с удобством вторых, да так, чтобы выгода была у первого. Понадобится нам для этого немного времени, небольшая сумма денег и телефон, на который можно установить SIP-клиент и который поддерживает EDGE/3G или Wi-Fi — по ним и будет передаваться голосовой трафик.

Итак, в чём суть идеи? Как обычно, всё гениальное просто. В мире есть немалое число SIP-провайдеров. Каждый из них предлагает свои расценки на звонки по разным направлениям (телефонным кодам местности). Плюс ко всему нередко звонок с одного SIP-аккаунта на другой вообще ничего стоит, а иногда выделяются даже целые направления, куда можно звонить бесплатно или с большой скидкой. Почему бы не свести воедино предложения от разных операторов SIP и не звонить по каждому из направлений с максимально низкими ценами?

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

Начнём с подбора SIP-операторов, которые работают в тех зонах, которые нам нужны. В качестве примера мы рассмотрим SIPNET и PCTEL, а также немного коснёмся замечательного сервиса «Мультифон». Sipnet хорош тем, что позволяет, пусть и с некоторыми ограничениями, бесплатно звонить на городские номера Москвы и Санкт-Петербурга, а также регулярно устраивает акции с бесплатными звонками в крупные города России (за ними гоняться особо смысла нет, но всё же). PCTEL предлагает звонить по рублю за минуту на все городские и мобильные номера в России.

Других операторов SIP-телефонии, в том числе и зарубежных, вы можете выбрать на свой вкус. Здесь надо обращать внимание на несколько моментов. Во-первых, провайдеры тоже не дураки и кушать им хочется не только хлеб, но и маслице с икрой. Поэтому чаще всего для активации аккаунта надо внести определённую сумму на счёт. Как правило, просят «занести» не более 10 долларов или евро. Нередки случаи, когда есть срок действия платежа и прочие прелести оплаты, которые были свойственны мобильным операторам ещё несколько лет назад. Во-вторых, надо крайне внимательно ознакомиться с условиями обслуживания, акций и так далее. Мелкий шрифт, глубоко запрятанная в глубинах сайта информация и хитрые нюансы у них всё ещё встречаются.

Полезной будет возможность создавать собственные направления звонков. Например, вы частенько осведомляетесь о здоровье бабушки, которая живёт в Урюпинске. Тогда вы добавляете в список избранных направление Урюпинска и звонки туда для вас будут дешевле (зато другие будут дороже). Многие провайдеры позволяют привязать к SIP-аккаунту номер мобильного телефона. Отказываться от этого не стоит. Во-первых, при звонке через SIP у вызываемого абонента отобразится ваш номер, а не номер шлюза, через который звонок «приземляется». Во-вторых, это добавляет возможность SMS-callback, то есть обратного вызова.

Вообще, наличие возможности заказать обратный вызов разными способами очень важно. Работает это так. Вы отправляете своему оператору SMS с номером вызываемого абонента (иногда надо указать и свой текущий номер) или проделываете то же самое через сайт, e-mail и так далее. После этого провайдер одновременно дозванивается до вас и до вашего собеседника — в этом режиме он работает как мост. Для вас плата за входящий вызов либо меньше, чем за исходящий, либо вообще равна нулю. Конечно, в таком случае вы оплачиваете звонок по тарифам SIP-оператора до вас и до собеседника. В любом случае это выгоднее, чем прямой звонок из роуминга на нужный номер.

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

Подробно на регистрации аккаунта у каждого SIP-провайдера мы останавливаться не будем — она ничем, в сущности, не отличается от регистрации на любом другом веб-сервисе. Зарегистрировались? Теперь идём на сайт http://pbxes.com и заводим там себе бесплатный аккаунт. Этот сервис предоставляет нам виртуальную АТС. В бесплатной версии есть некоторые ограничения: не более 2 000 минут в месяц, тайм-аут в один час на исходящий вызов, до пяти транков и экстеншенов (о расшифровке этих терминов чуть позже), не более двух одновременных звонков и некоторые другие. Для наших целей такой конфигурации вполне достаточно.

Перед настройкой придётся немного окунуться в терминологию. Представьте себе, что наша виртуальная АТС — это некий чёрный ящик. С одной стороны к нему подходят каналы от нескольких операторов связи, неважно каких. Так вот, эти каналы называются транками (trunk, соединительная линия, канал связи). С другой стороны к этому ящику подсоединяются телефоны абонентов (опять же не суть, какие именно). Эти «соединения» называются экстеншенами (extension, расширение), и они определяют команды, которые выполняются в различных сценариях поведения абонентов (не ответил, сбросил вызов и так далее).

Внутри чёрного ящика происходит перенаправление вызовов. Это как будто вы позвонили на работу своему другу, а девочка-секретарь говорит вам: «Подождите, я сейчас переключу вас на Иван Михалыча». Правила, по которым происходит это перенаправление (не ручное, конечно, — девочки там не сидят, вместо них бездушные машины), называются правилами набора (dial-plan, диалплан). Это самая важная часть любой АТС. На самом деле, конечно, мы привели здесь сильно упрощённую схему работы.

Надеюсь, объяснение получилось доступным. Теперь нам надо настроить все эти транки, экстеншены и диалпланы. Делается это не так сложно. Заходим в наш аккаунт на pbxes.com и слева в меню выбираем Extensions → Add Extension → SIP. В Extension Number вводим любое число — это номер расширения, и он должен быть уникальным для каждого из них. Пусть для порядка это будет 1. В Display Name вбиваем название для расширения, а в password вводим любой понравившийся пароль. С этими данными мы впоследствии будем подключаться к АТС с помощью SIP-клиента. Нажимаем на кнопку Submit, а затем на появившуюся сверху красную полоску (You have made changes — when finished, click here to APPLY them).

Теперь добавим несколько транков. Идём в Trunks → Add Trunk → Add SIP Trunk. В Trunk Name вводим имя транка, какое угодно. Переводим dtmfmode в inband, register в yes, а в username и password указываем логин и пароль от того SIP-оператора, которого мы добавляем в транк. В SIP server or proxy и domain вводим адреса sip-сервера и домена провайдера. Как правило, они совпадают и используется стандартный порт 5060. Но, например, для подключения к транку «Мультифона» надо указывать в SIP server sbc.megafon.ru, а в domain писать multifon.ru. Более точную информацию о необходимых параметрах подключения можно узнать на сайте SIP-провайдера. Аналогичным образом надо добавить транки и для всех остальных учётных записей SIP. Не забываем про Submit и Apply.

Настроим простейшую маршрутизацию. Для входящих вызовов переходим к Inbound routing, создаем или редактируем маршрут по умолчанию «/». Выбираем в Regular Hours и After Hours пункты Extension, а в них наше SIP-расширение, которое было создано ранее. Остальные поля и значения не меняем. Сохраняем изменения.

Теперь самое интересное — маршрутизация исходящих звонков. Идём в Outbound Routing → Add Route. Для начала создаём маршрут по умолчанию, то есть тот, через который будут идти все звонки. В поле Route Name вводим название маршрута. Пусть это будет default. В Trunk Sequence выбираем нужный транк, нажимаем Add, отмечаем Valid for all numbers и сохраняем изменения. В нашем примере звонки по умолчанию будут совершаться через Sipnet, но вы можете назначить другого оператора.

Теперь добавим ещё два маршрута — для звонков в Москву плюс Санкт-Петербург и по России. Вспоминаем, что для первого случая нам нужен транк Sipnet (бесплатно), а для второго — PCTEL (1 руб./мин.). Но здесь мы зададим фильтры либо по начальным цифрам номера (Numbers starting by), либо по определённому шаблону (Custom Dial Patterns). Естественно, надо будет отметить нужный пункт в Set Destination. В каждой строке должен быть один фильтр. Правила составления очень просты — либо мы прямо указываем цифры, либо используем замену.

  • X — число от 0 до 9
  • Z — число от 1 до 9
  • N — число от 2 до 9
  • [134-7] — одно из чисел 1,3 и диапазона от 4 до 7. Это один знак, а не несколько!
  • . — точка заменяет любые возможные символы

Это не все возможные замены, но остальные вряд ли нам пригодятся. Разберём на примере. Международный код России +7, за ним следует 10-значный номер телефона — используем фильтр по шаблону вида +7XXXXXXXXXX. Код Москвы 495 или 499 — зададим фильтр либо по двум префиксам +7495 и +7499, либо по одному универсальному +749[59]. Аналогичным образом добавляется соответствие других направлений с транками. В качестве разминки составьте шаблон для номеров российских мобильных. Кстати, обратите внимание, что все вызовы должны производиться в международном формате. То есть при звонке в Россию вместо 8 (987) 123-45-67 надо набирать +7 (987) 123-45-67. Не исключено, что в фильтрах придётся убрать плюсики перед записями.

Пора проверить работоспособность нашей системы. Для этого нам понадобится любой SIP-клиент. Мы для примера возьмём легковесный вариант PhonerLite в portable-версии, но вы можете выбрать любой другой по своему вкусу. Для подключения к виртуальной АТС нужно использовать логин следующего вида: имя акканута на pbxes.org+дефис+номер расширения. Например, username-1. Если сомневаетесь в правильности, то загляните в параметры расширения — там в разделе Device Options → username указан нужный логин. Сервер и домен — pbxes.org, порт 5060, предпочтительный протокол UDP, пароль такой, как в учётной записи pbxes. Возможно, придётся прописать STUN-сервер. Можно выбрать любой доступный — например stun.sipnet.ru:3478.

Сохраняем настройки и перезапускаем SIP-клиент. В нижней строке должен гореть зелёный значок, сообщающий, что подключение прошло успешно. В веб-интерфейсе pbxes переходим на вкладку Status — здесь показывается состояние всех транков и расширений. У каждого из них слева должен гореть зелёный кружок — это значит, что всё в порядке. Если же он чуть затемнён или вообще красный, то надо ещё раз перепроверить настройки транков и расширений — либо к ним не удалось подключиться, либо просто нет активных соединений. На вкладке Usage показывается число уже использованных минут и объём переданного трафика.

Теперь нам надо сделать так, чтобы все звонки, которые поступают к нам на мобильный номер (например, московский), переводились в SIP. Таким образом, вашим знакомым не придётся каждый раз, когда вы уезжаете в другую страну, записывать ваш местный номер. Вариантов может быть несколько. Например, можно купить 3G-модем с поддержкой голосовой связи и подключить его к программному шлюзу. Можно и самому собрать такой шлюз на базе Asterisk.

Ещё один способ — купить городской номер у любого российского SIP-оператора и при отъезде включать переадресацию вызовов с вашего постоянного мобильного номера на него. Однако наиболее дешёвым вариантом будет покупка SIM-карты «Мегафона» (если вы, конечно, уже не являетесь абонентом этой сети) и подключение сервиса «Мультифон». Останется только включить в «Мультифоне» опцию «Направлять входящие звонки только в Мультифон» и назначить переадресацию с вашего номера на мегафоновский номер. Ну и надо добавить ещё один транк к уже имеющимся — адреса серверов были названы выше, в качестве username надо будет указать номер «Мегафона» в формате 792XXXXXXXX, а в качестве пароля — тот, который был задан для «Мультифона».

На телефон или смартфон надо будет установить SIP-клиент, которых понаписано великое множество для каждой из мобильных платформ, а в некоторых аппаратах Nokia или на базе Android 2.3+, например, он вообще встроенный. В настройках подключения потребуется указать те же данные, что мы использовали в PhonerLite. Посоветовать какой-то конкретный клиент довольно трудно — выбирайте тот, что больше по душе (по интерфейсу, эргономике, функциям, качеству звука и так далее). Желательно, чтобы он мог работать с базой контактов в телефоне, так как это значительно упрощает вызов нужного абонента. Кстати, для домашнего использования вы можете прикупить аппаратный SIP-телефон или адаптер, да и просто звонить с ПК через SIP-клиент.

План действий по приезде в другую страну примерно такой. Для начала покупаете SIM-карту какого-нибудь местного оператора, желательно с недорогим 3G-интернетом. Суть в том, если вы всегда будете в зоне доступности бесплатного Wi-Fi или у вас будет дешёвый мобильный Интернет со скоростью не ниже 64 Кбит/с, то вы просто запускаете SIP-клиент в телефоне и звоните и принимаете вызовы исключительно через него.

Если же вас такой вариант не устраивает, то надо подыскать VoIP-дискаунтера вроде rynga или justvoip. Главное, чтобы звонок из его SIP-сети на ваш зарубежный мобильный номер стоил дёшево. После этого необходимо создать ещё один транк для этого SIP-провайдера, а в расширении, которое мы создали в самом начале, в поле Call Forking прописать номер мобильного в международном формате. Затем создаём ещё один маршрут Outbound Routing — называем его как-нибудь (пусть это будет incoming), выбираем транк с дискаунтером и в фильтре Custom Dial Patterns снова вписываем номер купленной SIM-карты.

Теперь все входящие звонки будут направляться и в SIP, и на телефон. Альтернативный вариант — создание ещё одного расширения PSTN (с указанием местного номера), объединение его в группу вызовов (Ring groups) и создание маршрута в Outbound Routing с выбором этой группы и нужного транка. Основной недостаток любого из этих двух методов в том, что вы, скорее всего, будете видеть не номер абонента, который вам звонит, а номер местного шлюза SIP, что не очень удобно.

После всего, что уже сделано, осталось только подправить список маршрутов в Outbound Routing в меню слева, упорядочив его. Все фильтры применяются в порядке очередности, и это надо обязательно учитывать. Первым в нашем примере идёт маршрут mskspb, который проверяет, не принадлежит ли вызываемый номер Москве или Питеру. Если да, то поиск маршрута останавливается и делается вызов через транк Sipnet. Если нет, то проверяется следующий маршрут и так далее, пока очередь не дойдёт до последнего (default), который готов работать с любым номером, так как фильтров в нём нет.

Для совершения исходящих вызовов удобнее, конечно, пользоваться SIP-клиентом в телефоне. Альтернативный способ — SMS callback или Web callback, когда вы указываете нужный номер в SMS или на сайте. А вот некоторые SIP-провайдеры, в частности MTT, предлагают не просто городской номер телефона, но и возможность обратного вызова с его помощью. То есть вы набираете этот номер, сбрасываете вызов, и вам автоматически поступает входящий звонок с предложением набрать в тоновом режиме номер вызываемого абонента. Это, конечно, тоже не очень удобно. Увы, всегда приходится выбирать — либо дорого и с комфортом, либо дёшево и без удобств.

На этом, пожалуй, пора заканчивать. Описанная выше схема довольно сложна в понимании и настройке. Перед тем как заморачиваться с её реализацией, неплохо бы как следует подумать, надо ли оно вам. Операторы сотовой связи недавно наконец-то снизили свои расценки. К тому же пользователю часто доступны различные тарифные опции, пакеты минут, бонусы, скидки, акции и так далее. Есть специальные туристические SIM-карты и множество других способов сэкономить. Наибольшая экономия достигается, конечно, при использовании SIP-клиента вкупе с бесплатным Wi-Fi. В остальных случаях придётся аккуратно всё подсчитать и сравнить с предложениями мобильных операторов. Вполне возможно, что выгода окажется не столь значительной. Впрочем, если вы наговариваете в роуминге несколько тысяч минут ежемесячно, то даже 10-20 % экономии будут весьма существенны. В общем, есть над чем подумать. Удачи!



Оригинал материала: https://3dnews.ru./613743