По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Интерфейс управления Asterisk, или как его называют Asterisk Manager Interface (AMI) представляет собой интерфейс для управления вашей IP – АТС внешними приложениями, путем передачи команд или получения различных телефонных событий. Зачастую, данный интерфейс используется для интеграции 1С и asterisk, что позволяет принимать звонки в интерфейсе 1С, выполнять вызовы, подтягивать карточку клиента при входящем звонке и так далее. Разберем настройку данного интерфейса и параметров подключения к нему на примере настройки через графический интерфейс администратора FreePBX 13 и через консоль сервера (CLI) в настройках CentOS Настройка AMI в FreePBX В верхнем меню навигации, выберите вкладку Settings и далее перейдите в раздел Asterisk Managers, как указано на скриншоте ниже: Далее, для того, чтобы добавить нового пользователя, нажмите на кнопку Add Manager: Откроется окно настройки нового пользователя. Разберем каждый пункт отдельно: Manager Name - Имя пользователя AMI. Не должно содержать в себе пробелы. Manager Secret - Пароль для пользователя AMI. Deny - В данном поле вы можете указать IP – адрес и маску подсети, с которых необходимо запретить подключение к AMI по указанным данным. Если хотите указать несколько подсетей, то используйте символ &. Например, 192.168.1.0/255.255.255.0&192.168.2.0/255.255.255.0 Permit - Укажите IP – адрес и маску подсети, с которых разрешено подключение к AMI через этого пользователя. Синтаксис аналогичен как и в поле Deny. Write Timeout - Укажите таймаут, который будет использовать Asterisk при записи данных через данную AMI учетную запись. По умолчанию, период равен 100 миллисекунд. Следующим шагом будет настройка прав данного пользователя. Для этого, необходимо перейти во вкладку Rights По окончанию настроек нажмите Submit Настройка AMI в CLI Сделаем тоже самое, но через консоль CentOS. Для этого, необходимо подключиться к серверу по SSH и выполнить следующие итерации: Перед началом работ по изменению конфигурации, рекомендуем сделать резервную копию файла. [root@localhost ~]# vim /etc/asterisk/manager.conf //подключаемся к конфигурационному файлу manager.conf Делаем следующие настройки в секции [general]: [general] enabled = yes //включает AMI port = 5038 //порт для подключения к AMI интерфейсу bindaddr = 0.0.0.0 //откуда принимать подключения (по умолчанию, 0.0.0.0 – разрешено подключаться со всех адресов) displayconnects=no ; //отображать ли подключения к Asterisk в командной строке Переходим к настройке самого пользователя. Для этого, под секцией [general] необходимо создать нового пользователя. Дадим ему имя – test с паролем P@ssw0rd : [test] //аналогично полю Manager Name в FreePBX secret = P@ssw0rd //аналогично полю Manager Secret deny=0.0.0.0/0.0.0.0 //аналогично полю Deny permit=127.0.0.1/255.255.255.0 //аналогично полю Permit read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message writetimeout = 5000 //аналогично полю Write Timeout По окончанию настроек, нажмите комбинацию клавиш :x! для сохранения файла. После этого, введите команду: [root@localhost ~]# asterisk -rx "core restart now" Проверяем подключения к AMI Теперь, после настроек, проверим подключение к AMI через созданного пользователя. Для этого, через консоль сервера сделаем подключение по протоколу telnet на порт 5038, который указан в секции [general] в параметре Port, конфигурационного файла manager.conf : [root@localhost ~]# telnet localhost 5038 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Asterisk Call Manager/2.8.0 Action: login Username: test Secret: P@ssw0rd Response: Success Message: Authentication accepted Готово. Ответом на подключения является сообщение Success. Это означает, что интерфейс настроен и готов к работе.
img
Даже если вы новичок в разработке, вы, возможно, слышали о TypeScript. Это относительно новый язык программирования, который был разработан компанией Microsoft и который завоевал сердца многих с самого момента своего выпуска в 2012 году. Что интересно, TypeScript по сути не является самостоятельным языком программирования. На самом деле TypeScript считается расширенной версией языка программирования JavaScript. TypeScript – это расширенная версия JavaScript Расширенная версия языка программирования – это некое расширение, которое добавляет новые функции и расширяет возможности языка. Иными словами, любая написанная на JavaScript программа будет работать и на TypeScript. В этой статье мы вкратце расскажем, что такое TypeScript, зачем он нужен, а также приведем некоторые ключевые отличия, за счет которых он выделяется на фоне JavaScript. Что такое JavaScript? JavaScript ES6 (который также известен как ECMAScript 6) – это клиентский кроссплатформенный прототип-ориентированный язык описания сценариев; создан Бренданом Эйхом. JavaScript широко применяется в разработке клиентской части динамических интерактивных веб-приложений. JavaScript – это язык  с динамической типизацией , то есть проверка соответствия типов происходит в процессе компиляции. Языки с динамической типизацией делают акцент на эффективности работы разработчиков, то есть для того, чтобы довести проект до ума разработчиком потребуется  меньший объем кода .  Языки с динамической типизацией также склонны быть более гибкими, но предлагают код, который, как правило, менее оптимизирован, поскольку для того, чтобы определить, есть ли в коде какие-то ошибки, его  нужно сначала запустить. JavaScript запускается непосредственно в веб-браузере, поэтому для выполнения кода JavaScript не нужны никакие дополнительные ресурсы. Однако отладка череды ошибок за один раз, а не по ходу дела, все равно может стать непомерной задачей.  Примечания : к языкам с динамической типизацией также относятся Python, PHP, Perl и Ruby. После своего появления в 1995 году JavaScript прошел несколько стадий улучшения своей функциональности, что привело к упрощению разработки программного обеспечения. И теперь его можно использовать даже для разработки интерактивных игр! Изначально JavaScript подразумевался как очень простой язык для встраивания в веб-страницу в виде небольших фрагментов кода. А все потому, что в то время веб-браузеры могли обрабатывать всего несколько десятков строк кода без вреда для скорости работы.  Современные же браузеры могут запускать приложения на JavaScript с  сотнями тысяч строк кода.  JavaScript также имеет преимущество благодаря наличию большого исполненного энтузиазма сообщества, подробной документации и большого количества библиотек и фреймворков. Кроме того,  JavaScript поддерживает множество клиентских API , которые могут позволить сократить объем кода, который должен писать разработчик программного обеспечения. Именно поэтому большая часть команд разработки выбирает именно JavaScript. И все же изначально JavaScript не предназначался для использования в больших проектах. Поэтому, несмотря на то, что небольшие проекты можно отладить без проблем, попытка отладить большой проект на JavaScript может оказаться неудачной, а сам процесс трудоемким и длительным.  Примечание : возможно, вы не думали о JavaScript как об объектно-ориентированном языке программирования, но на самом деле он отлично поддерживает ООП! Что такое TypeScript? TypeScript – это язык программирования с открытым исходным кодом, но изначально в 2010 году он выпускался как внутренний продукт Microsoft. TypeScript стал доступен для всех на GitHub в конце 2012 года.  Так как TypeScript считается строгой расширенной версией ECMAScript 2015, то любая программа на JavaScript также может быть рассмотрена как программа на TypeScript. В отличие от JavaScript, TypeScript – это язык программирования  со статической типизацией . Так как это  статический модуль контроля типов, он проверяет поведение определенных переменных перед запуском вашей программы. Это будет так, даже если вы объявляете переменные без указания типа. В таких случаях TypeScript может автоматически назначить типы объявленным переменным. Такой маневр известен как  «выведение типов» и является встроенной функцией и для других языков, например, Kotlin и Scala.  Как только TypeScript назначит тип переменной, он будет использовать его на протяжении всего кода. Такой подход может поспособствовать улучшению согласованности и может помочь устранить потенциальные ошибки еще  до начала компиляции. Однако у всего есть своя цена. Здесь это потеря гибкости, к которой привыкли разработчики JavaScript. Примечание : к языкам со статической типизацией относятся Java, C и C++. Если программист использует язык со статической типизацией, он должен указать тип данных для каждой переменной, которую он объявляет.  В основе TypeScript было 11 целей разработки: Компания Microsoft определила 11 ключевых моментов, которые поспособствовали развитию TypeScript. Статическое определение потенциальных ошибок. Возможность структурирования больших частей кода.  Возможность избежать увеличения времени выполнения программы.  Компиляция в чистый и распознаваемый код на JavaScript. Создание языка, который был бы пригодным для компоновки и на котором было бы легко размышлять. Сохранение полной совместимости с текущими и будущими версиями JavaScript. Сохранение поведения всего кода на JavaScript во время выполнения. Возможность избежать добавления синтаксических структур на уровне выражений. Сделать TypeScript согласованным, и чтобы он допускал возможность стирания. Сделать кроссплатформенный инструмент разработки. Сделать так, чтобы изменение языка не нарушали прошлые версии TypeScript. Преимущества TypeScript TypeScript превосходит JavaScript в двух вещах: TypeScript компилируется в JavaScript : TypeScript преобразует и заменяет свой собственный код действующим кодом на JavaScript в процессе компиляции, позволяя тем самым использовать дополнительные возможности ECMAScript в более старых версиях браузеров, которые обычно их не поддерживают. TypeScript может применять статическую типизацию : статическая типизация выявляет потенциальные проблемы на более ранних этапах жизненного цикла разработки, за счет того, что всем объявленным переменным назначаются типы данных.  Примечание :  полифил – это фрагмент кода (как правило, написанный на JavaScript), который стремиться воспроизвести методы новой функции. Полифиллинг позволяет более старым версиям браузеров поддерживать новые функции, которые обычно ими не поддерживаются.  Транспайлер конвертирует исходный код на одном языке в исходный код на другом языке. В таком случае методы, которые были написаны на TypeScript, компилируются в JavaScript для того, чтобы их можно было запустить в среде JavaScript.  Компилятор TypeScript имеет гибкую изменяемую конфигурацию. Есть большое количество способов регулирования различных аспектов, связанных с проверкой типов и компиляцией. Чем строже проверка, тем больше ошибок может найти компилятор TypeScript. Самая распространенная ошибка в TypeScript – это ошибка, связанная с присваиванием типов. Основная цель модуля контроля типов – убедиться, что для всех значений определены корректные типы. Дополнительные возможности Совместимость : TypeScript поддерживает практически все фреймворки и библиотеки JavaScript; в их числе: React : одностраничное приложение (SPA - single-page application), которое использует виртуальную модель DOM для того, чтобы увеличить объем памяти и улучшить производительности. Vue : написан на TypeScript и легко интегрируется в приложения.  Angular : отлично подходит для быстрого прототипирования, простого тестирования и оптимизации производительности сервера.  Синтаксический сахар : использование строго определенных типов упрощает чтение кода, так как вам не нужно гадать, к какому типу относится та или иная переменная. Всесторонняя поддержка IDE : Visual Studio Code Eclipse Atom WebStorm … и другие! Недостатки TypeScript У TypeScript есть и недостатки. Вы можете оценить их, сопоставив с преимуществами, и решить самостоятельно, подходит он вам или нет.  Вот несколько недостатков, которые следует учесть при принятии решения: Время компиляции : программы, написанные на TypeScript, выполняются быстрее, чем программы, написанные на JavaScript. Кривая обучения: TypeScript немного сложнее, чем JavaScript; для того, чтобы научиться им пользоваться, потребуется время. Несоответствие типов : так как код, написанный на TypeScript, компилируется в код JavaScript, то вы можете столкнуться с нестандартными ошибками и несоответствием типов.  Меньшая гибкость : в TypeScript переменные и параметры менее гибкие. Сравнительная таблица: TypeScript VS JavaScript TypeScript JavaScript Выпущен в 2012 году Выпущен в 1995 году Компилируется в JavaScript Самостоятельный язык Статическая типизация, со строгим контролем типов Динамическая типизация, со слабым контролем типов Компилируемый язык, не может быть выполнен прямо в веб-браузере Интерпретируемый язык, может быть выполнен прямо в веб-браузере Кривая обучения довольно крутая Легкий для изучения Доступно прототипирование Доступно прототипирование Мало документации Подробная документация Растущее сообщество с меньшим количеством ресурсов Большое сообщество разработчиков и ресурсов JavaScript Лучше всего подходит для сложных или крупных проектов Лучше всего подходит для небольших проектов Поддерживает все библиотеки JS Библиотеки JS работают по умолчанию Поддерживает модули, универсальные шаблоны и интерфейсы.  Не поддерживает модули, универсальные шаблоны и интерфейсы Настройка сборки с пакетом npm Не требуется настройка сборки Числа и строки – это интерфейсы Числа и строки – это объекты     Нужно ли мне изучить TypeScript? Если  вы новичок в веб-разработке и планируете работать над небольшими проектами , то для начала вам идеально подойдет JavaScript. Если  вы уже знакомы с JavaScript , то ответ на этот вопрос будет зависеть от того, импонируют ли вам определенные функции TypeScript как разработчику программного обеспечения. В зависимости от ситуации (и ваших приоритетов) иногда может оказаться так, что целесообразнее будет использовать JavaScript, а не TypeScript.  Например, один из самых существенных недостатков компилируемого языка, такого как TypeScript, заключается в  дополнительном времени, которое необходимо для выполнения кода . Если вашим приоритетом является сокращение времени компиляции, то лучше выбрать JavaScript. Если вы больше заботитесь о том, чтобы ваш  код был читабельным , а не о времени его компиляции, то здесь явным преимуществом будет обладать TypeScript. Примечание : возьмите себе на заметку, что разработчики TypeScript обычно получают в среднем более высокую оплату, поскольку их меньше, чем разработчиков JavaScript. И тем не менее, еще одно достижение (в виде нового изученного языка) лишним не будет! Установка Через пакет npm Для начала убедитесь, что у вас есть IDE, диспетчер пакетов Node.js (npm) и компилятор TypeScript. Node.js предоставляет среду, в которой ваш пакет TypeScript сможет работать. Затем откройте командную строку или терминал, и введите следующую команду: npm install -g typescript Если TypeScript был установлен правильно, то вы сможете проверить номер версии с помощью команды tsc –v. Теперь вы можете воспользоваться следующей командой и установить TypeScript в свой локальный проект в качестве зависимости.  npm install typescript --save-dev Через Microsoft Visual Studio Code Для начала убедитесь, что у вас установлена Visual Studio, а также приложение для веб-разработки ASP.NET. Далее : Откройте новый проект в Visual Studio. Щелкните правой кнопкой мыши на папку проекта в обозревателе решений (Solution Explorer).  Щелкните « Manage NuGet Packages » (Управление пакетами NuGet). Во вкладке « Browse » (Обзор) найдите  Microsoft.TypeScript.MSBuild . Нажмите « Install » (Установить). В том случае, если ваш проект не поддерживает NuGet, то вы можете установить расширение TypeScript в Visual Studio, перейдя сюда: Extensions -> Manage Extensions (Расширения -> Управление расширениями).  Подведем итоги Отлично! Мы рассмотрели некоторые основные возможности TypeScript, а также некоторые вопросы, связанные с выбором между TypeScript и JavaScript. Надеюсь, что это краткое введение в TypeScript было для вас информативным и заставило вас задуматься о новом проекте. Кто знает, возможно вы заходите написать его именно на TypeScript.  
img
SSH (Secure Shell) обеспечивает безопасное удаленное соединение между двумя системами. С помощью этого криптографического протокола вы можете управлять машинами, копировать или перемещать файлы на удаленном сервере через зашифрованные каналы. Существует два способа входа в удаленную систему через SSH - с использованием аутентификации по паролю или аутентификации с открытым ключом (вход SSH без пароля). В этом руководстве вы узнаете, как настроить и включить вход по SSH без пароля. Подготовка Нам необходимо: Доступ к командной строке или окну терминала Пользователь с привилегиями sudo или root Локальный сервер и удаленный сервер Доступ по SSH к удаленному серверу через командную строку или окно терминала Перед тем как начать проверьте существующие ключи SSH. Возможно, на вашем компьютере уже есть пара ключей SSH. Чтобы узнать, есть ли у вас в системе ключи SSH, выполните команду: ls -al ~/.ssh/id_*.pub Если в выводе указано, что таких файлов нет, переходите к следующему шагу, который показывает, как сгенерировать ключи SSH. Если они у вас есть, вы можете использовать существующие ключи, сделать их резервную копию и создать новую пару или перезаписать ее. Шаг 1. Создайте пару ключей SSH 1. Первое, что вам нужно сделать, это сгенерировать пару ключей SSH на машине, на которой вы сейчас работаете. В этом примере мы генерируем 4096-битную пару ключей. Мы также добавляем адрес электронной почты, но это необязательно. Команда такая: ssh-keygen -t rsa -b 4096 -C "your_email@domain.com" 2. Затем введите место, где вы хотите сохранить ключи, или нажмите Enter, чтобы принять путь по умолчанию. 3. Также вам будет предложено установить кодовую фразу. Хотя это делает соединение еще более безопасным, оно может прерываться при настройке автоматизированных процессов. Поэтому вы можете ввести пароль или просто нажать Enter, чтобы пропустить этот шаг. 4. Затем в выводе сообщается, где хранятся идентификационный и открытый ключ, а также выдается отпечаток ключа. 5. Убедитесь, что вы успешно создали пару ключей SSH, выполнив команду: ls -al ~/.ssh/id_*.pub Вы должны увидеть путь идентификационного ключа и открытого ключа, как на скриншоте ниже: Шаг 2. Загрузите открытый ключ на удаленный сервер Вы можете загрузить публичный SSH-ключ на удаленный сервер с помощью команды ssh-copy-id или команды cat. Вариант 1. Загрузить открытый ключ с помощью команды ssh-copy-id Чтобы включить беспарольный доступ, вам необходимо загрузить копию открытого ключа на удаленный сервер. 1. Подключитесь к удаленному серверу и используйте команду ssh-copy-id: ssh-copy-ide [remote_username]@[server_ip_address] 2. Открытый ключ автоматически копируется в файл .ssh/authorized_keys. Вариант 2: загрузить открытый ключ с помощью команды cat Другой способ скопировать открытый ключ на сервер - использовать команду cat. 1. Начните с подключения к серверу и создания на нем каталога .ssh. ssh [remote_username]@[server_ip_address] mkdir -p .ssh 2. Затем введите пароль для удаленного пользователя. 3. Теперь вы можете загрузить открытый ключ с локальной машины на удаленный сервер. Команда также указывает, что ключ будет храниться под именем authorized_keys во вновь созданном каталоге .ssh: cat .ssh/id_rsa.pub | ssh [remote_username]@[server_ip_address] 'cat >> .ssh/authorized_keys' Шаг 3. Войдите на сервер без пароля После создания пары ключей SSH и загрузки открытого ключа на удаленный сервер вы должны иметь возможность подключаться к выделенному серверу без ввода пароля. Проверьте, работает ли установка, выполнив команду: ssh [remote_username]@[server_ip_address] Система должна напрямую входить в систему на удаленном сервере, пароль не требуется. Примечание: убедившись, что вы можете подключаться к удаленному серверу SSH без пароля, рассмотрите возможность полного отключения аутентификации по паролю SSH. Это добавит еще один уровень безопасности и защитит ваш сервер от bruteforce атак. Дополнительно: Устранение неполадок с разрешениями файлов удаленного сервера Права доступа к файлам на удаленном сервере могут вызвать проблемы с входом в SSH без пароля. Это обычная проблема со старыми версиями SSH. Если после выполнения всех шагов вам все еще предлагается ввести пароль, начните с редактирования прав доступа к файлам на удаленном сервере. Установите разрешения 700 для каталога .ssh. Установите разрешения 640 для каталога .ssh/authorized_keys. Отредактируйте права доступа к файлу с помощью следующей команды: ssh [remote_username]@[server_ip_address] "chmod 700 .ssh; chmod 640 .ssh/authorized_keys" При появлении запроса введите свой пароль. Если действие было успешным, вывода не будет. Итог Если вы хотите автоматизировать обновления и другие задачи или беспрепятственно подключаться к удаленному серверу по SSH, вам следует включить вход по SSH без пароля. Инструкции в этой статье должны помочь вам в этом.
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59