Условие примера

Давайте создадим условную виртуальную АТС ( далее вАТС ) для небольшой компании ООО "Иванов":

  • Компания имеет 10 сотрудников, каждый сотрудник имеет на рабочем месте телефон с 3-х значной нумерацией;
  • Компания имеет два городских номера, все звонки поступают на номер секретаря компании;
  • Руководитель имеет выделенный городской номер;
  • Часть сотрудников могут делать исходящие звонкина город (включая руководителя и секретаря);
  • Часть сотрудников может выполнять только локальные звонки, (для звонка на город они звонят через секретаря);
  • Все дополнительные услуги поддерживаемые станцией ECSS-10 могут быть активизированы на любом телефоне компании;
  • Одновременно может быть установлено не более 3 звонков на город;
  • Внутренние звонки , без ограничений;
  • Городские номера имеют 6-и значную нумерацию 420xxx, домен "gorod" уже настроен.


Пример реализации вАТС


В системе ECSS-10 домен можно представить как логическую часть гибкого коммутатора, реализующую функционал отдельной АТС. В системе ECSS-10 домен и вАТС — синонимы. Каждая вАТС содержит следующий набор параметров:

  • список контекстов маршрутизации вАТС;
  • список алиасов(абонентов), которые содержатся в данной вАТС;
  • список услуг, установленных в вАТС.


Создадим домен с именем компании "ivanov". Выполнить это можно через Cocon или веб.

Вариант через Cocon

Создание вАТС

Как указывалось в задании, кол-во абонентов (alias)=10. Разрешаем нашему пользователю быть администратором данной вАТС:

/domain/declare ivanov --add-domain-user-privileges --add-domain-admin-privileges --alias-limit 10
New domain ivanov is declared

Наша вАТС будет работать через IP сеть , поэтому необходимо указать IP set , используемый в ECSS-10 (создавался на этапе инсталляции ECSS-10)

/domain/ivanov/sip/network/set ip_set [test_set]
[set] test_set set for different pbx's: ivanov, gorod, test_domain, pbx
continue: yes/no ?> yes
Property "ip_set" successfully changed from: 
[]
   to
["test_set"].

В нашем примере предполагается возможность использования абонентами вАТС "ivanov" всеми доступными услугами, поэтому подключим все услуги к домену:

/cluster/storage/ds1/ss/access-list add ivanov *
Supplementary services successfully added in the domain ivanov.

Для возможности применения пакета услуг у абонентов сразу после создания, необходимо настроить политику применения лицензионных пакетов услуг (детальную информацию вы можете посмотреть здесь )

Создать политику применения лицензии с именем -"new_sub"

/domain/ivanov/ss/licence/politics/declare new_sub
Licence politic new_sub successfully declared.

Посмотрим какое имя имеет пакет лицензионных услуг в ECSS-10

/cluster/storage/ds1/licence/show-licence 2            
. . .
Supplementary Services licence package(s)             
 name                                                 'ECSS-FULL+'
 limit                                                200000
 description                                          "Пакет со всеми услугами"
 SS list                                              [1,2,3,4,5]
. . . 


Добавить в созданную политику пакет лицензионных услуг с именем "ECSS-FULL+" (если пакетов несколько , то выберите какой будете использовать), именно так он описан в лицензии:

/domain/ivanov/ss/licence/politics/package-add new_sub ECSS-FULL+
Licence packages ["ECSS-FULL+"] successfully added to politic new_sub.

Пакет добавлен, но в настоящий момент политика не активна (не может быть применена к абоненту). Для активации политики new_sub выполнить следующую команду:

/domain/ivanov/ss/licence/politics/activate new_sub
Licence politic new_sub successfully activated.

Теперь при создании абонентов можем использовать дополнительные услуги.

Создание внутренних абонентов вАТС

Давайте создадим 10 абонентов , с номерами 100-109. В примере для упрощения будем использовать имя пользователя и пароль пользователя =номер абонента:

/domain/ivanov/sip/user/declare default_routing sip 100@ivanov alias-as-user qop_authentication login-as-user 100    
Executed on the sip1@ecss2
Intermediate (incomplete) result:
Declaration for range: 100@ivanov..104@ivanov (1)
...
1 interfaces check for existing ...
[**********************************************************************] 160mks   
1 users interfaces declaration ...
[**********************************************************************] 10ms     
1 users divided into 1 parts to declare ...
[**********************************************************************] 83mks    
1 users aliases declaration ...
[**********************************************************************] 2ms      
1 users trying licence packages activating ...
[**********************************************************************] 2ms      
5 interfaces recall to base
[**********************************************************************] 2ms      
Executed on the sip1@ecss2
┌────────────────────────┐
│ declared 1 subscribers │
└────────────────────────┘

Создадим оставшиеся 9 абонентов через веб интерфейс или Cocon интерфейс на ваше усмотрение.

результат:

/domain/ivanov/sip/user/list sip --active     
10 users check for active ...
[**********************************************************************] 2ms      
Executed on the sip1@ecss1
┌─────┬──────────┬─────────────────────────────────┐
│group│   user   │       current contact(s)        │
├─────┼──────────┼─────────────────────────────────┤
│sip  │100@ivanov│<sip:100@10.0.20.35>;expires=1782│
│sip  │101@ivanov│<sip:101@10.0.20.35>;expires=1783│
│sip  │102@ivanov│<sip:102@10.0.20.35>;expires=1772│
│sip  │103@ivanov│<sip:103@10.0.20.35>;expires=1788│
│sip  │104@ivanov│<sip:104@10.0.20.35>;expires=1785│
│sip  │105@ivanov│<sip:105@10.0.20.35>;expires=1789│
│sip  │106@ivanov│<sip:106@10.0.20.35>;expires=1772│
│sip  │107@ivanov│<sip:107@10.0.20.35>;expires=1777│
│sip  │108@ivanov│<sip:108@10.0.20.35>;expires=1775│
│sip  │109@ivanov│<sip:109@10.0.20.35>;expires=1775│
└─────┴──────────┴─────────────────────────────────┘
┌──────────────┐
│ elements: 10 │
└──────────────┘

Организовать подключение между ECSS-10 (городской АТС) и вАТС "ivanov"

Для организации проключение между городской АТС и вАТС, необходимо определить (выделить) полный городской номер (номера) для звонков на вАТС, а так же определить каким внутренним абонентам разрешен прямой выход в город, а каким запрещен. В нашем примере мы выделим два номера 420100 и 420101. Внутренние абоненты 100-105 будут иметь прямой выход в город, а 106-109 нет. 

создание Планов нумерации

для организации связи между абонентами вАТС и абонентами ECSS-10, а так же звонков на другие станции необходимо создать План нумерации как в вАТС, так и в городском домене ECSS-10.

в домене "gorod"

/domain/gorod/np/declare ivanov xxxxxx
Numbering plan "ivanov" declared successfully.
/domain/gorod/np/info         
┌───────┬───────────┬────────────────────┐
│   #   │ Property  │       Value        │
├───────┼───────────┼────────────────────┤
│1      │Name       │              ivanov│
│       │Digitmap   │              xxxxxx│
│       │Options    │                    │
│       │Description│                    │
│       │Numbers    │                    │
└───────┴───────────┴────────────────────┘

в домене "ivanov"

/domain/gorod/np/declare ivanov xxxxxx
Numbering plan "ivanov" declared successfully.
/domain/ivanov/np/info  
┌───────┬───────────┬────────────────────┐
│   #   │ Property  │       Value        │
├───────┼───────────┼────────────────────┤
│1      │Name       │              ivanov│
│       │Digitmap   │                 xxx│
│       │Options    │                    │
│       │Description│                    │
│       │Numbers    │                    │
└───────┴───────────┴────────────────────┘

Создание бриджа

После создания планов нумерации необходимо создать бридж, который будет связывать 2 домена. При декларации бриджа в поле "план нумерации", необходимо указать соответствующие планы нумерации. Бридж создаем из основного домена "gorod"(рекомендуется), основной домен должен быть доменом А.

  • Указываем имя домена А/Б, указываем План нумерации домена А/Б (которые мы только что создали).
  • Временно указываем Контекст А/Б = "default_routing" позже контекст должен быть изменен.
  • В нашем примере - не более 3-х одновременных разговоров, поэтому устанавливаем "Количество каналов Всего" =3.
/bridge/declare to_ivanov false 3 gorod ivanov bridge:ivanov tg:ivanov default_routing ivanov ivanov bridge:to_gorod tg:to_gorod default_routing 

результат:

/bridge/info to_ivanov    
┌─────────┬──────┬─────────┬─────────┬─────┬────────┬─────────┬────────────────┬────────────┬───────────────┬──────────────┬────────┬─────────┬───────────────┬───────────┬───────────────┬──────────────┐
│  Name   │Strict│   In    │   Out   │Total│Domain A│Numbering│    Iface A     │   Trunk    │   Context A   │Access group A│Domain B│Numbering│    Iface B    │   Trunk   │   Context B   │Access group B│
│         │      │         │         │     │        │ plan A  │                │  group A   │               │              │        │ plan B  │               │  group B  │               │              │
├─────────┼──────┼─────────┼─────────┼─────┼────────┼─────────┼────────────────┼────────────┼───────────────┼──────────────┼────────┼─────────┼───────────────┼───────────┼───────────────┼──────────────┤
│to_ivanov│false │unbounded│unbounded│3    │gorod   │ivanov   │bridge:to_ivanov│tg:to_ivanov│default_routing│all           │ivanov  │ivanov   │bridge:to_gorod│tg:to_gorod│default_routing│all           │
└─────────┴──────┴─────────┴─────────┴─────┴────────┴─────────┴────────────────┴────────────┴───────────────┴──────────────┴────────┴─────────┴───────────────┴───────────┴───────────────┴──────────────┘
Bridges in table: 1

Проброс номеров через бридж


в домене A "gorod"

этим шагом мы закрепляем выделенные номера , 420100 и 420101 за планом нумерации "ivanov"

/domain/gorod/np/numbers/add ivanov 420100              
┌─────────┬──────┐
│NP Number│Result│
├─────────┼──────┤
│420100   │ok    │
└─────────┴──────┘
/domain/gorod/np/numbers/add ivanov 420101              
┌─────────┬──────┐
│NP Number│Result│
├─────────┼──────┤
│420101   │ok    │
└─────────┴──────┘

результат:

/domain/gorod/np/numbers/info ivanov * 
┌───────┬──────────┬───────────────────────┐
│   #   │  Number  │   Binded resources    │
├───────┼──────────┼───────────────────────┤
│1      │420100    │                       │
│2      │420101    │                       │
└───────┴──────────┴───────────────────────┘

Следующий шаг:
данным шагом мы переправляем все звонки на номера 420100 и 42010 в бридж "to_ivanov"  к вАТС

/domain/gorod/np/numbers/bind ivanov 420100 --bridge to_ivanov    
ok
/domain/gorod/np/numbers/bind ivanov 420101 --bridge to_ivanov    
ok

результат:

/domain/gorod/np/numbers/info ivanov *                                      
┌───────┬──────────┬───────────────────────────────────┐
│   #   │  Number  │         Binded resources          │
├───────┼──────────┼───────────────────────────────────┤
│1      │420100    │-> to_ivanov                       │
│2      │420101    │-> to_ivanov                       │
└───────┴──────────┴───────────────────────────────────┘

в домене В "ivanov"

переходим в домен "ivanov"

Мы сразу видим наши номера 420100 и 420101. Мы их пробросили из городского домена , и видим в домене вАТС. Наша задача закрепить за городскими номерами локальные номера вАТС. 

/domain/ivanov/np/numbers/info ivanov * 
┌───────┬──────────┬───────────────────────────────────┐
│   #   │  Number  │         Binded resources          │
├───────┼──────────┼───────────────────────────────────┤
│1      │420100    │                                   │
│2      │420101    │                                   │
└───────┴──────────┴───────────────────────────────────┘

При этом выбирая номер с функцией "Владелец" мы указываем на какой внутренний номер будут поступать входящие звонки с городских номеров. Номера которые подключены к городскому номеру , смогут выполнять исходящие звонки на город.

/domain/ivanov/np/numbers/bind ivanov 420100 --alias 100     
ok

результат(* после номера указывает , что с этого номера можно делать исходящие звонки на город):

/domain/ivanov/np/numbers/info ivanov *            
┌───────┬──────────┬───────────────────────────────────┐
│   #   │  Number  │         Binded resources          │
├───────┼──────────┼───────────────────────────────────┤
│1      │420100    │100 *                              │
│       │          │102-105                            │
│2      │420101    │101 *                              │
└───────┴──────────┴───────────────────────────────────┘

теперь нам нужно обновить конфигурацию бриджа, при создании был использован контекст маршрутизации "default_routing" , требуется заменить контекст А с "default_routing"  на "to_ivanov". А так же активизировав функцию "Проверка номеров" мы разрешаем звонки с номеров которые были привязаны в плане нумерации к городским номерам.

/bridge/change to_ivanov strict true         
Bridge with name "to_ivanov" changed successfully.
/bridge/change to_ivanov routing_contex_a to_ivanov     
Bridge with name "to_ivanov" changed successfully.

результат:

/bridge/info to_ivanov    
┌─────────┬──────┬─────────┬─────────┬─────┬────────┬─────────┬────────────────┬────────────┬─────────┬──────────────┬────────┬─────────┬───────────────┬───────────┬───────────────┬──────────────┐
│  Name   │Strict│   In    │   Out   │Total│Domain A│Numbering│    Iface A     │   Trunk    │Context A│Access group A│Domain B│Numbering│    Iface B    │   Trunk   │   Context B   │Access group B│
│         │      │         │         │     │        │ plan A  │                │  group A   │         │              │        │ plan B  │               │  group B  │               │              │
├─────────┼──────┼─────────┼─────────┼─────┼────────┼─────────┼────────────────┼────────────┼─────────┼──────────────┼────────┼─────────┼───────────────┼───────────┼───────────────┼──────────────┤
│to_ivanov│true  │unbounded│unbounded│3    │gorod   │ivanov   │bridge:to_ivanov│tg:to_ivanov│to_ivanov│all           │ivanov  │ivanov   │bridge:to_gorod│tg:to_gorod│default_routing│all           │
└─────────┴──────┴─────────┴─────────┴─────┴────────┴─────────┴────────────────┴────────────┴─────────┴──────────────┴────────┴─────────┴───────────────┴───────────┴───────────────┴──────────────┘
Bridges in table: 1


Вариант через веб

Создание вАТС

Для создания вАТС с лимитом в 10 абонентов потребуется выполнить несколько шагов:

  1. Выбрать приложение "Домены"
  2. Выбрать "Добавить Домен"
  3. В дополнительном окне указать имя нового домена (вАТС) , в нашем примере "ivanov"
  4. Подтвердить выполнение

На следующем шаге:

  1. Выбрать приложение "Домены"
  2. Выбрать нужный домен , в нашем случае "ivanov"
  3. Выбрать "Свойства домена"
  4. Выбрать Системные параметры/Ограничения 
  5. В поле "alias_limit" указать значение 10 (наши ограничения на 10 абонентов)
  6. Сохранить

Подключить нашу вАТС к IP set-у 

  1. Выбрать приложение "Домены"
  2. Выбрать нужный домен , в нашем случае "ivanov"
  3. Выбрать "Свойства домена"
  4. Выбрать SIP / SIP транспорта
  5. В поле "IP set" выбрать какой будем использовать , в нашем примере "test_set"
  6. Сохранить

Создание внутренних абонентов вАТС

Давайте создадим 10 абонентов , с номерами 100-109. В примере для упрощения будем использовать имя пользователя и пароль пользователя =номер абонента:

  1. Выбрать приложение "Карточка абонента"
  2. Выбрать  "Добавить"
  3. Имя интерфейса = внутренний абонентский номер
  4. Выбрать sip
  5. Выбрать Авторизация = register
  6. Включить "Использовать номер в качестве логина"
  7. Пароль = внутренний абонентский номер
  8. Подтвердить

Создадим оставшиеся 9 абонентов через веб интерфейс или Cocon интерфейс на ваше усмотрение.

Результат :

Сейчас все 10 абонентов могут устанавливать соединения между собой.

Организовать подключение между ECSS-10 (городской АТС) и вАТС "ivanov"

Для организации проключения между городской АТС и вАТС, необходимо определить (выделить) полный городской номер (номера) для звонков на вАТС, а так же определить каким внутренним абонентам разрешен прямой выход в город, а каким запрещен. В нашем примере мы выделим два номера 420100 и 420101. Внутренние абоненты 100-105 будут иметь прямой выход в город, а 106-109 нет. 

создание Планов нумерации

для организации связи между абонентами вАТС и абонентами ECSS-10, а так же звонков на другие станции необходимо создать План нумерации как в вАТС, так и в городском домене ECSS-10.

  • в вАТС , выбрать приложение "Менеджер планов нумерации" в домене "ivanov"

Cразу видим список доступных абонентов в данной вАТС, но имя плана нумерации отсутствует. Его нужно создать. В нашем примере создадим имя "ivanov":

  1. Выбрать "Добавить план"
  2. Указать имя плана нумерации "ivanov"
  3. Сохранить

результат

  • в городском домене создать план нумерации который будет поддерживать связь с вАТС "ivanov", выполняется аналогичным образом , только в домене "город":

Создание бриджа

После создания планов нумерации необходимо создать бридж, который будет связывать 2 домена. При декларации бриджа в поле "план нумерации", необходимо указать соответствующие планы нумерации. Бридж создаем из основного домена "gorod"(рекомендуется), основной домен должен быть доменом А.

  1. Указываем имя домена А/Б, указываем План нумерации домена А/Б (которые мы только что создали).
    Временно указываем Контекст А/Б = "default_routing" позже контекст должен быть изменен.
    В нашем примере - не более 3-х одновременных разговоров, поэтому устанавливаем "Количество каналов Всего" =3.
  2. Сохраняем.

Настройка контекста маршрутизации

После того, как были созданы "планы нумерации" и "бридж", необходимо настроить маршрутизацию между доменами. Для этого создадим контекты маршрутизации.

В данном примере, у домена "gorod" существует центральный контекст (default_routing), маршрутизация в котором происходит на транки/бриджи/другие контексты.

Задавать план нумерации на этот контекст не рекомендуется.


Создадим на домене "gorod" контекст маршрутизации, название — "to_ivanov", план нумерации — "ivanov".

  1. Выбрать "Менеджер маршрутизации"
  2. Выбрать "Контекст" добавить
  3. Указать имя "to_ivanov"
  4. Указать План нумерации "ivanov"
  5. Подтвердить


и добавим туда правило маршрутизации (в домене "gorod"):

  1. Выбрать добавить "Контекст"
  2. Выбрать контекст "to_ivanov"
  3. Выбрать добавить правило
  4. Указать указать имя правила , для примера, "420100"
  5. Добавить номер cdpn = 42010(0,1) . (этим параметром мы задали два номера 420100 и 420101)
  6. Задать результат маршрутизации = внешний , bridge:to_ivanov
  7. Сохранить

этим правилом мы направим все звонки на номера 420100/420101 в бридж с именем "to_ivanov"

Но, наши городские абоненты, обслуживаются в контексте "default_routing". Поэтому требуется проключить звонки на номера 420100/420101 из контекста "default_routing" в контекст "to_ivanov"

  1. Создать правило с условием номер В 42010(0,1) , результат= анализ в контексте с именем "to_ivanov". Не забыть поставить его перед правилом "local_calls"


Следующим шагом мы должны пробросить эти два номера , 420100/420101, через бридж на нашу вАТС. Так же указать какие внутренние номера из диапазона 100-109 будут подключены к этим городским номерам.

Проброс номеров через бридж


в домене A "gorod"

этим шагом мы закрепляем выделенные номера , 420100 и 420101 за планом нумерации "ivanov"

  1. Выбрать приложение "Менеджер планов нумерации"
  2. Выбрать ранее созданный план "ivanov"
  3. Выбрать добавить номера
  4. Указать номера , для примера, "42010{0,1}" (одной командой добавим два номера 420100 и 420101)
  5. Сохранить

Следующий шаг:
данным шагом мы переправляем все звонки на номера 420100 и 42010 в бридж "to_ivanov"  к вАТС

  1. Выбрать план нумерации "ivanov"
  2. Выбрать ранее добавленные номера 420100 и 42010
  3. Выбрать Бриджи
  4. Указать бридж "to_ivanov" 
  5. Сохранить

в домене В "ivanov"

переходим в домен "ivanov"

  1. Выбрать приложение  "Менеджер планов нумерации"
  2. Выбрать ранее созданное имя плана нумерации "ivanov"

Мы сразу видим наши номера 420100 и 420101. Мы их пробросили из городского домена , и видим в домене вАТС. Наша задача закрепить за городскими номерами локальные номера вАТС. 


При этом выбирая номер с функцией "Владелец" мы указываем на какой внутренний номер будут поступать входящие звонки с городских номеров. Номера которые подключены к городскому номеру , смогут выполнять исходящие звонки на город.

  1. Выбрать городской номер, для примера "420100"
  2. Выбрать Алиасы
  3. Выбрать номер который будет "владельцем"
  4. Выбрать номер который сможет использовать исходящую связь на город
  5. Выбрать номер который сможет использовать исходящую связь на город
  6. Выбрать номер который сможет использовать исходящую связь на город
  7. Выбрать номер который сможет использовать исходящую связь на город
  8. Сохранить

аналогично подключим второй номер , он будет закреплен за начальником компании "ООО Иванов"

подключаем план нумерации "ivanov" c уже проброшенными номерами к контексту маршрутизации внутри домена (вАТС)

  1. Выбрать  Контекс "default_routing", редактирование
  2. Выбрать План нумерации, и изменить дефолтное значение на созданное "ivanov"
  3. Сохранить

теперь нам нужно обновить конфигурацию бриджа, при создании был использован контекст маршрутизации "default_routing" 

  1. Заменить контекст А с "default_routing"  на "to_ivanov"
  2. Сохранить

Чтобы разрешить абонентам компании "ООО Иванов" звонить на город, в контексте маршрутизации "default_routing" домена "ivanov" сделать правило выхода в город по номерам 4200?? с результатом внешний brige:to_gorod. Не забыть поставить его на первую позицию.

Теперь абоненты компании "OOO Иванов" могут делать исходящие звонки на городские номера 4200xx, а так же получать входящие звонки из города на телефон секретаря и телефон начальника.

Но  условиях было сказано что не все абоненты , а только 100-105 могут делать исходящую связь в город. А в настоящий момент все 10 абонентов могут позвонить на город. Давайте исправим эту ошибку. 

  1. В приложение "Менеджер бриджей" активизировать функционал "Проверка номеров"
  2. Сохранить

Активизировав функцию "Проверка номеров" мы разрешаем звонки с номеров которые были привязаны в плане нумерации к городским номерам

на примерах видно , что разрешенные номера 100,102,103,104,105,101.

Теперь только с этих номеров звонки в город будут успешные. То есть в домене "ivanov" мы активизировали контроль за номерами прописанными в плане нумерации, только с них можно делать исходящие звонки.


Так же активизируется контроль в домене "gorod" , со стороны А звонки будут проходить только на номера привязанные к бриджу. Если создать правило маршрутизации с коротким номером В=100-109 звонок все равно не состоится (будет выполнена блокировка на бридже) .
Если же отключить проверку номера на бридже , то можно будет звонить по короткому номеру (100-109) и по городскому номеру (420100/420101), но это не корректно, с точки зрения сети общего пользования.

Мы успешно создали вАТС, с 10-ю внутренними номерами.

  • Данные абоненты могут делать внутренние звонки без ограничения.
  • Абоненты с номерами 100-105 могут делать исходящие звонки в город.
  • Для руководителя выделен отдельный городской номер.
  • Все входящие звонки поступают на секретаря, который будет переводить звонки на сотрудников используя услугу "Передача вызова (ctr)".