После установки, активации и выполнения настроек услуги администратор системы либо оператор виртуальной АТС должен удостовериться, что сервис развернулся успешно.
Для просмотра информации об активированных в рамках виртуальной АТС услугах используется команда:
- для администратора системы:
/cluster/storage/<SOME_STORAGE>/ss/info <DOMAIN> [*] [-all] [<ADDRESS>]
- для оператора виртуальной АТС:
/domain/<DOMAIN>/ss/info [*] [-all] [<ADDRESS>]
где
<SOME_STORAGE> - имя кластера хранения долговременных данных (DS);
<DOMAIN> - имя виртуальной АТС (домен), которой принадлежит абонент;
<ADDRESS> - номер или диапазон номеров абонента(ов), для указания всех абонентов заданной виртуальной АТС используется "*";
- -all - флаг, при указании которого будет показана полная информация об всех активированных в системе услугах;
- * - флаг, при указании которого будет показана полная информация об всех активированных в системе услугах.
Описание параметров таблицы команды "info":
- Domain - название виртуальной АТС;
- Address - номер абонента;
- Name - название услуги;
- msd - MSD-свойства услуги, MSD-свойства могут изменять оператор/пользователь;
- V - версия реализации услуги;
- E - доступ на использование услуги абонентом: T - разрешено использовать услугу; F - запрещено использовать услугу;
- CSD - CSD-свойства услуги, CSD-свойства могут изменять оператор/пользователь:
- SSD - SSD-свойства услуги, SSD-свойства могут изменять только разработчики данной услуги.
Также для просмотра информации об установленных в системе услугах используется команда:
- для администратора системы:
/cluster/storage/<SOME_STORAGE>/ss/show [<SSNames>] | [*]
- для оператора виртуальной АТС:
node/<NAME_DS>/ss/show [<SSNames>] | [*]
где <SOME_STORAGE> - имя кластера хранения долговременных данных (DS);
<NAME_DS> - имя ноды DS;
<NAMES> - название полей таблицы, информацию по которым нужно отобразить, для указания всех полей используется "*", список полей задается через ",":
- Name - название услуги;
- msd - MSD-свойства услуги, MSD-свойства могут изменять оператор/пользователь;
- version - версия реализации услуги;
- description - описание услуги;
- ssd - SSD-свойства услуги, SSD-свойства могут изменять только разработчики данной услуги.
- csd - CSD-свойства услуги, CSD-свойства могут изменять оператор/пользователь:
Пример
Просмотреть список услуг, активированных на виртуальной АТС "biysk.local" у абонента 240903:
admin@[mycelium1@ecss1#ECSS-T 000009]:/$ cluster/storage/ds1/ss/info biysk.local 240903 Domain: biysk.local Supplementary services' settings: ┌────────────────────────────┬────────────────────────────────────────────────┬─┬─┬─────────────────────────────────────────────────────────────────────────────┐ │ Address │ Name │V│E│ CSD │ ├────────────────────────────┼────────────────────────────────────────────────┼─┼─┼─────────────────────────────────────────────────────────────────────────────┤ │240903 │call_recording │9│T│mode = always_on │ │240903 │cc_agent │2│T│ │ │240903 │cf_sip │6│T│ │ │240903 │chold │8│T│disable_moh = false │ │ │ │ │ │dtmf_sequence_as_flash = false │ │240903 │clip │5│T│ │ │240903 │cnip │3│T│ │ │240903 │conference │9│T│destroy_mode = by_no_master │ │ │ │ │ │max_participants = 16 │ │240903 │ctr │5│T│ │ │240903 │intervention │3│T│ │ │240903 │mcid │2│T│ │ │240903 │ml │3│T│line_count = 3 │ │ │ │ │ │line_count_out = -1 │ │240903 │park │2│T│ │ └────────────────────────────┴────────────────────────────────────────────────┴─┴─┴─────────────────────────────────────────────────────────────────────────────┘ Legend: V - version of the supplementary service; E - enable state of selected supplementary service to current domain, address [exec at: 21.07.2019 09:56:17, exec time: 34ms, nodes: ds1@ecss1]
Просмотреть список установленных в системе услуг (метаданные):
admin@[mycelium1@ecss1#ECSS-T 000009]:/$ cluster/storage/ds1/ss/show * ┌────────────┬──┬───────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┐ │ name │ve│ description │ msd │ ssd │ csd │ │ │rs│ │ │ │ │ │ │io│ │ │ │ │ │ │n │ │ │ │ │ ├────────────┼──┼───────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤ │3way │6 │3-Way Conferenc│atom[] dependency_list = [chold]; //List o│boolean dtmf_detector = true; // │ │ │ │ │e │f SS that is depended from SS │ │ │ │ │ │ │atom[] conflict_list = [conference]; //Lis│ │ │ │ │ │ │t of SS that is conflict with current SS │ │ │ │acb │2 │Anonymous Call │ │ │ │ │ │ │Blocking │ │ │ │ │alarm │8 │Alarm Call │atom handle_module = ss_alarm_handler; // │integer collect_digits_timeout = 60; //Wai│integer no_answer_timeout = 45; //Awaiting│ │ │ │ │ │t timeout to collect cancel digits │ answer timer (value in seconds) │ │ │ │ │ │ │integer call_attempt_count = 3; //The coun│ │ │ │ │ │ │t of the call's attempt │ │ │ │ │ │ │integer call_attempt_timeout = 60; //Await│ │ │ │ │ │ │ing timer between calls' attempts │ │ │ │ │ │ │address cancel_digits = "*"; //Digits to c│ │ │ │ │ │ │ancel alarm │ │ │ │ │ │ │term alarm_1 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_2 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_3 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_4 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_5 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_6 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_7 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_8 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │ │ │ │ │ │term alarm_9 = off; //"{" "'one-time'" | d│ │ │ │ │ │ │aily, "[" Day1[, Day2][, ...] "]","{"HH, M│ │ │ │ │ │ │M"}"[, AlarmName]"}" │ │assistant │1 │Chief-assistant│atom owner = user; //SS type. Available va│ │index_address[4] assistants = undefined; /│ │ │ │ group │lues: user | trunk | any │ │/Assistants numbers. Format: <address>[/<i│ │ │ │ │ │ │ndex>] │ │ │ │ │ │ │index_address[128] whitelist = undefined; │ │ │ │ │ │ │//White list members. Format: <address>[/<│ │ │ │ │ │ │index>] │ │auto_redial │2 │Auto redial │ │ │positive_integer recall_timeout = 15; //Ti│ │ │ │ │ │ │meout between recalls (sec) │ │ │ │ │ │ │positive_integer recall_count = 6; //Recal│ │ │ │ │ │ │ls' count │ │ │ │ │ │ │positive_integer no_answer_timeout = 30; /│ │ │ │ │ │ │/Awaiting answer timeout (sec) │ │auto_redial_│5 │Auto redial wit│string enumRingback = "tone|moh"; //Ringba│ │positive_integer recall_timer = 90; //Time│ │with_callbac│ │h callback │ck │ │ between recalls (sec) │ │k │ │ │ │ │positive_integer recall_count = 30; //Reca│ │ │ │ │ │ │lls' count │ │ │ │ │ │ │positive_integer a_no_answer_timeout = 10;│ │ │ │ │ │ │ //Awaiting B-side answer timeout (sec) │ │ │ │ │ │ │positive_integer b_no_answer_timeout = 30;│ │ │ │ │ │ │ //Awaiting A-side answer timeout (sec) │ │ │ │ │ │ │enum ringback = tone; //Ringback (tone | m│ │ │ │ │ │ │oh) │ │blf │2 │Busy Lamp Field│ │ │positive_integer max_subscribe = 16; //Max│ │ │ │ │ │ │imum number of subscriptions │ │call_recordi│9 │Call recording │string enumMode = "always_on|on_demand|aft│boolean locked = true; //Can subscriber ma│enum mode = undefined; //The mode of the r│ │ng │ │ │er_answer"; //Internal field to validate m│nage current SS, or not │ecording call (always_on|on_demand) │ │ │ │ │ode property │boolean dtmf_detector = true; // │ │ │callback │5 │CallBack │ │integer collect_digits_timeout = 60; //Wai│ │ │ │ │ │ │t timeout to collect cancel digits │ │ │ │ │ │ │positive_integer a_onhook_timeout = 5; //T│ │ │ │ │ │ │imeout for A subscriber onhook (sec) │ │ │ │ │ │ │positive_integer max_call_retry = 5; //The│ │ │ │ │ │ │ maximum count of call's retry to initial │ │ │ │ │ │ │subscriber │ │ │ │ │ │ │boolean dtmf_detector = true; // │ │ │cc_agent │2 │Contact-Center │ │ │ │ │ │ │agent │ │ │ │ │cf_sip │6 │Call Forwarding│atom owner = any; //SS type. Available val│ │ │ │ │ │ by SIP redirec│ues: user | trunk | any │ │ │ │ │ │tion (302 messa│atom[] conflict_list = [cfu,assistant,foll│ │ │ │ │ │ge) │ow_me,tsmn_request]; //List of SS that is │ │ │ │ │ │ │conflict with current SS │ │ │ │cfb │7 │Call Forwarding│atom owner = any; //SS type. Available val│ │address number = undefined; //Forward numb│ │ │ │ Busy │ues: user | trunk | any │ │er │ │ │ │ │atom[] conflict_list = [cfu,assistant,foll│ │ │ │ │ │ │ow_me,tsmn_request]; //List of SS that is │ │ │ │ │ │ │conflict with current SS │ │ │ │cfnr │7 │Call Forwarding│atom owner = any; //SS type. Available val│ │address number = undefined; //Forward numb│ │ │ │ No Reply │ues: user | trunk | any │ │er │ │ │ │ │atom[] conflict_list = [cfu,assistant,foll│ │positive_integer timeout = 15; //Timeout b│ │ │ │ │ow_me,tsmn_request]; //List of SS that is │ │efore call forward (sec) │ │ │ │ │conflict with current SS │ │ │ │cfnr_type2 │7 │Call Forwarding│atom owner = any; //SS type. Available val│ │address number = undefined; //Forward numb│ │ │ │ No Reply witho│ues: user | trunk | any │ │er │ │ │ │ut notification│atom[] conflict_list = [cfu,assistant,cfnr│ │positive_integer timeout = 15; //Timeout b│ │ │ │ │,follow_me,tsmn_request]; //List of SS tha│ │efore call forward (sec) │ │ │ │ │t is conflict with current SS │ │boolean use_redirection_counter = false; /│ │ │ │ │ │ │/Use redirectionCounter field to count ho│ │ │ │ │ │ │ps │ │cfos │8 │Call Forwarding│atom owner = any; //SS type. Available val│ │address number = undefined; //Forward numb│ │ │ │ Out of Service│ues: user | trunk | any │ │er │ │ │ │ │atom[] conflict_list = [cfu,assistant,foll│ │ │ │ │ │ │ow_me,tsmn_request]; //List of SS that is │ │ │ │ │ │ │conflict with current SS │ │ │ │cft │9 │Call Forwarding│atom owner = any; //SS type. Available val│ │term day_1 = off; //{[{{FromHour,FromMinut│ │ │ │ Unconditional │ues: user | trunk | any │ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │Time Dependent │string enumTime_format = "local|utc"; //In│ │term day_2 = off; //{[{{FromHour,FromMinut│ │ │ │ │ternal field to validate time_format prope│ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │ │rty │ │term day_3 = off; //{[{{FromHour,FromMinut│ │ │ │ │atom[] conflict_list = [cgg,cfu,assistant,│ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │ │follow_me,tsmn_request]; //List of SS that│ │term day_4 = off; //{[{{FromHour,FromMinut│ │ │ │ │ is conflict with current SS │ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │ │ │ │term day_5 = off; //{[{{FromHour,FromMinut│ │ │ │ │ │ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │ │ │ │term day_6 = off; //{[{{FromHour,FromMinut│ │ │ │ │ │ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │ │ │ │term day_7 = off; //{[{{FromHour,FromMinut│ │ │ │ │ │ │e}, {ToHour,ToMinute}}, ...], Number} │ │ │ │ │ │ │enum time_format = local; //CFT for Sunday│ │ │ │ │ │ │ (local | utc) │ │cfu │8 │Call Forwarding│atom owner = any; //SS type. Available val│ │address number = undefined; //Forward numb│ │ │ │ Unconditional │ues: user | trunk | any │ │er │ │ │ │ │atom[] conflict_list = [ctu,cgg,assistant,│ │ │ │ │ │ │follow_me,tsmn_request]; //List of SS that│ │ │ │ │ │ │ is conflict with current SS │ │ │ │cfu_type2 │7 │Call Forwarding│atom owner = any; //SS type. Available val│ │address number = undefined; //Forward numb│ │ │ │ Unconditional │ues: user | trunk | any │ │er │ │ │ │without notific│atom[] conflict_list = [cfu,cgg,assistant,│ │boolean use_redirection_counter = false; /│ │ │ │ation │follow_me,tsmn_request]; //List of SS that│ │/Use redirectionCounter field to count ho│ │ │ │ │ is conflict with current SS │ │ps │ │cgg │4 │Group-calling │ │ │address[10] numbers = undefined; //Group's│ │ │ │ │ │ │ numbers │ │chold │8 │Call hold │ │boolean dtmf_detector = true; // │boolean dtmf_sequence_as_flash = false; //│ │ │ │ │ │ │Try interpret the DTMF sequence as a flash│ │ │ │ │ │ │ (look at incall feature codes) │ │ │ │ │ │ │boolean disable_moh = false; //Disable mus│ │ │ │ │ │ │ic on hold │ │chunt │5 │Call hunt group│string regimeMode = "group:numbers:queue_s│integer delay_retrieve_timeout_1 = 1000; /│regime mode = undefined; //The type of the│ │ │ │s │trategy|serial:numbers:cyclic:search_strat│/Delay retrieve timeout for release group │ chunt │ │ │ │ │egy:window_shift_timeout:max_shift_count:q│call by group subscriber │boolean cyclic = false; //Flag that is sho│ │ │ │ │ueue_strategy|longest_idle:numbers:cyclic:│integer delay_retrieve_timeout_2 = 5000; /│w is call hunt group cyclic or not │ │ │ │ │window_shift_timeout:max_shift_count:queue│/Delay retrieve timeout for release group │boolean reset_window_start_pos_after_call │ │ │ │ │_strategy|delay_group:numbers:window_shift│call by slave subscriber │= false; //Reset window start position aft│ │ │ │ │_timeout:queue_strategy|manual"; //Interna│integer delay_retrieve_timeout_3 = 15000; │er all incoming calls will be connected wi│ │ │ │ │l field to validate search_strategy proper│//Delay retrieve timeout for waiting free │th group calls │ │ │ │ │ty │group subscriber │positive_integer window_shift_timeout = 0;│ │ │ │ │string enumSearch_strategy = "first|last|r│ │ //Interval after which window shift on th│ │ │ │ │andom|longest_idle"; //Internal field to v│ │e window_shift value │ │ │ │ │alidate search_strategy property │ │integer max_shift_count = -1; //The number│ │ │ │ │string enumQueue_strategy = "wait|drop"; /│ │ of times that a window can be shift │ │ │ │ │/Internal field to validate queue_strategy│ │positive_integer window_size = 1; //The nu│ │ │ │ │ property │ │mber of simultaneous calls to the call-hun│ │ │ │ │ │ │t's subscribers │ │ │ │ │ │ │integer window_start_pos = 0; //The index │ │ │ │ │ │ │(zero-based) of the first subscriber in th│ │ │ │ │ │ │e window │ │ │ │ │ │ │positive_integer window_shift = 1; //The v│ │ │ │ │ │ │alue on which shift window_start_pos when │ │ │ │ │ │ │window_shift_timeout fired │ │ │ │ │ │ │enum queue_strategy = wait; //(wait | drop│ │ │ │ │ │ │) │ │ │ │ │ │ │enum search_strategy = first; //(first | l│ │ │ │ │ │ │ast | random | longest_idle) │ │ │ │ │ │ │positive_integer queue_size = 0; //Wait ca│ │ │ │ │ │ │lls' queue size │ │ │ │ │ │ │address[10] numbers = undefined; //Call-hu│ │ │ │ │ │ │nt member list │ │click_to_cal│5 │Click to call │ │ │address number = undefined; //User's numbe│ │l │ │ │ │ │r │ │ │ │ │ │ │boolean auto_answer = true; //Auto answer │ │ │ │ │ │ │string[10] hashes = undefined; //User's ha│ │ │ │ │ │ │shes │ │clip │5 │Calling Line Id│ │ │ │ │ │ │entification Pr│ │ │ │ │ │ │esentation │ │ │ │ │clir │3 │Calling Line Id│string enumMode = "user_defined|restrict_a│ │enum mode = restrict_all; //The mode of th│ │ │ │entification Re│ll"; //Internal field to validate mode pro│ │e working clir service (user_defined|restr│ │ │ │striction │perty │ │ict_all) │ │cliro │2 │Calling Line Id│ │ │ │ │ │ │entification Re│ │ │ │ │ │ │striction Overr│ │ │ │ │ │ │ide │ │ │ │ │cnip │3 │Calling Name Id│atom owner = any; //SS type. Available val│ │ │ │ │ │entification Pr│ues: user | trunk | any │ │ │ │ │ │esentation │ │ │ │ │conference │9 │Conference Call│string enumDestroy_mode = "by_no_master|by│ │enum destroy_mode = by_no_master; //The mo│ │ │ │, Add-on │_no_more_calls"; //Internal field to valid│ │de of destroying conference (by_no_master|│ │ │ │ │ate mode property │ │by_no_more_calls) │ │ │ │ │atom[] dependency_list = [chold,ctr]; //Li│ │positive_integer max_participants = 16; //│ │ │ │ │st of SS that is depended from SS │ │The maximum number of participants in the │ │ │ │ │atom[] conflict_list = ['3way']; //List of│ │conference, limited to the number 64 at th│ │ │ │ │ SS that is conflict with current SS │ │e top. By default 16 │ │ctr │5 │Call Transfer │atom[] dependency_list = [chold]; //List o│boolean dtmf_detector = true; // │ │ │ │ │ │f SS that is depended from SS │ │ │ │cw │5 │Call Waiting │atom[] dependency_list = [chold]; //List o│boolean dtmf_detector = true; // │ │ │ │ │ │f SS that is depended from SS │ │ │ │direct_call │2 │Direct call │ │ │address number = undefined; //Call number │ │ │ │ │ │ │to direct call │ │ │ │ │ │ │positive_integer timeout = 5; //Timeout be│ │ │ │ │ │ │fore direct call (sec) │ │distinctive_│1 │Destination rin│ │ │distinctive_ring[16] filters = undefined; │ │ring │ │gtone change │ │ │//Distinctive ring for specific numbers │ │dnd │3 │Do not Disturb │ │ │index_address[10] whitelist = undefined; /│ │ │ │ │ │ │/White list members. Format: <address>[/<i│ │ │ │ │ │ │ndex>] │ │fax_receiver│2 │Enable fax rece│ │ │ │ │ │ │iving ability f│ │ │ │ │ │ │or terminals wh│ │ │ │ │ │ │ich is not supp│ │ │ │ │ │ │ort fax by thei│ │ │ │ │ │ │r own │ │ │ │ │fax_to_email│2 │Fax to email │ │ │string email = []; //Email address │ │ │ │ │ │ │boolean send_error_report = false; //Send │ │ │ │ │ │ │email in case of fax received failed │ │fbc │1 │Forwarding Barr│atom owner = any; //SS type. Available val│ │ │ │ │ │ing Call │ues: user | trunk | any │ │ │ │find_me │5 │Find Me │atom[] conflict_list = [cfu,assistant,ctu,│ │boolean send_call_diversion = true; //Send│ │ │ │ │cgg,follow_me,follow_me_no_response]; //Li│ │ call diversion flag in call signalisation│ │ │ │ │st of SS that is conflict with current SS │ │find_me_group[32] groups = []; //Find me g│ │ │ │ │ │ │roups │ │find_me_no_r│5 │Find Me no resp│atom[] conflict_list = [cfu,assistant,ctu,│ │boolean send_call_diversion = true; //Send│ │esponse │ │onse │cgg,follow_me,follow_me_no_response, │ │ call diversion flag in call signalisation│ │ │ │ │ find_me]; //List o│ │positive_integer timeout = 20; //Timeout b│ │ │ │ │f SS that is conflict with current SS │ │efore call forward (sec) │ │ │ │ │ │ │find_me_group[32] groups = []; //Find me g│ │ │ │ │ │ │roups │ │follow_me │6 │Follow me │atom[] conflict_list = [cfu,assistant,cft,│ │address number = []; //Followed number │ │ │ │ │cgg]; //List of SS that is conflict with c│ │address pin = []; //PIN-code │ │ │ │ │urrent SS │ │ │ │follow_me_no│4 │Follow me no re│atom[] conflict_list = [cfu,assistant,cft,│ │address number = []; //Followed number │ │_response │ │sponse │cgg,follow_me]; //List of SS that is confl│ │positive_integer timeout = 20; //Timeout b│ │ │ │ │ict with current SS │ │efore call forward (sec) │ │ │ │ │ │ │address pin = []; //PIN-code │ │intervention│3 │Intervention │ │boolean dtmf_detector = true; // │ │ │mcid │2 │Malicious Call │ │ │ │ │ │ │Identification │ │ │ │ │meet_me_conf│1 │Meet Me Confere│string regimeMode = "master:destroy_mode:r│ │regime mode = undefined; //The mode of mee│ │erence │ │nce │oom_number|member:room_number"; //Internal│ │t me conference (master|member) │ │ │ │ │ field to validate mode property │ │enum destroy_mode = by_no_more_calls; //Th│ │ │ │ │string enumDestroy_mode = "by_no_master|by│ │e mode of destroying conference (by_no_mas│ │ │ │ │_no_more_calls"; //Internal field to valid│ │ter|by_no_more_calls) │ │ │ │ │ate mode property │ │address room_number = []; //Room number │ │message │2 │Message service│atom owner = any; //SS type. Available val│integer message_box_size = 20; //Message b│ │ │ │ │ │ues: user | trunk | any │ox size │ │ │ │ │ │ │boolean remove_only_after_answer = false; │ │ │ │ │ │ │//Remove message only after abonent answer│ │ │ml │3 │Multiline │ │ │positive_integer line_count = 3; //Line co│ │ │ │ │ │ │unt │ │ │ │ │ │ │integer line_count_out = -1; //Outgoing li│ │ │ │ │ │ │nes count │ │my_number │2 │Get number of m│ │ │ │ │ │ │y phone │ │ │ │ │park │2 │Call park │ │ │ │ │personal_ivr│1 │Personal IVR sc│ │ │ivr_script_id script = undefined; //Script│ │ │ │ript │ │ │ ID │ │pickup │2 │Call Pickup │ │ │index_string[10] pickup_groups = undefined│ │ │ │ │ │ │; //Call pick-up's groups names. Format: <│ │ │ │ │ │ │Name>[/<Inx>] │ │presence │2 │SIP Presence │ │ │positive_integer max_subscribe = 16; //Max│ │ │ │ │ │ │imum number of subscriptions │ │qsig_cfb │2 │QSIG: Call Forw│atom owner = trunk; //SS type. Available v│ │ │ │ │ │arding Busy │alues: user | trunk | any │ │ │ │ │ │ │atom[] conflict_list = [cfu]; //List of SS│ │ │ │ │ │ │ that is conflict with current SS │ │ │ │qsig_cfnr │2 │QSIG: Call Forw│atom owner = trunk; //SS type. Available v│ │ │ │ │ │arding No Reply│alues: user | trunk | any │ │ │ │ │ │ │atom[] conflict_list = [cfu]; //List of SS│ │ │ │ │ │ │ that is conflict with current SS │ │ │ │qsig_cfu │2 │QSIG: Call Forw│atom owner = trunk; //SS type. Available v│ │ │ │ │ │arding Uncondit│alues: user | trunk | any │ │ │ │ │ │ional │atom[] conflict_list = [cfu,follow_me]; //│ │ │ │ │ │ │List of SS that is conflict with current S│ │ │ │ │ │ │S │ │ │ │rbp │3 │SS for restrict│ │ │boolean implicit_call = false; //Use impli│ │ │ │ing call-proces│ │ │cit RBP call (Request PIN-code in case of │ │ │ │ses by NI and P│ │ │use recsricted call) │ │ │ │IN │ │ │ni[6] restricted_ni = undefined; //Restric│ │ │ │ │ │ │ted number indication │ │redial │2 │Last number red│ │ │ │ │ │ │ial │ │ │ │ │remote_phone│1 │Remote phone │atom handle_module = ss_remote_phone_handl│ │interface remote_endpoint = <<>>; //Remote│ │ │ │ │er; // │ │ interface │ │ │ │ │ │ │address pin = undefined; //PIN-code │ │rfc │2 │Rejection of Fo│ │ │ │ │ │ │rwarded Calls │ │ │ │ │ring_back_to│2 │Ring back tone │ │ │media_resource file = undefined; //File to│ │ne │ │ │ │ │ play on ring │ │sca │2 │Selective Call │ │ │index_address[50] whitelist = undefined; /│ │ │ │Acceptance │ │ │/White list members. Format: <address>[/<i│ │ │ │ │ │ │ndex>] │ │sco_black │2 │Selective Call │ │ │index_address[50] blacklist = undefined; /│ │ │ │Originating, Bl│ │ │/Black list members. Format: <address>[/<i│ │ │ │ack list │ │ │ndex>] │ │sco_white │2 │Selective Call │ │ │index_address[50] whitelist = undefined; /│ │ │ │Originating, Wh│ │ │/White list members. Format: <address>[/<i│ │ │ │ite list │ │ │ndex>] │ │scr │2 │Selective Call │ │ │index_address[50] blacklist = undefined; /│ │ │ │Rejection │ │ │/Black list members. Format: <address>[/<i│ │ │ │ │ │ │ndex>] │ │speed_dial │5 │Speed dial (Abb│string enumType = "address_book_10|address│ │enum type = address_book_100; //(address_b│ │ │ │reviated dialin│_book_100"; //The type of address book. ad│ │ook_10 | address_book_100) │ │ │ │g) │dress_book_10 supports 10 number in the ad│ │speed_dial_item[50] map = []; //Map betwee│ │ │ │ │dress book. address_book_100 supports 100 │ │n short dial and full address. Format: <sh│ │ │ │ │numbers on the address book │ │ort_dial>/<address> │ │teleconferen│2 │Teleconference │ │ │boolean destroy_by_no_initiator = true; //│ │ce │ │ │ │ │Destroy the teleconference by release from│ │ │ │ │ │ │ the initiator? │ │teleconferen│3 │Teleconference │ │ │address[10] second_line = []; //Second lin│ │ce_manager │ │manager │ │ │e numbers │ │tsmn_request│2 │Support request│atom owner = trunk; //SS type. Available v│ │positive_integer timeout = 3000; //Timeout│ │ │ │ on TSMN │alues: user | trunk | any │ │ on TSMN request(s) (msec) │ │ │ │ │atom[] conflict_list = [cfu]; //List of SS│ │trunk tsmn_trunk = undefined; //Trunk to T│ │ │ │ │ that is conflict with current SS │ │SMN server │ │ │ │ │ │ │trunk tsmn_trunk_backup = <<>>; //Backup t│ │ │ │ │ │ │runk to TSMN server │ │vip_call │2 │Vip call │string enumPriority = "0_flash_override|1_│ │enum priority = '4_routine'; //(0_flash_ov│ │ │ │ │flash|2_immediate|3_priority|4_routine"; /│ │erride | 1_flash | 2_immediate | 3_priorit│ │ │ │ │/Call's priority │ │y | 4_routine) │ │voice_page │5 │Voice Page call│string enumPriority = "0_flash_override|1_│ │enum priority = '3_priority'; //(0_flash_o│ │ │ │ │flash|2_immediate|3_priority|4_routine"; /│ │verride | 1_flash | 2_immediate | 3_priori│ │ │ │ │/Call's priority │ │ty | 4_routine) │ │ │ │ │ │ │integer announcement_repeat_time = 10; //A│ │ │ │ │ │ │nnouncement files repeat timeout │ │ │ │ │ │ │integer announcement_playback_cnt = 0; //A│ │ │ │ │ │ │nnouncement files playback count [0..5] │ │ │ │ │ │ │media_resource[10] intro_files = []; //Lis│ │ │ │ │ │ │t of Intro media_files │ │ │ │ │ │ │media_resource[10] announcement_files = []│ │ │ │ │ │ │; //List of Announcement media_files │ │voice_page_c│2 │'Voice Page Con│ │ │boolean accept_incoming_vp = true; //Accep│ │ontrol │ │trol' service │ │ │t or Reject voice page calls │ │ │ │ │ │ │boolean block_incoming_vp_by_dnd = true; /│ │ │ │ │ │ │/Block voice page calls by DND service │ │ │ │ │ │ │boolean mute_incoming_vp = true; //Accept │ │ │ │ │ │ │incoming voice page call in silent mode │ │voicemail │11│Voice mail serv│atom[] conflict_list = [cfu,assistant,foll│boolean dtmf_detector = true; // │boolean no_reply = true; //Activate servic│ │ │ │ice │ow_me,find_me,cfu_type2]; //List of SS tha│ │e when subscriber no reply │ │ │ │ │t is conflict with current SS │ │boolean busy = false; //Activate service w│ │ │ │ │ │ │hen subscriber is busy │ │ │ │ │ │ │boolean out_of_service = true; //Activate │ │ │ │ │ │ │service when subscriber is out of service │ │ │ │ │ │ │boolean unconditional = false; //Activate │ │ │ │ │ │ │service any time │ │ │ │ │ │ │positive_integer timeout = 30; //Timeout b│ │ │ │ │ │ │efore call forward (sec) │ │ │ │ │ │ │boolean send_by_email = false; //Send reco│ │ │ │ │ │ │rded message by email │ │ │ │ │ │ │positive_integer min_message_duration = 0;│ │ │ │ │ │ │ //The minimum voice mail duration (sec). │ │ │ │ │ │ │In case of voice mail duration will be les│ │ │ │ │ │ │s that min_message_duration, this message │ │ │ │ │ │ │will be dropped │ │ │ │ │ │ │positive_integer max_message_duration = 30│ │ │ │ │ │ │0; //The maximum voice mail duration (sec)│ │ │ │ │ │ │. 0 - in case of not limited duration │ │ │ │ │ │ │positive_integer mailbox_volume = 1800; //│ │ │ │ │ │ │The mailbox volume (sec) │ │ │ │ │ │ │boolean override_messages = true; //Overri│ │ │ │ │ │ │de messages in case of mailbox is full │ │ │ │ │ │ │string email_from = "%DISPLAYNAME%"; //Ema│ │ │ │ │ │ │il from template. Macro variables: %DATE%,│ │ │ │ │ │ │ %TIME%, %CALLING%, %DISPLAYNAME% │ │ │ │ │ │ │string email_subject = "Voicemail from %CA│ │ │ │ │ │ │LLING% at %DATE% %TIME%"; //Email subject │ │ │ │ │ │ │template. Macro variables: %DATE%, %TIME%,│ │ │ │ │ │ │ %CALLING%, %DISPLAYNAME% │ │ │ │ │ │ │string email_body = []; //Email body templ│ │ │ │ │ │ │ate. Macro variables: %DATE%, %TIME%, %CAL│ │ │ │ │ │ │LING%, %DISPLAYNAME% │ │ │ │ │ │ │boolean play_message_details = false; //Pl│ │ │ │ │ │ │ay message's details (number, time) before│ │ │ │ │ │ │ message │ │ │ │ │ │ │address password = []; //There is password│ │ │ │ │ │ │ to have access to the voicemail box │ │ │ │ │ │ │positive_integer max_silence = 0; //There │ │ │ │ │ │ │is time(sec) while service wait for a cont│ │ │ │ │ │ │iguous period of silence before terminatin│ │ │ │ │ │ │g an incoming call to voice mail │ │zone_page │6 │Zone Page call │string enumPriority = "0_flash_override|1_│ │enum priority = '3_priority'; //(0_flash_o│ │ │ │ │flash|2_immediate|3_priority|4_routine"; /│ │verride | 1_flash | 2_immediate | 3_priori│ │ │ │ │/Call's priority │ │ty | 4_routine) │ │ │ │ │string enumInitiation_policy = "managers|m│ │integer intro_pause = 3; //Pause before pl│ │ │ │ │embers|any"; //Initiation call's policy │ │ay intro files │ │ │ │ │ │ │integer announcement_pause = 0; //Pause be│ │ │ │ │ │ │fore play announcement files │ │ │ │ │ │ │integer announcement_playback_cnt = 1; //A│ │ │ │ │ │ │nnouncement files playback count │ │ │ │ │ │ │integer announcement_repeat_time = 10; //A│ │ │ │ │ │ │nnouncement files repeat timeout │ │ │ │ │ │ │boolean terminate_when_initiator_disconnec│ │ │ │ │ │ │ts = undefined; //Terminate call after ini│ │ │ │ │ │ │tiator disconnected │ │ │ │ │ │ │boolean terminate_when_playback_ends = und│ │ │ │ │ │ │efined; //Terminate call after playback en│ │ │ │ │ │ │ds │ │ │ │ │ │ │boolean terminate_when_last_listener_leave│ │ │ │ │ │ │ = undefined; //Terminate call after last │ │ │ │ │ │ │listener disconnects │ │ │ │ │ │ │enum initiation_policy = any; //Initiation│ │ │ │ │ │ │ call's policy │ │ │ │ │ │ │string display_name = "ZonePage"; //ZonePa│ │ │ │ │ │ │ge call DisplayName │ │ │ │ │ │ │address[256] members = undefined; //Zone p│ │ │ │ │ │ │age member list │ │ │ │ │ │ │address[256] managers = []; //Zone page ma│ │ │ │ │ │ │nagers list │ │ │ │ │ │ │media_resource[10] intro_files = []; //Lis│ │ │ │ │ │ │t of Intro media_files │ │ │ │ │ │ │media_resource[10] announcement_files = []│ │ │ │ │ │ │; //List of Announcement media_files │ └────────────┴──┴───────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┘ Installed supplementary services: 70 [exec at: 21.07.2019 09:47:36, exec time: 62ms, nodes: ds1@ecss1]
Просмотреть настройки и версии услуг, установленных в системе:
admin@[mycelium1@ecss1#ECSS-T 000009]:/$ cluster/storage/ds1/ss/show name msd version ┌───────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─────┐ │ name │ msd │versi│ │ │ │ on │ ├───────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────┤ │3way │atom[] dependency_list = [chold]; //List of SS that is depended from SS │6 │ │ │atom[] conflict_list = [conference]; //List of SS that is conflict with current SS │ │ │acb │ │2 │ │alarm │atom handle_module = ss_alarm_handler; // │8 │ │assistant │atom owner = user; //SS type. Available values: user | trunk | any │1 │ │auto_redial │ │2 │ │auto_redial_with_callback │string enumRingback = "tone|moh"; //Ringback │5 │ │blf │ │2 │ │call_recording │string enumMode = "always_on|on_demand|after_answer"; //Internal field to validate mode property │9 │ │callback │ │5 │ │cc_agent │ │2 │ │cf_sip │atom owner = any; //SS type. Available values: user | trunk | any │6 │ │ │atom[] conflict_list = [cfu,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cfb │atom owner = any; //SS type. Available values: user | trunk | any │7 │ │ │atom[] conflict_list = [cfu,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cfnr │atom owner = any; //SS type. Available values: user | trunk | any │7 │ │ │atom[] conflict_list = [cfu,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cfnr_type2 │atom owner = any; //SS type. Available values: user | trunk | any │7 │ │ │atom[] conflict_list = [cfu,assistant,cfnr,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cfos │atom owner = any; //SS type. Available values: user | trunk | any │8 │ │ │atom[] conflict_list = [cfu,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cft │atom owner = any; //SS type. Available values: user | trunk | any │9 │ │ │string enumTime_format = "local|utc"; //Internal field to validate time_format property │ │ │ │atom[] conflict_list = [cgg,cfu,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cfu │atom owner = any; //SS type. Available values: user | trunk | any │8 │ │ │atom[] conflict_list = [ctu,cgg,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cfu_type2 │atom owner = any; //SS type. Available values: user | trunk | any │7 │ │ │atom[] conflict_list = [cfu,cgg,assistant,follow_me,tsmn_request]; //List of SS that is conflict with current SS │ │ │cgg │ │4 │ │chold │ │8 │ │chunt │string regimeMode = "group:numbers:queue_strategy|serial:numbers:cyclic:search_strategy:window_shift_timeout:max_shift│5 │ │ │_count:queue_strategy|longest_idle:numbers:cyclic:window_shift_timeout:max_shift_count:queue_strategy|delay_group:numb│ │ │ │ers:window_shift_timeout:queue_strategy|manual"; //Internal field to validate search_strategy property │ │ │ │string enumSearch_strategy = "first|last|random|longest_idle"; //Internal field to validate search_strategy property │ │ │ │string enumQueue_strategy = "wait|drop"; //Internal field to validate queue_strategy property │ │ │click_to_call │ │5 │ │clip │ │5 │ │clir │string enumMode = "user_defined|restrict_all"; //Internal field to validate mode property │3 │ │cliro │ │2 │ │cnip │atom owner = any; //SS type. Available values: user | trunk | any │3 │ │conference │string enumDestroy_mode = "by_no_master|by_no_more_calls"; //Internal field to validate mode property │9 │ │ │atom[] dependency_list = [chold,ctr]; //List of SS that is depended from SS │ │ │ │atom[] conflict_list = ['3way']; //List of SS that is conflict with current SS │ │ │ctr │atom[] dependency_list = [chold]; //List of SS that is depended from SS │5 │ │cw │atom[] dependency_list = [chold]; //List of SS that is depended from SS │5 │ │direct_call │ │2 │ │distinctive_ring │ │1 │ │dnd │ │3 │ │fax_receiver │ │2 │ │fax_to_email │ │2 │ │fbc │atom owner = any; //SS type. Available values: user | trunk | any │1 │ │find_me │atom[] conflict_list = [cfu,assistant,ctu,cgg,follow_me,follow_me_no_response]; //List of SS that is conflict with cur│5 │ │ │rent SS │ │ │find_me_no_response │atom[] conflict_list = [cfu,assistant,ctu,cgg,follow_me,follow_me_no_response, │5 │ │ │ find_me]; //List of SS that is conflict with current SS │ │ │follow_me │atom[] conflict_list = [cfu,assistant,cft,cgg]; //List of SS that is conflict with current SS │6 │ │follow_me_no_response │atom[] conflict_list = [cfu,assistant,cft,cgg,follow_me]; //List of SS that is conflict with current SS │4 │ │intervention │ │3 │ │mcid │ │2 │ │meet_me_conference │string regimeMode = "master:destroy_mode:room_number|member:room_number"; //Internal field to validate mode property │1 │ │ │string enumDestroy_mode = "by_no_master|by_no_more_calls"; //Internal field to validate mode property │ │ │message │atom owner = any; //SS type. Available values: user | trunk | any │2 │ │ml │ │3 │ │my_number │ │2 │ │park │ │2 │ │personal_ivr │ │1 │ │pickup │ │2 │ │presence │ │2 │ │qsig_cfb │atom owner = trunk; //SS type. Available values: user | trunk | any │2 │ │ │atom[] conflict_list = [cfu]; //List of SS that is conflict with current SS │ │ │qsig_cfnr │atom owner = trunk; //SS type. Available values: user | trunk | any │2 │ │ │atom[] conflict_list = [cfu]; //List of SS that is conflict with current SS │ │ │qsig_cfu │atom owner = trunk; //SS type. Available values: user | trunk | any │2 │ │ │atom[] conflict_list = [cfu,follow_me]; //List of SS that is conflict with current SS │ │ │rbp │ │3 │ │redial │ │2 │ │remote_phone │atom handle_module = ss_remote_phone_handler; // │1 │ │rfc │ │2 │ │ring_back_tone │ │2 │ │sca │ │2 │ │sco_black │ │2 │ │sco_white │ │2 │ │scr │ │2 │ │speed_dial │string enumType = "address_book_10|address_book_100"; //The type of address book. address_book_10 supports 10 number i│5 │ │ │n the address book. address_book_100 supports 100 numbers on the address book │ │ │teleconference │ │2 │ │teleconference_manager │ │3 │ │tsmn_request │atom owner = trunk; //SS type. Available values: user | trunk | any │2 │ │ │atom[] conflict_list = [cfu]; //List of SS that is conflict with current SS │ │ │vip_call │string enumPriority = "0_flash_override|1_flash|2_immediate|3_priority|4_routine"; //Call's priority │2 │ │voice_page │string enumPriority = "0_flash_override|1_flash|2_immediate|3_priority|4_routine"; //Call's priority │5 │ │voice_page_control │ │2 │ │voicemail │atom[] conflict_list = [cfu,assistant,follow_me,find_me,cfu_type2]; //List of SS that is conflict with current SS │11 │ │zone_page │string enumPriority = "0_flash_override|1_flash|2_immediate|3_priority|4_routine"; //Call's priority │6 │ │ │string enumInitiation_policy = "managers|members|any"; //Initiation call's policy │ │ └───────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────┘ Installed supplementary services: 70 [exec at: 21.07.2019 09:53:01, exec time: 16ms, nodes: ds1@ecss1]