Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

Используйте Веб-Интерфейс для удобства настройки

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

Для понимания работы с Asterisk необходимо уметь настраивать его вручную с конфигурационными файлами и командной строкой CLI Asterisk.

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

Corosync и синхронизация device state (hints) между Asterisk

База знаний Настройка Asterisk

Corosync - это открытый проект, используется для группового обмена сообщениями в кластерах, облачных системах и других средах высокой доступности.
С помощью данной службы мы синхронизируем статусы устройств между двумя Asterisk.

Сначала установим службу corosync на два наших сервера (сервер 1 – 192.168.0.2 сервер 2 – 192.168.1.2)

yum install corosync corosynclib corosynclib-devel


Далее нам нужно пересобрать Астериск с модулем res_corosync. Активируется в разделе Resource Modules (Статья о том, как собрать Asterisk из исходников) Если вы новичок в этом деле, не беритесь за данный пункт самостоятельно!
Теперь создаем ключ для безопасного обмена сообщения между нашим серверами. Запускаем на первом сервере команду

corosync-keygen

Созданный ключ копируем на соседнюю станцую в ту же директорию и с тем же именем

/etc/corosync/authkey

Проверьте, чтобы владелец данного файла был root, а права на файл были 400

Если ваш Астериск, а так и должно быть, запускается не от пользователя root, нам нужно добавить в файл

/etc/corosync/uidgid.d/asterisk

uidgid {
 uid: asterisk
 gid: asterisk
}


Corosync может работать в режиме multicast и unicast в зависимости от специфики вашей сети и расположения серверов с Asterisk. Если Астериски находятся в одной подсети можно использовать multicast, в нашем же случае Астериски находятся в разных подсетях и подключены через vpn, поэтому мы используем unicast

Переходим к настройке конфига corosync на первом сервере:

/etc/corosync/corosync.conf

memberaddr - указываем ip адреса ваших Астерисков
bindnetddr - указываем подсеть в которой находится сервер

compatibility: whitetank
totem {
   version: 2
   secauth: on
   interface {
      member {
         memberaddr: 192.168.0.2
      }
      member {
         memberaddr: 192.168.1.2
      }
      ringnumber: 0
      bindnetaddr: 192.168.0.0
      mcastport: 5405
   }
   transport: udpu
}
   logging {
   fileline: off
   to_logfile: yes
   to_syslog: yes
   debug: off
   logfile: /var/log/cluster/corosync.log
   debug: off
   timestamp: on
   logger_subsys {
      subsys: AMF
      debug: off
   }
}

И для второго сервера

compatibility: whitetank
totem {
   version: 2
   secauth: on
   interface {
      member {
         memberaddr: 192.168.1.2
      }
      member {
         memberaddr: 192.168.0.2
      }
      ringnumber: 0
      bindnetaddr: 192.168.1.0
      mcastport: 5405
   }
   transport: udpu
}
   logging {
   fileline: off
   to_logfile: yes
   to_syslog: yes
   debug: off
   logfile: /var/log/cluster/corosync.log
   debug: off
   timestamp: on
   logger_subsys {
      subsys: AMF
      debug: off
   }
}

Далее стартуем сервис на серверах и не забываем про iptables на ваших станциях, corosync настроен на работу по udp порту 5405

service corosync start

Теперь перейдем к настройке Астерисков, для этого создаем файл res_corosync.conf и прописываем настройки на первом и втором сервере

[general]
publish_event = mwi
subscribe_event = mwi
publish_event = device_state
subscribe_event = device_state

Делаем core reload в консоли Asterisk и проверяем настройки

corosync show members

Должны увидеть примерно следующее на одной и второй станции

Corosync show members Asterisk. Cluster members

Далее на каждом Астериске в контексте, где у вас прописаны хинты, необходимо дописать хинты номеров соседней станции, если у вас freepbx то прописать в контексте ext-local-custom

Первая станция, имеет номера 1XX вторая 2XX

Первая станция

[ext-local-custom]
exten => 200,hint,SIP/200,CustomPresence:200

и т.д.

Вторая станция

[ext-local-custom]
exten => 100,hint,SIP/200,CustomPresence:200

и т.д.
Выполняем dialplan reload и проверяем отображение хинтов на наших Asterisk командой core show hints, при этом должны увидеть хинты не только текущей, но и соседней станции.




Logging, Event, FreePBX, sip, asterisk, сервер