По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Всем привет! В сегодняшней статье мы расскажем вам про Phone Button Template и Softkey Template в CUCM, при помощи, которых можно настроить функциональные кнопки, расположенные на лицевой части телефонов Cisco. Buttons – это кнопки расположенные справа от экрана, а Softkeys – под экраном.
Настройка Button Template
Переходим во вкладку Device → Device Settings → Phone Button Template и нажимаем Add New. Выбираем шаблон, на основе которого мы будем создавать новый и нажимаем Copy.
Затем в новом окне в строке Button Template Name указываем название шаблона и нажимаем Save. Далее заполняем таблицу, где в столбце Feature из выпадающего меню выбираем необходимую функцию, а в столбце Label указываем ее название. После чего нажимаем Save.
Настройка и Softkey Template
Для этого переходим меню Device → Device Settings → Softkey Template. Нажимаем Add New, и выбираем шаблон, на основе которого будем создавать новый.
Далее в правом верхнем углу в меню Related Tasks выбираем Configure Softkey Layout и нажимаем Go.
В новом окне выбираем для какого состояния мы хотим настроить кнопки (трубка положена, трубка поднята, идет вызов и так далее) в выпадающем меню Select a call state to configure
Для того чтобы добавить кнопку в шаблон нужно в таблице Unselected Softkeys выбрать необходимую функцию, и нажать на стрелку вправо, и она переместиться в таблицу Selected Softkeys. Для того чтобы выбрать порядок их отображения необходимо использовать стрелки вверх и вниз. После этого нажимаем Save.
Настройка телефона
Теперь применим наши созданные шаблоны на телефоне. Для этого переходим в меню Device → Phone, выбираем нужный нам телефон, и на странице его настроек в разделе Device Information в полях Phone Button Template и Softkey Template выбираем созданные шаблоны. Чтобы применить настройки нажимаем Save и Apply Config.
JSON (JavaScript Object Notation – нотация объектов JavaScript) – это популярный способ структурирования данных. Он используется для обмена информацией между веб-приложением и сервером. Но как прочитать файл JSON в Python?
В этой статье я покажу вам, как использовать методы json.loads() и json.load() для интерпретации (или как еще говорят парсинга) и чтения файлов и строк JSON.
Синтаксис JSON
Прежде чем мы приступим к интерпретации и чтению файла JSON, сначала нам нужно разобраться с основным синтаксисом. Подробнее про JSON можно почитать в этой статье. Синтаксис JSON выглядит как объектный литерал JavaScript с парами ключ-значение.
Вот пример данных JSON с данными организации:
{
"organization": "Company 1",
"website": "https://www.website.org/",
"formed": 2014,
"certifications": [
{
"name": "Responsive Web Design",
"courses": [
"HTML",
"CSS"
]
},
{
"name": "JavaScript Algorithms and Data Structures",
"courses": [
"JavaScript"
]
},
{
"name": "Front End Development Libraries",
"courses": [
"Bootstrap",
"jQuery",
"Sass",
"React",
"Redux"
]
},
{
"name": "Data Visualization",
"courses": [
"D3"
]
},
{
"name": "Relational Database Course",
"courses": [
"Linux",
"SQL",
"PostgreSQL",
"Bash Scripting",
"Git and GitHub",
"Nano"
]
},
{
"name": "Back End Development and APIs",
"courses": [
"MongoDB",
"Express",
"Node",
"NPM"
]
},
{
"name": "Quality Assurance",
"courses": [
"Testing with Chai",
"Express",
"Node"
]
},
{
"name": "Scientific Computing with Python",
"courses": [
"Python"
]
},
{
"name": "Data Analysis with Python",
"courses": [
"Numpy",
"Pandas",
"Matplotlib",
"Seaborn"
]
},
{
"name": "Information Security",
"courses": [
"HelmetJS"
]
},
{
"name": "Machine Learning with Python",
"courses": [
"Machine Learning",
"TensorFlow"
]
}
]
}
Как парсить строки JSON в Python
Python имеет встроенный модуль, который позволяет работать с данными в формате JSON. Вам необходимо будет импортировать модуль json.
import json
Если вам необходимо проинтерпретировать строку JSON, возвращающую словарь, то вы можете воспользоваться методом json.loads().
import json
# assigns a JSON string to a variable called jess
jess = '{"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}'
# parses the data and assigns it to a variable called jess_dict
jess_dict = json.loads(jess)
# Printed output: {"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}
print(jess_dict)
Как парсить и читать файлы JSON в Python
В данном примере мы имеем файл в формате JSON с именем fcc.json, который содержит те же данные, что и ранее, касающиеся курсов, которые предлагает сайт.
Если вы хотите прочитать этот файл, то для начала вам нужно использовать встроенную в Python функцию open() с режимом чтения. Мы используем ключевое слово with, чтобы убедиться, что файл закрыт.
with open('fcc.json', 'r') as fcc_file:
Если файл не может быть открыт, то мы получим ошибку OSError. Это пример ошибки "FileNotFoundError" при опечатке в имени файла fcc.json.
Затем мы можем проинтерпретировать файл, используя метод json.load() и присвоить его переменной с именем fcc_data.
fcc_data = json.load(fcc_file)
И в конце мы должны напечатать результат.
print(fcc_data)
Вот так будет выглядеть полный код:
import json
with open('fcc.json', 'r') as fcc_file:
fcc_data = json.load(fcc_file)
print(fcc_data)
Как красиво напечатать данные JSON в Python
Если мы посмотрим на то, как печатаются данные, то увидим, что все данные JSON печатаются в одной строке.
Однако такой формат вывода может быть затруднительным для чтения. И чтобы это исправить, мы можем реализовать метод json.dumps() с параметром indent (отступ).
В данном примере мы сделаем отступ в 4 пробела и будем печатать данные в более удобном для чтения формате.
print(json.dumps(fcc_data, indent=4))
Также мы можем отсортировать ключи в алфавитном порядке, используя параметр sort_keys и установив его значение на True.
print(json.dumps(fcc_data, indent=4, sort_keys=True))
Заключение
JSON – это популярный способ структурирования данных, который используется для обмена информацией между веб-приложением и сервером.
Если вам необходимо проинтерпретировать строку JSON, которая возвращает словарь, то вы можете использовать метод json.loads().
Если вам необходимо проинтерпретировать файл JSON, который возвращает словарь, то вы можете использовать метод json.load().
В сегодняшней статье мы еще раз коснемся сетей ISDN (Integrated Services for Digital Network). Как известно, ISDN – это набор протоколов, который объединяет цифровую телефонию и сервисы передачи данных. Основная идея ISDN – преобразование телефонной сети в цифровую форму для передачи аудио, видео и текстовых сообщений через существующие телефонные линии. Конечная цель ISDN – формирования Глобальной сети (WAN), которая обеспечивает универсальное непрерывное соединение через цифровую среду. В ISDN существует два типа интерфейсов для организации доступа к ресурсам сети – PRI (Primary Rate Interface) и BRI Basic Rate Interface, котором и пойдет речь.
Итак, BRI – это тип интерфейса в сети ISDN, обеспечивающий предоставление двух основных цифровых каналов (ОЦК) по 64 кбит/с каждый, именуемых также каналами “B”, и однополосных канал, выделенный для передачи цифровой сигнализации со скоростью 16 кбит/с, который называют каналом “D”. Наиболее распространенный тип цифровой сигнализации, применяемый в сетях ISDN - DSS1 (Euro ISDN). Таким образом, интерфейс доступа BRI идентифицируют как 2B+D, а максимальная скорость передачи по данному интерфейсу составляет 128 + 16 = 144 кбит/с. Стоит отметить, что интерфейс BRI предназначен в первую очередь для использования в абонентских линиях, аналогичных тем, которые уже давно используются для голосовой телефонной связи. Предоставляется в основном для абонентов жилищного сектора и малых офисов.
С физической точки зрения, интерфейс BRI делится на несколько частей.
1) Прокладка кабеля непосредственно от ISDN терминала до сетевого окончания NT (Network Termination) - S/T интерфейс (S0)
Данный процесс описывается в рекомендации I.430, разработанной Международным Союзом Электросвязи (ITU). Интерфейс S/T использует 4 провода, одна пара выделяется под передачу (uplink), а другая под прием (downlink). Осуществляет полнодуплексный режим взаимодействия. Рекомендация I.430 описывает определение 48-битных пакетов, включая 16 бит от канала B1, 16 бит от канала B2, 4 бит от канала D, а также 12 бит, использующихся для нужд синхронизации. Эти пакеты отсылаются с частотой 4 КГц, в результате чего, общий битрейт 192 кбит/c, обеспечивает скорость передачи, перечисленных выше данных, с максимально возможной пропускной способностью – 144 кбит/c. Интерфейс S0 позволяет организовать соединение типа точка-точка или точка – множество точек. Максимальная длина – 900 м (точка-точка), 300 м (точка – множество точек)
2) Передача от сетевого окончания NT до центрального офиса – U интерфейс
Интерфейс U использует два провода. Общий битрейт – 160 кбит/с; пропускная способность 144 кбит/с, 12 кбит/c выделяется для нужд синхронизации и 4 кбит/с для сигналов обслуживания. Сигналы от U интерфейса в точке отправки кодируются двумя способами модуляции, исходя их используемых стандартов в той или иной стране. Так в Северной Америке, Италии и Швейцарии используется механизм 2B1Q, и 4B3T в остальных странах. В зависимости от применяемой длины кабеля существует три разновидности U интерфейсов – UpN, Up0 и Uk0 . Интерфейс Uk0 использует один пару проводов с эхоподавлением для длинного кабеля последней мили между АТС и сетевым окончанием NT . Максимальная длина этого промежутка BRI составляет от 4 до 8 км.