Возникла задачка переадресовывать вызов на внутренний номер на мобилу в случае, если абонент недоступен.
Это нужно для командировочных в полях, чтобы можно было до них дозвониться, если у абонента нет интернета в данный момент.
Как сделать переадресацию по Dialstatus я знаю, но не знаю способа назначать пирам переменную с номером мобилы. Поэтому, сейчас мне приходится делать так:
Код: Выделить всё
[macro-dial-ext]
exten => s,1,Answer()
exten => s,n,Monitor(wav,,b)
exten => s,n,Dial(SIP/ext${ARG1},20,tTr)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Macro(group-dial,${ARG1:0:2}00)
exten => s-BUSY,1,Macro(group-dial,${ARG1:0:2}00)
exten => s-CONGESTION,1,Macro(group-dial,${ARG1:0:2}00)
exten => s-CHANUNAVAIL,1,GotoIfTime(9:00-21:00|mon-fri|*|*?${ARG1}mobile,s,1) ; <--- тут мы отправляем звонок на мобилу
exten => s-CHANUNAVAIL,2,Macro(group-dial,${ARG1:0:2}00)
exten => _s-.,1,Hangup
Код: Выделить всё
[1302mobile] ;Belov
exten => s,1,Dial(SIP/rinet/89365325215,60,Ttr)
Вики про переменные прочитал, вроде внимательно, но так и не понял, как назначать переменные вне дайалплана.
Можно, конечно, пойти другим путём:
exten => s-CHANUNAVAIL,1,GotoIfTime(9:00-21:00|mon-fri|*|*?mobile,s,${ARG1})
и в дайалплане писать по строке на юзера, но это тоже какой-то неправильный вариант, кмк.
В идеале хотелось бы что-то типа вот такого:
Код: Выделить всё
[ext1302](peer)
callerid="Belov" <1302>
mobile=89365325215
callgroup = 13
pickupgroup = 13
secret=secretsecretsecret
Вправьте мне мозги, пожалуйста?