войти
зарегистрироваться
поиск по сайту
Посты
Q&A
Блоги
Люди
Компании
IP-телефония
индекс
101,73
Захабренные
Новые
Отхабренные
Asterisk, или домашняя телефония для (про)двинутых пользователей
Эта история началась два долгих года назад, когда во время командировки в США я ВДРУГ остался без мобильной связи: с дуру перед поездкой поменял телефон, а он оказался «двух-диапазонником»… Да и роуминг не дешёвый…
Итогом стало открытие для себя SIP-телефонии.
И вот несколько месяцев назад, из статей на Хабре, выясняю, что чужим дядям можно и не платить за межгород, если надо позвонить откуда-то в родной город через Интернет! Достаточно поставить VoIP сервер и настроить его так, как надо именно тебе!
И вот, взяв в руки Asterisk, я приступил к операции по борьбе с излишней жадностью ОпСоСов…
Примечание
Данный топик является компиляцией некоторых решений, которые я применил для себя. Кто-то может реализовать что-то по-другому или лучше — с удовольствием выслушаю и, возможно, что-то улучшу и у себя.
Предполагается, что читающий тему разбирается на начальном уровне в вопросе. Если нет — в конце я привёл ссылку на скачивание учебника.
Введение
В наличие имелся 2-х ядерный сервер на ubuntu (10.04), который в принципе выполняет у меня обязанности файлового архива, но на практике — чаще всего простаивает.
Требовалось упростить мне жизнь с телефонными разговорами.
В частности были поставлены следующие задачи:
Если я отсутствую дома — я не должен пропустить входящие звонки на МГТСовский номер
Если нахожусь в командировке — через Интернет я должен получить возможность совершать звонки по городу
Опять-же — в командировке я в идеале не должен тратиться на роуминг, но при этом принимать звонки, сделанные на мой номер
В идеале — защититься от автодозвонщиков типа Акады, которые попросту достали
Упрощение звонков, с учётом того, что планировался перевод АТС в код 499
Удобство пользования всем этим
Очертив круг задач — приступаем к покупке железок под это дело.
Аппаратная часть
D-Link DVG-7111S — ГТС-VoIP адаптер
Выбрал именно его за относительно «копеечную» стоимость — в Москве он стоит от 2 152 до 2 610 рублей, что слегка дешевле Линксусов, которые ещё и найти надо.
По сути — он делает из городской линии и телефона двух SIP-клиентов, которые подключаются к Астериску.
Настройки делаем вот таким макаром
Тонкость одна связана с CallerID — для корректной его передачи надо пропустить один звонок, что-бы адаптер успел определить номер:
HOT LINE->Ring count before FXO pick up = 1
При необходимости — можно обновить прошивку, но в отличие от роутеров и прочих ДЛинковских девайсов — тут это
довольно незаурядный процесс
Иногда у адаптера дурит определение сигнала «Занято». Для этого надо настроить длительности этих сигналов.
Инструкция как их получить имеется
, но сам пока не занимался — всего второй день, как началась эта проблема после смены оборудования на АТС.
Для звонка с Астериска на городской номер используется вот такой формат для Dial в Диалплане:
Dial(SIP/номер канала FXO/телефон)
Для звонка на трубку:
Dial(SIP/номер канала FXS)
Для упрощения жизни с маразмом от МГТС я себе сделал возможность набирать все номера Москвы одинаково «8-код-7 цифр», а с правилами набора — разберётся сервер:
Ниже приведены два варианта настройки. Первый вариант для тех, у кого номер в 495 коде, а второй — в 499. Оба варианта позволяют звонить как на телефоны в 495 коде, так и в 499.
Для номеров в 495 коде
; 495 - только семь цифр
exten => _8495XXXXXXX,1,Dial(SIP/701/${EXTEN:4})
exten => _8495XXXXXXX,n,Hangup()
; 499 - через восьмёрку
exten => _8499XXXXXXX,1,Dial(SIP/701/${EXTEN:0}) ; Тут не испытывал - знакомых в 499 коде нет, но подозреваю, что на старых АТС надо как-то по-другому, через паузу после 8...
exten => _8499XXXXXXX,n,Hangup()
Для номеров в 499 коде
; 495 - с "восьмёркой"
exten => _8495XXXXXXX,1,Dial(SIP/701/${EXTEN:0})
exten => _8495XXXXXXX,n,Hangup()
; 499 - без "восьмёрки"
exten => _8499XXXXXXX,1,Dial(SIP/701/${EXTEN:1})
exten => _8499XXXXXXX,n,Hangup()
Телефон
Первоначально — в качестве телефона использовал радиотрубку Панасоник, подключенную к FXS-порту адаптера, но быстро разочаровался: её корявенький дисплей справлялся только с цифровым CallerID. Поэтому был куплен
Siemens Gigaset C470 IP
+ дополнительная трубка к нему
Siemens Gigaset C47H
За них выложил в сумме тысяч пять и не жалею: Главная прелесть агрегата в том, что он поддерживает одновременную работу с 6 трубками (основная + 5 дополнительных).
«И что толку? Линия-то одна!» скажете вы и… Будете в корне не правы!
Помимо 6 трубок — базовая станция поддерживает также и 6 sip-аккаунтов! Каждый из которых можно привязать к своей трубке!!!
Т.е. — если в квартире поставить в каждой комнате по радиотрубке, то это будут совершенно разные sip-юзеры, которые спокойно могут разговаривать и одновременно!
Пару слов про настройку:
Что-бы не говорили в инструкции — динамическое выделение адреса у телефона не происходит. Поэтому есть два варианта — с радиотрубки вбить правильный или коротким нажатием на кнопку на базе — определить текущий и настроить на него сеть.
Пин-код можно поменять ТОЛЬКО с трубки — в веб-панели такого пункта нет: так что лучше сразу его сменить, пока это не сделал какой-нить ушлый хацкер!
GSM-адаптер
Тут я пошёл по пути наименьшего сопротивления и купил МТСовский модем Huawei E1550.
Почему МТС?
Во-первых — 770 рублей, а не 1500 за «не лоченый»
Во-вторых — у Би и Меги залочены голосовые функции ВООБЩЕ.
В третьих — модем мне нужен был под Ашановский тариф А-Мобайл, который на сети МТС и перепрошивать ничего не пришлось.
Кто не в курсе — А-Мобайл позволяет делать 15 минут бесплатных звонков в день на другой А-Мобайл, после чего — символическая плата в 90 копеек за минуту. Мне он нужен был как резервный канал до домашней сети и тариф, ИМХО, самый приятный!
Настройки девайса муторные
, но ничего сложного.
+ сейчас по Хабрапочте получил сообщение от
Angel2S2
«Кстати, про разлочку huawei модемов… Если интересно, можете у меня глянуть —
angel2s2.blogspot.com/2010/07/huawei.html
. Разлочил E160G и E1550 от мегафона и мтса, звонить тоже можно :) „
МБ кому-то поможет!
Учкудук два модема...
Ещё пару слов дополню…
Поставил на систему второй модем для входящих с АллоИнкогнито и тут пришёл он самый… П-ц который: модемы сами по себе менялись местами хлеще акробатов в цирке! При отключении одного — второй норовил переехать на его порты и т.д. и т.п.
А т.к. диалпланы для них в корне разные — надо было как-то решать…
Решение вполне обоснованное для Линукса: порту можно назначить фиксированную “ссылку»!
Т.е. — задаём для модема 1 — порты не ttyUSB1 и 2, а hv0 и hi0 (ХуавейВоис и ХуавейИнфо)!
Как?
Отключаем от компа оба модема, вставляем первый.
Даём с рута в терминале команду dmesg
В ответ вываливается куча всего, но в конце — заветные строки:
[291015.913221] option 1-2:1.0: GSM modem (1-port) converter detected
[291015.913364] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[291015.913926] option 1-2:1.1: GSM modem (1-port) converter detected
[291015.914026] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[291015.916678] option 1-2:1.2: GSM modem (1-port) converter detected
[291015.916812] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
«Кто есть ху»:
После option идёт идентификатор порта.
1-2 — первый ЮСБ хост, второе устройство
:1.1 — первый порт на этом устройстве.
В следующей строке — инфа на тему того, каким портом стал этот наш внутренний.
Нас интересуют пред-последний и последний — 1 и 2 в данном случае.
1 — порт для голоса, 2 — для данных.
Теперь открываем из под рута для редактирования файл /etc/udev/rules.d/huawei.rules — тут прописываются правила для всея Хуавей-девайсов в системе. Скорее всего он будет пустым.
Вбиваем строчки:
KERNEL=="ttyUSB[0-9]*", ID=="1-2:1.1", NAME="%k", SYMLINK+="hv0", GROUP="root", MODE="0666"
KERNEL=="ttyUSB[0-9]*", ID=="1-2:1.2", NAME="%k", SYMLINK+="hi0", GROUP="root", MODE="0666"
«Всея устройства на этом конкретном порту отныне и присно зовутся ещё и hv0, а на этом — hi0! Сохраняем, Аминь!»
Материал сокращён при переносе в новую базу знаний. Полная версия сохранена в архиве старого сайта.