Здравствуйте!
Долго бился сам, но безрезультатно. Надеюсь разработчики помогут. Проблема в следующем :
Есть сервер Asterisk ( без GUI и прочего), есть модуль, который пишет разговоры и раскидывает их по папкам /год-месяц-день/час/имя_файла.wav
Есть скрипт, выложенный на сайте МИКО, который я немного подправил с целью корректного поиска файла. В БД было создано доп поле, в которое пишется конкретный путь для конкретного звонка. Ниже сам переделанный скрипт :
Собственно загвоздка возникает на этапе выполнения Set(recfile). На этом этапе не находится имя файла, ну и выводятся соответствующие ошибки. Может кто сможет подсказать в чем проблема? Заранее спасибо!
Долго бился сам, но безрезультатно. Надеюсь разработчики помогут. Проблема в следующем :
Есть сервер Asterisk ( без GUI и прочего), есть модуль, который пишет разговоры и раскидывает их по папкам /год-месяц-день/час/имя_файла.wav
Есть скрипт, выложенный на сайте МИКО, который я немного подправил с целью корректного поиска файла. В БД было создано доп поле, в которое пишется конкретный путь для конкретного звонка. Ниже сам переделанный скрипт :
Скрытый текст |
---|
[mikoajamdll] exten => 0000999,1,NoCDR() exten => 0000999,n,Answer() exten => 0000999,n,Wait(60) exten => 0000999,n,Hangup() exten => 0000777,1,NoCDR() exten => 0000777,n,Answer() exten => 0000777,n,Set(dbname=${AST_CONFIG(cdr_mysql.conf,global,dbname)}) exten => 0000777,n,Set(user=${AST_CONFIG(cdr_mysql.conf,global,user)}) exten => 0000777,n,Set(password=${AST_CONFIG(cdr_mysql.conf,global,password)}) exten => 0000777,n,Set(recpath=${SHELL( mysql -sse 'SEL ECT recordingpath FR OM cdr WHERE uniqueid Like ${QUOTE( ${uniqueid1c}%)} LIMIT 1' -u${user} -p${password} ${dbname} )}) exten => 0000777,n,Set(ASTSPOOLDIR=/var/spool/asterisk/monitor) exten => 0000777,n,Set(monitor_path=${ASTSPOOLDIR}/${recpath}/) exten => 0000777,n,Set(recordingfile=${SHELL( mysql -sse 'SEL ECT recordingfile FR OM cdr WHERE uniqueid Like ${ QUOTE(${uniqueid1c}%)} LIMIT 1' -u${user} -p${password} ${dbname} )}) exten => 0000777,n,Gotoif($[${LEN(${recordingfile})} > 4]?FindInFileSystem:FindInUserfield) exten => 0000777,n(FindInUserfield),Set(recordingfile=${SHELL( mysql -sse 'SELECT userfield FR OM cdr WHERE uni queid Like ${QUOTE(${uniqueid1c}%)} LIMIT 1' -u${user} -p${password} ${dbname} )}) ;exten => 0000777,n(FindInUserfield),Set(recordingpath=${SHELL( mysql -sse 'SELECT userfield FR OM cdr WH ERE un iqueid Like ${QUOTE(${uniqueid1c}%)} LIM IT 1' -u${user} -p${password} ${dbname} )}) exten => 0000777,n,ExecIf($[${LEN(${recordingfile})} < 4]?Hangup()) exten => 0000777,n(FindInFileSystem),Set(namedorashiren=$[${LEN(${recordingfile})}-4] ;) exten => 0000777,n,Set(recfile=${SHELL(find ${monitor_path} -name *${recordingfile:0:${namedorashiren}}*|head -n 1)}) exten => 0000777,n,ExecIf($[${LEN(${recfile})} > 4]?UserEvent(CallRecord,Channel: ${chan},FileName: ${recfile} )) exten => 0000777,n,Hangup() |
Собственно загвоздка возникает на этапе выполнения Set(recfile). На этом этапе не находится имя файла, ну и выводятся соответствующие ошибки. Может кто сможет подсказать в чем проблема? Заранее спасибо!