Переменная при attended transfer

Добавлено:
26 окт 2015, 17:42
chuzoy.svoy
Здравствуйте!
Прочитав статью о переменных:
http://asterisk.ru/knowledgebase/Asterisk+VariablesПри blind transfer в диалплане могу поймать это так Set(mytransf=${BLINDTRANSFER}) и далее работать с данной переменной.
При attended transfer такой переменной не могу найти.
Подскажите плиз.
Версия asterisk 1,8
Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 03:24
ded
Сделайте DumpChan() в нужном месте диалплана чтобы увидеть все возможные переменные в этой точке исполнения.
Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 08:54
chuzoy.svoy
Походу не существует такой переменной

Dumping Info For Channel: SIP/1001-000000a7:
================================================================================
Info:
Name= SIP/1001-000000a7
Type= SIP
UniqueID= 1445869380.179
LinkedID= 1445869380.179
CallerIDNum= 2223344
CallerIDName= (N/A)
ConnectedLineIDNum= (N/A)
ConnectedLineIDName=(N/A)
DNIDDigits= 89211111111
RDNIS= (N/A)
Parkinglot= default
Language= ru
State= Up (6)
Rings= 0
NativeFormat= 0x8 (alaw)
WriteFormat= 0x8 (alaw)
ReadFormat= 0x8 (alaw)
RawWriteFormat= 0x8 (alaw)
RawReadFormat= 0x8 (alaw)
WriteTranscode= No
ReadTranscode= No
1stFileDescriptor= 26
Framesin= 356
Framesout= 855
TimetoHangup= 0
ElapsedTime= 0h0m22s
DirectBridge= <none>
IndirectBridge= <none>
Context= from-phones
Extension= h
Priority= 3
CallGroup=
PickupGroup= 10
Application= DumpChan
Data= (Empty)
Blocking_in= (Not Blocking)
Variables:
DIALEDTIME=22
ANSWEREDTIME=15
RTPAUDIOQOSRTT=minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000;
RTPAUDIOQOSLOSS=minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000;
RTPAUDIOQOSJITTER=minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000;
RTPAUDIOQOS=ssrc=167781899;themssrc=1078349273;lp=0;rxjitter=0.000000;rxcount=222;txjitter=0.000611;txcount=356;rlp=0;rtt=0.000000
RTPAUDIOQOSRTTBRIDGED=minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000;
RTPAUDIOQOSLOSSBRIDGED=minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=0.000000;reported_avglost=0.000000;reported_stdevlost=0.000000;
RTPAUDIOQOSJITTERBRIDGED=minrxjitter=0.000000;maxrxjitter=0.000000;avgrxjitter=0.000000;stdevrxjitter=0.000000;reported_minjitter=0.000000;reported_maxjitter=0.000000;reported_avgjitter=0.000000;reported_stdevjitter=0.000000;
RTPAUDIOQOSBRIDGED=ssrc=1825952673;themssrc=567880446;lp=0;rxjitter=0.000000;rxcount=139;txjitter=0.000953;txcount=140;rlp=0;rtt=0.000000
SIPADDHEADER01=
BRIDGEPVTCALLID=79d2ba407af9d9f74ef8c71c6b25a093@prov
BRIDGEPEER=SIP/prov-000000a8
DIALEDPEERNUMBER=prov/9211111111
DIALEDPEERNAME=SIP/prov-000000a8
DIALSTATUS=ANSWER
MIXMONITOR_FILENAME=/rec/20151026_172300_2223344_out_89211111111.wav
MONITOR_FILENAME=20151026_172300_2223344_out_89211111111
DB_RESULT=2223344
SIPCALLID=2033254434-5060-58@BJC.BGI.A.BEG
SIPDOMAIN=172.16.0.65
SIPURI=sip:1001@192.168.100.113:5060
Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 09:01
virus_net
В любом случае есть переменная TRANSFER_CONTEXT и возможность установки которой (на канале до DIAL), при attend transfer, направит в указанный (в значении переменной) контекст, где вы сможете установить свою переменную, например ATTENDTRANSFER
- Код: выделить все
exten => inbound,n,Set(__TRANSFER_CONTEXT=attTransfer)
[attTransfer]
exten => _X.,1,Set(__ATTENDTRANSFER=${EXTEN})
exten => _X.,n,Goto(users_context,${EXTEN},1)
[users_context]
exten => _X.,1,ExecIf($["${ATTENDTRANSFER}" != ""]?NoOP(This is attend transfer to ${ATTENDTRANSFER)
exten => .....
Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 09:03
chuzoy.svoy
Я пробовал отловить эту переменную:
- Код: выделить все
Set(mytransf2=${TRANSFERERNAME})
Но пусто

Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 09:11
Vlad1983
Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 09:15
chuzoy.svoy
to virus_netВот мой диалплан, да использую переменную TRANSFER_CONTEXT и ловлю именно в from-phones
- Код: выделить все
[office]
exten => _10XX,1,NoOp(call from ${CALLERID(all)} to ${EXTEN})
same => n,Set(__TRANSFER_CONTEXT=from-phones)
same => n,Dial(SIP/${EXTEN},60,Tt)
same => n,ExecIf($[${LEN(${BLINDTRANSFER})}>0]?Dial(${BLINDTRANSFER:0:$[${LEN(${BLINDTRANSFER})}-9]}))
same => n,Hangup
[from-phones]
include => office
include => gorod
[gorod]
exten => _8XXXXXXXXXX,1,NoOp
same => n,Set(MONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}_${CALLERID(num)}_out_${EXTEN})
same => n,MixMonitor(${CALLRECDIR}/${STRFTIME(${EPOCH},,%Y%m%d)}/${MONITOR_FILENAME}.wav,b)
same => n,Set(CDR(userfield)=out)
same => n,Ringing
same => n,Dial(SIP/prov/${EXTEN})
same => n,Hangup
exten => h,1,Set(mytransf2=${TRANSFERERNAME})
exten => h,n,DumpChan()
exten => h,n,Set(mytransf=${BLINDTRANSFER})
exten => h,n,GotoIf($[${LEN(${mytransf})} >= 1]?norec)
exten => h,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?answer)
exten => h,n,Set(var=${CDR(src)})
exten => h,n,Hangup
exten => h,n(answer),StopMixMonitor
exten => h,n,System(php /bin/rec.php ${MONITOR_FILENAME} ${var})
exten => h,n(norec),NoOp(===No Stop Rec===)
Re: Переменная при attended transfer

Добавлено:
27 окт 2015, 09:45
virus_net
Во-первых, вы ловите в контексте gorod. Вы переводите вызов на городской номер ?
Во-вторых, вы ловите на hangup, а попробуйте ДО него.
Во-третьих, покажите лог отработки диалплана.
В-четвертых, "System(php..." не совсем хорошо, "System(/full/path/to/php..." гораздо лучше и правильнее для избежания недоразумений.