По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Что такое DOM? DOM (Document Object Model) – это объектная модель документа. Это интерфейс между JavaScript и веб-браузером.  С помощью DOM вы можете написать код JavaScript для создания, изменения или удаления элементов HTML, установки стилей, классов и атрибутов, а также для принятия событий и реагирования на них. Дерево DOM формируется из HTML-документа, и с ним уже можно будет взаимодействовать. DOM – это очень сложный API, у которого есть методы и свойства для взаимодействия с деревом DOM. Как работает DOM – за кадром DOM продуманно организован. Родительский элемент называется EventTarget. Приведенная ниже диаграмма поможет вам лучше понять, как это работает: EventTarget – это интерфейс, реализуемый объектами, которые могут принимать события и у которых могут быть обработчики этих событий. Иными словами, любой источник событий реализует три метода, которые связаны с этим интерфейсом. Самыми распространенными генераторами событий являются Element и его дочерние элементы, Document и Window. Другие объекты также могут выступать в качестве источников событий.  Объект Window - это окно браузера. Все глобальные объекты, функции и переменные JavaScript автоматически становятся частью объекта Window. Глобальные переменные – это свойства Window. Глобальные функции – это методы Window. И даже Document (DOM HTML) является свойством Window. window.document.getElementById("header"); // Both are same document.getElementById("header"); В модели дом DOM есть узлы., и все части документа, такие как элементы, атрибуты, текст и т.д., организованы в виде иерархической древовидной структуры, которая состоит из родителей и потомков. Все эти части документа называются узлами (Node). Node на приведенной выше диаграмме представлен как объект JavaScript. В основном мы работаем с document, у которого есть такие распространенные методы, как document.queryselector(), document.getElementBy Id() и т.д. Теперь давайте посмотрим на document.  Как выбирать, создавать и удалять элементы с помощью DOM С помощью DOM мы можем выбирать, удалять и создавать элементы в JavaScript. Как выбирать элементы  Существует несколько способов выбрать HTML-элементы (HTML Elements) в JavaScript. Здесь мы рассмотрим следующие методы:  document.getElementById(); document.getElementByClassName(); document.getElementByTagName(); document.querySelector(); document.querySelectorAll(); Как использовать метод document.getElementById() Метод getElementById() возвращает элемент, идентификатор которого соответствует переданной строке. Идентификаторы элементов HTML должны быть уникальными, поэтому это самый быстрый способ выбрать элемент с идентификатором.  Пример: const ele = document.getElementById("IDName"); console.log(ele); // This will log the whole HTML element Как использовать метод document.getElementByClassName() Метод document.getElementByClassName() возвращает HTMLCollection элементов, которые соответствуют имени переданного класса. Можно искать сразу несколько имен классов, передав их через пробел. Тогда этот метод вернет «живую» HTMLCollection. Что такое «живая» HTMLCollection? Это означает, что как только мы получим HTMLCollection для какого-то имени класса, и если мы добавим элемент с тем же именем класса, то HTMLCollection автоматически обновится.  Пример: const ele = document.getElementByClassName("ClassName"); console.log(ele); // Logs Live HTMLCollection Как использовать метод document.getElementByTagName() Метод document.getElementByTagName() возвращает HTMLCollection элементов, которые соответствуют переданному имени тега. Его можно вызывать для любого элемента HTML. Метод вернет «живую» HTMLCollection. Пример: const paragraph = document.getElementByTagName("p"); const heading = document.getElementByTagName("h1"); console.log(paragraph); // p element HTMLCollection console.log(heading); // h1 element HTMLCollection   Как использовать метод document.querySelector() Метод document.querySelector() возвращает первый элемент, который соответствует переданному селектору. Здесь мы можем передать имя класса, идентификатор и имя тега. Давайте посмотрим на пример ниже: const id = document.querySelector("#idname"); // using id const classname = document.querySelector(".classname"); // using class const tag = document.querySelector("p"); // using tagname Правила выбора: если вы выбираете по имени класса, то используйте (.) в начале. Например, (“.classname”). если вы выбираете по идентификатору, то используйте (#) в начале. Например, (“#id”). если вы выбираете по имени тега, то просто введите тег. Например,  (“p”).  Как использовать метод document.querySelectorAll() Метод document.querySelectorAll() - это расширение метода querySelector. Этот метод возвращает все элементы, которые соответсвуют переданному селектору. Он возвращает «неживую» коллекцию Nodelist.  Пример: const ele = document.querySelectorAll("p"); console.log(ele); // return nodelist collection of p tag   ПРИМЕЧАНИЕ : HTMLCollection – это «живая» коллекция, а коллекция Nodelist – статическая.    Как создавать элементы Вы можете создавать HTML-элементы в JavaScript и динамически добавлять их в HTML. Вы можете создать любой элемент HTML с помощью метода document.createElement(), просто передав имя тега в скобках.    После того, как элемент будет создан, вы сможете добавить к нему имя класса, атрибуты и текст.    Вот пример: const ele = document.createElement("a"); ele.innerText = "Click Me"; ele.classList.add("text-left"); ele.setAttribute("href", "www.google.com"); // update to existing element in HTML document.querySelector(".links").prepend(ele); document.querySelector(".links").append(ele); document.querySelector(".links").befor(ele); document.querySelector(".links").after(ele); // Simalar to below anchor tag // Click Me   В приведенном выше примере мы создали тег привязки (anchor) в JavaScript и добавили атрибуты и имя класса к этому тегу. Там же у нас есть четыре метода для того, чтобы обновить созданный элемент в HTML. prepend(): вставляет данные поверх своего первого дочернего элемента. append(): вставляем данные или содержимое внутрь элемента по последнему индексу. before(): вставляет данные перед выбранным элементом. after(): помещает элемент после указанного элемента. Или можно сказать, что он вставляет данные за пределами элемента (делая это содержимое элементом того же уровня) в набор подходящих элементов. Как удалять элементы Мы знаем, как создавать элементы на JavaScript и помещать их в HTML. Но, что если нам нужно удалить элементы в HTML? Это довольно просто! Нам достаточно воспользоваться методом remove() для нужного элемента.  Вот пример: const ele = document.querySelector("p"); // This will remove ele when clicked on ele.addEventListner('click', function(){ ele.remove(); })   Как управлять CSS из JavaScript Мы знаем, как управлять HTML из JavaScript. А теперь мы узнаем, как управлять CSS из JavaScript. Это может помочь вам динамически менять стиль ваших веб-страниц.  Например, если вы нажимаете на элемент, то его фоновый цвет должен поменяться. Это реально сделать, управляя CSS из JavaScript.    Вот пример синтаксиса: const ele = document.querySelector("desired element"); ele.style.propertyName = value; // E.g - ele.style.color = red;   Когда вы меняете свойства CSS с помощью JavaScript, помните, что всякий раз, когда в CSS печатается «-», в JavaScript там будет стоять заглавная буква. Например, в CSS вы бы написали background-color, а в JavaScript – backgroundColor (с большой буквы C).    Вот пример: const ele = document.querySelector("div"); ele.style.backgroundColor = "red"; Предположим, что вы написали код CSS для своего проекта и хотите добавить классы с помощью JavaScript. Это можно сделать с помощью classList в JavaScript.    Вот еще один пример: const ele = document.querySelector(".link"); ele.classList.add("bg-red"); // add class bg-red to existing class list ele.classList.remove("pb-4");// remove class bg-red from existing class list ele.classList.toggle("bg-green"); // toggle class bg-red to existing class list which means if it already exists then it will be removed, if it doesn't exist it will be added. classList добавляет, удаляет или переключает классы относительно какого-то элемента. Это чем-то похоже на обновление существующих классов.    В отличие от element.className, он удаляет все существующие классы и добавляет указанный класс.  И еще один пример: const ele = document.querySelector(".link"); ele.classList.add("bg-red"); // add class bg-red to existing class list ele.classList.remove("pb-4");// remove class bg-red from existing class list ele.className = "p-10"; // Now this will remove all existing classes and add only "p-10 class to element."   Как использовать обработчики событий Событие (Event) – это изменение состояния объекта. Обработка событий (Event Handling) – процесс реагирования на события.  События происходит всякий раз, когда пользователь щелкает кнопкой мыши, наводит курсор на элемент, нажимает клавишу и т.д. Поэтому, когда происходит событие, и вы хотите выполнить какое-то действие, то вы используете обработчики событий, чтобы это действие произошло.  Мы используем обработчики событий для того, чтобы выполнить определенный код, когда это конкретное событие происходит. В JavaScript есть несколько обработчиков событий, однако процесс их добавления к элементам одинаков.  Вот синтаксис: const ele = document.querySelector("a"); ele.addEventListner("event", function(){ // callback function }); Вот некоторые события, которые вы можете использовать: click mouseover mouseout keypress keydown А вот пример использования события «click» (нажатия на кнопку мыши): const ele = document.querySelector("a"); ele.addEventListner("click", function(){ ele.style.backgroundColor = "pink"; }); Распространение событий: всплывание событий и перехват событий Распространение событий определяет то, в каком порядке элементы будут получать события. Существует два способа обработки порядка распространения событий в DOM: всплывание событий и перехват событий.  Что такое всплывание событий? Когда в каком-то компоненте происходит событие, то он сначала на нем запускается обработчик событий, только потом на его родительском компоненте, а затем уже и на всех остальных компонентах, которых называют предками.  По умолчанию все обработчики событий перемещаются именно в этом порядке - от события центрального компонента к событию компонента, который находится от него дальше всех.    Что такое перехват событий? Этот способ – противоположность предыдущему. Обработчик событий запускается сначала на родительском компоненте, а уже потом на том компоненте, на котором он фактически и должен был сработать.  Проще говоря, это означает, что событие сначала перехватывается самым удаленным элементом, а затем распространяется на внутренние элементы. Также этот способ называют «просачиванием вниз».    Давайте попробуем запустить следующий пример:                Example           
           
    Этот код выдаст нам следующее: Теперь давайте внимательно изучим приведенный выше пример. Я добавил получатель событий к тегу nav и тегу anchor. Когда вы нажимаете на nav, то цвет фона меняется на зеленый. Когда вы нажимаете на тег anchor, то цвет фона меняется на розовый.  Но когда вы нажимаете на тег anchor, то цвет фона меняется как у nav, так и у anchor. Это происходит из-за всплывания событий.    Вот что происходит, когда вы нажимаете только на элемент nav:       А вот что происходит, когда вы нажимаете только на элемент anchor: Для того, чтобы остановить распространение событий, мы можем воспользоваться методом stoppropagation() на получателе событий, из-за которого и происходит распространение события. В таком случае в приведенном выше примере получатель событий элемента nav не сработает.                   Example           
           
    Как перемещаться по модели DOM «Хороший разработчик JavaScript должен знать, как перемещаться по модели DOM. Перемещаться по модели DOM значит выбирать один элемент из другого,» - Зелл Лью. Теперь посмотрим, почему лучше обойти модель DOM, чем использовать метод document.querySelector(), и как это выполнить на профессиональном уровне.  Есть три способа обхода модели DOM: Снизу-вверх Сверху-вниз Продольный Как обойти модель DOM снизу-вверх Существует два метода, которые помогут вам перемещаться по модели DOM снизу-вверх: parentElement closest parentElement – это свойство, которое выбирает родительский элемент, например: const ele = document.querySelector("a"); console.log(ele.parentElement); //
parentElement отлично подходит для того, чтобы выбрать элемент, который находится на один уровень выше. Но closest позволяет найти элемент, который может быть на несколько уровней выше текущего. closest позволяет вам выбрать ближайший элемент-предок, который соответствует селектору.  Вот пример с использованием closest:
   

This is sample

   

This is heading

   

This heading 2

const ele = document.querySelector(".heading"); console.log(ele.closest(".demo")); // This is heading В приведенном выше фрагменте кода мы пытаемся получить ближайший элемент к .heading, который имеет класс .demo. Как обойти модель DOM сверху-вниз Мы можем перемещаться вниз, используя метод селектора children. При таком подходе вы можете выбрать прямого потомка нужного элемента.   Вот пример:
   Link-1    Link-2    Link-3    Link-4
const ele = document.querySelector("div"); const child = ele.children; console.log(child); // gives HTMLCollection // 4 element inside div Как обойти модель DOM продольно Это очень интересный вопрос, как же мы можем продольно обойти DOM. В основном мы можем использовать лишь два метода: previousElementSibling nextElementSibling С помощью метода previousElementSibling мы можем выбрать предшествующие элементы в HTML:
   Link-1    

Heading

const ele = document.querySelector("h1"); console.log(ele.previousElementSibling); // Link-1 А с помощью метода nextElementSibling мы можем выбрать последующие элементы в HTML:
   Link-1    

Heading

const ele = document.querySelector("a"); console.log(ele.nextElementSibling); //

Heading

img
Повсеместное распространение компьютерных сетей в крупных корпорациях породило ряд проблем. Чем больше масштабы сети, тем дороже будет ее обслуживание. Действительно, при расширении территориальной деятельности организация должна закупать новое, зачастую дорогостоящее оборудование и объявлять тендер на услуги сетевых провайдеров связи. При этом если компания ориентируется на высокую скорость и надежность обмена данными, то эти предложения должны постоянно обновляться. Для оптимизации решения таких проблем и были созданы Software Defined Wide Area Network — программно-определяемые сети в рамках глобальной сети (WAN). Применение этой технологии позволяет серьезно сэкономить на каналах передачи данных, не теряя качества, а также ускорить включение в общую сеть организации новых территориально удаленных филиалов. Зачем нужна программно определяемая WAN сеть? Одной из главных возможностей, которые SD-WAN предоставляет пользователю, является оптимизация сетей VPN или MPLS. Как правило, небольшие организации с одним офисом могут вполне неплохо обходиться без данной технологии, однако крупные организации, имеющие филиалы в разных городах (или странах) вынуждены искать надежные и быстрые способы связи между офисами. Даже если у провайдера услуг связи есть покрытие на оба пункта – это не всегда является надежным решением, так как по пути пакеты данных могут теряться, информация может приходить поврежденной, несвоевременной или не в полном объеме. Если же покрытия основного провайдера на территории, где компания планирует открывать новый филиал, нет, то в данном случае нужно будет уже заключать второй договор на обслуживание уже с местным провайдером. При этом при передаче информации между VPN-сетями различных провайдеров пользователь также столкнется с вышеописанной проблемой, но уже более остро, поскольку чем большее количество сетей минует информация при передаче, тем выше вероятность ее повреждения либо перехвата. Кроме того, если организация серьезно озабочена проблемой надежной передачи данных, то не лишним будет запустить также дублирующий резервный канал связи, уже от другого поставщика телекоммуникационных услуг. Услуги эти, к слову, недешевы, да и помимо этого организация общей компьютерной сети организации с закупкой оборудования и прокладкой кабелей – дело затратное. Выгодно ли для бизнеса внедрение SD-WAN решений? Главным плюсом SD-WAN, в данном случае, является сокращение расходов на телекоммуникационные услуги и закупку более дорогого оборудования. Технически, программно-распределяемая сеть устроена следующим образом: компания закупает, устанавливает в центре обработки данных и настраивает модуль контроллера. Это самая основная (и дорогая) часть SD-WAN с технической точки зрения. К коммутатору контроллера подключаются основной и резервный каналы связи, при этом специализированные программы на борту контроллера будут анализировать загруженность каналов передачи данных и подбирать оптимальный баланс передачи. Кроме того, ПО контроллера создает надежную, безопасную и прозрачную сеть, в которой контроллер выступает в роли основного роутера и «мозга». Да, решение не из дешевых, но технология будет окупаться (по оценке специалистов, в среднем за 5 лет) за счет распределения передачи данных, а также за счет экономии оборудования, закупаемого для филиалов. Нет необходимости закупать более «умные» устройства, а контроллер может удаленно управлять и сетями попроще, причем в автоматическом режиме – достаточно подключить устройство в новом офисе к сети, а все настройки придут с основного модуля. Кроме того, благодаря использованию такой технологии может возрасти качество телефонной связи и качество предоставления других IT-услуг в организации, которые могут быть чувствительны к качеству канала и задержкам. На текущий момент многие компании занимаются созданием и оптимизацией функционала SD-WAN. Это и Huawei, и Mikrotik, и Cisco, а также многие другие разработчики. Поэтому у пользователя есть возможность ознакомиться с вариантами от разных поставщиков и подобрать для себя наиболее оптимальное решение.
img
При настройке телефонной маршрутизации очень часто возникает необходимость изменения (корректировки) телефонных номеров, как набираемого (Б-номер), так и инициатора вызова (А-номер, АОН). Например, абоненты вашей станции набирают междугородние/федеральные номера через префикс "8", а вышестоящему оператору связи необходимо передавать номер без префикса, в десятизначном формате. Или вызовы на вашу станцию приходят с кодом зоны, а внутри станции используются номера в 6 или 7 знаков, и лишние символы необходимо удалить. Для корректировки номеров в SoftX3000 существует множество инструментов, применяемые в зависимости от конкретных случаев. Рассмотрим некоторые из них. Таблица корректировки символов DNC Для любых операций с изменением номера используются правила таблицы DNC. Эти правила используются для непосредственной корректировки символов, а все прочие команды определяют, в отношении какого поля (А-номер или Б-номер), на каком направлении (входящее/исходящее) и на какой транк-группе будет применено это правило. Для добавления правила в эту таблицу используется команда ADD DNC. Назначение атрибутов и применение этой команды: Number change index порядковый номер правила. Используется для идентификации правила Number change type тип преобразования номера, принимает значения: NONE номер не изменяется. Используется, если нужно изменить только тип номера MOD изменение цифр номера DEL удаление цифр из номера, указываем позицию, начиная с которой удаляются цифры (Change location) и количество цифр (Change length) INS добавление цифр в номер, указываем позицию, куда вставляем цифры (Change location) и сами цифры (New number) RPL замена цифр в номере, указываем позицию, с которой начинаются цифры для замены (Change location) и сами цифры (New number) Change location позиция цифр, которые подлежат корректировке. Nature of address indicator тип номера, принимает значения: NONE тип номера не изменяется IDN международный номер NDN национальный номер UDN местный номер UNN неизвестный номер SDN специальный номер New number добавляемые (изменяемые) цифры. Для наглядности приведем реальные примеры таких правил: В таблице выше: Правило №2 изменяет первый символ в номере (Change location 0) на цифру 8 (New number). Правило №4 удаляет первые (Change location 0) два символа (Change length - 2) в номере и преобразует тип номера в международный. Правило №9 заменяет первые (Change location 0) шесть символов (Change length - 6) на номер 29xxxx. В системе можно создать 65535 правил, правило под №0 системное, изменению не подлежит. Изменение А и Б номеров на исходящем направлении Для корректировки номеров вызовах в исходящих направлениях используется две таблицы: TGLD здесь компонуются правила для А и Б номера. TGLDIDX указывает транк, в отношении которого применяется правило TGLD и условия, при которых оно применяется. При добавлении записи командой ADD TGLD, необходимо задать следующие обязательные параметры: Bearer index номер правила по порядку. Этот номер будет использоваться для идентификации в таблице TGLDIDX. Trunk seizure point минимальная длина набираемого номера. Caller sending change index правило из таблицы DNC, которое будет применено к А-номеру. Callee sending change index правило из таблицы DNC, применяемое к Б-номеру. Примеры записей TGLD: Здесь запись TGLD=1 изменяет А-номер по правилу DNC=3 и Б-номер по правилу DNC=12. Далее, необходимо привязать созданное правила TGLD к транкам. Для этого используем команду ADD TGLDIDX: Указываем следующие параметры: Trunk group number номер транка, к которому применяется данное правило. Call source code callsource источника вызова, по которому срабатывает правило. Если код отличается, правило не применится. Чтобы применить правило ко всем callsrc, необходимо указать 65534. Local DN set код Local DN set, к которому принадлежат номера/транки, совершающие вызов. Call prefix префикс, при наборе которого срабатывает правило. Bearer index номер правила из таблицы TGLD, которое было создано предыдущей командой. Пример: Рассмотрим правила, применяемые к транку №7 (столбец Trunk group number): Для вызовов с callsource=5 при наборе "8" будет применено правило TGLD=2. Для вызовов с любых прочих callsource при наборе 8 будет применено правило TGLD=17. Для вызовов с любых callsource при наборе 810 будет применено правило TGLD=1. Изменение А и Б номеров на входящем направлении Для изменения атрибутов вызова во входящем направлении применительно ко всем входящим вызовам с определенным callsrc (это может быть группа транков или группа абонентов, объединённых этим параметром), используется таблица PFXPRO. Рассмотрим назначение параметров команды ADD PFXPRO сразу на примере: Параметры имеют следующее назначение: Call source code = 0 правило будет применяться к входящим вызовам с callsrc=0 и только к ним. Call prefix = 871229 правило применяется, если Б-номер начинается с этого префикса (871229). Local DN set = 0 набор номера должен производится с транка или абонента, привязанного к Local DN set = 0. Следует отметить, что вышеуказанный префикс (871229) должен присутствовать в таблице CNACLD с любым атрибутом в указанном Local DN set. Called number change flag = true означает, что Б-номер подлежит изменению. Called number change index = 1 Б-номер будет изменен по правилу DNC=1, которое, для наглядности, приведено ниже: Согласно данному правилу, из номера Б будут удалены первые 4 символа. Reanalysis = true после всех изменений вызов снова будет обработан как вновь поступивший и смаршрутизирован согласно новым параметрам А и Б номеров. Таким образом, вызов, поступивший с атрибутом callsrc=0, в котором Б-номер соответствует шаблону 871229хххх, вновь поступит на обработку, но уже с Б-номером 29хххх, то есть будет вызван 6-значный номер внутреннего абонента станции. Таблица PFXPRO так же позволяет корректировать и А-номер (поля Caller number change flag и Caller number change index), назначить новое значение источника вызова (New call source code) и изменять некоторые другие поля. В нашей станции данная таблица используется в нескольких целях: Приведение Б-номеров по входящему направлению к виду, который мы можем маршрутизировать, то есть: от операторов связи приходит вызов на номер 871229xxxx, а номера абонентов нашей станции 29xxxx, соответственно, нам нужно отрезать первые 4 символа, чтобы распознать нашего абонента. Номера некоторых экстренных служб имеют общий вид (6-значный городской номер), однако абонент набирает короткий номер службы (01, 02, 03). Нам нужно распознать такой набор и подменить номер на реальный. Кроме того, в зависимости от того, в какой местности расположен абонент, номера одной и той же службы могут быть разными. Для того, чтобы учесть этот аспект, мы и используем атрибут callsrc (назначаем каждому району свой callsrc и в соответствии с ним осуществляем подмену набранного номера). Изменение атрибутов вызова на входящем направлении на определенном транке Для корректировки атрибутов вызова на входящем транке используется таблица CLRDSN. Запись CLRDSN привязывается к определенному транку командой ADD TGDSG. В самой команде CLRDSN можно создать несколько правил корректировки, которые будут срабатывать в зависимости от А-номера: Для добавления правила даем команду ADD CLRDSN: Здесь заполняем следующие поля: Discrimination group number номер правила, по этому номеру выполняется привязка к транку в команде ADD TGDSG (в предыдущем примере, например, мы рассматривали параметры правила №5). Caller number номер вызывающего, то есть А-номер. Можем указать конкретный номер или начальный префикс (например, если указать 995, правило будет действовать на все вызовы, которые совершаются с номеров, начинающихся на 995). Есть возможность использовать так называемый символ "Wildcard", то есть применить к любым возможным номерам, для этого вводим символ "E". Префикс в данном поле должен быть таким же, как он приходит из транка. Например, если установить префикс 906, а из транка номер буден приходить 8906 или 7906 правило не сработает. Address nature тип А-номера. Позволяет ограничить применение правила только к А-номерам определенного типа, то есть, только для Unknown неизвестный International международный National междугородный Subscriber местный All все типы номеров Function code тип действия с вызовом. Выбираем ATT(Modify caller attribute), то есть изменение атрибутов А-номера. Call source code если установить значение, код callsource будет изменен. Если оставит пустым, будет установлен callsource = 0. (Однажды потратил полдня, пока не обнаружил эту особенность). Number change index правило DNC, которое будет применено к А-номеру. Если дать команду с тем же номером Discrimination group number, но другими параметрами, правило будет добавлено в ту же группу. Таким образом, мы добавим правила для разных номеров (или разных типов номеров) в одну группу и сможем привязать ее к транку. Как было сказано ранее, привязку правила CLRDSN к транку выполняется командой ADD TGDSG. Мы используем данную функцию для нескольких сценариев. Сценарий 1 Подмена номера от подключенной УПАТС. Например, имеем некоторую УПАТС, которая подключена к нашей станции. Мы выдали им номер из нашей емкости, которую они, в том числе, должны использовать в качестве А-номера (29хххх). Однако, по какой-то причине, в поле А-номера абонент присылает нам внутренние номера своей станции (101, 102 и т.д.). а) Добавим правило DNC, которое выполнит полную подмену номера на тот, который должен быть: б) Создадим правило, в котором применим правило DNC=15 (number change index = 15), ко всем входящим вызовам (number = E, Adress nature = All number): в) Привяжем правило CLRDSN=30 к транку №30 командой ADD TGDSG: Сценарий 2 Блокировка нежелательных вызовов с транка (например, для спам-звонков). Для блокировки вызовов в станции создан Local DNset с пустой таблицей маршрутизации (в таблице CNACLD нет никаких записей), и создан callsource (callsrc=4), привязанный к этому Local DNset. При совпадении А-номера с нежелательным, вызову назначается callsrc=4, тем самым вызов не сможет быть смаршрутизирован и будет отбит. Сценарий 3 Фильтрация входящих вызовов с транка. В данном случае, изначально присваиваем траку callsrc=4, тем самым, по-умолчанию, все входящие вызовы будут запрещены. Затем создаются правила CLRDSN с определенными условиями, при соблюдении которых входящий вызов может быть смаршрутизирован. При выполнении этих условий код callsrc заменяется на разрешенный и вызов проходит. Условиями для проверки обычно выступают префикс А-номера. Например, при входящих вызовах от сотового оператора все А-номера должны начинаться на с символа "9". При входящих вызовах с наших УПАТС А-номер должен начинаться с цифр "29" и т.д. Изменение атрибутов вызова по Б-номеру для внутренних абонентов Данная функция может использоваться для разных задач. Одна из них ограничение исходящих вызовов для определенного абонента на определенный номер. В нашем примере это будут исходящие вызовы на префикс 810, то есть международные вызовы (эту задачу можно решить и другими способами). Используем команду ADD CNACLR: Здесь выделим следующие параметры: Call source code код callsrc, к которому принадлежит номер. Call prefix префикс, при наборе которого срабатывает правило. Caller number номер телефона абонента, к которому применяется правило. Здесь так же применимо выражение wildcard, то есть применить правило к любому номеру, установив символ "E". Function code тип обработки вызова. В данном случае используем изменение Б-номера, выбрав Modify caller attribute. Caller number change index правило DNC, которое применяется к А-номеру. Called number change index правило DNC, которое применяется к Б-номеру. Reanalysis flag = true устанавливаем данный флаг для повторной обработки вызова в таблице маршрутизации с новыми параметрами. Приведенное правило используется в следующем сценарии. В организации приобретен номер 8-800, вызовы на которые переадресуются на локальный номер станции 29хххх. При помощи данного правила мы можем обнаружить набор этого номера 8800 локальными абонентами и подменить его на локальный номер назначения внутри станции, тем самым избежав тарификации этих вызовов на платформе 8800, а так же снизив внешний трафик. Применение данных функций и команд не ограничивается приведенными сценариями, и ограничено только фантазией и лицензиями оборудования. Версия станции Huawei SoftX3000 V300R600, но команды будут применимы на более свежих версиях, а принцип их применения такой же.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59