Пересылка дтмф
Возможно запретить пересылать дтмф сообщения двумя способами:
-первый командой
operation set transmit_key 0
включить
operation set transmit_key 1
-второй путем добавления обработки событий дтмф. Например
+dtmfo
от оригинирующей стороны или
+dtmfa
от отвечающей стороны. В последнем способе пересылку можно производить командой скипта
Размножение процессов
Часто необходимо быстро размножить процессы. Например надо оповестить абонентов, отправить
массово факсы или выполнить запрос к SQL но неожидать ответа. Для этого используется комманды
operation dublicate_task, operation dublicate_task skip, operation entry. Комманда operation entry должна
выполняться перед коммандой operation dublicate_task. Она обозначает точку входа нового процесса
по комманде operation dublicate_task. Если точка входа неопределена выполняется следующая комманда.
Часто требуется выполнить комманду через одну в новом процессе. Тогда используется комманда
operation dublicate_task skip. Пример
operation const $dubl 0
operation dublicate_task skip
operation incr $dubl
operation if eq $dubl 0
; place your code here
operation endif
; or
operation dublicate_task skip
operation return
; place your code here
Определение состояния устройства
Часто возникает вопрос включено ли конечное устройство. Для этого после команды placecall, call
надо проверить состояние переменной connect_error. Пример
operation if ne connect_error 0
;timeout or other error happened
operation endif
Предлагается алгоритм защиты абонентов от взлома, то есть ограничение трафика при необычном поведении клиента
+setup
operation if ne child 0
operation return
operation endif
operation get &date date
operation len $n8 dnis
operation diff $n8 $n8 2
operation left &d8 dnis $n8
operation add &d _dnis_ &d8
operation add &a _ani_ ani
operation add &ani_d dani_ ani
operation cm_read &ani_d &day
operation if lt date &day
operation @ blocked
operation parent finish_process
operation return
operation endif
operation unique_id_lookup &d
operation get $n_d result
operation unique_id_lookup &a
operation get $n_a result
operation get $hour hour
operation get $day weekday
operation if gt $n_d 1
operation sum $fall $fall 3
operation endif
operation if gt $n_d 3
operation sum $fall $fall 3
operation endif
operation if gt $n_a 1
operation sum $fall $fall 3
operation endif
operation if gt $n_a 1 and gt $n_d 1
operation sum $fall $fall 3
operation endif
operation if gt $hour 19
operation sum $fall $fall 2
operation endif
operation if lt $hour 8
operation sum $fall $fall 2
operation endif
operation if lt $hour 9
operation sum $fall $fall 1
operation endif
operation if gt $day 5
operation sum $fall $fall 2
operation endif
operation if gt $fall 10
;operation addday &day_ date 1
operation addhour &day_ date 12
operation cm_write &ani_d &day_
operation @ block it
operation parent finish_process
operation else
operation parent unique_id &d
operation parent unique_id &a
operation endif
Как использовать списки SQL
Допустим IP lvp '1.1.1.1', список называется prop_customer
При выполнении
sp_lvp_is_main_process_need_hup_signal '1.1.1.1'
Должно вернуть код 512
Дальше при выполнении sp_lvp_get_config_part
Мы должны возвратить согласно кодам
reload_support_mode
============================
1 = Auto_Offices
2 = Routing,
4 = Bind_Routing,
8 = ------
16 = friendly host SQL server
32 = Friendly_Users
64 = Connect_Access
128 = get Region_code
256 = Lists
[List]
[list_prop_customer]
38044111111 1 1 1 1 0 0 0 1 0
38044111112 1 1 1 1 0 0 0 1 0
В lvp мы используем функции доступа к спискам
operation list prop_customer ani $max_ext_line $max_int_line $s0 $s00 $s811 $max_pbx_l $max_cc_l $acc_out_c $max_voip_l
где ani номер нашего абонента, в остальные переменные запишутся значения со списка.
В result мы получим статус выполнения комманды