хотел поделится соей работой .
дано FreePBX-distro
много всяких транков .
задача на одном из транков , в зависимости от абонента ( транзитный \не транзитный ) необходимо присваивать разные CallerID При выходе с этого транка, на других транках надо сохранить.
скопировал полностью macro-dialout-trunk в extensions_override_freepbx.conf
нашёл строчку
Код: Выделить всё
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS})
перед Диалом
написал
Код: Выделить всё
exten => s,n,ExecIF($["${OUT_${DIAL_TRUNK}}"="${OUT_3}"]?Macro(cal-id,${CALLERID(number)})
Код: Выделить всё
macro-cal-id
exten => s,1,NoOp(-------${ARG1}-----------------------------${CALLERID(number)}----------------)
exten => s,n,Set(CALLERID(number)=1)
exten => s,n,NoOp(тут будет всякая подстановка определителя ); процедура доставания из ASTDB номера (своя ветка) \или запрос в MySql
exten => s,n,Execif($["${CALLERID(number)}"="1"]?Set(CALLERID(number)=00000000))
если есть решение более красивое - готов выслушать .
всем спасибо