Перейти к основному содержимому

Asterisk FreePBX

Бесплатный программный SIP-сервер с гибким функционалом

Установка Asterisk FreePBX

  1. Скачайте Asterisk FreePBX по ссылке.
примечание
  • Дистрибутив представляет собой файл образ .iso с операционной системой Linux и Asterisk.
  1. Воспользуйтесь инструкцией по установке.

Настройка Asterisk FreePBX

  1. Зайдите в веб-интерфейс сервера Asterisk, используя IP-адрес, заданный для сервера при установке. Нажмите кнопку "FreePBX Administration".

SIP_Asterisk00.png

  1. Введите логин и пароль администатора.

SIP_Asterisk01.png

  1. Откроется панель администратора (дашборд) сервера Asterisk.

SIP_Asterisk02.png

  1. В меню "Applications" нажмите кнопку "Extensions".

SIP_Asterisk03.png

  1. В терминологии IP-телефонии extensions (внутренние номера) - это уникальный номера, по которым совершаются звонки. К таким номерам относятся в том числе SIP-номера в домофонной сети.

Создайте SIP-абонента, нажав кнопку "+Add New PJSIP Extension" или "+Add New Chan_SIP Extension".

SIP_Asterisk04.png

  1. Задайте основные параметры SIP-абонента.

SIP_Asterisk05.png

  • User Extension: SIP-номер,
  • Display Name: идентификатор Caller ID,
  • Secret: пароль.
  1. При необходимости активируйте голосовую почту на вкладке "Voice Mail". Задайте пароль (только цифры).

В случае пропуска звонка SIP-абонентом автоответчик предложит записать голосовое сообщение после звукового сигнала. После этого SIP-абонент может прослушать голосовую почту, набрав *97 123456 или *98 990 123456, где 123456 - пароль голосовой почты, 990 - SIP-номер.

примечание
  • Если установить параметр Require From Same Extension в значение No, то достаточно набрать *97 (без пароля) для прослушивания голосовой почты.

SIP_Asterisk06.png

  1. На вкладке "Find Me / Follow Me" вы можете активировать и настроить переадресацию звонков на несколько других SIP-номеров. Переадресация осуществляется после отсутствия связи с текущим SIP-номером или в случае длительного отсутствия ответа.

SIP_Asterisk07.png

  • Initial Ring Time: время первой попытки на основной SIP-номер,
  • Ring Strategy: стратегия переадресации:
    • ringallv2 - звонить на основной номер в течение Initial Ring Time, затем звонить всем в течение Ring Time, не сбрасывая соединения с основным номером,
    • ringall - звонить на основной номер, затем сбросить соединение и звонить всем,
    • hunt - звонить последовательно на каждый номер в списке,
    • memoryhunt - звонить на первый номер в списке затем звонить на первый и второй номер, затем на первый, второй и третий и т.д.
    • firstavailable - звонить на первый доступный номер,
    • firstnotonphone - звонить только на первый номер, который в состоянии on hook,
    • -prim - те же самые стратегии, но если основной номер занят, то переадресация не осуществляется.
  • Ring Time: время дозвона при переадресации,
  • Follow-Me List: список номеров для переадресации.
  1. На вкладке "Advanced" посмотрите контекст - from-internal. Далее нажмите кнопку "Submit" в правом нижнем углу для сохранения SIP-абонента.

SIP_Asterisk08.png

  1. Таким образом вы можете создать несколько SIP-абонентов. Далее в верхнем правом углу нажмите красную кнопку "Apply Config", чтобы все изменения вступили в силу на сервере Asterisk.

SIP_Asterisk09.png

  1. Вы можете настроить также отправку Push-уведомлений на панели управления, у которых свернуты приложения i3 pro. Воспользуйтесь инструкцией для этого.

Работа в iRidium studio

  1. Добавьте и настройте драйвер, как показано на изображении ниже.

SIP_Asterisk10.png

Настройка видеодомофона

Видеодомофон настраивается аналогично драйверу SIP в iRidium studio, только следует использовать другой SIP ID (Login ).

Инструкции по настройке конкретных моделей видеодомофонов можно найти здесь.

Настройка попыток дозвона для Asterisk

  1. Уточните имя контекста - from-internal.

ContecstName.jpg

  1. Добавьте в файл extensions.conf в контекст from-internal следующие строки:

Asterisk_recall.png

;----------------------------------------------------------------------

; start
; если получил входящий звонок от 2ХХХ, то установи значение переменной nDialIteration=0
exten => _2XXX,1,Set(nDialIteration=0)
; сделай Ringing
exten => _2XXX,2,Ringing()

; dial
; сделать звонок на номер EXTEN (номер того, куда звонят)
exten => _2XXX,n(dial),Dial(PJSIP/${EXTEN}, 10, t)
; если ANSWER, то перейди к enofcall
exten => _2XXX,n,GotoIf($["${DIALSTATUS}"="ANSWER"]?endofcall)
; если NOANSWER, то перейди к redial
exten => _2XXX,n,GotoIf($["${DIALSTATUS}"="NOANSWER"]?redial)
; если CANCEL, то перейди к enofcall
exten => _2XXX,n,GotoIf($["${DIALSTATUS}"="CANCEL"]?endofcall)
; если BUSY, то перейди к enofcall
exten => _2XXX,n,GotoIf($["${DIALSTATUS}"="BUSY"]?endofcall)
; если CONGESTION, то перейди к redial
exten => _2XXX,n,GotoIf($["${DIALSTATUS}"="CONGESTION"]?redial)
; если CHANUNAVAIL, то перейди к redial
exten => _2XXX,n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?redial)

; redial
; инкремент переменной nDialIteration на +1
exten => _2XXX,n(redial),Set(nDialIteration=$[${nDialIteration}+1])
; подожди 1 сек
exten => _2XXX,n,Wait(1)
; если значение переменной =30, то делай endofcall, иначе делай dial
exten => _2XXX,n,GotoIf($["${nDialIteration}"="30"]?endofcall:dial)

; call end
; завершить звонок
exten => _2XXX,n(endofcall),Hangup()

Демо-проект

Подсказка

Скачайте демо-проект

Проект для панели управления можно запустить на эмуляторе.