В данном разделе описаны общие команды CoCon, которые используются для управления виртуальными АТС.

Корневые команды настроек домена:

<DOMAIN> — имя виртуальной АТС системы ECSS-10.

copy

Командой /domain/copy предназначена для создания копии домена с новым именем на основе имеющегося домена с сохранением всех настроек, кроме алиасов и интерфейсов.

Путь команды:

/domain/copy

Синтаксис:

copy <SRC_DOMAIN> <DST_DOMAIN> [--digitmap <DIGITMAP>] [--to-main-bridge <SRC_BRIDGE_NAME> <DST_BRIDGE_NAME>]

Параметры:

<SRC_DOMAIN> — исходное имя домена;
<DST_DOMAIN> — имя нового домена;

Имя домена не должно быть "undefined", "calendar", "properties", начинаться с точки ( . ) или дефиса ( — ).

<DIGITMAP> — список масок набора, по которому будет валидироваться номер во вновь создаваемом домене.

Формат описания digitmap

Digitmap :: Правило_1 | Правило_2 |...| Правило_N

Номер удовлетворяет digitmap, когда он удовлетворяет одному из перечисленных правил.

Формат правила:

  • X или х — любая цифра от 0 до 9, равнозначно диапазону [0-9];
  • 0-9 — цифры от 0 до 9;
  • "A", "B", "C", "D" — символы «A», «B», «C», «D»;
  • * — символ *;
  • # — символ #;
  • [ ] — указание диапазона (через тире), либо перечисление (без пробелов, запятых и прочих символов между цифрами), например:
    • диапазон [1-5] — 1,2,3,4 или 5;
    • перечисление [138] — 1,3 или 8;
    • диапазон и перечисление [0-9*#] — от 0 до 9, а также * и #.
  • {min,max} – указание количества повторений символа, стоящего перед скобками, диапазона или символов *#. min — минимальное количество повторений, max — максимальное. {,max} — равнозначно {0,max}; {min,} — равнозначно {min,inf.}.

Пример:

5{2,5} —— цифру 5 можно набрать от двух до пяти раз.
Равнозначно записи 55|555|5555|55555
  • . — спецсимвол «точка» указывает на возможность повторения предшествующей перед данным символом цифры, диапазона или символов *# от нуля до бесконечности раз. Равнозначно записи {0,}
Пример:

5х.*  — х в данном правиле может либо отсутствовать вообще, либо присутствовать сколько угодно раз. Равнозначно записи |5х*|5xx*|5xxx*|...

  • + — повторение предшествующей перед символом «+» цифры, диапазона или символов *# от одного до бесконечности раз. Равнозначно записи {1,}.


<SRC_BRIDGE_NAME> — имя бриджа, копию которого необходимо создать для выхода в вышестоящий домен.

<DST_BRIDGE_NAME> — имя нового бриджа;

Пример:

admin@mycelium1@ecss1:/$ domain/copy front.office back.office --to-main-bridge office_br office-2 --digitmap 42XX              
Domain front.office successfully copied to back.office

[exec at: 11.02.2021 23:37:54, exec time: 1s 346ms, nodes: ds1@ecss1 v.3.14.7.566]

declare

Команда используется для создания новой виртуальной АТС в системе ECSS-10.

Путь команды:

/domain/declare

Синтаксис:

declare <DOMAIN>[--alias-limit <AliasLimit>] [--apply-ss-profile <SSProfileName>] [--apply-ivr-restrictions-profile <IVRScriptProfileName>] [--call-limit <CallLimit>] [--digitmap <Digitmap>] [--add-domain-user-privileges] [--add-domain-admin-privileges] [--degraded]

Параметры:

<DOMAIN> — имя виртуальной АТС;

  • --alias-limit <AliasLimit> — ограничение на количество алиасов на домен, по умолчанию значение <AliasLimit> устанавливается из лицензии;
  • --apply-ss-profile <SSProfileName> — имя системного профиля услуг, копируемого в создаваемый домен;
  • --apply-ivr-restrictions-profile <IVRScriptProfileName> — имя профиля IVR-скриптов, применяемых к создаваемому домену;
  • --call-limit <CallLimit> — ограничение на количество одновременных вызовов на домен, по умолчанию значение <CallLimit> устанавливается из лицензии;
  • --add-domain-user-privileges — флаг, определяющий, необходимо ли добавлять текущего пользователя в группу пользователей создаваемого домена;
  • --add-domain-admin-privileges — флаг, определяющий, необходимо ли добавлять текущего пользователя в группу администраторов создаваемого домена;
  • --degraded — флаг, определяющий, что данный домен будет без  функции резервирования;
  • --digitmap — cписок масок набора, по которому будет валидироваться алиасы при создании. Описание формата digitmap.

Пример:

admin@mycelium1@ecss1:/$ domain/declare ext.pbx --alias-limit 20 --call-limit 20 --add-domain-user-privileges --add-domain-admin-privileges
New domain ext.pbx is declared

[exec at: 11.02.2021 23:13:50, exec time: 253ms, nodes: ds1@ecss1 v.3.14.7.566]

list

Команда для просмотра зарегистрированных в системе виртуальных АТС.

Путь команды:

/domain/list

Синтаксис:

list

Параметры:

Команда не содержит аргументов.

Пример:

admin@mycelium1@ecss1:/$ domain/list 
There are declared ECSS domains:
 back.office
 biysk.local
 ext.pbx
 front.office
 test

Total: 5

[exec at: 11.02.2021 23:22:51, exec time: 20ms, nodes: ds1@ecss1 v.3.14.7.566]

pbx-declare

Команда предназначена для создания домена с предопределенными настройками под небольшие виртуальные АТС.

Так как при создании домена создается и бридж - то при удалении такого домена необходимо удалять и бридж в этот домен. Иначе будет утечка номеров, которые закрепляются за бриджами.

Путь команды:

/domain/pbx-declare

Синтаксис:

pbx-declare <Name> <Type> <DefaultSSProfile | --skip> <AliasLimit> <ExternalCallLimit> <TotalCallLimit> <SIPShareSet> <ParentPBX> <ParentContext> <ParentNP> [<CityNumbers>]

Параметры:

<Name> — имя домена с предопределенными настройками под небольшие виртуальные АТС;

<Type> — тип домена, принимает значения:

  • pbx10 — трехзначный номер, не более 10 абонентов,
  • pbx100 — трехзначный номер, не более 100 абонентов,
  • pbx1000 — четырехзначный номер, не более 1000 абонентов;

<DefaultSSProfile> — имя профиля дополнительных услуг, которое будет скопировано в создаваемую виртуальную АТС(–skip, чтобы пропустить);
<AliasLimit> — количество алиасов в ВАТС;
<ExternalCallLimit> — количество входящих вызовов (от/до ВАТС);
<TotalCallLimit> — количество вызовов в ВАТС;
<SIPIpSet> — имя ip-set-а для SIP транспорта для данного домена;
<ParentPBX> — имя ВАТС для исходящих вызовов;
<ParentContext> — контекст маршрутизации по умолчанию для входящих вызовов от созданной ВАТС к исходной ВАТС;
<ParentNP> — имя плана нумерации в исходной ВАТС для созданной ВАТС;
<CityNumbers> :: <CityNumber1>[, <CityNumber2>[, ...]] — список городских номеров (в домене <ParentPBX>).

admin@mycelium1@ecss1:/$ domain/pbx-declare ext.pbx2 pbx10 --skip 10 8 10 ipset1 biysk.local ctx_from_local np_240       
Start operation: 'Create "ext.pbx2" PBX domain'
Operation complete
Start operation: 'Declare numbering plan for PBX ext.pbx2'
Operation complete
Start operation: 'Import routing contexts'
Operation complete
Start operation: 'Set default routing context for calls from IVR'
Operation complete
Start operation: 'Enable imcoming IVR script'
Operation complete
Start operation: 'Declare bridge biysk.local_to_ext.pbx2 between ext.pbx2 and biysk.local'
Operation complete
Start operation: 'Bind NP numbers from parent PBX to bridge'
Operation complete
Start operation: 'Set PBX IP set'
Operation complete
Start operation: 'Declare SIP users'
10 interfaces check for existing ...
[**********************************************************************] 63mks    
10 users interfaces declaration ...
[**********************************************************************] 59ms     
10 users divided into 1 parts to declare ...
[**********************************************************************] 11mks    
10 users aliases declaration ...
[**********************************************************************] 10ms     
10 interfaces recall to base
[**********************************************************************] 11ms     
Operation complete
Start operation: 'Declare PBX admin ext.pbx2'
Operation complete
10 make users list ...
[**********************************************************************] 37mks    
10 users information read ...
[**********************************************************************] 48ms     

PBX "ext.pbx2" successfully created.

PBX's admin login: ext.pbx2
PBX's admin password: 5mOLZkbFC5lc

Create SIP users':
┌────────────┬─────┬────────────┐
│    Uri     │Login│  Password  │
├────────────┼─────┼────────────┤
│400@ext.pbx2│400  │ii8qnf34peAd│
│401@ext.pbx2│401  │7HbvLJ8je6K0│
│402@ext.pbx2│402  │WeZEITqYCZ3F│
│403@ext.pbx2│403  │Xz4AEIZGAYzN│
│404@ext.pbx2│404  │c0pCiUsy67iH│
│405@ext.pbx2│405  │0Y5O9xHOfVX9│
│406@ext.pbx2│406  │f1viCrwhty89│
│407@ext.pbx2│407  │x0GTZsvnSmFH│
│408@ext.pbx2│408  │5O00BGZ6LrkR│
│409@ext.pbx2│409  │NMl44brpD9Je│
└────────────┴─────┴────────────┘

[exec at: 12.02.2021 07:37:21, exec time: 7s 56ms, nodes: ds1@ecss1 v.3.14.7.566, sip1@ecss1 v.3.14.7.566, sip1@ecss2 v.3.14.7.566]

purge

Команда для удаления различных данных из виртуальной АТС без удаления конфигурации виртуальной АТС.

Путь команды:

/domain/purge

Синтаксис:

purge [--<FLAGS>] <DOMAIN>

Параметры:

<DOMAIN> — имя виртуальной АТС;<FLAGS> :: --<FLAG_1> --<FLAG_2> ...
<FLAG> :: routing | statistics | call-history | cdr | call-trace | record-calls | subscriber-sounds | sounds | faxes | all | force

  • routing — удалить исходные файлы контекстов маршрутизации после удаления домена;
  • statistics — удалить статистику КЦ, по вызовам;
  • call-history — удалить историю вызовов по данному домену;
  • cdr — удалить CDR записи по данному домену;
  • record-calls — удалить записанные разговоры по данному домену;
  • subscriber-sounds — удалить пользовательские аудио-файлы (музыка, голосовая почта) по данному домену;
  • sounds — удалить доменные аудио-файлы по данному домену;
  • faxes — удалить факсы, полученные с данного домена;
  • all — удалить всю имеющуюся информацию по данному домену;
  • force — принудительное удаление виртуальной АТС. Данная опция позволяет безусловно удалить виртуальную АТС, не учитывая ее текущее состояние.

Пример 1:

admin@mycelium1@ecss1:/$ domain/purge --faxes --statistics --force ext.pbx 

Start purge 'faxes' subsystem
Group 'core1' successfully purged
Purge time: 36ms

Start purge 'statistics' subsystem
Group 'core1' successfully purged
Purge time: 5s 293ms

[exec at: 11.02.2021 23:23:48, exec time: 5s 352ms, nodes: ds1@ecss1 v.3.14.7.566]

Пример 2:

admin@mycelium1@ecss1:/$ domain/purge --all back.office
[purge] You are going to purge "back.office" domains' data.
Are you sure?: yes/no ?> yes

Start purge sources of routing contexts
Result:
┌─────────┬───────┐
│  Node   │Result │
├─────────┼───────┤
│ds1@ecss1│success│
└─────────┴───────┘
Purge time: 2ms

Start purge 'statistics' subsystem
Group 'core1' successfully purged
Purge time: 5s 130ms

Start purge 'call-history' subsystem
Group 'core1' successfully purged 0 rows
Purge time: 14ms

Start purge 'cdr' subsystem
Group 'core1' successfully purged 0 rows
Purge time: 8ms

Start purge 'record-calls' subsystem
Group 'core1' successfully purged
Purge time: 67ms

Start purge 'subscriber-sounds' subsystem
Group 'core1' successfully purged
Purge time: 105ms

Start purge 'sounds' subsystem
Group 'core1' successfully purged
Purge time: 68ms

Start purge 'faxes' subsystem
Group 'core1' successfully purged
Purge time: 30ms

[exec at: 11.02.2021 23:25:00, exec time: 8s 528ms, nodes: ds1@ecss1 v.3.14.7.566]

remove

Команда для удаления виртуальной АТС из системы.

Путь команды:

/domain/remove

Синтаксис:

remove [<FLAGS>] <DOMAIN>

Параметры:

<DOMAIN> — имя виртуальной АТС;

<FLAGS> :: --<FLAG_1> --<FLAG_2> ...
<FLAG> :: routing | statistics | call-history | cdr | record-calls | subscriber-sounds | sounds | faxes | purge-all | force

  • routing — удалить исходные файлы контекстов маршрутизации после удаления домена;
  • statistics — удалить статистику КЦ, по вызовам;
  • call-history — удалить историю вызовов по данному домену;
  • cdr — удалить CDR записи по данному домену;
  • record-calls — удалить записанные разговоры по данному домену;
  • subscriber-sounds — удалить пользовательские аудио-файлы (музыка, голосовая почта) по данному домену;
  • sounds — удалить доменные аудио-файлы по данному домену;
  • faxes — удалить факсы, полученные с данного домена;
  • purge-all — удалить всю имеющуюся информацию по данному домену;
  • force — принудительное удаление виртуальной АТС. Данная опция позволяет безусловно удалить виртуальную АТС, не учитывая ее текущее состояние.

Пример 1:

admin@mycelium1@ecss1:/$ domain/remove --purge-all ext.pbx
[remove] You are going to remove domain "ext.pbx". All properties, aliases, aliase's prof
         iles, SS settings, bridges, routing contexts, restrictions, access-types, access
         -groups will be removed.
Are you sure?: yes/no ?> yes
[**********************************************************************] 1s 194ms 

Start purge sources of routing contexts
Result:
┌─────────┬───────┐
│  Node   │Result │
├─────────┼───────┤
│ds1@ecss1│success│
└─────────┴───────┘
Purge time: 2ms

Start purge 'statistics' subsystem
Group 'core1' successfully purged
Purge time: 5s 255ms

Start purge 'call-history' subsystem
Group 'core1' successfully purged 0 rows
Purge time: 6ms

Start purge 'cdr' subsystem
Group 'core1' successfully purged 0 rows
Purge time: 14ms

Start purge 'record-calls' subsystem
Group 'core1' successfully purged
Purge time: 19ms

Start purge 'subscriber-sounds' subsystem
Group 'core1' successfully purged
Purge time: 69ms

Start purge 'sounds' subsystem
Group 'core1' successfully purged
Purge time: 51ms

Start purge 'faxes' subsystem
Group 'core1' successfully purged
Purge time: 61ms
Declaration of domain "ext.pbx" is removed.

[exec at: 11.02.2021 23:26:06, exec time: 9s 814ms, nodes: ds1@ecss1 v.3.14.7.566]

Пример 2:

admin@mycelium1@ecss1:/$ domain/remove --force back.office
[**********************************************************************] 1s 16ms  
Declaration of domain "back.office" is removed.

[exec at: 11.02.2021 23:27:06, exec time: 1s 61ms, nodes: ds1@ecss1 v.3.14.7.566]