Сообщений: 229
|
когда создается uniqueid
кусок диалплана:
[ivr]
;устанавливаем юзерфилд в первый статус - начало. (вдруг кто-то бросит трубку во время прослушивания - мы его посчитаем)
exten => 2053331,1,Set(CDR(userfield)=ivr-start)
; проигрываем приглашение
exten => 2053331,2,Background(ivr/select)
; вызываем скритп который 1 - проверяет или создает каталог в виде year/month/day (например 2008/12/17/),
; 2 - устанавливает переменные ${MONITOR-VOXFILE} ${MONITOR-MP3FILE} -куда пишем голос сразу и во что конвертим в виде HH:MM:ss-uniqueid (точка 1)
exten => 2053331,n,AGI(check-dir.agi|${CDR(start)})
; запусаем запись голоса
exten => 2053331,n,MixMonitor(${MONITOR-VOXFILE},,/usr/local/share/asterisk/bin/vox2mp3.sh ${MONITOR-VOXFILE}
${MONITOR-MP3FILE})
; ждем донабора
exten => 2053331,n,WaitExten(5)
; если ничего не нажали - устанавливаем юзерфилд
exten => 2053331,n,Set(CDR(userfield)=ivr-secretary)
; бросаем звонок на секретарей
exten => 2053331,n,Dial(SIP/240&SIP/248,,g)
; покажем мне, чем все закончилось
exten => 2053331,n,Verbose(userfield-dialstatus: ${CDR(userfield)}-${DIALSTATUS})
; забросим звонок в базу. вместе с указанием, кого набрали и каков результат
exten => 2053331,n,Set(CDR(userfield)=${CDR(userfield)}-${DIALSTATUS})
; остальное меню сделано так же, как и вышенаписанное
exten => 1,1,Set(CDR(userfield)=ivr-sales)
exten => 1,n,Set(CALLERID(name)=IVR-${CALLERID(name)})
; (точка 2)
exten => 1,n,Goto(showroom,270,2)
exten => 2,1,Set(CDR(userfield)=ivr-admins)
exten => 2,n,Dial(SIP/10.0.20.2/000241&SIP/10.0.20.2/000240,,g)
exten => 2,n,Set(CDR(userfield)=${CDR(userfield)}-${DIALSTATUS})
exten => 2,n,Hangup()
exten => 3,1,Set(CDR(userfield)=ivr-credit)
exten => 3,n,Dial(SIP/242&SIP/243&SIP/244&SIP/245&SIP/246&SIP/247,,g)
exten => 3,n,Set(CDR(userfield)=${CDR(userfield)}-${DIALSTATUS})
exten => 3,n,Hangup()
exten => 4,1,Set(CDR(userfield)=ivr-shop)
exten => 4,n,Dial(SIP/220&SIP/221&SIP/222&SIP/223&SIP/224&SIP/227,,g)
; (точка 3)
exten => 4,n,Set(CDR(userfield)=${CDR(userfield)}-${DIALSTATUS})
exten => 4,n,Hangup()
exten => i,1,Set(CDR(userfield)=ivr-wrong)
exten => i,2,Playback(ivr/wrong-ext)
exten => i,3,Goto(2053331,2)
есть проблема - сильно гуляют uniqueid. посему вопрос - uniqueid звонка в начале диалплана (в точке 1) и, например, после перехода по Goto - это одна и та же величина?
а в точке 3, например (когда вызываются несколько разных абонентов) будет ли uniqueid тот же???
|