Этот инклюд оповещает о разговоре абонента по другой линии. Подскажите пожалуйста, как сделать, что бы он НЕ выполнялся при звонках секретарям (на поределённые внутренние номера). Пояснение: звонит клиент снаружи, звонок приходит в IVR и далее на секретаря. Если секретарь уже говорит по одной из линий многоканального телефона, клиент слышит батву про абонента и другую линию, хотя, не должен, должен просто наслождаться музыкой.
файл extensions_custom.conf
[from-internal-custom]
include => macro-dialout-one-predial-hook
[macro-dialout-one-predial-hook]
exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(abonent_zanyat))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Playback(abonent_zanyat))
exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "RINGINUSE"]?Set(D_OPTIONS=Ttm))
Include нельзя запретить или разрешить. Include либо есть либо нет.
Что можно, так это поправить диалплан самого include где ввести доп. условие. Например анализировать содержимое ${DSTRING} и на его основе принимать решение о том двигаться ли по macro далее или выйти из него.
Либо ДО вызова macro установить СВОЮ переменную и проверять её.
Задан: 2017-04-26 17:17:38 +0400
Просмотрен: 187 раз
Обновлен: Apr 27 '17
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Попытался разобраться с помощью ваших наводок, но самостоятельно не смог этого сделать. Не могли бы вы более подробно расписать (Asterisk freepbx). Прекрасно понимаю настрой опытных астерисковедов на подобных форумах к подобным просьбам. Прошу не плеваться ядом.
Серж ( 2017-05-02 10:35:57 +0400 )редактировать