День добрый,
Использую Астер через колбек. Пользуюсь не только, я но и родные. Вывод статистики в mysql, но проблема с тем чтобы определить инициатора звонка. Так как фактически это сам *, я подумал что можно по полю "dcontext" сейчас там везде один экстеншн на который попадает звонящий. Каждому абоненту создать свой контекст для обработки звонка. Но думаю может это не правильно, дублировать такие куски кода. Может есть решение более элегантное))?
[from-multifon]
exten => _X.,1,GotoIf($["${CALLERID(num)}" = "мой--номер"]?callback2,s,1)
exten => _X.,n,Dial(${myphone})
exten => _X.,n,Hangup [callback2]
exten => s,1,System(/etc/asterisk/scripts/callback2 ${CALLERID(num)} &)
exten => s,n,Progress()
exten => s,n,Wait(1)
exten => s,n,Playback(transfer,noanswer)
exten => s,n,Hangup
[mera-callback-out2]
include => out
exten => s,1,Answer()
exten => s,n,Set(Prohod=0)
exten => s,n,Wait(1)
;Read(variable[|filename][|maxdigits][|option][|attempts][|timeout])
exten => s,n(nach),Background(speed-enternumber)
exten => s,n,Read(EXT,,,,,5)
exten => s,n,Set(Prohod=${MATH(${Prohod}+1)})
exten => s,n,GotoIF($[${Prohod} > 3]?t,1)
exten => s,n,GotoIf($[${LEN(${EXT})} >= 3]?${EXT},1:i,1)
exten => s,1,Dial(SIP/out/${EXTEN},60,HhtT)
exten => _s,n,Set(CALLBACKEXTEN=${EXTEN})
exten => s,n,NoOp(DIALSTATUS: ${DIALSTATUS})
exten => _s,n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Goto(busy,1)
exten => s-NOANSWER,1,Goto(noanswer,1)
exten => _s-.,1,Goto(hz,1)
exten => busy,1,PlayBack(callback/busy)
exten => busy,n,Goto(mera-callback-menu,s,1)
exten => noanswer,1,PlayBack(callback/noanswer)
exten => noanswer,n,Goto(mera-callback-menu,s,1)
exten => hz,1,PlayBack(callback/chanuval)
exten => hz,n,Goto(mera-callback-menu,s,1)
exten => i,1,PlayBack(privacy-incorrect)
exten => i,n,Goto(mera-callback-out2,s,nach)
exten => t,1,PlayBack(callback/timeout)
exten => t,n,Hangup()
Call файл
#!/bin/sh
sleep 5 NUMBER=$1
echo "Channel: SIP/multifon/$NUMBER
MaxRetries: 1
RetryTime: 30
WaitTime: 30
Context: mera-callback-out2
Extension: s
Priority: 1
AlwaysDelete: Yes
" > /var/spool/asterisk/tmp/$NUMBER.call
mv /var/spool/asterisk/tmp/$NUMBER.call /var/spool/asterisk/outgoing/
Switch и Komrad спасибо большое, немного потупил, но все сделал благодаря вам