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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование Call-файлов в Asterisk

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

Call-файлы — это удобный инструмент, позволяющий связывать Asterisk и любые внешние приложения. Связь обеспечивается посредством обмена данными через текстовые файлы, называемые Call-Файлами. Такую связь часто делают для совместной работы CRM-системы, систем автообзвона и автооповещения, а также программы на любых языках программирования, и, разумеется, BASH.

Call-файлы имеют определенную структуру, которую понимает Asterisk. Получая такой файл, Asterisk ищет в нем необходимые для себя инструкции и переменные, после чего обрабатывает и выполняет его.

Как Asterisk получает Call-файл?

Для работы Call-файлов используется директория/var/spool/asterisk/outgoing/

Как только в этой директории появляется Call-файл, он тут же поступает на обработку Asterisk-ом.

Структура Call-файла (на англ.яз.):

Specify where and how to callChannel: <channel>: Channel to use for the call.CallerID: «name» <number> Caller ID, Please note: It may not work if you do not respect the format: CallerID: «Some Name» <1234>MaxRetries: <number> Number of retries before failing (not including the initial attempt, e.g. 0 = total of 1 attempt to make the call). Default is 0.RetryTime: <number> Seconds between retries, Don't hammer an unavailable phone. Default is 300 (5 min).WaitTime: <number> Seconds to wait for an answer. Default is 45.Account: Set the account code to use.

If the callanswers, connect it here:Context: <context-name> Context in extensions.confExtension: <ext> Extension definition in extensions.confPriority: <priority> Priority of extension to start withSet: Set a variable for use in the extension logic (example: file1=/tmp/to) ; in Asterisk 1.0.x use 'SetVar' instead of 'Set'Application: Asterisk Application to run (use instead of specifiying context, extension and priority)Data: The options to be passed to application

New (?) in Asterisk 1.4Set: Can now also write to dialplan functions like CDR ()AlwaysDelete: Yes/No — If the file's modification time is in the future, the call file will not be deletedArchive: Yes/No — Move to subdir «outgoing_done» with «Status: value», where value can be Completed, Expired or Failed.

Пример Call-файла.

Данный Call-файл принимает переменную $temp и вызывает контекст from-hdd, где эта переменная задается в качестве экстеншена.

CallerID: \»HDD\» <$temp>
MaxRetries: 1
RetryTime: 15
WaitTime: 15
Context: from-hdd
Extension: $temp
Priority: 1

Пример контекста, предназначенного для работы с Call-файлом.

Для того чтобы Call-файл отработал в системе, требуется правильным образом описанный контекст from-hdd. Суть его такова:

Дозвониться на номер 751Воспроизвести сообщение «Температура жесткого диска составляет»Воспроизвести число, хранящееся в переменной, например «сорок восемь»Воспроизвести сообщение «Градусов».Корректно завершить разговор.

[from-hdd]
exten ≥_.,1,Wait (1)
same≥n,Dial (SIP/751)
same≥n,PlayBack (hello-world)
same≥n,Wait (0.5)
same≥n,SayDigits (${EXTEN})
same≥n,PlayBack (vm-goodbye)
same≥n,Hangup ()

Данный пример показывает, каким образом можно настроить Asterisk и внешние приложения для оповещения о температуре жесткого диска сервера. Мы его используем для связи bash+cron с Asterisk.

Пример скрипта для создания Call-файла.

Вот сам скрипт на bash, который обеспечивает его работу:

#!/bin/bash
temp=' (smartctl --all /dev/sda | grep Temperature_Cels | awk '{print $10}')'
#echo $temp
/bin/echo «CallerID: \»HDD\» <$temp>
MaxRetries: 1
RetryTime: 15
WaitTime: 15
Context: from-hdd
Extension: $temp
Priority: 1
» > /tmp/test.call
chown asterisk:asterisk /tmp/test.call
cat /tmp/test.call
#sleep 10
mv /tmp/test.call /var/spool/asterisk/outgoing/

Успешного использования Asterisk!

Call-файл, asterisk