По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сериализация – это процесс, в котором одна служба берет структуру данных, такую как словарь в Python, упаковывает ее и передает другой службе для чтения. Это максимально простое определение. Представьте, что мне нужно отправить кому-то сообщение. Итак, я записываю текст на уже собранный пазл. Далее я разбираю части пазла, добавляю несколько инструкций о том, как его собрать, и отправляю его. Затем получатель сообщения, получив кусочки головоломки, собирает их вместе. И теперь у него есть мое сообщение. Техническое определение этого понятия немного интереснее. А именно, сериализация – это процесс преобразования объекта данных в поток байтов и сохранения состояния объекта для хранения на диске или передачи по сети. Это сокращает необходимый размер хранилища и упрощает передачу информации по сети. Маршалинг и сериализация – в чем разница? Здесь на ум может прийти понятие маршалинга (Marshalling). Маршалинг – это процесс преобразования представления объекта в памяти в форму, подходящую для передачи. Хотя маршалинг и сериализация в общих чертах похожи, между ними все-таки есть принципиальная разница. Например, при создании программы в Golang для считывания JSON данных в структуру данных Golang вы можете использовать маршалинг для преобразования пары «ключ-значение» JSON в пару «ключ-значение» Golang. Разница в том, что маршалинг используется для преобразования данных. А сериализация, напротив, отправляет или сохраняет данные в потоке байтов и повторно собирает их в исходную форму. Оба процесса вроде бы выполняют процесс сериализации, но с разными намерениями. Вы можете увидеть структуру, которую я создал для взаимодействия с данными Twitter, ниже, как пример процесса маршалинга в действии. В Golang вы можете вставлять подсказки, называемые тегами, легко преобразовывая этот объект в данные JSON с помощью встроенной службы маршалинга Golang. Что такое Endianness? Я также хотел бы немного затронуть тему порядка следования байтов. Endianness – это термин, который используется для описания порядка байтов в памяти. Представьте, что память – это блок, в котором хранятся биты данных. Чтобы сериализация работала, поток байтов должен передавать типы данных независимо от изменения порядка следования байтов из одной системы в другую. Здесь вы можете увидеть большие различия и не очень. Очень важно, чтобы порядок следования байтов из одной системы в другую совпадал или каким-либо образом преобразовывался, поскольку не все системы упорядочивают свои биты одинаково. Little endian (от младшего к старшему) и big endian (от старшего к младшему) Варианты использования сериализации Наш вариант использования в полной мере использует все функции сериализации. Мы планируем получить некоторую информацию от сканируемого оборудования, упаковать эту информацию в поток байтов и отправить ее по сети в другую службу, которая восстановит данные. Процесс обратной сериализации и восстановления данных в исходную форму называется десериализацией. Есть и другие варианты использования сериализации. Например, REST API или протоколы обмена сообщениями, такие как AMQP, могут использовать сериализацию для сжатия и отправки данных. AMQP – это протокол обмена сообщениями, в котором вы отправляете сообщение брокеру AMQP, а служба-получатель «прослушивает» этого брокера в поисках сообщения. Серверные специалисты должны быть хорошо с этим знакомы, так как это часто используется для отправки данных туда и обратно в распределенных системах. Многие языки программирования включают возможность легкого развертывания некоторой сериализации. Так что это языково-независимая тема. Пример сериализации Приведем краткий пример. Код, приведенный ниже, использует библиотеку kombu для отправки сообщений через AMQP. Мы используем ее для отправки сообщений из одного программного пакета в другой по сети. Данный код предназначен для службы, отправляющей сообщение брокеру AMQP: Обратите внимание на метод publish. Мы передаем метод сериализации в качестве аргумента, чтобы библиотека понимала, как сериализовать данные, которые мы передаем. Сообщение с данными преобразуется в поток байтов, который, если на него посмотреть, выглядит просто как длинная строка букв и цифр. И мы отправляем сообщение. Соответствующая служба будет использовать тот же метод сериализации для восстановления данных в их исходное состояние. Это важная функция, поскольку мы создаем набор инструментов, которые должны иметь возможность отправлять сообщения друг другу, чтобы все работало. Форматы данных сериализации В основном я использую JSON для сериализации, когда этого требует задача. Но тем не менее, вы можете использовать и другие варианты. У JSON много издержек, но для меня он идеален, потому что он читабелен. Вы также можете использовать Protobuf, YAML или XML. Это лишь некоторые из возможных. Заключение Сериализация становится необходимостью, когда вы строите свои каналы связи. Полезно знать о таком понятии, чтобы чувствовать себя уверенно при подходе к любому инструменту, который вы используете, с соответствующими базовыми знаниями.
img
Всем привет! Сегодня в статье мы поговорим про настройку PLAR (Private Line Automatic Ring-down) в Cisco Unified Communications Manager (CUCM) . PLAR (или как его иногда называют Hotdial) является функцией которая позволяет телефону вызывать определенный заданный номер, как только будет поднята телефонная трубка. Она может быть полезна для телефонов, размещенных в общественных зонах, например на ресепшене, когда человек, поднявший трубку будет сразу соединен с секретарем. Настройка Для того чтобы телефон автоматически набирал заданный номер необходимо сконфигурировать CSS и Partition, который содержит Translation Pattern. Сначала создадим partition, для этого в Cisco Unified CM Administration переходим во вкладку Call Routing → Class of Control → Partition и нажимаем Add New. Тут указываем название и нажимаем Save. Далее переходим во вкладку Call Routing → Class of Control → Calling Search Space и нажимаем Add New, для создания нового CSS. Тут указываем имя в поле Name, и из поля Available Partitions переносим созданный нами Partition в поле Selected Partition. Делаем это при помощи нажатия клавишу со стрелкой вниз, и сохраняем все, нажав на Save. Теперь настроим Translation Pattern. Переходим во вкладку Call Routing → Translation Pattern и снова нажимаем Add New. Тут указываем созданные нами Partition и CSS, а в поле Called Party Transformation Mask указываем номер, на который должны поступать звонки. Поле Transformation Pattern оставляем пустым. Наконец настроим сам телефон с PLAR. Находим нужный нам телефон во вкладке Device → Phone и в поле Device Information в строке Calling Search Space указываем созданный нами CSS. После этого нужно перейти в меню настройки DN, нажав Line [1] и также указать CSS в строке Calling Search Space Настройки для SIP телефонов Если наши телефоны работают по протоколу сигнализации SIP, то нам для настройки PLAR нужно выполнить следующие дополнительные действия. Нужно создать SIP Dial Rule. Это можно сделать, перейдя в меню Call Routing → Dial Rules → SIP Dial Rules нажав Add New. Сначала необходимо в выпадающем меню выбрать “7940_7960 Other”, а в следующем меню указать имя для правила. После этого в открывшемся окне в строке Pattern Description указываем название и нажимаем Add Plar. После этого паттерн появляется в поле Pattern Information. В этом поле в выпадающем меню Dial Parameter указываем Button, а в параметре Value номер линии на телефоне, на котором будет PLAR. Затем переходим в настройки SIP телефона во вкладке Device – Phone и в поле Protocol Specific Information в строке SIP Dial Rules выбираем созданное нами правило. Теперь при поднятии трубки на настроенном телефоне сразу будет набираться номер, который мы указали в Translation Pattern.
img
Данный модуль позволяет создавать директории пользователей, которые будут доступны для абонентов через другие модули, например, IVR. Можно создать директорию, содержащую в себе всех сотрудников компании или по одной директории для каждого из департаментов компании. Кроме того, можно обозначит правила маршрутизации вызова для пользователя, когда выбирается определенный сотрудник в директории – к примеру, если кто-то введёт номер генерального директора, вызов отправится на его секретаря. /p> Другими словами, данный модуль позволяет иметь Вам корпоративное IVR меню, с помощью которого, сотрудники, зная только имя своего коллеги смогут дозвониться до него через модуль Directory. Настройка модуля Для доступа к данному модулю необходимо в меню выбрать Applications –> Directory Далее необходимо нажать на кнопку + Add Directory и появится окно создания директории Ниже опишем значащие поля: Directory Name – понятное название директории, к примеру – «Support», или «Sales» Directory Description – развёрнутое описание директории CallerID Name Prefix – префикс, добавляемый к Caller ID звонящего, когда звонок идёт через директорию. К примеру, можно ввести префикс «DIR-», что бы понимать какие звонки пришли из директории Alert Info – опциональное поле, может быть использовано для посылки сообщения «ALERT_INFO» на SIP устройства, поддерживающие подобную функцию. Announcement – звуковое приветствие для попавших в директорию. Сообщение по умолчанию – «Welcome to the directory. Please enter the first three or more letters of the party's first or last name, using your touch-tone keypad. Use the 1 key for punctuation. Press 0 to exit the directory and obtain further assistance (Добро пожаловать в директорию. Наберите первые 3 или более букв, которые содержатся в имени или фамилии абонента, используя клавиши на вашем телефоне. Для пробела используйте клавишу 1, и 0 для выхода из директории.)» Данное приветствие рекомендуется сменить на ваше собственное используя модуль System Recordings. Invalid Retries – количество попыток неудачного набора/ввода имени абонента Invalid Retry Recording – запись, которая проигрывается при получении неверного имени. Сообщение по дефолту «I’m sorry, there’s no entry matching the keys you have entered. (Извините, но введённая комбинация клавиш не существует)». Данную запись так же можно заменить на вашу собственную с помощью модуля System Recordings Invalid Recording – Сообщение, которое проигрывается звонящему при нажатии кнопки 0 или если кончились попытки набора. Стандартное сообщение – «We are now transferring you out of the directory. Please hold on for further assistance.(В данный момент ваш вызов направляется вне директории. Ожидайте для дальнейшей информации.) Invalid Destination – направление для перенаправления вызовов, в случае если истекло количество попыток или был нажат 0. Данное условие может быть отменено функцией «Return to IVR» Return to IVR – Yes/No (отправлять или нет абонента обратно на IVR, при условии если вызов пришел с IVR.) Если вызов пришел с IVR, то установка в «Yes» отменяет значение поля «Invalid Destination» Announce Extension – Yes/No – Озвучивать или не озвучивать номер экстеншена, на который будет направлен вызов. Данная функция может быть полезна для уточнения номера экстеншенов при прямом наборе в дальнейшем. При добавлении новой сущности в директорию с помощью выпадающего меню, есть выбор из 3 опций: All Users – добавление всех существующих экстеншенов на АТС, Custom Entry (для определения конкретной строки набора, может быть полезно для указания номера сотового телефона или какого-нибудь внешнего ресурса), Extension (просто номер отдельного экстеншена). Ниже пример добавления экстеншена в группу Далее рассмотрим поля при добавлении экстеншена: Name – автоматически устанавливается таким же, как и имя экстеншена. К примеру, если имя Ivan, то для набора первых трёх букв потребуется набрать «482» на клавиатуре телефона. Name Announcement – какой звуковой файл проигрывается при совпадении – например, приветствие для электронной почты, имя или системная запись. Dial – номер для набора, по умолчанию это тот же экстеншен. Однако, это поле может быть изменено на любой другой номер, как в примере, описанном выше – с генеральным директором и его ассистентом. На этом всё, для применения изменений необходимо нажать на кнопку Submit и затем Apply Config.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59