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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Определение региона звонящего

База знаний Настройка Asterisk
В данной статье рассмотрим, как сделать так, чтобы при звонке определялся регион звонящего абонента.

1. Настройка ODBC и астериска
2. Настройка CallerID Lookup Sources в астериске
3. Настройка CallerID Lookup Sources во FreePBX

4. Блокировка входящих по городу (региону)

1. Настройка ODBC и астериска


Для начала нам потребуется настроить и подключить ODBC как рассказывается в одной из наших статей  к бд asteriskcdrdb.

Далее, нам нужно в бд asteriskcdrdb добавить таблицу destinations в которой будет соответствие кода города и его названия. Готовую можно взять у нас тут (актуальность август 2013 по материалам Википедии без мобильных операторов). Если хочется более подробный список по Операторам, регионам и мобильным, воспользуйтесь ресурсом Россвязи.

После того как таблица импортирована, нам нужно создать функцию ODBC которая бы делала запрос в mysql и по какому либо номеру выдавала город звонящего. Для этого в /etc/asterisk/func_odbc.conf нужно добавить:

[CODE]
dsn=asterisk
readsql=select name from destinations where prefix in (substr('${CALLERID(num)}',2,7),substr('${CALLERID(num)}',2,6),substr('${CALLERID(num)}',2,5),substr('${CALLERID(num)}',2,4),substr('${CALLERID(num)}',2,3)) order by length(prefix) DESC limit 1

В последней строке мы делаем  sql запрос и получаем по найденному префиксу соответствующий город (работать будет для формата номеров 8XXXXXXXXXX или 7XXXXXXXXXX)

Далее делаем core reload и проверяем что нужная нам функция появилась в астериске командой

core show function ODBC_CODE

 

2. Настройка CallerID Lookup Sources в астериске


И так, пол дела сделано, осталось заставить астериск подставлять название полученного город в имя звонящего. Для этого в астериске в контексте где вы описываете входящие вызовы нужно добавить строчку в которой задаем имя звонящего, если есть совпадения по префиксам из нашей таблиц:

exten => 84959898533,1,Set(CALLERID(name)=${ODBC_CODE()}) ;где 84959898533 ваш номер (DID)

контекст примерно выглядит так:

[from-world]
exten => 84959898533,1,Set(CALLERID(name)=${ODBC_CODE()})
exten => 84959898533,n,Dial(SIP/703)

В консоли при входящем звонке видим примерно такую картину

3. Настройка CallerID Lookup Sources через FreePBX


Если у вас FreePBX то для начала нужно создать во вкладке Admin -CallerID Lookup Sources источник из которого мы будем брать имя для входящего CallerID

Т.к. во FreePBX нет необходимого нам источника то после создания любого типа источника нужно будет переписать контекст который отвечает за функцию CID Lookup

Называем к примеру Russia и указываем тип MySQL, остальные данные указываем любые, собственно как и сам тип.

После того как источник создан, заходим в консоль астериска и смотрим контекст cidlookup командой:

dialplan show cidlookup

Теперь нам нужно изменить контекст cidlookup, для этого в файле /etc/asterisk/extensions_override_freepbx.conf воссоздаем контекст который мы только что смотрели в астериске и адаптируем его для работы с ODBC

[cidlookup]
exten => cidlookup_1,1,Set(CALLERID(name)=${ODBC_CODE()})
exten => cidlookup_1,n(return),Return()

Далее в консоли астериска выполняем команду для применения наших настроек:

dialplan reload

И снова смотрим в консоли как теперь выглядит наш контекст:

dialplan show cidlookup

Все, теперь смело в настройках входящей маршрутизации, на нужном маршруте выставляем наш источник Russia

Ждем входящий звонок со стационарного городского телефона и наблюдаем в астериске примерно следующее

4. Блокировка входящих по городу (региону)

Если возникает необходимость блокировки входящих вызовов по городу (например, в каком-то городе разместили объявление с вашим телефонным номером ошибочно), то можно модифицировать наш диалплан, как показано ниже:

exten => cidlookup_1,1,Set(CALLERID(name)=${ODBC_CODE()})
exten => cidlookup_1,n,GotoIf($["${CALLERID(name)}"="Кемеровская о."]?bl-town,s,1) ; добавили эту строку
exten => cidlookup_1,n(return),Return()

Также необходимо описать контекст [bl-town], например вида:

[bl-town]
exten => 1,Progress()
same  => n,Playback(custom/credits,noanswer)
same  => n,Wait(3)
same  => n,Hangup

Если вдруг на телефоне у вас отображаются иероглифы, то в настройках телефона нужно выставить кодировку UTF-8

определение города, определение номера, CID Lookup, ODBC, callerid