Записки Астерискера — АТС дома на базе Asterisk

    Делюсь опытом:

    Начну с железных характеристик, пожалуй.
    • Intel Celeron 350MHz;
    • 256MB RAM;
    • 10GB;
    • 3Com FastEthernet.

    Так как я, вдобавок к SIP, хотел обрабатывать входящие звонки с моей обычной телефонной линии (PSTN), появилась нужда в приобретении AIC (Analog Interface Card), которая поддерживается Asterisk'ом. Выбор пал на дешевенькую X100P. Это клон знаменитых и дорогих карт от Digium. Для изучения в самый раз.

    Итак, что касается этих карт, стоит обратить внимание на два ключевых акронима: FXO (Foreign Exchange Office) и FXS (Foreign Exchange Station). По идее, моя карта имеет один FXO и один FXS, но работает только FXO. Это значит, что пускать через сервер я могу только входящие звонки.
    image

    Теперь про дела технарьские.

    Устанавливать Asterisk советуют либо на RedHat/CentOS, либо на Debian. В моем случае — выбор пал на второе.

    Для успешной работы придется установить три вещи. Сам Asterisk, тел. драйвера Zapata (zaptel) и PRI-библиотеки (libpri). Я был удивлен обязательности в установке libpri, т.к. у меня нет ISDN, но эти библиотеки нужны.

    Представим, что вы поставили все необходимое. Осталось отконфигурировать FXO-канал, настроить SIP и создать простенький dial-plan.

    Файлы, которые мы заденем:
    • zaptel.conf;
    • zapata.conf;
    • extensions.conf;
    • sip.conf;
    • voicemail.conf

    Foreign Exchange Office отсылает сигнал Foreign Exchange Station. Следовательно, для того, чтоб отконфигурировать FXO-канал (входящие звонки), нужно отконфигурировать FXS-канал и наоборот.

    Для начала отконфигурируем FXO в zaptel.conf следующим образом:
    fxsks=1
    loadzone=no
    defaultzone=no


    Не вдаваясь сильно в подробности, прокомментирую три строки в zaptel.conf:

    fxsks=1; Конфигурирую FXO на первом порте карты. «ks» расшифровывается как «kewlstart» и является сигнальным протоколом для аналоговых схем.
    loadzone=no; Загружаю зону (В моем случае — Norway).
    defaultzone=no; Задаю зону по умолчанию.

    Время проверить проделанное:

    asterisk:~# ztcfg -vv

    Zaptel Configuration
    ======================

    Channel map:

    Channel 01: FXS Kewlstart (Default) (Slaves: 01)

    1 channels configured.

    Следующим шагом будет файл zapata.conf, в котором описываются установки и конфигурация установленной X100P.

    Мой файл выглядит так:
    [trunkgroups]

    [channels]
    language=en
    context=incoming
    signalling=fxs_ks
    usecallerid=yes
    cidsignalling=dtmf
    hidecallerid=no
    callwaiting=yes
    usecallingpres=yes
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    canpark=yes
    cancallforward=yes
    callreturn=yes
    echocancel=yes
    echocancelwhenbridged=yes
    echotraining=yes
    rxgain=0.0
    txgain=0.0
    group=1
    callgroup=1
    pickupgroup=1
    immediate=yes
    musiconhold=default
    channel => 1


    Теперь создадим dial-plan, который будет обрабатывать входящие PSTN-звонки. Делается это редатированием extensions.conf

    Вот моя конфигурация с комментариями:

    [general]
    static=yes
    writeprotect=yes

    [globals]
    timeout_incoming=60
    options_incoming=
    timeout_outgoing=60
    timeout_outgoing=


    [incoming]
    exten => s,1,Answer(); Открыть входящий звонок

    exten => s,2,Background(me-ivr/away); Проигрывается сообщение «Здравствуйте. В настоящий момент меня нет на месте. Если это срочно, то нажмите «1» и ваш звонок будет перенаправлен на мой сотовый или нажмите «2», чтоб оставить сообщение».

    exten => i,1,Goto(incoming,s,1); При нажатии любых других клавиш, кроме «1» и «2», проигрывать сообщение выше.


    Здесь немного хитрый момент. На самом деле, при нажатии на «1», звонок не переадресовывается тут же на мой сотовый, а сначала переадресовывается на мой Soft Phone (X-LITE), установленный на ноутбуке. Если же я не отвечаю в течении пяти секунд, то тогда звонит мой сотовый.

    exten => 1,1,Dial(SIP/ruslan,5)
    exten => 1,2,Dial(SIP/004741128324@voipbuster); Так как я не могу управлять FXS-каналом моей карты, то наружние звонки я реализую, пользуясь услугами VoipBuster. Я могу, например, бесплатно звонить на домашние телефоны почти по всей Европе, а звонки на сотовые стоят копейки.

    exten => 1,3,Hangup()

    exten => 2,1,VoiceMail(4444@default); При нажатии на «2», записать голосовое сообщение для ящика «4444», который принадлежит мне.

    exten => 2,2,Hangup()
    exten => t,1,Hangup()

    [internal]
    exten => 1000,1,Dial(SIP/ruslan); Мой внутренний SIP-номер.
    exten => 2000,1,Dial(SIP/olessia) ;SIP-номер жены.

    [default]

    Осталось два файла: sip.conf и voicemail.conf

    sip.conf

    [general]
    context=default
    bindport=5060 ;SIP-порт по умолчанию.
    bindaddr=0.0.0.0; Привязать к какому адресу/сетевой карте.
    srvlookup=yes; Делать DNS-запросы.

    register => designerus:mypassword@sip.voipbuster.com:5060; Регистрирую моего VoIP-провайдера.

    [authentication]

    [voipbuster]
    type=peer
    host=sip.voipbuster.com
    username=designerus
    fromuser=designerus
    secret=mypassword
    canreivite=no

    [ruslan] ;SIP-пользователь «ruslan».
    type=friend; Может принимать и делать звонки.
    callerid=(«Ruslan Valiyev» <1000>) ;Caller ID, который будет высвечиваться на телефоне.
    username=ruslan
    secret=mysecret
    qualify=yes; Разрешить мониторинг аккаунта.
    nat=no
    host=dynamic
    canreinvite=yes
    context=internal
    mailbox=4444@default; Персональный голосовой ящик «4444».

    [olessia]
    type=friend
    callerid=(«Olessia Skuratovich» <2000>)
    username=olessia
    secret=mysecret
    qualify=yes
    nat=no
    host=dynamic
    canreinvite=no
    context=internal


    voicemail.conf я почти не трогал, а добавил только себя в конце:

    [default]

    4444 => 6774,Ruslan Valiyev,welcome@myasterisk.ru ;«6774» является пин-кодом, который я ввожу, когда хочу прослушать свои сообщения

    Ну вот вроде и все. Что касается голосовых меню или IVR, то в наборе идет английский пакет со звуками в /usr/share/asterisk/sounds. Если вы хотите записать свои звуки, то, например, я делаю это в Audacity, сохраняю в wav, а потом конвертирую в gsm путем:

    asterisk:~# sox inputfile.wav -r 8000 -c 1 outputfile.gsm resample -ql
    MyAsterisk
    Компания

    Похожие публикации

    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 7

      +4
      Если вы будете и дальше продолжать лить воду, то очень скоро вам краник перекроют.

      В сети есть 100500 манов по настройке домашнего *, причём, существенно лучшего качества. А хабр, как мы помним, не для копипасты, и сеошные приёмы «синонимизации» здесь раскусят за 5 секунд.

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

      Будьте оригинальнее и полезнее в своих постах.
        +2
        PS: Ставить селерон в огромной минибашне только для того чтобы держать дома АТС? Я вас умоляю. Да он света за месяц сожжёт больше, чем стоит впс с такими же характеристиками.

        Лучше уж тогда взять какую-нить балалайку типа длинка 620-го и поставить на него dd-wrt с астериском. А домашний номер перевести на SIP прямо у провайдера. Я уверен, что они эту услугу предоставляют. Даже МГТС.
        –2
        хорошо мы примем во внимание ваш комментарий
          +1
          И ссылки ведут не на AIC указанных моделей, а на сайт, реклама которого и ставилась целью при написании статьи. Гореть вам в особом аду, где грязных сеошников медленно жарят на масле, подсолнечное масло, пищевые продукты, купить масло…
          0
          А если вот эта вот наша домашняя АТС прикрылась тазиком, зависла, свет моргнул, то наша городская линия тоже будет недоступна?
            0
            Вытыкаете все из «домашней АТС» и втыкаете обратно туда где было(в беленькую коробочку — сплиттер называется, или иногда линия от оператора напрямую в телефон может идти(смотря какой телефон)) — а потом смотрите что не так с АТС, как поправите — можно втыкать обратно.
              +2
              Автоматизация!

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

          Самое читаемое