Серж писал(а):Да, просто обрывать звонок. При использовании L обрываются только Исходящие, а Входящие не рвутся, как длился разговор, так и продолжает длиться.
Каждый вызов каждого экстена обрабатывается в контексте ext-local вот так:
Код: Выделить всё
'200' => hint: SIP/200&Custom:DND200 [pbx_config]
1. Set(__RINGTIMER=${IF($[${DB(AMPUSER/200/ringtimer)} > 0]?${DB(AMPUSER/200/ringtimer)}:${RINGTIMER_DEFAULT})}) [pbx_config]
2. Macro(exten-vm,novm,200,1,1,1) [pbx_config]
[dest] 3. Set(__PICKUPMARK=) [pbx_config]
4. GotoIf($["${DIALSTATUS}"="NOANSWER"]?ext-group,612,1) [pbx_config]
5. GotoIf($["${DIALSTATUS}"="BUSY"]?ext-group,612,1) [pbx_config]
6. GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?ext-group,612,1) [pbx_config]
7. Goto(${IVR_CONTEXT},return,1) [pbx_config]
и затем выполняется macro-dial-one. Вот в нём на 41-м шаге вместо Set(D_OPTIONS=tmI) можно написать конструкцию
ExecIf($["${DB(AMPUSER/${DEXTEN}" = "200"]?Set(D_OPTIONS="tmIL(15000)"))
и она будет выполнятся только для звонка абоненту 200. Всю изменённую конструкцию макроса записать в extensions_override_freepbx.conf