По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье речь пойдёт о способах и алгоритмах настройки VoIP шлюза для осуществления звонков с офисных телефонных аппаратов, имеющихся в офисе, через сеть IP. В настоящее время подавляющее большинство современных компаний имеют телефонную связь. Какие-то компании уже открыли для себя преимущества, открывающиеся благодаря VoIP телефонии, каким-то только предстоит это сделать. Очень распространена ситуация, когда в компании уже имеются средства традиционной (аналоговой или цифровой) телефонной связи и переоснащение всего офиса новыми IP телефонами получается довольно дорогостоящим. В таких ситуациях на помощь приходят межсетевые VoIP шлюзы. Межсетевой шлюз VoIP – это устройство предназначенное для сопряжения сетей традиционной телефонии с пакетной сетью передачи данных, в качестве которой выступает Интернет. Такое сопряжение достигается благодаря аппаратным и программным возможностям шлюзов, а именно преобразованием трафика из одного типа сетей в другой. Аппаратное исполнение VoIP шлюза различается по типу телефонного стыка, на цифровые (E1/T1, ISDN) и аналоговые (FXO, FXS). Организовать телефонную связь через голосовой шлюз предлагают провайдеры IP телефонии, которые предоставляют услуги связи по протоколу SIP через сеть Интернет. При такой схеме реализации создаётся, так называемый, SIP - транк (trunk), являющийся по сути телефонной линией, которая устанавливается через сеть Интернет по средствам протокола SIP. SIP провайдер, при помощи данного протокола, даёт компании - клиенту множество голосовых каналов. После заключения договора с оператором VoIP, остаётся только настроить голосовой шлюз, это является основной и самой объёмной работой на пути к обеспечению компании качественной IP телефонией. Рассмотрим настройку подключения аналогового телефона к пакетной сети на простейшем примере, когда в офисе имеется всего один аналоговый телефонный аппарат и голосовой шлюз компании AddPac. По командной консоли устройства AddPac очень напоминают Cisco, поэтому, конфигурация приведённая ниже отлично подойдёт для понимания процесса настройки. Сперва следует настройка сетевых параметров шлюза и маршрутизации. Gateway# configure terminal Gateway(config)#interface FastEthernet 0/0 Gateway(config-if)# ip address 192.168.0.11 255.255.255.0 Gateway(config-if)# exit Gateway(config)# ip route 0.0.0.0 0.0.0.0 192.168.0.1 Далее настройка диал-пиров (dial-peer) и маршрутов. Диал-пиры определяют параметры, направление и участников соединения. В нашем случае, необходимо настраивать диал-пиры в два направления, в сторону аналогового порта и в сторону SIP провайдера. Диал-пир в сторону аналогового порта: Gateway(config)# dial-peer voice 0 pots Gateway(config-dialpeer-pots-0)#destination-pattern [ID, выданный SIP провайдером] Gateway(config-dialpeer-pots-0)#port 0/0 Gateway(config-dialpeer-pots-0)#exit Gateway(config)# dial-peer voice 1 pots Gateway(config-dialpeer-pots-1)#destination-pattern [ID, выданный SIP провайдером] Gateway (config-dialpeer-pots-1)#port 1/0 Gateway(config-dialpeer-pots-1)#exit Создание диал-пира в сторону SIP провайдера: Gateway(config)#dial-peer voice 100 VoIP Gateway(config-dialpeer-VoIP-100)#destination-pattern T Данная команда означает что этот dial-peer будет соответствовать любому номеру Gateway(config-dialpeer-VoIP-100)#session target sip-server Команда, указывающая адрес SIP-сервера. Gateway(config-dialpeer-VoIP-100)#session protocol sip Команда, указывающая шлюзу по какому протоколу устанавливать соединение, в данном случае SIP Gateway(config-dialpeer-VoIP-100)#voice-class codec 0 Настройка приоритизации используемых кодеков Gateway(config-vclass-codec#0)# codec preference 1 g711alaw Gateway(config-vclass-codec#0)# codec preference 2 g729 Gateway(config-dialpeer-VoIP-100)# no vad Команда, включающая принудительное подавление тишины Gateway(config-dialpeer-VoIP-100)#exit Настройка SIP UA (User Agent) для подключения к поставщику услуг Gateway(config)# sip-ua Gateway(config-sip-ua)# sip-username [ID, выданный SIP провайдером] Gateway(config-sip-ua)# sip-password ******* [Password, выданный SIP провайдером] Gateway(config-sip-ua)# sip-server [адрес SIP-сервера] Gateway(config-sip-ua)# srv enable Команда, позволяющая серверу определять местоположение (имя хоста и номер порта) для определенных служб. Является стандартом DNS Service Record Gateway(config-sip-ua)#register e164 Команда для отдельной регистрации телефонных портов на сервере. Позволяет настраивать маршрутизацию звонков индивидуально для каждого порта. Gateway(config-sip-ua)#exit Router#write После проведённых действий можно звонить с аналогового аппарата, имеющегося в офисе на любые телефонные номера через SIP провайдера. Входящие звонки извне будут поступать на порт 0/0 или 1/0, в случае недоступности первого. Конфигурация, приведённая выше является простейшим примером. В реальности же включается дополнительный функционал и опции, например настройка переадресации или удержания звонка, телефонная сеть офиса может быть выделена в отдельный VLAN, а голосовой трафик иметь множество механизмов приоритизации. Специалисты нашей компании имеют большой опыт в настройке и устранении проблем VoIP шлюзов. Если Вы решили модернизировать старую или с нуля разворачиваете телефонную сеть для своего офиса – доверьте это дело высококвалифицированным сотрудникам нашей компании.
img
При изучении принципов написания программного кода вы, вероятно, встречались с термином AJAX и задавались вопросом, что же он значит. Что это – язык программирования, платформа или приложение? На самом деле ничего из перечисленного, но к концу прочтения этой статьи вы будете знать, что же такое AJAX (Asynchronous Javascript and XML - асинхронные сценарии JavaScript и XML). История AJAX До конца 1990-х годов большинство веб-сайтов могли выдавать в качестве результата только полные веб-страницы при посещении страницы на сайте. Иначе говоря, для того, чтобы перезагрузить какие-либо отдельные данные, вам необходимо было перезагрузить всю страницу. Это был не самый эффективный способ предоставления информации пользователям, и, соответственно, не очень хорошо сказывалось на впечатлениях пользователей от взаимодействия с сайтом. Также это увеличивало нагрузку на серверы и пропускную способность, необходимую для обслуживания данных. В 1996 году Microsoft представила тег iframe для Internet Explorer, который позволял браузеру асинхронно извлекать данные в фоновом режиме. Это был шаг в верном направлении на пути к современным веб-приложения. В 2004 году Google добавила в Gmail функцию, позволяющую получать данные в фоновом режиме, а в 2005 году они сделали то же самое и для Google Maps. Технологии Google и Microsoft позволяли разработчикам получать данные с веб-сервера с помощью JavaScript без необходимости перезагружать страницу. В 2005 году Джесси Джеймсон Гарретт в своей статье (о том, как Google добились такого результата) назвал эту технологию AJAX. Эта технология быстро стала одним из самых популярных способов создания веб-приложений. А теперь, когда вы узнали немного из истории AJAX, давайте посмотрим, как это работает. Как работает AJAX? Что делает работу AJAX возможной, так это встроенный в веб-браузер объект XMLHttpRequests (XHR). Этот объект поддерживают все современные браузеры, включая: Chrome Firefox IE7+ Safari Opera Большинство библиотек JavaScript, которые используют AJAX, помещают этот объект в пользовательский код для того, чтобы упростить его использование разработчиками, но мы рассмотрим, как AJAX работает в обычном JavaScript. Первый шаг – создать переменную, которая будет создавать для вас экземпляр объекта XMLHttpReaquests в JavaScript. Ниже приведен пример: const request = new XMLHttpRequest(); Поскольку мы хотим использовать эти данные в дальнейшем, например, хотим распечатать их на веб-странице, то мы добавим к этому запросу получатель запроса, который сообщит нам, когда наш запрос закончит обрабатываться и получит нужные данные. Как можно понять из самого термина, запросы AJAX выполняются асинхронно. Это значит, что код JavaScript продолжает работать после отправки запроса и не ждет ответа. Прикрепив получатель запросов, мы можем перехватить ответ, когда он будет готов. Сделаем мы это вот так: function requestListener() { console.log(this.responseText); } request.addEventListener("load", requestListener); Выше у нас есть функция, которая выводит ответ на консоль JavaScript, которую мы можем получить из атрибута responseText объекта XMLHttpRequests. Затем мы присоединяем эту функцию к событию load нашего запроса. Следующий шаг – используем этот объект для отправки запроса к серверу с помощью метода open объекта XMLHttpRequests. Метод open принимает два параметра. Первый параметр – это используемый метод запроса. Ниже приведены несколько наиболее распространенных методов: GET: этот метод используется для извлечения данных и является наиболее распространенным. POST: этот метод отправляет данные запрошенному ресурсу и чаще всего используется для создания новых записей или для входа в систему. PUT: этот метод заменяет текущие представления данных измененными, которые были отправлены в запросе. PATCH: этот метод обычно используется для обновления части данных в запрошенном ресурсе. DELETE: этот метод используется для удаления определенного ресурса. Второй параметр, который передается методу open, - это запрашиваемый ресурс. Мы будем использовать страницу с веб-сайта example.org и использовать запрос GET для простого получения данных. Вот так это будет выглядеть: request.open("GET", "http://www.example.org/example.txt"); Последний шаг – фактическая отправка запроса на удаленный ресурс с помощью метода send объекта XMLHttpRequests. Ниже приведен пример: request.send(); Если мы используем метод POST, PUT или какой-либо другой метод, который обновляет ресурс, то этот метод мы вызываем с параметром, содержащем данные, которые мы отправляем: request.send(OUR_DATA_VARIABLE) В нашем случае мы только извлекаем данные, поэтому, как только мы выполним этот код, на консоли нашего веб-браузера выведется содержимое http://example.org/example.txt. Данный пример помогает объяснить то, как работает AJAX, но на самом деле технология AJAX имеет куда более продвинутые функциональные возможности. Для чего нужен AJAX? Что вы должны были вынести из приведенного выше примера, так это то, что все функции кода загружаются на одной странице. Действительно, сначала загрузится веб-страница с нашим кодом JavaScript, затем он выполнится, и после он распечатает результаты запроса. С таким же успехом можно было прикрепить приведенный выше код к функции, которая выполняется при нажатии кнопки. Это бы означало, что каждый раз при нажатии кнопки, будет выполняться код, отправляться запрос, и результаты будут выводиться на консоль без загрузки новой страницы. И эта магическая технология изменила подход к веб-разработке. С появлением AJAX большая часть веб-разработки переместилась на внешний интерфейс приложения – часть, которая работает в браузере. Вы наблюдаете то, как работает AJAX ежедневно и даже не подозреваете об этом. Когда вы заходите на современный веб-сайт, перед вами появляется форма. Вы вводите свои учетные данные и нажимаете кнопку «Войти». Индикатор загрузки может вращаться в течение нескольких минут, но если вы обратите внимание, то заметите, что страница на самом деле никогда не перезагружается. Все, что вы сделали, это просто отправили свое имя пользователя и пароль на сервер с помощью AJAX. Индикатор загрузки нужен только для отвода глаз, пока запрос выполняется, независимо от того, ввели ли вы верные учетные данные или нет. Если ваши учетные данные верны, то ваша домашняя страница загружается, скорее всего, из другого запроса AJAX. Большинство запросов AJAX в JavaScript не загружают целые веб-страницы, как в нашем примере. Данные отправляются и извлекаются в формате JSON, для представления данных используется текстовый формат, а для форматирования этих данных в формате HTML и их печати на странице используется дополнительный код JavaScript. Например, данные, которые отправляются для входа на веб-сайт, в формате JSON будут выглядеть так: { username: "MyUserName", password: "MyPassword" } Как только учетные данные будут проверены, файл JSON, содержащий минимальный объем данных для отображения панели инструментов, будет отправлен обратно в браузер. AJAX в сочетании с JSON не только наделяет современные веб-страницы способностью быстро реагировать на действия пользователей, но и экономит пропускную способность, отправляя только необходимые данные для создания веб-страницы.
img
Термин chroot jail появился еще в 1992 году но часто используется сегодня. Что же это означает и для чего используется эта операция? Что такое chroot jail? Chroot (сокращение от change root) - это операция Unix, которая изменяет видимый корневой каталог на тот, который задан пользователем. Любой процесс, который вы запускаете после операции chroot, имеет доступ только к новому определенному корневому каталогу и его подкаталогам. Эта операция широко известна как chroot jail, поскольку эти процессы не могут читать или писать вне нового корневого каталога. Для чего используется chroot jail? Chroot jail используется для создания ограниченной «песочницы» для запуска процесса. Это означает, что процесс не может злонамеренно изменять данные за пределами предписанного дерева каталогов. Еще одно применение chroot jail - это замена виртуальным машинам. Этот метод называется виртуализацией на уровне ядра и требует меньше ресурсов, чем виртуальные машины. Эта операция позволяет пользователям создавать несколько изолированных инстансов в одной системе. Как использовать chroot jail Рассмотрим на примере как создать и настроить chroot jail, чтобы он мог запускать команды bash и ls. 1. Создайте новый каталог с именем chroot_jail: mkdir chroot_jail Если мы попытаемся использовать chroot на этом каталоге, мы получим следующий вывод: Вы должны включить команду bash, прежде чем сможете использовать chroot на новом каталоге. Для этого необходимо скопировать командный файл и все связанные библиотеки в новый корневой каталог. 2. Создайте новое дерево подкаталогов внутри chroot_jail: mkdir -p chroot_jail / bin chroot_jail / lib64 / x86_64-linux-gnu chroot_jail / lib / x86_64-linux-gnu В этих подкаталогах будут храниться все необходимые элементы команд bash и ls. 3. Использование команды cp с командой which позволяет копировать команды bash и ls без указания пути, из которого вы копируете. Для этого используйте: cp $(which ls) chroot_jail/bin/ cp $(which bash) chroot_jail/bin/ Примечание. Если ваша команда bash или ls имеет псевдоним, вам необходимо снять его перед копированием. Используйте unalias [command], где [command] - это имя команды, которую вы хотите удалить. 4. Чтобы bash и ls работали в новой корневой папке, добавьте все связанные библиотеки в chroot_jail/libraries. Используйте команду ldd, чтобы узнать, какие библиотеки связаны с какой командой: ldd $(which bash) ldd $(which ls) 5. Скопируйте соответствующие библиотеки в подкаталоги lib и lib64. Для команды bash: cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/ cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/ Для команды ls: cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/ cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/ cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/ 6. Используйте команду chroot, чтобы изменить root на каталог chroot_jail: sudo chroot chroot_jail Примечание. При изменении корневого каталога на каталог chroot_jail запускается новый экземпляр оболочки bash. Используйте команду ls, чтобы вывести список всех файлов и каталогов в новом корневом дереве каталогов: ls -R 7. Как только вы закончите использовать новую корневую папку, выйдите из оболочки: exit Заключение После выполнения этого руководства вы сможете настроить chroot jail вместе с необходимыми ресурсами для запуска процессов и команд в новом корневом каталоге.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59