По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В сегодняшней статье поговорим об одном очень полезном инструменте Asterisk, который называется Call Flow. Данный инструмент позволяет управлять отправкой вызовов на основании положения переключателя. Переключатель может находиться в режиме Normal и Override. По сути, данный функционал является чем-то наподобие тумблера. Когда он в положении “включено”, входящие звонки будут отправляться по одному назначению, когда “выключено”, по другому. Например, в рабочие часы, необходимо настроить отправку входящих звонков на специальную ринг-группу, а в нерабочие – на IVR. С такой задачей поможет справиться модуль Time Conditions. Но если компания не имеет чётко определенного рабочего времени, то данный модуль уже не поможет, поскольку он переключает режим обработки вызовов автоматически в определенно заданное время.
/p>
С помощью Call Flow переключить “тумблер” можно в любое время и нужный режим обработки вызовов сохранится до тех пор, пока не будет изменен вручную. Для переключения режимов в Call Flow предусмотрены специальные коды (feature code). Существует 100 кодов (0-99), каждый из которых может включать определенный режим обработки вызовов. Чтобы использовать Call Flow нужно ввести специальный индекс ( 0-99) и дополнить его специальным кодом -28. Например, если индекс– 1, то feature code, включающий Call Flow будет *281.
Call Flow Control
Рассмотрим модуль Call Flow Control на примере FreePBX 13. Для того, чтобы открыть панель управления модулем, переходим по следующему пути Applications -> Call Flow.
По умолчанию, никаких записей нет. Жмём кнопку Add и перед нами открывается панель добавления нового переключателя.
Рассмотрим основные параметры, которые нужно настроить:
Call Flow Toggle Feature Code Index – Индекс переключателя. Как было сказано ранее, каждый feature code модуля Call Flow начинается с *28. Индекс это последняя часть кода, который может иметь значения от 0 до 99. Если вы выбрали 1 в качестве индекса, то код будет *281, если 78, то *2878 и так далее.
Description – Описание помогает быстро идентифицировать нужный переключатель среди остальных в списке.
Current Mode – Текущий режим. Выбор начального состояния переключателя Normal (Green/BLF off) или Override (Red/BLF on). Позднее эти кнопки (в дополнение к feature code’у) можно использовать для изменения режима.
Normal (Green/BLF off) - Эта настройка говорит о том, что звонки отправляются по стандартному назначению. Если на телефоне есть BLF, запрограммированный под данный feature code, то в данном состоянии лампочка будет гореть зеленым или не гореть вообще.
Override (Red/BLF on) – Эта настройка, говорит о том, что звонки отправляются по другому (нестандартному) назначению. Если на телефоне есть BLF запрограммированный под данный feature code, то в данном состоянии лампочка будет гореть красным.
Recording for Normal Mode – Позволяет настроить запись, которая будет проигрываться при переключении в нормальный режим. По умолчанию, сначала будет гудок (beep), а затем объявление о том, что feature code деактивирован. Вы можете записать собственное объявление при помощи модуля System Recordings
Optional Password – Опционально можно настроить специальный пароль для использования данного feature code’а. Пользователь, желающий воспользоваться кодом, должен будет сначала ввести пароль на своём телефоне.
Normal Flow Destination – Назначение, куда должны отправляться входящие звонки, когда переключатель находится в режиме Normal (Green/BLF off). Это может быть любое назначение на PBX, как то внутренний номер, IVR, ринг группа и т.д.
Override Flow – Это назначение, куда должны отправляться вызову, когда переключатель находится в режиме Override (Red/BLF on). Это может быть любое назначение на PBX, как то внутренний номер, IVR, ринг группа и т.д.
На примере ниже мы создали переключатель, который в нормальном режиме отправляет все звонки на IVR, а когда включен – на Announcement, который уведомит абонентов о том, что компания не работает. Для использования данного feature code’а, необходимо ввести на телефоне *2852
Разработка и тестирование (QA). Это безусловно крутое и востребованное направление, а спецов по ним на рынке разбирают как горячие пирожки.
Но есть аспекты . без которых вся история с мобильными приложениями, сервисами в интернете, размещенными в облаках и продаваемая по модели SaaS/PaaS или любое другая программная сущность, к которой так или иначе подключаются удаленные пользователи - не заработает.
Поговорим про роль человека, который разбирается в принципах построения сетей, коммутации, маршрутизации данных, о серверных инженерах, спецам по контактным центрам и так далее.
Эти ребята не пишут код в IDE и не имеют тимлида. Но именно от их работы зависит то, будет ли "хрипеть" разговор в трубке телефона в компании, как быстро будут передаваться чувствительные к задержкам данные, и именно они спасут сеть на 10 000 человек от петли маршрутизации и широковещательного шторма. Цена ошибки таких людей - высока, от этого и ценность шарящего сетевика также высокая.
В статье я расскажу об этом направлении, как в него попасть, сколько получают "сетевики", и за кем будущее в этой отрасли.
МТУСИ
Итак, свою историю я начну с прекрасного университета - МТУСИ (Московский технический университет связи и информатики). И именно этот университет посчастливилось закончить мне и большой части нашей команды.
Вообще, как написано в википедии
"Московский технический университет связи и информатики - российский отраслевой университет в области информационных технологий, телекоммуникаций, информационной безопасности и радиотехники."
Теоретически, да и практически, львиную долю кадров будущих инженеров связи готовят именно тут. В какой компании не бывал, с кем не общался, будь то провайдер, банк или интегратор - мтусишники везде. Занимаются сетями передачи данных, телефонией, архитектурой систем передачи или информационной безопасностью.
Университет - прекрасный. Преподавательский состав - прекрасный. Но материал, которому нас учили на 5 курсе университета в 2015 году был о том, как работает декадно шаговая АТС. Чтобы вы понимали, декадно шаговые АТС появились в СССР сразу после второй мировой войны. Забавно, но это была в прямом смысле громкая станция - там щетки скользили по специальным ламелям и издавали звуки. И вот спустя 70 лет, выпускаясь из университета, мы изучаем декадно - шаговый искатель. Кстати, вот он:
Тогда как телефонные системы, которые на тот момент существовали в энтерпрайзе, с которыми нам реально предстояло работать выглядели вот так:
В формате гибких программных приложений, в которых работают цифровые стандарты на базе IP протокола. Они имеют графический интерфейс на английском языке, а также программную консоль для более хардового управления, если хочется действительно залезть под капот.
Само собой, проблема известная и касается не только университета связи. Вы смотрели интервью Юрия Дудя с экономистом Сергеем Гуриевым?
Вы наверное помните, что там Дудь приводит цитату Гуриева, что он как - то сказал, что, "Российских студентов учат непонятно чему". На что Гуриев сказал, что рынок труда и российская система образования не связана, что плохо.
И это правда. Выходя из стен университета, ты имеешь отличный разговорный навык, но не актуальный знания, которые ждет от тебя работодатель и рынок.
Тут мы получили вывод №1:
Курсы Cisco CCNA
Я стал осознавать это примерно в конце второго курса, когда немного поработал в технической поддержке одного из интернет - провайдеров, который оказывал услуги для юридических лиц - это были каналы связи, услуги виртуальных частных сетей (VPN), телефонные номера.
Это был клевый опыт, а особенно, я помню одного из ведущих инженеров - это был дядька, который также закончил МТУСИ. На 70 - 75% он состоял из русского мата, но привыкнув, из его поучительных речей, когда он заходил к нам в поддержку, я понял главное - знания, полученные уже, и те, которые предстоит получить в ближайшие 3 года обучения - мне не пригодятся. Кстати, здесь хорошо подходит старый мем (они даже немного похожи):
Уже на стартовой позиции сотрудника технической поддержки меня окружали вендорные решения, то есть решения конкретных производителей: мультиплексоры Eltex, биллинговые системы, SFP модули, коммутаторы доступа, софт свичи, вендор Cisco.
И тут к нам плавно пришло осознание:
Что чтобы попасть во флоу, в рынок и в тренды, нужно учиться работать решениями, которые есть на рынке - то есть с решениями конкретных производителей. Причем не просто уметь кнопки нажимать и давать команды в консоли - а знать теория и глубоко понимать логику их работы.
Вообще, учеба в МТУСИ проходит в двух зданиях - первые 2 года мы учились на октябрьском поле, а оставшееся время на Авиамоторной. Так вот, переехав на новую территорию к третьему году обучения, мы стали обращать внимание - в здании есть несколько учебных центров.
Там был вендор Alcatel и Cisco. Решение учиться решениям вендора было принято сразу, вопрос был лишь в том - куда пойти - тут включились ассоциации:
Алькатель ассоциировался с:
А Cisco с городом Сан - Франциско:
Через год обучения мы закончили курс Cisco CCNA (Cisco Certified Network Associate) по маршрутизации и коммутации - это наиболее распространённый сертификат из всей линейки сертификации Cisco. Еще через 2 месяца мы подтвердили свои знания и сдали экзамен на получение сертификата и к концу 3 курса уже смогли трудоустроиться на работу в системные интеграторы на полставки на базовые инженерные позиции.
На самом деле, как я говорил раньше, наши ассоциации при выборе учебного центра нас не подвели. В энтерпрайзе (корпоративных ИТ инфраструктурах) решения на базе Cisco встречаются часто. Да и сама циска один из самых крупных вендоров телеком отрасли, а годных специалистов в России, которые могли бы работать с линейкой продуктов не так много.
Тут мы получили вывод №2:
Подвиды
Поговорим про то, какие бывают ребята из отрасли обслуживания инфраструктур:
Инженер по обслуживанию корпоративных систем связи - он же VoIP инженер. Этот человек хорошо разбирается в IP - телефонии, протоколах, знает стеку стека протоколов TCP/IP - зарплата от 50к на старте
Инженер по обслуживанию инфраструктуры информационных систем - он же серверный инженер. Этот человек хорошо разбирается в серверной начинке, знает наизусть Linux Based и Windows системы, отличит первый рейд массив от пятого, знаком с Chef, Ansible и Puppet, и докером - зарплата от 65 - 70 тыр. на старте
Инженер по обслуживанию корпоративной сетевой инфраструктуры - он же сетевик. Разбудив его ночью, он расскажет вам все про модель OSI, знает, как работают коммутаторы и маршрутизаторы нескольких вендоров, а на обеде расскажет вам все о протоколах маршрутизации трафика - от 50к на старте
Это три основные направления в отрасли - безусловно их больше и всех перечислить не получится - обслуживание информационных систем (ПО, разный софт), филд инженер, который работает руками и монтирует железо, инженеры поддержки пользователей и так далее.
С сетевиками и в целом, с этой категорией ребят все хорошо и они в тренде. Есть и будут еще долго. Но предлагаю смотреть дальше.
DevOPS инженер
Будущее за кросс-функциональными ребятами, которые не "заточены" под один продукт, а имеют широкий кругозор и знания.
Именно тут появляется методология DevOps, которая является акронимом от development и operations - то есть от разработка и эксплуатация. Девопс инженер сочетает в себе множество знаний из смежных отраслей, которые особенно актуальны для компаний, занимающихся разработкой софта и управлением большим количество серверов.
Дело в том, что при разработке, могут возникать случаи, когда что-то не работает, или работает не так, как хотелось бы:
В таком случае разработчик говорит:
Сетевик говорит:
И понеслась. Вообще, системные администраторы или сетевые инженеры в одно время базово научились программировать, подарив миру такие продукты как Chef, Puppet или Ansible, которые служат для автоматизации работы серверов. Но так случилось не со всеми - кто то остаётся хардовым сетевым инженером, который на пальцах объяснит вам как работает протокол BGP, но совершенно не понимает в программировании.
Решив проблему понимания между разработчиком и инфраструктурщиком. Тем самым, при достижении уровня понимания между этими ролями, компании могут достичь таких метрик как:
Сокращение времени для выхода на рынок;
Снижение частоты отказов новых релизов;
Сокращение времени выполнения исправлений;
Уменьшение количества времени на восстановления (в случае сбоя новой версии или иного отключения текущей системы).
Итак, попробую сформулировать, по пунктам, что же должен уметь прекрасный DevOps инженер будущего:
Легко ориентируется в Windows и Linux based системах.
Знает инструменты для управления конфигурацией и автоматизации серверов Chef, Puppet, Ansible.
Умеет писать скрипты. Минимум - на пайтоне
Знает сетевые технологии на уровне Cisco CCNA
Этого достаточно, чтобы уже получать в среднем по РФ 100-200 тысяч рублей.
Что забавно: есть город, и это не Москва, где девопс получает получает 160-360 тысяч рублей в месяц.
Как думаете какой?
Правильный ответ - Питер. Именно там девопс оценивается больше всего. Связано ли это с климатом, подвернутыми штанами или очками с Толстой черной оправой - ответить сложно.
Итоги
Итак, мы поговорили о пути инженера по телекоммуникациями, сетевой инфраструктуре, системам связи и инфраструктуры информационных систем. Затронули наиболее быстрые пути развития, обсудили зарплаты на старте и поговорили о том, как стать прекрасным DevOps инженером будущего.
Мы поняли, что ни один вуз не сделает из вас готового к рынку спеца, а чтобы быть таковым - нужно уметь работать с решениями конкретных вендоров, а проще всего это сделать с помощью авторизованных учебных центров.
Задавайте вопросы в комментариях - помогу :)
Вам когда-нибудь приходилось видеть ошибку 1064 при работе с MySQL? Причем она указывает на некие синтаксические ошибки в SQL запросе, и эти ошибки могут быть совсем неочевидны – подробнее расскажем ниже.
Использование зарезервированных слов
У каждой версии MySQL есть свой список зарезервированных слов – эти слова используются для особых задач или особых функций внутри движка MySQL. При попытке использовать какие-то из них, вы получите ту самую ошибку 1064. К примеру, ниже пример SQL запроса, который использует зарезервированное слово в качестве имени таблицы.
CREATE TABLE alter (first_day DATE, last_day DATE);
Как этого избежать? Просто! Только потому что слово alter зарезервировано, это не значит, что его нельзя использовать – нужно просто по-особенному приготовить! Чтобы движок MySQL не воспринимал это слово как команду, мы будем просто использовать кавычки и оно взлетит:
CREATE TABLE ‘alter’ (first_day DATE, last_day DATE);
Недостающая информация в таблице
Иногда какой-то части информации в таблице нет и это может вызвать эту ошибку, если запрос обращался к этим данным. К примеру, если в таблице был список сотрудников, и каждому был присвоен ID, было бы логично предположить, что запрос будет вызывать запись сотрудника вместе с номером ID, например:
SELECT * from employees WHERE employeeID = $id
Если пресловутый $id никогда не был правильно указан, запрос будет выглядеть для MySQL сервера следующим образом:
SELECT * from employees WHERE employeeID =
Т.к запрос по сути пустой, движок MySQL будет выдавать ту самую ошибку 1064. Исправляется это следующим образом – вам нужно каким-то образом вызвать конкретную запись и добавить недостающую информацию, причем сделать это не так просто: если пытаться вызвать запись по уникальному номеру, скорее всего вы увидите точно такую ошибку. Можно с помощью phpMyAdmin вручную выбрать необходимую строку и добавить нужную информацию.
Опечатки в командах
Одной из самых частых причин ошибки 1064 являются опечатки. И иногда можно десять раз посмотреть на команду и не увидеть опечатки – как пример ниже с командой UPDATE:
UDPATE table1 SET id = 0;
Соответственно, проверяйте команды свежим взглядом и старайтесь не пропускать такого. Правильный вариант будет выглядеть так:
UPDATE table1 SET id = 0;
Устаревшие команды
Некоторые команды устарели, и в новых версиях MySQL начинают выдавать хорошо знакомую нам ошибку. К примеру, команда ‘TYPE’ была признана устаревшей в MySQL 4.1 и была полностью удалена в MySQL 5.1, где при попытке использовать ее вы можете видеть ту самую ошибку. Вместо нее необходимо использовать команду ‘ENGINE’.
Ниже неверный вариант:
CREATE TABLE merionet (i INT) TYPE = INNODB;
А вот правильный, модный и современный вариант (как оно должно быть, чтобы не было ошибки):
CREATE TABLE merionet (i INT) ENGINE = INNODB;
Заключение
Как можно видеть, для одной несчастной ошибки, указывающей на синтаксис, может быть целый ряд разных причин. Так что когда вы видите подобную ошибку – вспомните эту статью и проверьте все возможные варианты ?