По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Для того, чтобы вывести Asterisk за пределы корпоративной сети и получить возможность звонить “во внешний мир”, необходимо воспользоваться услугами VoIP – провайдеров. В сегодняшней статье, мы расскажем как настроить SIP-транк с провайдером Youmagic (MTT) на примере Asterisk 13.7.1 и FreePBX 13. Создание SIP - транка через FreePBX Для того, чтобы приступить к настройке нового транка, необходимо с главной страницы перейти по следующему пути: Connectivity -> Trunks. Откроется следующее окно: Далее нужно нажать кнопку Add Trunk. В появившемся, выпадающем окне выбираем Add SIP (chan_sip) Trunk В открывшемся окне, указываем имя нового транка и задаём исходящий Caller ID, именно в таком формате будет отображаться Ваш номер телефона при исходящих звонках, если конечно провайдер не перекрывает его другим АОН’ом. Далее, необходимо перейти на вкладку sip Settings и заполнить её разделы Outgoing и Incoming, в соответствии с данными, полученными от провайдера Раздел Outgoing заполняется следующим образом: type=friend defaultuser=74957775566 secret=Ваш_пароль host=voip.mtt.ru dtmfmode=rfc2833 disallow=all allow=alaw&ulaw&g729 canreinvite=no insecure=port,invite qualify=200 Где secret - Ваш пароль, выданный провайдером, defaultuser - Ваш телефонный номер, выданный провайдером и host - адрес провайдерского сервера В разделе Incoming, необходимо заполнить только последнюю строчку Register String, по следующему шаблону: defaultuser:Ваш_пароль@host/defaultuser Соответственно, после замены этих параметров нашими значениями, получится 74957775566:Ваш_пароль@voip.mtt.ru/74957775566 Не забываем нажимать Submit и Apply Config Входящая маршрутизация МТТ (Youmagic) Далее нужно создать новый входящий маршрут для звонков, поступающих из нового транка. Для этого переходим в Connectivity -> Inbound Routes, добавляем новый маршрут кнопкой Add Inbound Route. Даем новому маршруту какое-нибудь описание, а в поле DID Number вписываем номер, который приобрели у МТТ(Youmagic). Далее в поле Set Destination выбираем, куда будут отправляться все входящие звонки, поступившие на данный номер. Это может быть что угодно на Вашей АТС: IVR, голосовое приветствие, ринг-группа и так далее. На примере ниже, все звонки будут поступать на IVR. Исходящая маршрутизация МТТ (Youmagic) Создаём исходящий маршрут. Переходим в Connectivity -> Outbound Routes, жмём кнопку Add Outbound Route. Указываем имя нового маршрута, наш новый номер и привязываем данный маршрут к ранее созданному транку с помощью Trunk Sequence for Matched Routes На вкладке Dial Patterns настраиваем шаблоны набора, которые будут использоваться на данном маршруте Нажимаем кнопки Submit и Apply Config. На этом настройка завершена, теперь можно совершать и принимать вызовы на номер, приобретенный у провайдера Youmagic (МТТ) Более подробно с настройкой маршрутизации вы можете ознакомиться в статье по ссылке ниже: Маршрутизация вызовов FreePBX Настройка через конфигурационные файлы Если вы производите настройку через конфигурационные файлы Asterisk, то настройка нового транка должна осуществляться в файле sip.conf, как показано ниже: [general] register => 74957775566:Ваш_пароль@voip.mtt.ru/74957775566 [youmagic] type=friend dtmfmode=rfc2833 host= voip.mtt.ru disallow=all allow=g729 directmedia=no insecure=port,invite qualify=no А настройка входящих и исходящих маршрутов производится в файле extensions.conf, следующим образом: [youmagic] exten => _8XXXXXXXXXX,1,Dial(SIP/youmagic/${EXTEN}) exten => _8XXXXXXXXXX,n,Hangup [from-youmagic] exten => _4957775566,1,Dial (SIP/trunk/${EXTEN}) exten => _4957775566,n,HangUp()
img
Привет! Сегодня в статье мы расскажем, как обновить прошивку на IP-телефоне Cisco через Cisco Unified Communications Manager (CUCM) . Обновимся? Сначала нужно скачать необходимую версию прошивки для нашего телефона на сайте Cisco.com в разделе Support → Downloads. Далее скачанный файл нужно перенести в директорию SFTP или FTP сервера По-умолчанию нельзя обновить прошивку для отдельного телефона. После того, как вы установите файл прошивки обновления в CUCM, все телефоны с такой же моделью автоматически начнут обновление при их перезапуске. Чтобы избежать этой проблемы, нужно сохранить существующее имя прошивки телефона. Для этого в разделе Cisco Unified CM Administration переходим во вкладку Device → Device Settings → Device Defaults, ищем необходимый нам телефон, и копируем название его прошивки. Также это можно посмотреть на странице телефона в разделе Device → Phone, в строке Active Load ID. Далее переходим в раздел Cisco Unified OS Administration во вкладку Software Upgrades → Install/Upgrade. Здесь указываем следующие данные: Source – указываем Remote Filesystem; Directory – директория, где находятся файлы прошивки (если они находятся в корне, то указываем “”); Server – указываем адрес сервера, на котором мы разместили файлы прошивок; User Name и User Password – логин и пароль для подключения к серверу с файлами; Transfer Protocol – протокол сервера – FTP или STFP; После этого в Software Location выбираем файл прошивки и нажимаем Next После этого CUCM покажет контрольную сумму MD5 файла прошивки, которую можно сравнить с той, которая указана на сайте Cisco. Проверив, нажимаем Next для начала установки. Установка будет завершена, когда в строке Status будет написано Complete. Следующим шагом нужно будет перезапустить сервис Cisco TFTP. Для этого переходим в раздел Cisco Unified Serviceability во вкладку Tools → Control Center → Feature Services. Выбираем наш сервер, находим Cisco TFTP и нажимаем Restart. После этого дефолтная прошивка для данного типа телефонов изменится на загруженную нами. Пока эта прошивка указана в меню Device → Device Settings → Device Defaults у конкретной модели телефона, перезапуск любого телефона этой модели приведет к установки на него новой прошивки. Поэтому нужно скопировать из поля Load Information название новой прошивки и заменяем его на старое, скопированное ранее. Старая и новая версии прошивки находятся на TFTP, но старая остается стандартной для всех устройств данной модели. Теперь обновим прошивку на одном конкретном телефоне. Переходим в меню Device → Phone, находим желаемый телефон и в строку Phone Load Name вставляем название новой прошивки. После этого сохраняем конфигурацию и перезагружаем телефон. В результате на нем будет установлена новая версия прошивки. Проверить это можно на самом телефоне, нажав кнопку Settings и перейдя в меню Model Information – версия прошивки будет написана в пункте Load File.
img
gRPC — это мощная платформа для работы с удаленными вызовами процедур (Remote Procedure Calls). RPC позволят писать код так, как будто он будет выполняться на локальном компьютере, даже если он может выполняться на другом компьютере. Что такое RPC? RPC — это форма взаимодействия клиент-сервер, в которой используется вызов функции, а не обычный вызов HTTP. Идея в том, что мы можем вызвать и выполнить функцию где-то на удаленной системе, как если бы это была локальная функция. Он использует IDL (Interface Definition Language - язык описания интерфейса) как форму контракта на вызываемые функции и тип данных. RPC — это протокол "запрос-ответ", т.е. он следует модели "клиент-сервер": Клиент делает запрос на выполнение процедуры на удаленном сервере. Как и при синхронном локальном вызове, клиент приостанавливается до тех пор, пока не будут возвращены результаты процедуры. Параметры процедуры передаются по сети на сторону сервера. Процедура выполняется на сервере и, наконец, результаты передаются обратно клиенту. gRPC воспроизводит этот архитектурный стиль взаимодействия клиент-сервер через вызовы функций. Таким образом, gRPC технически не является новой концепцией. Скорее, он был заимствован из этой старой техники и улучшен, что сделало ее очень популярной. Что такое gRPC? В 2015 году Google открыл исходный код своего проекта, который в конечном итоге получил название gRPC. Но что на самом деле означает буква «g» в gRPC? Многие люди могут предположить, что это для Google, потому что Google это сделал, но это не так. Google меняет значение «g» для каждой версии до такой степени, что они даже сделали README, чтобы перечислить все значения. С момента появления gRPC он приобрел довольно большую популярность, и многие компании используют его. Есть много причин, по которым gRPC так популярен: простая абстракция, он поддерживается во многих языках и он очень эффективный. И помимо всех вышеперечисленных причин, gRPC популярен потому, что очень популярны микросервисы и имеется большое количество взаимодействий между ними. Именно здесь gRPC помогает больше всего, предоставляя поддержку и возможности для решения типичных проблем, возникающих в таких ситуациях. А поскольку разные сервисы могут быть написаны на разных языках, gRPC поставляется с несколькими библиотеками для их поддержки. Архитектура gRPC Мы сказали что производительность gRPC очень высока, но что делает ее такой хорошей? Что делает gRPC намного лучше, чем RPC, если их дизайн очень похож? Вот несколько ключевых отличий, которые делают gRPC столь эффективным. HTTP/2 HTTP был с нами очень долго. Сейчас почти все серверные службы используют этот протокол. HTTP/1.1 долгое время оставался актуальным, затем в 2015 году, появился HTTP/2, который фактически заменил HTTP/1.1 как самый популярный транспортный протокол в Интернете. Если вы помните, что 2015 год был также годом выхода gRPC, и это было вовсе не совпадение. HTTP/2 также был создан Google для использования gRPC в его архитектуре. HTTP/2 — одна из важных причин, почему gRPC может работать так хорошо. И в следующем разделе вы поймете, почему. Мультиплексирование запроса/ответа В традиционном протоколе HTTP невозможно отправить несколько запросов или получить несколько ответов вместе в одном соединении. Для каждого из них необходимо создать новое соединение. Такой вид мультиплексирования запроса/ответа стал возможен в HTTP/2 благодаря введению нового уровня HTTP/2, называемого binary framing. Этот двоичный уровень инкапсулирует и кодирует данные. На этом уровне HTTP-запрос/ответ разбивается на кадры (они же фреймы). Фрейм заголовков (HEADERS frame) содержит типичную информацию заголовков HTTP, а фрейм данных (DATA frame) содержит полезные данные. Используя этот механизм, можно получить данные из нескольких запросов в одном соединении. Это позволяет получать полезные данные из нескольких запросов с одним и тем же заголовком, тем самым идентифицируя их как один запрос. Сжатие заголовка Вы могли столкнуться со многими случаями, когда заголовки HTTP даже больше, чем полезная нагрузка. И HTTP/2 имеет очень интересную стратегию под названием HPack для решения этой проблемы. Во-первых, все в HTTP/2 кодируется перед отправкой, включая заголовки. Это помогает повысить производительность, но это не самое важное в сжатии заголовков. HTTP/2 сопоставляет заголовок как на стороне клиента, так и на стороне сервера. Из этого HTTP/2 может узнать, содержит ли заголовок одно и то же значение, и отправляет значение заголовка только в том случае, если оно отличается от предыдущего заголовка. Как видно на картинке выше, запрос № 2 отправит только новый путь, так как другие значения точно такие же как и были. И да, это значительно сокращает размер полезной нагрузки и, в свою очередь, еще больше повышает производительность HTTP/2. Что такое Protocol Buffer (Protobuf)? Protobuf — это наиболее часто используемый IDL для gRPC. Здесь вы храните свои данные и функциональные контракты в виде так называемого прото-файла. По сути это протокол сериализации данных, такой как JSON или XML. Выглядит это так: message Person { required string name = 1; required int32 id = 2; optional string email = 3; } Так мы определили сообщение Person с полями name, id и email Поскольку это форма контракта то и клиент, и сервер должны иметь один и тот же прото-файл. Файл proto действует как промежуточный контракт для клиента, чтобы вызвать любые доступные функции с сервера. Protobuf также имеет собственные механизмы, в отличие от обычного REST API, который просто отправляет строки JSON в виде байтов. Эти механизмы позволяют значительно уменьшить полезную нагрузку и повысить производительность. Что еще может предложить gRPC? Метаданные Вместо обычного заголовка HTTP-запроса в gRPC есть то, что называется метаданными (Metadata). Метаданные — это тип данных «ключ-значение», которые можно установить как на стороне клиента, так и на стороне сервера. Заголовок может быть назначен со стороны клиента, в то время как серверы могут назначать заголовок и трейлеры, если они оба представлены в виде метаданных. Потоковая передача Потоковая передача (Streaming) — это одна из основных концепций gRPC, когда в одном запросе может выполняться несколько действий. Это стало возможным благодаря упомянутой ранее возможности мультиплексирования HTTP/2. Существует несколько видов потоковой передачи: Server Streaming RPC: когда клиент отправляет один запрос, а сервер может отправить несколько ответов. Например, когда клиент отправляет запрос на домашнюю страницу со списком из нескольких элементов, сервер может отправлять ответы по отдельности, позволяя клиенту использовать отложенную загрузку. Client Streaming RPC: когда клиент отправляет несколько запросов, а сервер отправляет обратно только один ответ. Например, zip/chunk, загруженный клиентом. Bidirectional Streaming RPC: клиент и сервер одновременно отправляют сообщения друг другу, не дожидаясь ответа. Перехватчики gRPC поддерживает использование перехватчиков для своего запроса/ответа. Они перехватывают сообщения и позволяют вам изменять их. Это звучит знакомо? Если вы работали с HTTP-процессами в REST API, перехватчики очень похожи на middleware (оно же промежуточное ПО). Библиотеки gRPC обычно поддерживают перехватчики и обеспечивают простую реализацию. Перехватчики обычно используются для: Изменения запроса/ответа перед передачей. Это можно использовать для предоставления обязательной информации перед отправкой на клиент/сервер. Позволяет вам манипулировать каждым вызовом функции, например, добавлять дополнительные логи для отслеживания времени отклика. Балансировки нагрузки Если вы еще не знакомы с балансировкой нагрузки, это механизм, который позволяет распределять клиентские запросы по нескольким серверам. Но балансировка нагрузки обычно делается на уровне прокси (например, nginx). Так причем это здесь? Дело в том, что gRPC поддерживает метод балансировки нагрузки клиентом. Он уже реализован в библиотеке Golang и может быть легко использован. Хотя это может показаться какой-то магией, это не так. Там есть что-то типа преобразователя DNS для получения списка IP-адресов и алгоритм балансировки нагрузки под капотом. Отмена вызова Клиенты gRPC могут отменить вызов gRPC, когда им больше не нужен ответ. Однако откат на стороне сервера невозможен. Эта функция особенно полезна для потоковой передачи на стороне сервера, когда может поступать несколько запросов к серверу. Библиотека gRPC оснащена шаблоном метода наблюдателя, чтобы узнать, отменен ли запрос, и позволить ей отменить несколько соответствующих запросов одновременно.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59