По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
На просторах Интернет можно найти много инструкций по настройке Asterisk с использованием графического интерфейса FreePBX. И они помогают настраивать и управлять АТС в большинстве случаев. Но гораздо больше возможностей дает настройка «чистого» Asterisk. В статье мы сделаем базовую настройку Asterisk через конфигурационные файлы. Предполагается, что у нас уже установлена и первоначально настроена ОС, скачены и установлены модули dahdi, libpri, iax2, необходимые голосовые файлы и кодеки и проинсталлирован Asterisk. Если вы еще не ничего не установили, то посмотрите в нашей статье как установить Asterisk на CentOS 7 А еще вам понадобится установить sngrep для трассировки и отладки SIP-сообщений. Погнали? Теория Итак, приступаем к внедрению Asterisk. Структура используемых Астериском директорий следующая: /usr/lib64/asterisk/modules – тут находятся загружаемые модули; /var/log/asterisk – тут находятся лог-файлы, в том числе и лог звонков (если не настроено другое); /var/spool/asterisk – тут находятся подпапки, в которых находятся бэкапы, записи разговоров, голосовая почта, факсы и так далее; /var/lib/asterisk – тут находятся подпапки, в которых находятся звуковые файлы для музыки на удержании, звуковые файлы для выбранных языков (например для проигрывания голосовых сообщений в IVR), записанные голосовые сообщения для приветствия и так далее. Конфигурационные файлы находятся в папке /etc/asterisk. Для работы каждого модуля Asterisk необходим конфигурационный файл. Эти файлы (с расширением .conf), содержат определения каналов, описывают различные внутренние сервисы, определяют местоположения других модулей, устанавливают связь с диалпланом. Необязательно настраивать все файлы. Требуют настройки только те, которые необходимы для вашей конфигурации. Основные конфигурационные файлы: asterisk.conf – определяет глобальные параметры, директории и опции для запуска Asterisk; cdr.conf – определяет настройки для записи параметров вызовов в файл или базу данных; sip.conf – определяет настройки для использования SIP-протокола (как общие, так и параметры для регистрации провайдеров, внутренних пользователей и так далее); rtp.conf – определяет порты для голоса (RTP); iax.conf – определяет настройки для использования IAX-протокола (как общие, так и параметры для регистрации провайдеров, внутренних пользователей и так далее); extensions.conf – основной файл, в котором описывается весь диалплан, то есть правила обработки всех вызовов; features.conf – описывает дополнительные функции (переадресации, парковка вызова, включение записи по запросу и так далее); logger.conf – определяет тип и детальность сообщений, записываемых в файлы журналов; modules.conf – определяет какие модули будут или наоборот не будут загружаться при запуске Asterisk; musiconhold.conf – используется для конфигурации разных классов музыки, используемых в приложениях музыки во время ожидания, и их местоположений; Напомним, что это только часть конфигурационных файлов. Необходимые файлы можно добавлять в любой момент по мере необходимости. Примеры и содержание таких файлов можно найти в архиве по кнопке ниже: Скачать архив Сразу после установки asterisk, если не была выбрана установка базовой конфигурации, в ней нет ни одного файла. Для подключения к asterisk в режиме командной строки необходимо ввести asterisk –rvvvvv r – подключение к уже запущенному процессу; vvvvv – уровень логирования, то есть вывода информации (от слова verbose - v). Чем больше v выставляем, тем более детальная информация будет выдаваться в командную строку; Создаем и редактируем необходимые файлы Начнем с файла asterisk.conf: [directories](!) – указываем расположение необходимых директорий. Знаком (!) указывается признак шаблона. В шаблоне указываются общие настройки, на которые можно ссылаться дальше. [options] – указываем необходимые опции, одна из необходимых maxcalls указывает на количество одновременных вызовов, разрешенных на Asterisk; transmit_silence_during_record = yes - передавать тишину SLINEAR во время записи канала; languageprefix = yes | no - Должен ли код языка быть последним или первым компонентом имени звукового файла? Если выключен, поиск звуковых файлов ведется в формате // Если включен, поиск ведется в формате //; execincludes = yes | no - Разрешить записи #exec в конфигурационных файлах; hideconnect = yes | no - Показывать сообщение о подключении удаленных консолей; dontwarn = yes | no - Отключить предупреждения (warning messages); debug = no - Отладка: No или значение (1-4); maxcalls = 10 - Максимальное число одновременных вызовов; Приступаем к файлу cdr.conf. Комментарии к опциям в конфиге: [general] enable=yes ; включаем саму возможность логирования звонков unanswered=no ; неотвеченные звонки не логируем safeshutdown=yes ; при выключении сервера будем ждать, пока не допишутся ВСЕ логи [csv] usegmtime=yes ;лог date/time в формате GMT. По умолчанию NO loguniqueid=yes loguserfield=yes Закончили. Теперь файл features.conf: [general] [featuremap] ; тут описываем используемые функции и их параметры blindxfer => ## ; безусловный перевод atxfer => *2 ; условный перевод automon => *1 disconnect => ** parkext => 700 ; парковка parkpos => 710-780 ; диапазон портов для парковки context => parkedcalls ; контекст для обработки запаркованных звонков parkingtime => 180 ; время парковки comebacktoorigin => no ; возвращать звонок на инициатора, когда закончилось время парковки вызова parkedplay => both ; кому играть courtesytone когда вызов снимается с парковки. Опции: callee, caller, both или no(по умолчанию) parkedcalltransfers => caller ; Кто может сделать трансфер припаркованного вызова с помощью DTMF. Опции: callee, caller, both или no(по умолчанию) parkedcallrepark => caller ; Кто может перепарковать, припаркованный вызов с помощью DTMF. Опции: callee, caller, both или no(по умолчанию) parkedcallhangup => no ; Кто может закончить, припаркованный вызов с помощью DTMF Опции: callee, caller, both или no(по умолчанию) parkedcallrecording => no ; Кто может инициировать запись, с помощью DTMF. Опции: callee, caller, both или no(по умолчанию).. parkedmusicclass => default ; Класс музыки ожидания для припаркованного, adsipark => no ; Передавать или нет ADSI инфо о припаркованном вызове тому кто припарковал findslot => first pickupexten => *8 ; перехват звонка [applicationmap] ; тут описываем используемые приложения sendsms => *99,peer/both,Macro,sendsms pitch => *00,self/both,Macro,pitch Теперь конфигурируем RTP в файле rtp.conf [general] rtpstart=36600 rtpend=39999 Музыка на ожидании в здании. Открываем файл musiconhold.conf [default] mode=files directory=/var/lib/asterisk/moh/ Следом открываем файл logger.conf: [general] [logfiles] console => notice,warning,error,dtmf,verbose(5) ; уровень детализации сообщений, выводимых в консоль full => debug,notice,warning,error,verbose(9),dtmf,fax,security ; уровень детализации сообщений, выводимых в лог-файл Для удобства работы рекомендуется ограничивать уровень детализации сообщений, выводимых в консоль, но для вывода в файл выставить максимальный уровень детализации. И напоследок - файл modules.conf. Есть 2 варианта: либо читаем все модули и указываем те, которые не надо читать: [modules] autoload=yes noload => codec_g723-ast110-gcc4-glibc-x86_64-core2-sse4.so Либо указываем конкретные модули, которые необходимо прочитать и запрещаем чтение всех. В этом случае для удобства лучше поделить модули на секции. Ниже приведена часть такого варианта: [modules] autoload = no ; Applications load = app_bridgewait.so load = app_dial.so load = app_playback.so ; Bridging load = bridge_builtin_features.so load = bridge_builtin_interval_features.so load = bridge_holding.so ; Call Detail Records load = cdr_custom.so ; Channel Drivers load = chan_bridge_media.so load = chan_sip.so ; Codecs load = codec_gsm.so load = codec_ulaw.so load = codec_alaw.so load = codec_g722.so ; Formats load = format_gsm.so load = format_pcm.so load = format_wav_gsm.so load = format_wav.so ; Functions load = func_callerid.so load = func_cdr.so load = func_pjsip_endpoint.so ; Core/PBX load = pbx_config.so ; Resources load = res_musiconhold.so load = res_pjproject.so load = res_pjsip_acl.so В данной статье мы используем первый вариант. На этом с настройкой основных файлов закончим. В дальнейшем по мере необходимости в них можно вносить изменения. Все последующие настройки мы будем вносить в файлы sip.conf и extensions.conf. Погнали к созданию и регистрации внутренних абонентов. Создание и регистрация внутренних абонентов В sip.conf указываем сначала общие параметры SIP для Asterisk: [general] bindaddr=0.0.0.0 ; указываем IP-адрес и порт, на котором будет приниматься bindport=5060 ; SIP-трафик language=ru ; используемый язык для голосовых сообщений alwaysauthreject=yes allowguest=no ; запрещаем принимать «гостевые» звонки, то есть вызовы от незарегистрированных пользователей Так же в этой секции можно указать поддерживается ли видео, время регистрации, перечислить локальные сети, указываем внешний IP-адрес в случае использования NAT и так далее. В случае, когда у нас есть разные группы абонентов (например, есть несколько отделов, подразделений либо другие какие-то признаки группировки абонентов или абонентов большое количество), рекомендуется использовать шаблоны, в которые можно выносить обобщенные настройки. Имя шаблона берется в скобки [ ] и следом указывается (!). В шаблоне можно указать контекст для этих абонентов, используемые кодеки, разрешенные/запрещенные сети для регистрации этих абонентов, использование NAT и так далее. Пример шаблона приведен ниже: [office](!) type=friend deny=0.0.0.0/0.0.0.0 permit=192.168.10.0/255.255.255.0 host=dynamic context=from-internal nat=no qualify=yes directmedia=no disallow=all allow=alaw allow=ulaw dtmfmode=info И таких шаблонов можно может быть несколько. Теперь для создания записи для регистрации абонентов нам достаточно указать только отличительные параметры, такие как внутренний номер, имя абонента, пароль для регистрации и так далее. [НОМЕР](ШАБЛОН) callerid=ИМЯ secret=ПАРОЛЬ callgroup=5 ; номер группы вызова pickupgroup=1,2,3,4,5 ; номера групп перехвата вызовов Пример настройки: В результате, по команде sip show peers мы видим зарегистрированных пользователей Абоненты зарегистрировались, но позвонить даже между собой они пока не могут. Для того, чтобы они могли совершать и принимать звонки необходимо настроить маршрутизацию (или диалплан). Делать это мы будем в файле extensions.conf, там тоже есть своя структура. И тут мы снова немного погружаемся в теорию: Диалплан состоит из следующих основных элементов: контексты; добавочные номера; приоритеты; приложения; Контекст – часть (раздел) диалплана, описывающая алгоритм обработки вызова и изолированная от остального диалплана. Содержит дополнительные номера (extension). Дополнительные номера, определенные в одном контексте, полностью изолированы от добавочных номеров в другом контексте, если это не разрешено специально. Так же с помощью контекстов можно ограничивать доступ к различным функциям (например к междугородним или международным звонкам). Имя контекста заключается в квадратные скобки []. Рекомендуется создавать разные контексты для внутренних абонентов и для транков. В начале диалплана находятся два специальных контекста, [general] и [globals] [general] – содержит список общих настроек диалплана; [globals] – содержит глобальные переменные; Эти два контекста являются специальными. Контекст является одним из обязательных параметров как для абонента, так и для транка. Asterisk определяет контекст для обработки по тому принципу откуда пришел вызов, а не куда он пришел, то есть если пришел вызов на мобильный номер от абонента, то применяться будет тот контекст, который прописан у конкретного абонента, а не указанный в транке. Добавочные номера – это широкое понятие, которое определяет уникальные последовательности шагов (каждый шаг включает приложение), которые Asterisk будет применять к вызову по этой линии. В каждом контексте может быть задано столько добавочных номеров, сколько требуется. При вызове конкретного добавочного номера (входящим или внутренним звонком) Asterisk будет выполнять шаги, определенные для этого добавочного номера. Поэтому именно добавочные номера определяют, что происходит со звонками при их обработке соответственно диалплану. Полный добавочный номер состоит из трех компонентов: Имени (или номера). В качестве имени может быть использованы любые комбинации цифр и букв; Приоритета (каждый добавочный номер может включать множество шагов; порядковый номер шага называется его приоритетом); Приложения (или команды), которое выполняет некоторое действие над вызовом; Эти три компонента разделяются запятыми: exten => имя,приоритет,приложение() Есть ещё зарезервированные добавочные номера: s - когда в контекст поступают вызовы, для которых не указан конкретный добавочный номер, они передаются на добавочный номер s. (s - сокращение от start (начало), поскольку именно здесь начнется обработка вызова, если не передана информация о добавочном номере.; i - когда абонент нажимает не ту кнопку (не существующий добавочный номер), вызов направляется на добавочный номер i; t - если абонент слишком долго не нажимает кнопку после запуска приложения WaitExten(), вызовы направляются на добавочный номер t (время ожидания по умолчанию - 10 с); h - экстеншен обрабатываемый при завершении вызова. После того как медиаканал закрылся; Иногда можно встретить использование same вместо exten. Это применяют в основном с автоматическим выставлением приоритета, то есть same => n и означает «тоже самое, продолжение предыдущего» Приоритеты – последовательность выполнения приложений. Каждый приоритет пронумерован последовательно, начиная с 1, и выполняет одно определенное приложение. В Asterisk есть еще приоритет n, что означает «следующий». Каждый раз, когда Asterisk встречает приоритет n, она берет номер предыдущего приоритета и добавляет 1. Это упрощает внесение изменений в диалплан, поскольку теперь не надо изменять номера всех шагов. Приложения – выполняет определенное действие в конкретном дополнительном номере (например воспроизведение звука, прием тонального ввода, вызов канала, разрыв соединения и так далее). Для выполнения некоторых приложений, таких как Answer() и Hangup(), не требуется никаких дополнительных инструкций. Некоторым приложениям необходима дополнительная информация. Эти данные, называемые аргументами, могут передаваться в приложения, чтобы оказывать влияние на то, как они выполняют свои действия. Чтобы передать аргументы в приложение их указывают через запятую в круглых скобках, следующих за именем приложения. Для внесения комментариев в файл extensions.conf используют ; - вы уже могли об этом догадаться, судя по нашим комментариям прямо в конфигах :) Таким образом можно как делать пометки для себя, так и делать невыполнимыми строки конфигурации (например, во время отладки) Теперь давайте вернемся к нашим созданным абонентам. Создадим контекст, который указан у абонентов (context=from-internal) В нем мы прописали что при наборе номера (ИМЯ), с приоритетом 1 выполнить приложение Dial c параметрами ПРОТОКОЛ/НОМЕР. Когда номеров немного, то можно конечно и так описывать. Но более правильно и красиво сделать тоже самое, но с использованием «маски»: То есть при наборе любого номера из диапазона 10хх (шаблон показан нижним подчеркиванием) выполнить вызов с приоритетом 1 через приложение Dial с параметрами ПРОТОКОЛ/НАБРАННЫЙ_НОМЕР, время вызова 60 секунд и можно использовать перевод звонка (transfer). Шаблон номера - это уникальный набор цифр, который определяет использование этого номера. Если набранный номер соответствует этому шаблону, то последующие номера не рассматриваются. Формат заполнения шаблона: X - совпадение любой цифры от 0 - 9; Z - любая цифра от 1 до 9; N - совпадение любой цифры от 2 - 9; [1237-9] - соответствует любым цифрам или буквам и скобках (в этом примере,1,2,3,7,8,9); Перечитываем диалплан в консоли Asterisk командой dialplan reload и видим выполнение вызова. Таким образом мы можем придумать и реализовать практически любой диалплан. Например для запрета вызовов на международную связь достаточно прописать 3 строчки: То есть при наборе 810 будет проиграно сообщение destination-closed (если оно было загружено в Asterisk) и будет отправлен сигнал отбоя. Создание и регистрация транков Ну, начнем с того, что IP-транки, используемые в Asterisk, бывают 2-х видов – SIP и IAX. SIP-транки в основном используются для подключения провайдеров, а IAX-транки для подключения других Asterisk. Транки могут быть с регистрацией (то есть когда провайдер выдает логин, пароль и адрес или домен для регистрации у него) и без регистрации (то есть когда подключение идет по IP-адресу без логина и пароля). В случае с регистрацией в файле sip.conf необходимо сразу после секции [general] указать строку регистрации в формате: register => ЛОГИН:ПАРОЛЬ@SIP-ПРОВАЙДЕР/НОМЕР Тут: SIP-ПРОВАЙДЕР - указывается или IP-адрес провайдера или его домен; ЛОГИН:ПАРОЛЬ - выдаются провайдером для подключения; НОМЕР - указывается городской номер, выданный провайдером для совершения звонков; Рассмотрим создание SIP-транка с регистрацией. Опять же если у нас несколько (до 3-5) таких транков, то можно их описать каждый отдельно. А если из больше или в дальнейшем планируется увеличить их количество, то можно использовать шаблон для подключения к оператору. [voip-provider](!) ; имя шаблона type=peer ; тип подключения context=from-trunk ; используемый контекст для обработки вызовов disallow=all ; выключаем все кодеки allow=alaw ; указываем используемые кодеки allow=ulaw insecure=invite,port ; не запрашивать авторизацию на входящие звонки qualify=yes ; проверка доступности directmedia=no ; запрещаем установление прямых соединений для передач голоса dtmfmode=rfc2833 ; указываем используемый тип DTMF дальше достаточно описать конкретные настройки для конкретного оператора и указать какой шаблон использовать [ОПЕРАТОР-1](voip-provider) defaultuser=ЛОГИН-1 fromuser=ЛОГИН-1 secret=ПАРОЛЬ-1 host=ДОМЕН1- ИЛИ IP-АДРЕС ДЛЯ ПОДКЛЮЧЕНИЯ fromdomain= ДОМЕН-1 ИЛИ IP-АДРЕС ДЛЯ ПОДКЛЮЧЕНИЯ [ОПЕРАТОР-2](voip-provider) defaultuser=ЛОГИН-2 fromuser=ЛОГИН-2 secret=ПАРОЛЬ-2 host=ДОМЕН-2 ИЛИ IP-АДРЕС ДЛЯ ПОДКЛЮЧЕНИЯ fromdomain= ДОМЕН ИЛИ IP-АДРЕС ДЛЯ ПОДКЛЮЧЕНИЯ Дальше указываем строки для регистрации у данных операторов: register => ЛОГИН-1:ПАРОЛЬ-1@ДОМЕН-1/НОМЕР-1 register => ЛОГИН-2:ПАРОЛЬ-2@ДОМЕН-2/НОМЕР-2 Перечитываем файл sip.conf и проверяем регистрации: В случае подключения транка без регистрации можно использовать тот же шаблон, а в настройках транка указать изменяемые параметры [AST10SIP](voip-provider) type=friend ; для транка без регистрации указываем friend (то есть мы доверяем этому подключению) port=5060 ; указываем порт для подключения insecure=port,invite host=IP-АДРЕС_ПРОВАЙДЕРА context=from-trunk-sip-AST10SIP ; если обработки вызовов через этот транк используется другой контекст, то указываем его тут. Перечитываем файл sip.conf и проверяем регистрации: Теперь рассмотрим создание IAX-транка. Для настройки IAX-транков используется файл iax.conf, который содержит всю информацию, необходимую Asterisk для создания и управления каналами, работающими по протоколу IAX. Структура его примерно такая же, как и у sip.conf: [general] ; указываем глобальные параметры для протокола IAX bindaddr=0.0.0.0 bindport=4569 ; по-умолчанию IAX-протокол использует порт 4569 можно оставить его, а можно и переопределить language=ru ; указываем строки для регистрации транков register => msk-spb:SuperPASS@10.10.10.10 [msk-spb] username = msk-spb ; логин для регистрации на удаленной стороне type = friend trunk = yes secret = SuperPASS ; пароль для регистрации qualify = yes host = 10.10.10.10 ; IP-адрес удаленной стороны disallow= all context = from-iax ; контекст для обработки вызовов, поступающих через этот транк allow = alaw allow = ulaw Сохраняем файл iax.conf, перечитываем и проверяем регистрацию командой iax2 show peers: Если есть абоненты, работающие по протоколу IAX, то их регистрацию описываем тоже в этом же файле аналогично SIP-регистрации. Итак, сейчас мы имеем зарегистрированных абонентов, которые могут звонить друг другу, и зарегистрированные транки. Внутренних абонентов мы можем группировать по отделам: exten => 500,1,Playback(it-otdel) ; проигрывается сообщение it-otdel exten => 500,1,Dial(SIP/1001,5),Tt ; 5 секунд вызов идет на номер 1001 exten => 500,n,Dial(SIP/1002&SIP/1003) ; потом вызов идет одновременно на 1002 и 1003 Можем настраивать различные функции, запускать различные команды (в том числе и для выполнения через ОС), настраивать запись и прослушивание разговоров и так далее: ; ответить, подождать 2 секунды и положить трубку exten => 060,1,Answer() same => n,Wait(2) same => n,Hangup() ; ответить, проиграть сообщение hello-world и положить трубку exten => 061,1,Answer() same => n,Playback(hello-world) same => n,Hangup() ; записать сообщение в файл somefile.gsm и потом его проиграть exten => 067,1,Record(/tmp/somefile.gsm,3,30) same => n,Playback(/tmp/somefile) Для совершения звонков через созданные и зарегистрированные транки SIP и IAX: Допустим через транк IAX у нас подключен другой Asterisk с внутренней нумерацией, начинающейся с 1, 2, 3. И для вызова этих абонентов мы будем использовать префикс (код выхода на маршрут) 2. Тогда строки настройки будут следующие: exten => _2[1-3].,1,Dial(IAX2/msk-spb/${EXTEN:1},30,r) exten => _2.,2,Hangup() То есть при наборе, начинающемся с 21-23, будет осуществлен вызов через транк msk-spb по протоколу IAX набранного номера, предварительно «отрезав» 1 (первую) набранную цифру. Если в течение 30 секунд не будет получен ответ, то вызов будет прекращен. Для выхода в город мы используем транк с оператором-1 и префикс выхода будем использовать 9 exten => _9849[589]XXXXXXX,1,Dial(SIP/ОПЕРАТОР-1/${EXTEN:1}) ;то есть при наборе, начинающемся с 9, будет осуществлен вызов через транк ОПЕРАТОР-1 по протоколу SIP набранного номера, предварительно «отрезав» 1 (первую) набранную цифру Тут важно понимать, что все, что мы реализовываем для внутренних абонентов, должно быть описано в соответствующем контексте. Теперь перейдем к транкам и входящим звонкам. Соответственно для того, чтобы принимать входящие вызовы, необходимо прописать маршрутизацию уже в контексте транка (context=from-trunk или context = from-iax) Для возможности через транк осуществлять вызов нашего внутреннего абонента (например через транк со встречной АТС) необходимо в контекст транка вставить exten => _10XX,1,Dial(SIP/${EXTEN},60,tTm) Давайте рассмотрим реализацию обработки входящего вызова от оператора (вызов на городской номер) через создание меню IVR и реализуем ещё определение рабочего и нерабочего времени. Схема обработки входящего вызова следующая: Рабочее время у нас определено с 9:00 до 19:00 и с понедельника по пятницу. При поступлении звонка в нерабочее время после сообщения с приветствием (01-hello) проигрывается сообщение с указанием рабочего времени (07-working-hours). При поступлении звонка в рабочее время (проверка осуществляется в строке GoToIfTime(09:00-19:00,mon-fri)) после приветствия осуществляется переход в другой контекст ([working-time]), где предлагается выбрать необходимый пункт меню (0 – вызов секретаря, 1 – вызов на группу тех. поддержки, 2 – переход в другое меню выбора (GoTo(ivr-2,s,1)), в котором по такому же принципу осуществляется выбор. В каждом меню реализован донабор внутренних номеров (exten => _1xхx,1,NoOp), обработка неправильного набора номера (exten => i,1,NoOp), обработка в случае, что если ничего не выбрали (exten => t,1,NoOp), вызов переводится на секретаря. Естественно необходимо загрузить все используемые голосовые файлы в /var/lib/asterisk/sound/ru в случае использования русского языка. Тут давайте немного по-подробнее. Как мы уже указывали выше в системе мы определили какой основной язык у нас будет использоваться для голосовых файлов (в файле sip.conf параметр language = ru). Это значит, что Asterisk будет искать имена файлов, которые мы указываем, например, в меню ivr в папке /var/lib/asterisk/sound/ru (смотрим обозначения директорий при запуске asterisk в начале статьи). Если бы мы использовали в качестве основного языка английский, то папка была бы /var/lib/asterisk/sound/en. В каждой из этих папок находятся голосовые файлы выбранных языков и в выбранных форматах, указанных при компилировании asterisk. Если мы хотим записать свои сообщения (персональные приветствия, необходимые объявления, произносимые в создаваемых меню ivr и так далее), нам необходимо положить эти файлы в папку с соответствующим языком. Сами файлы при этом можно записать любой звукозаписывающей программой (хоть программой Звукозапись, входящей в стандартный дистрибутив любой версии Windows) и сохранить в формате wav (несжатый голос, 8кГц, 16 Бит, Моно) Тут главное не перепутать имена файлов, находящихся в папке с голосовыми сообщениями, с именами, указанными в ivr меню. при этом в ivr меню имена указываются без расширения. Сам листинг приведен ниже. [from-trunk] exten => _X.,1,NoOp(Проверка времени: Если попали в диапазон - переходим в контекст working-time, если нет - продолжаем выполнение) same => n,Answer() same => n,Playback(01-hello) same => n,GoToIfTime(09:00-19:00,mon-fri,*,*?working-time,s,1) same => n,Playback(07-working-hours) same => n,Hangup() [working-time] exten => s,1,Answer() same => n,Background(01-ivr1) same => n,StartMusicOnHold() same => n,WaitExten(5) ; exten => 0,1,NoOp(Если нажали "0" - звоним секретарю) same => n,Playbacr(ostavaites-na-linii) same => n,Dial(SIP/1005,30,mtT) same => n,Hangup() ; exten => 1,1,NoOp(Если нажали "1" - звоним на группу вызова: 1001+1002) same => n,Playback(it-otdel) same => n,Dial(SIP/1001&SIP/1002,30,mtT) same => n,Hangup() ; exten => 2,1,NoOp(Если нажали "2" - перенаправляем на ivr-2) same => n,GoTo(ivr-2,s,1) ; exten => _1xхx,1,NoOp(Прямой набор внутренних номеров) same => n,Playback(ostavaites-na-linii) same => n,Dial(SIP/${EXTEN}15,mtT) same => n,Hangup() ; exten => i,1,NoOp(Обработка ошибочного набора:i=illegal) same => n,Playback(oshibka) same => n,Dial(SIP/1005,30,r) ; exten => t,1,NoOp(В случае, если не дождались нажатия) same => n,Playback(ostavaites-na-linii) same => n,Dial(SIP/1005,30,m) ; [ivr-2] exten => s,1,Background(02-ivr2) same => n,StartMusicOnHold() same => n,WaitExten(5) ; exten => 1,1,NoOp(Если нажали "1" - звоним на 1001) same => n,Dial(SIP/1001,30,mtT) same => n,Hangup() ; exten => 2,1,NoOp(Если нажали "2" - звоним на 1002) same => n,Dial(SIP/1002,30,mtT) same => n,Hangup() ; exten => _1xхx,1,NoOp(Прямой набор внутренних номеров) same => n,Dial(SIP/${EXTEN}15,mtT) same => n,Hangup() ; exten => i,1,NoOp(Обработка ошибочного набора:i=illegal) same => n,Playback(oshibka) same => n,Dial(SIP/1005,30,r) ; После сохранения файла extensions.conf перечитываем диалплан в консоли (dialplan reload) и проверяем. На этом закончим с примерами. Конфигурируя Asterisk через конфигурационные файлы, мы получаем возможность реализовать практически любую логику работы, проводить интеграции со сторонними сервисами, запускать и выполнять скрипты на уровне ОС и так далее.
img
VMware является лидером в области технологий виртуализации и облачных вычислений и предоставляет решения для виртуализации сетей и настольных ПК. VMware изменила мир технологий с физического на виртуальный на основе программного обеспечения. Благодаря внедрению виртуальной среды для консолидации аппаратной инфраструктуры на рынке день ото дня растёт необходимость в профильных экспертах. Для управления и обслуживания бизнеса организации требуется опытный персонал. Для выбора лучших талантов на рынке проводятся несколько технических собеседований. Ниже приведены некоторые основанные на сценариях вопросы и ответы опытных ИТ-администраторов (опыт работы до 5 лет) по технологии виртуализации центров обработки данных, которые могут быть использованы для оценки технических и практических знаний кандидата. 1. Администратор хочет подключить к ESXi хосту непосредственно с веб-клиента vSphere. Какие порты нужно открыть? Обычно веб-клиент vSphere используется для подключения к серверу vCenter, а VClient - для подключения к хостам ESXi. Но vSphere Web Client также может использоваться для подключения к хостам. Для этого потребуется открыть порты TCP 443, TCP и UDP 902, а также TCP 903, которые должны быть открыты из Security Profile. 2. Неверное время на хосте ESXi 6.x. Что должен сделать администратор для устранения этой проблемы? Чтобы исправить время на хосте ESXi, нужно изменить время хоста с помощью клиента vSphere и подправить настройки NTP в файле /etc/ntp.conf. 3. Администратор хочет завершить работу хоста ESXi. Какой параметр должен использоваться в Direct Console User Interface (DCUI) для выполнения этой задачи? Для завершения работы хоста из консоли (DCUI) администратор нажимает клавишу F12. 4. Администратор подключается к хосту ESXi через vCenter Server с помощью веб-клиента vSphere, но напрямую через VClient не может. Что он должен сделать для прямого доступа к хосту ESXi? Если хост ESXi, доступен через vSphere Web Client, и не доступен напрямую, следует проверить не включена ли блокировка (Lockdown). Если включена, нужно его отключить. Поскольку при включённой функция блокировки доступ к хостам ESXi возможен только через сервер vCenter; получить прямой доступ ни к одному хосту невозможно. 5. Администратор хочет использовать центр сертификации VMware (VMCA) в качестве промежуточного центра сертификации (Intermediate CA). Он уже заменил корневой сертификат и сертификаты машин (Intermediate CA). Что ему делать дальше? После замены корневого сертификата и сертификата машины (Intermediate CA) необходимо выполнить следующие два шага: Замена Solution User Certificate (Intermediate CA) Замена сертификата службы каталогов VMware. 6. Если на хосте ESXi включен режим строгой блокировки, какое действие должен выполнить администратор, чтобы пользователям с правами администратора разрешить доступ к оболочке ESXi или SSH? Администратор должен добавить пользователей в список исключений и включить службу, чтобы разрешить доступ к оболочке ESXi или SSH. 7. SSO является важным компонентом сервера vCenter. Какой компонент SSO выдает токены SAML (Security Assertion Markup Language)? Токены SAML предоставляет компонент VMware Security Token Service службы SSO. 8. Какой допустимый источник удостоверений используется для настройки SSO vCenter? Допустимым источником удостоверений для настройки vCenter SSO является OpenLDAP. 9. Что происходит с файлами в общем хранилище при удалении библиотеки компонентов? При удалении библиотеки компонентов все хранящиеся в ней файлы будут удалены. 10. Какое максимальное количество процессоров vCPU может быть выделено для виртуальной машины в vSphere 6.0? Для виртуальной машины vSphere 6.0 может быть выделено не более 128 vCPU. 11. Пользователь домена Windows может войти в систему vSphere с помощью веб-клиента vSphere. Каковы требования к доступности и функциональности этой функции? Администратор может разрешить пользователям входить в vSphere Web Client используя сеанс Windows. Для этого нужно установить подключаемый модуль браузера vSphere Web Client Integration на каждом компьютере, с которого будет выполняться вход пользователя. Пользователи должны войти в Windows с помощью учетных записей Active Directory. Кроме того, администратор должен создать допустимый источник удостоверений SSO для домена пользователей. 12. Администратор хочет клонировать виртуальную машину с помощью клиента vSphere. Чем можно объяснить отсутствие опции Clone в контекстном меню? Клонирование виртуальной машины может быть выполнена с сервера vCenter, к которому подключены через веб-клиент vSphere или VClient. При прямом подключении к хосту ESXi клонирование виртуальной машины невозможно. 13. Что произойдет, если файл .nvram будет случайно удален из виртуальной машины? NVRAM-файл используется для сохранения состояния BIOS виртуальной машины. Если он будет удален по какой-либо причине, то файл .nvram будет создан снова при включении виртуальной машины. 14. Администратор хочет подключиться к хосту ESXi 6.x через клиент vSphere 5.5. Что произойдет? Если администратор попытается подключиться к хосту ESXi 6.x с клиента vSphere 5.5, система предложит администратору запустить скрипт для обновления клиента vSphere. 15. Какой из дополнительных частных сетей VLAN (PVLAN) может отправлять пакеты в изолированную сеть PVLAN? Неразборчивый тип PVLAN может передавать пакеты в изолированную PVLAN. 16. При установке vCenter какие роли предлагаются по умолчанию? При установке vCenter предлагаются роли пользователя виртуальной машины и администратора сети. 17. Что произойдет, если для программного хранилища FCoE произойдет ошибка отказа всех путей (APD)? Если все пути находятся в нерабочем состоянии, на сетевых портах активируется протокол связующего дерева. 18. Какие методы доступны для обновления ESXi 5.x до ESXi 6.x? Для обновления могут использоваться vSphere Update Manager (VUM), средство командной строки esxcli и vSphere Auto Deployment. 19. Что должен сделать администратор перед обновлением оборудования виртуальной машины? Перед обновлением оборудования виртуальной машины необходимо создать резервную копию или моментальный снимок виртуальной машины, обновить VMware Tools до последней версии и убедиться, что виртуальная машина хранится в хранилище данных VMFS или NFS. 20. При установке vCenter Single Sign-On не удается выполнить обновление сервера vCenter. Что необходимо сделать для завершения процесса обновления? Перед обновлением vCenter Server убедитесь, что служба VMware Directory может остановиться, перезапустив ее вручную. Если сервис может быть остановлен вручную, можно запустить процесс обновления сервера vCenter. 21. Какие предварительные условия следует учитывать перед обновлением vCenter Server Appliance? И в случае повышения категории vCenter Server Appliance (vCSA) и после новой установки будет установлен подключаемый модуль интеграции клиентов (CIP). 22. После развертывания PSC сервер vCenter Server не устанавливается и выдает следующую ошибку: Could not contact Lookup Service. Please check VM_ssoreg.log. (Не удалось связаться со службой поиска. Проверьте VM_ssoreg.log). При появлении этой ошибки убедитесь, что часы на хост-компьютерах, на которых работают PSC, vCenter Server и веб-клиент vSphere синхронизированы. Кроме того, убедитесь, что порт 7444 между PSC и сервером vCenter не блокируется межсетевым экраном. 23. Администратор установил Windows Server 2008 и хочет установить на него vCenter Server, но при установке на виртуальную машину Windows произошел сбой? Для установки vCenter Server требуется 64-разрядная ОС Windows. Если вы попытаетесь установить его в Windows Server 2008 ничего не получится. vCenter Server может быть установлен на ОС Windows Server 2008 R2 или более поздней версии. 24. Какова минимальная версия виртуального оборудования, необходимая для vFlash Read Cache? vFlash Read Cache был первым в vSphere 5.5, а минимальная версия виртуального оборудования для vSphere 5.5 - 10. 25. Узел ESXi добавлен в vCenter Server, но не отвечает в vSphere Web Client. Какой порт должен быть открыть в брандмауэре? Если администратор не получает от хоста ESXi 6.x в vCenter Server, проблема вызвана блокировкой трафика сетевым брандмауэром. Поэтому он должен проверить, что порт 902 (UDP) не заблокирован брандмауэром. В случае блокировки включите порт из профиля безопасности с помощью веб-клиента vSphere, выбрав указанный хост ESXi в vCenter Server. 26. Предположим, что виртуальная машина неожиданно выключилась. Какие файлы журналов виртуальной машины следует просмотреть для выявления причины и устранения этой проблемы? В данном случае администратор должен проверить файлы журнала vmware.log и hostd.log. 27. В чем может быть причина orphaned (осиротевший) состояния виртуальной машины? Если виртуальная машина находится в состоянии orphaned, это может по причине ошибки в работе функции отказоустойчивости. Виртуальная машина не была зарегистрирована непосредственно на хосте ESXi. 28. При обновлении хоста ESXi 5.5 до ESXi 6.x появляется следующая ошибка: MEMORY_SIZE. Как устранить проблему? Это указывает на нехватку памяти на хосте ESXi для завершения процесса обновления хоста ESXi с ESXi 5.5 до ESXi 6.x. 29. При удалении хоста из распределенного коммутатора vSphere (vDS) возникает следующее сообщение об ошибке: Ресурс «10» используется (The resource ’10’ is in use) Перед удалением vDS убедитесь, что сетевые адаптеры VMkernel на vDS не используются. Если используется какой-либо из ресурсов vDS, появится вышеупомянутое сообщение об ошибке с идентификатором ресурса. 30. Администратор хочет захватить и отследить сетевой трафик для виртуальной машины, но не получает ожидаемого трафика в средстве захвата пакетов. Что он должен сделать, чтобы решить проблему? Если администратору необходимо захватить сетевой трафик для виртуальной машины, он должен включить режим неразборчивости для соответствующей группы портов. Затем можно захватить сетевой трафик с помощью любого инструмента сбора сетевого трафика. 31. Кластер vSAN создается с шестью узлами вместе с доменом отказа, и три из них перемещаются в домен отказа. Один узел отказоустойчивого домена отказал. Что произойдет с оставшимися двумя узлами в домене отказа? При отказе узла-члена отказоустойчивого домена оставшиеся два узла будут считаться недоступными. 32. На каком уровне строится отказоустойчивый домен vSAN? Отказоустойчивый домен настроен на уровне кластера vSAN, и узлы будут добавлены в этот домен. Если какой-либо узел-член отказывает по какой-либо причине, остальные члены также будут рассматриваться как отказавшие. 33. Обнаружено, что активность хранилища виртуальных машин на хосте ESXi 6.x негативно влияет на активность хранилища виртуальных машин на другом хосте, который получает доступ к тому же хранилищу данных VMFS. Какие действия могли бы устранить эту проблему? Для устранения воздействия работы хранилища одной виртуальной машины на работу другой виртуальной машины необходимо включить контроль ввода-вывода хранилища данных (SIOC). Данная технология обеспечивает столь необходимое управление вводом-выводом систем хранения данных и должно использоваться для обеспечения того, чтобы производительность критически важных виртуальных машин не влияла на работу виртуальных машин других хостов, когда возникает конкуренция за ресурсы ввода-вывода. 34. При обновлении хоста ESXi с версии 5.5 до версии 6.0 администратор выполняет следующую команду: esxcli software vib list --rebooting-image. Что делает данная команда? Эта команда отображает все активные VIB (vSphere Installation Bundle). VIB представляет собой коллекцию файлов, таких как tarball или zip, упакованных в единый архив для облегчения распространения. 35. Какие счетчики будут использоваться для устранения проблем с производительностью ЦП виртуальной машины, чтобы продемонстрировать конкуренцию ЦП? Для тестирования производительности хоста ESXi в виде памяти, ЦП и использования сети используется средство ESXTOP. Это отличный инструмент, доступный администраторам VMware для устранения проблем с производительностью. Для настройки ESXTOP потребуется vSphere Client, а также должны быть включены сеансы putty и SSH. Для тестирования производительности ЦП используются счетчики %RDY, %MLMTD и %CSTP. 36. Администратор пытается запустить esxtop, включив SSH и используя putty для устранения проблем с производительностью ЦП, но выходные данные не отображаются. Как решить эту проблему? Для отображения выходных данных в ESXTOP нажмите f и установите звездочку рядом с каждым полем, которое должно отображаться. 37. Администратор хочет отслеживать виртуальные машины на хосте с помощью vCenter Server и отправлять уведомления, когда использование памяти превышает 80%. Что должен сделать администратор на сервере vCenter для выполнения этой задачи? Для мониторинга использования памяти виртуальной машины и получения уведомления при достижении определённого порога, нужно создать уведомление в vCenter Server и привязать действие по отправке уведомлений по электронной почте. 38. Администратор создал кластер DRS, и он стал несбалансированным. Что может быть причиной этому? Кластер DRS может стать несбалансированным, когда правила Affinity препятствуют перемещению виртуальных машин. Кроме того, устройство, подключенное к виртуальной машине, предотвращает миграцию с одного хоста на другой. 39. ИТ-администратор настроил два сервера vCenter в пределах PSC и должен предоставить пользователю право доступа ко всем средам. Какой уровень доступа нужно выдать для этого? Для доступа к нескольким серверам vCenter в пределах PSC требуется глобальное разрешение на доступ ко всем средам. 40. Администратор создал 10 хостов ESXi 6.x с помощью функции автоматического развертывания для нового кластера Test/Dev, и все хосты настроены на получение своего IP-адреса через DHCP. Какой параметр DCUI должен использоваться администратором для продления аренды DHCP для хостов? Для возобновления аренды DHCP для хостов используется опция «Reset Management Network» в консоли ESXi (DCUI).
img
Пока ты читаешь эту статью, в Интернете идёт настоящая война. Сотни тысяч ботов, сканируют сеть в поисках уязвимых систем, доступов со слабыми паролями, открытых баз данных и отсылают тонны спама с вредоносными вложениями. Миллионы зараженных устройств в огромных ботнетах готовы направить терабайты трафика, чтобы положить какой-нибудь ресурс. Сейчас мы попробуем вооружить тебя знаниями о том, какие бывают виды сетевых атак, вредоносного ПО и других угроз информационной безопасности. Погнали! Типы сетевых атак Начнем с самой известной атаки - DoS - Denial of Service (он же отказ в обслуживании). В ее случае злоумышленник отправляет огромное количество запросов к объекту атаки, перегружая его и тем самым, выводя из строя. Цель этой атаки - перегрузить системные ресурсы объекта и тем самым нарушить его нормальную работу. Возможно, ты также слышал про DDoS (или ддос), с еще одной буквой D, которая означает Distributed - распределенный. Разница между ними в том, что в случае DDoS, атака запускается не с одного компьютера, а при помощи множества подконтрольных злоумышленнику устройств, которые заражены вредоносным ПО, заставляющим их совершать атаку - это называется ботнет. Ботнеты могут быть очень большими. Например, самый большой ботнет Necurs только в 2017 году насчитывал свыше 6 миллионов скомпрометированных устройств. Что же это за дырявые устройства такие? Это, как правило “умные” девайсы интернета вещей IoT - лампочки, пылесосы, часы, холодильники, двери и окна, владельцы которых даже не догадываются, что они давно взломаны. Так что, пока ты по дороге домой приказываешь своей “умной” пароварке готовить рагу, она может участвовать в атаке на какой-нибудь банк на другом конце планеты. Кстати, ботнеты применяют не только для DDoS атак, гораздо чаще их применяют для массовой рассылки писем или проще говоря - спама. Однако, это не тот спам, к которому ты привык. Спам, о котором мы говорим, обычно маскируется под совершенно нормальное почтовое сообщение. Например, это может быть поддельное письмо от известной доверенной организации с каким-нибудь документом во вложении. Но как только ты откроешь этот документ, то запустишь в свой компьютер какой-нибудь страшный вредонос, который откроет к нему доступ злоумышленнику или просто заразит твою систему. Или тебя могут попросить перейти по ссылке на внешне знакомый сайт и ввести там свой логин и пароль. Это, кстати, называется фишинг (phishing). Но самое простое и самое прибыльное для злоумышленника - взять твой компьютер в заложники! Для этого он может подсунуть туда шифровальщик, который зашифрует все файлы операционный системы и сделает их нечитаемыми, а затем потребовать выкуп за ключ для расшифровки в биткоинах. Это называется вымогательское ПО или - ransomware. Помимо шифровальщиков, на твоём компьютере, планшете или мобильном телефоне также могут оказаться: Бэкдоры (Backdoor) - программы, которые позволяют злоумышленнику удаленно управлять твоим девайсом или устанавливать на него всякую дрянь Майнеры (Miner) - скрытая программа, которая тихонечко добывает крипту для злоумышленника за счет твоего компьютера Банкеры (Banker) - крадут с твоего девайса всю информацию, связанную с онлайн банкингом и других платежных системах Шпионские программы (Spyware) - отслеживают что ты набираешь с клавиатуры, следят за тем, что происходит на твоем рабочем столе, записывают видео и делают скриншоты и даже - могут получать доступ к твоей вэб камере или микрофону. Рекламное ПО (Adware) - наградит тебя надоедливым, неудаляемым рекламным баннером, от которого невозможно избавиться. Есть также отдельный подкласс такого ПО - Pornware. О содержимом таких баннеров вы догадываетесь Руткиты (Rootkit) - скрывают пребывание любого из озвученных вредоносов на твоем девайсе - стирает логи, прячет процессы. Всю эту гадость принято объединять одним определением - Троян (Trojan), в честь знаменитого Троянского коня. Вирусы - программы, которые заражают файлы на компьютере вредоносным кодом и инфицируют системы вокруг. Черви - тоже распространяют себя от системы к системе, но используют сетевые протоколы или уязвимые устройства. WannaCry, например, распространялся через уязвимость в протоколе SMB. Он просто сканировал весь интернет и нашел серверы с открытым портом 445, на котором и живёт SMB. Вообще, сканирование портов - это первые шаги для совершения атаки. Злоумышленники ищут в Интернете известные порты прикладных уровней - и пробуют пробить уязвимость этих протоколов, например - подсунуть туда какой-нибудь вредоносный код, который система возможно обработает. А если повезет - то и вовсе получить доступ к открытой информации, живущей на этом порту. Ну, а если владелец всё таки защитил доступ к сетевому ресурсу паролем, то злоумышленник может попробовать метод полного перебора или - Bruteforce, - то есть ввод всех возможных комбинаций логина и пароля, и, если ничто не будет блокировать его действия, то рано или поздно такая комбинация будет найдена. Помни - пароль только из цифр или только из букв может быть взломан меньше чем за секунду! Поэтому стоит воспользоваться нашим генератором устойчивых паролей. На этом все! А пока - сохраняйте спокойствие, не открывайте письма с непонятными вложениями, не переходите по подозрительным ссылкам, не используйте слабые пароли, не вводите их на подозрительных сайтах, не устанавливайте программы из недоверенных источников, используйте антивирус, носите шапочку из фольги, мойте руки и тщательно укрепляйте рубежи своей IT инфраструктуры.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59