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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Коротко об Asterisk Manager Interface

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

   Asterisk Manager Interface (AMI) — интерфейс Asterisk, позволяет другим приложениям обмениваться с ним сообщениями. Работает следующим образом: приложение устанавливает TCP-соединение на порт 5038 (по умолчанию) хоста Asterisk, после чего приложение может посылать и принимать сообщения Asterisk.
   С помощью интерфейса AMI удобно организовывать взаимодействие Asterisk и CRM-системы. После этого станет возможным, к примеру, автоматически открывать карточку клиента, когда оператор принимает вызов, инициировать вызовы из CRM-системы, совершать автообзвон клиентов.

1. Настройка на стороне Asterisk

2. Синтаксис сообщений AMI

3. Подключение к AMI

4. Примеры сообщений AMI


Настройка на стороне Asterisk


Настройки AMI находятся в файле /etc/asterisk/manager.conf, в нём же прописываются пользователи AMI, их пароли и права доступа.
   Пример:

[general]

enabled = yes         ;AMI включен
port = 5038         ;принимает соединения на порт 5038
bindaddr = 0.0.0.0      ;на все IP-адреса хоста
displayconnects=no      ;подключения к AMI не отображаются командной строке

[admin]            ;имя пользователя
secret = ami-secret         ;пароль
deny=0.0.0.0/0.0.0.0         ;подсеть, из которой запрещен доступ к AMI
permit=127.0.0.1/255.255.255.0   ;подсеть, из которой разрешен доступ к AMI

;привилегии на чтение (от них зависит, сообщения о каких событиях пользователь сможет получать через AMI)
read=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate

;привилегии на запись (от них зависит, какие команды пользователь сможет выполнять через AMI)
write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate

Для применения настроек AMI, нужно выполнить команду «manager reload» в консоли Asterisk.

Синтаксис сообщений AMI


   Сообщения AMI состоят из тегов вида «ключевое_слово: значение». Каждая строка заканчивается символами возврата каретки и перевода на следующую строку (CR/LF). Пустая строка (состоящая только из CR/LF) означает конец сообщения.
   Первый тег в сообщении обязательно должен быть Action, Response или Event.
   Тег Action значит, что в сообщении клиент посылает команду сервера.
   Тег Response значит, что сообщение явдяется ответом сервера на команду клиента.
   Тег Event значит, что в сообщении сервер уведомляет клиент о наступлении события.
   Если в Action-сообщении указать тег ActionID с каким-либо значением, то ответныу сообщения будут содержать тег ActionID с таким же значением, это позволяет находить ответы на конкретное сообщение среди множества ответов на другие сообщения.

Подключение к AMI


   Для подключения к AMI, нужно установить TCP-соединение на порт, указанный в настройках AMI (по умолчанию 5038), для быстрого теста можно выполнить команду «telnet 127.0.0.1 5038» на хосте Asterisk. Далее, прежде чем можно будет выполнять команды и получать сообщения о событиях, нужно аутентифицироваться. Для этого нужно отправить команду с тегами Action: Login, Username: <имя_пользователя>, Secret: <пароль>. Пример:

Action: Login
Username: admin
Secret: ami-secret
Response: Success
Message: Authentication accepted

Event: FullyBooted
Privilege: system,all
Status: Fully Booted

Примеры сообщений AMI


   Вызов номера 101 и соединение его с номером 81112223333:

Action: Originate
ActionID: 12345
Channel: SIP/101
Context: outbound-allroutes
Exten: 81112223333
Priority: 1
Callerid: «auto-dial» <81112223333>

Response: Success
ActionID: 12345
Message: Originate successfully queued

   Событие регистрации номера 101 с хоста 192.168.1.25:

Event: PeerStatus
Privilege: system,all
ChannelType: SIP
Peer: SIP/101
PeerStatus: Registered
Address: 192.168.1.25:5060

   Лог вызова с номера 102 на номер 101, привилегия call:

; Создание канала SIP/101
Event: Newchannel
Privilege: call,all
Channel: SIP/101-00000793
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 101
CallerIDName: device
AccountCode:
Exten: 102
Context: from-internal
Uniqueid: 1366383392.2837

; Номер 101 звонит
Event: Newstate
Privilege: call,all
Channel: SIP/101-00000793
ChannelState: 4
ChannelStateDesc: Ring
CallerIDNum: 101
CallerIDName: device
ConnectedLineNum:
ConnectedLineName:
Uniqueid: 1366383392.2837

Event: ExtensionStatus
Privilege: call,all
Exten: 101
Context: ext-local
Hint: SIP/101
Status: 1

; Вызову присвоен CallerID
Event: NewCallerid
Privilege: call,all
Channel: SIP/101-00000793
CallerIDNum: 101
CallerIDName: test
Uniqueid: 1366383392.2837
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

; Создание канала SIP/102
Event: Newchannel
Privilege: call,all
Channel: SIP/102-00000794
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 102
CallerIDName: device
AccountCode:
Exten:
Context: from-internal
Uniqueid: 1366383392.2838

Event: ExtensionStatus
Privilege: call,all
Exten: 102
Context: ext-local
Hint: SIP/102
Status: 8

; Вызов канала SIP/102 из канала SIP/101
Event: Dial
Privilege: call,all
SubEvent: Begin
Channel: SIP/101-00000793
Destination: SIP/102-00000794
CallerIDNum: 101
CallerIDName: Anton Oskin
ConnectedLineNum: 102
ConnectedLineName: Anton Oskin
UniqueID: 1366383392.2837
DestUniqueID: 1366383392.2838
Dialstring: 102

; Номер 102 звонит
Event: Newstate
Privilege: call,all
Channel: SIP/102-00000794
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 102
CallerIDName: device
ConnectedLineNum: 101
ConnectedLineName: Anton Oskin
Uniqueid: 1366383392.2838

Event: ExtensionStatus
Privilege: call,all
Exten: 102
Context: ext-local
Hint: SIP/102
Status: 1

; Номер 102 принял вызов
Event: Newstate
Privilege: call,all
Channel: SIP/102-00000794
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 102
CallerIDName: device
ConnectedLineNum: 101
ConnectedLineName: Anton Oskin
Uniqueid: 1366383392.2838

Event: Newstate
Privilege: call,all
Channel: SIP/101-00000793
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 101
CallerIDName: Anton Oskin
ConnectedLineNum: 102
ConnectedLineName: Anton Oskin
Uniqueid: 1366383392.2837

Event: NewAccountCode
Privilege: call,all
Channel: SIP/102-00000794
Uniqueid: 1366383392.2838
AccountCode:
OldAccountCode:

; Каналы соединены
Event: Bridge
Privilege: call,all
Bridgestate: Link
Bridgetype: core
Channel1: SIP/101-00000793
Channel2: SIP/102-00000794
Uniqueid1: 1366383392.2837
Uniqueid2: 1366383392.2838
CallerID1: 101
CallerID2: 102

Event: Unlink
Privilege: call,all
Channel1: SIP/101-00000793
Channel2: SIP/102-00000794
Uniqueid1: 1366383392.2837
Uniqueid2: 1366383392.2838
CallerID1: 101
CallerID2: 102

; Номер 102 завершил вызов
Event: Hangup
Privilege: call,all
Channel: SIP/102-00000794
Uniqueid: 1366383392.2838
CallerIDNum: 102
CallerIDName: device
ConnectedLineNum: 101
ConnectedLineName: Anton Oskin
Cause: 16
Cause-txt: Normal Clearing

Event: Dial
Privilege: call,all
SubEvent: End
Channel: SIP/101-00000793
UniqueID: 1366383392.2837
DialStatus: ANSWER

Event: Hangup
Privilege: call,all
Channel: SIP/101-00000793
Uniqueid: 1366383392.2837
CallerIDNum: 101
CallerIDName: Anton Oskin
ConnectedLineNum: 102
ConnectedLineName: Anton Oskin
Cause: 16
Cause-txt: Normal Clearing

Event: ExtensionStatus
Privilege: call,all
Exten: 102
Context: ext-local
Hint: SIP/102
Status: 0

Event: ExtensionStatus
Privilege: call,all
Exten: 101
Context: ext-local
Hint: SIP/101
Status: 0

 Полный список команд, доступных через AMI, с краткими описаниями и списком привилегий, необходимых для их выполнения, можно получить, выполнив в консоли Asterisk команду «manager show commands». Команда «manager show command <команда>» выдает справку по синтаксису конкретной команды.

call, outbound, Event, Channel, Подключение, настройка, sip, asterisk, сервер