Статьи

  Резюме
  [-] IT
    [-] Asterisk
      Мониторинг сервера
      Несколько серверов
      Позвони мне
      Установка G729
    [+] Ubuntu Desktop
    [+] Ubuntu Server
    [+] Windows Server
  [+] Программирование
    [+] 1C
    ASP.NET & VB.NET
    bash & sh
    [+] HTML + CSS
    [+] Java
    PHP
    [+] QB - Quick Basic 4-4.5
    [+] T-SQL
    [+] VB - Visual Basic 1-6
    VBScript & JScript
  [+] Творчество
    Кофейная тема
    Наброски
    Размышления
Asterisk

Всегда считал, что IP-телефония это что-то очень сложное и запутанное. Много читал, что есть бесплатная станция Asterisk, но конкретной задачи не было. Я был убежденным "виндузятником" и не думал, что когда-нибудь мое мировозрение изменится коренным образом.

 

Возникла задача создать распределенную телефонную систему, чтобы можно было звонить из далека, используя московский номер МГТС как шлюз для выхода на внешнюю линию. Когда есть задача, то решение всегда найдется. 

 

Для решения задачи требуется:

1. Сервер с Ubuntu Server

2. Шлюз и телефон 2 в одном (FXO - линия для выхода в город, FXS - внутренняя линия / обычный телефон), например  LinkSys SPA-3102.

3. SIP-телефон или FXS шлюз или программный SIP-телефон.

4. Public IP на сервере.

 

Схема:

МГТС -> шлюз FXO -> Asterisk -> SIP-телефон

 

Установка:

1. Установка Ubuntu-server несложная, возможно стоит описать только процесс создания виртуального RAID-массива с помощью mdadm, но здесь я этого делать не буду. 

 

2. Устанавливается Asterisk + звуки (для voice-mail и различных отбивок) + поддержка mp3 (важно для music-on-hold)

sudo apt-get install asterisk asterisk-sounds-extra asterisk-mp3

 

3. Настройка sip.conf (/etc/asterisk/sip.conf)

Минимальные настройки:

 

[general]
context=default ; 
allowoverlap=no ;
bindport=5060 ;    Порт по-умолчанию для SIP
bindaddr=0.0.0.0 ; Доступен в интернете
srvlookup=yes ; При исходящем звонке, разрешен разрешение адреса по имени
videosupport=no ; Видео-звонки не нужны
useragent=SipPhone ; Как представляться другим телефонам и станциям
nat = no                ; Находится ли сервер за NAT-том
canreinvite = nonat  ; Разрешено ли соединение телефонов друг с другом как точка-точка (без перехвата пакетов астериском)

;Настройка для FXO шлюза

[mgts]
type=friend
username=ИмяПользователяДляЭтогоУзла
secret=ПарольДляЭтогоУзла
host=dynamic
port=5061         ; порт, здесь нестандартный, тк SPA-3102 устройство 2 в 1 и 5060 занят
nat=yes            ; узел за маршрутизатором
dtmfmode=auto
insecure=very
context=internal  ; контекст - необходим, чтобы описать входящий вызов в файле extension.conf
disallow=all
allow=all ;         Разрешаем доступ по любому кодеку
canreinvite=no ;  Прямое подключение
qualify=yes  ;     Слежение за узлом (опрос состояния)

;Настройка для телефона

[telephone]
type=friend
host=dynamic
username=ИмяПользователяДляЭтогоУзла
secret=ПарольДляЭтогоУзла
language=ru
nat=yes
canreinvite=no
context=external
callerid=ИмяПользователяДляЭтогоУзла
mailbox=ВнутреннийНомерАбонента@external
disallow=all
allow=ulaw
allow=alaw
allow=g729
qualify=yes 

 

4. Настройка extension.conf (данный файл описывает коммутацию абонентов)

;Настройка входящего звонка с линии МГТС 

[internal]
exten => 1001,1,Dial(SIP/telephone) 

;Настройка исходящего звонка

[external]

;Лучше сразу задать маску для возможных телефонных номеров (чтобы нельзя было позвонить по межгороду например) 

exten => _7495XXXXXXX,1,Dial(SIP/mgts/8${EXTEN:1},120) ; набрать еще 8-ку перед набором

exten => _7499XXXXXXX,1,Dial(SIP/mgts/${EXTEN:1},120)   ; звонок без 8-ки

;Звонок другому телефону

exten => 1002, 1, Dial(SIP/telephone2) 

 

5. Настроить шлюз

Требуется прописать настройки PSTN: прокси (сервер), логин и пароль, план набора и приема звонков, настройки для ловли занято и скорости ответа на звонок

 

 

План набора номера и план для приема звонков 

 

Настройки через сколько секунд требуется брать трубку, а так же настройки, чтобы поймать сигнал занято для МГТС

 

 

 6. Настроить SIP-телефон, те прописать proxy (сервер Астериск), логин и пароль. 



Другие записи

  Мониторинг сервера
  Несколько серверов
  Позвони мне
  Установка G729


X
ПнВтСрЧтПтСбВс