Главная
   Документация
      Ansible
      Asterisk
      CentOS
      Debian
      Docker
      FreeBSD
      MySQL
      openHAB
      PostgreSQL
      Raspberry Pi
      Ubuntu
      WWW
      zoneminder
      Разное




Главная Документация Asterisk › Asterisk в качестве домашней АТС

Asterisk в качестве домашней АТС.

Автор:

Статья написана 2016-12-05 22:42:15
Последние правки 2018-05-08 20:56:48

Делаем из asterisk домашнюю АТС. Наша телефонная сеть:
- 5-6 абонентов;
- сервер с asterisk (прямой выход в интернет, без NAT);
- бонус сервера: выход наружу через GSM-модем;
- клиенты в локальной сети (без NAT);
- клиенты снаружи (с NAT).


Какие плюсы от своей мини-телефонной сети?
- бесплатные (так как интернет сейчас у всех безлимитный) разговоры между абонентами;
- не важно, работает скайп или нет, а если установить ТА, то вообще не надо включать компьютер. Это особенно актуально для пожилых людей, для которых ввод пароля в скайп - уже квест;
- поездки в другой город или другую страну: планшет с установленным софтфоном бесплатно решает проблемы звонка близким (я доехал и т.д.).

Для пяти-шести абонентов нам не нужен мощный сервер, поэтому обойдемся домашним.

  • Исходные данные
    # uname -sr
    FreeBSD 10.1-RELEASE-p13
    # pkg info | grep asterisk
    asterisk13-13.7.2_1            Open Source PBX and telephony toolkit
    
    Все статьи по установке и настройке, на которые я ссылаюсь в этом руководстве, находятся здесь.


  • Установка

    Ищите в разделе со статьями об asterisk (см.выше).


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

  • Настройка SIP-абонентов.

    Используем диапазон номеров 200-299.
    sip.conf
    [general]
    context=default           ; контекст по умолчанию для входящих
    allowguest=no             ; никаких гостевых звонков без пароля!
    allowoverlap=no           ; запрет набора в режиме наложения
    
    transport=udp
    udpbindaddr=0.0.0.0:5060  ; слушаем udp-соединения на всех ip
    
    srvlookup=no
    pedantic=no
    
    defaultexpiry=120         ; время регистрации по умолчанию
    
    ; кодеки
    disallow=all
    allow=g723
    allow=ulaw
    
    language=ru
    
    rtptimeout=60
    rtpholdtimeout=300
    
    localnet=192.168.3.0/255.255.255.0  ; наша домашняя сеть
    externaladdr=255.255.255.255        ; внешний IP сервера
    
    ;nat=force_rport - форсировать работу через rport, даже если его в пакетах нет
    ;nat=comedia - отправляет RTP пакеты обратно на IP адрес и порт, с которого они были получены, игнорируя информацию из сообщения SDP
    ;nat=auto_force_rport - Asterisk сам устанавливает значение параметра nat в force_rport, если определяет, что SIP пользователь находится за NAT. Данная опция по умолчанию включена в Asterisk
    ;nat=auto_comedia - Asterisk сам устанавливает значение параметра nat в comedia, если определяет, что SIP пользователь находится за NAT
    ;nat=force_rport,comedia - опция заменяющая nat=yes в более новых версия Asterisk.
    ;nat=no - не предпринимать никаких дополнительных действия для преодоления NAT, кроме рекомендаций RFC 3581.
    ;Начиная с версии Asterisk 11: nat=yes более не используется.
    nat=force_rport,comedia
    
    ; опции для абонентов. У нас есть только внутренние абоненты
    ; которые могут быть как в локальной сети, так и снаружи 
    ; (соединяться через интернет на внешний IP, причем находиться
    ; за своим роутером, используя NAT)
    [basic-options](!)                  ; опции для всех
     dtmfmode=rfc2833
     context=from-internal       ; этот контекст используем для своих абонентов
     type=friend                 ; тип записи
     language=ru
     host=dynamic                ; вход с любого ip
     qualify=300
    
    [my-codecs](!)               ; кодеки, которые используем
     disallow=all
     allow=ilbc
     allow=g729
     allow=gsm
     allow=g723
     allow=alaw
     allow=ulaw
    
    [natted-phone](!,basic-options)  ; внешние телефоны за своим NAT
     directmedia=no
     nat=force_rport,comedia
     canreinvite=no
     sipreinvite=no
    
    
    ; наши абоненты
    
    ; телефон в домашней сети
    [200](basic-options,my-codecs)
     callerid=ОТОБРАЖАЕМОЕ ИМЯ АБОНЕНТА
     dial=SIP/200
     secret=ПАРОЛЬ
     nat=no
    
    ; "внешний" телефон
    [201](natted-phone,my-codecs)
     callerid=ОТОБРАЖАЕМОЕ ИМЯ АБОНЕНТА
     dial=SIP/201
     secret=ПАРОЛЬ
    
    

  • Настраиваем GPRG-модем (Huawei E1550)

    Добавляем модем по статье на этом сайте. В этой статье все данные о модеме соответствуют данным из статьи о добавлении.


Связанные странички:
Asterisk, полезные команды консоли
FreeBSD. Модем Huawei E1550 в Asterisk 13.
FreeBSD. Шифрование SIP трафика в Asterisk.
Установка Asterisk 13 в FreeBSD
Кодеки в asterisk
Asterisk 13 RealTime с MySQL