Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
[ Закрыто ] Запись звонков и получение на них ссылки, Запись звонков и получение на них ссылки из панели 1С
 
Настраиваю демо версию чтобы оценить все возможности и купить лицензию!  Компонент установился и подключили к 1С, проходит звонок и срабатывает запись(создаются файлы разговора в...asterisk/monitor/ ), но ссылка в 1С не формируется (Файл с записью разговора не найден на сервере ASTERISK.) !  Лог asterisk'а

   
Код
-- Executing [0000666@miko_ajam:1] NoCDR("Local/0000666@miko_ajam-0000000a;2", ""    in new stack
    -- Executing [0000666@miko_ajam:2] Set("Local/0000666@miko_ajam-0000000a;2", "chan=SIP/780"    in new stack
    -- Executing [0000666@miko_ajam:3] Set("Local/0000666@miko_ajam-0000000a;2", "uniqueid1c="    in new stack
    -- Executing [0000666@miko_ajam:4] Set("Local/0000666@miko_ajam-0000000a;2", "monitor_path=/var/spool/asterisk/monitor"    in new stack
    -- Executing [0000666@miko_ajam:5] Set("Local/0000666@miko_ajam-0000000a;2", "fax_path=/var/spool/asterisk/fax"    in new stack
    -- Executing [0000666@miko_ajam:6] Set("Local/0000666@miko_ajam-0000000a;2", "recuploadfldr=/var/www/1c/rec"    in new stack
    -- Executing [0000666@miko_ajam:7] Set("Local/0000666@miko_ajam-0000000a;2", "faxuploadfldr=/var/www/1c/fax"    in new stack
    -- Executing [0000666@miko_ajam:8] Set("Local/0000666@miko_ajam-0000000a;2", "RecFax=Records"    in new stack
    -- Executing [0000666@miko_ajam:9] Set("Local/0000666@miko_ajam-0000000a;2", "dbname=asterisk"    in new stack
    -- Executing [0000666@miko_ajam:10] Set("Local/0000666@miko_ajam-0000000a;2", "user=asterisk"    in new stack
    -- Executing [0000666@miko_ajam:11] Set("Local/0000666@miko_ajam-0000000a;2", "password=27152715"    in new stack
    -- Executing [0000666@miko_ajam:12] Answer("Local/0000666@miko_ajam-0000000a;2", ""    in new stack
    -- Executing [0000666@miko_ajam:13] GotoIf("Local/0000666@miko_ajam-0000000a;2", "0?FAX"    in new stack
    -- Executing [0000666@miko_ajam:14] GotoIf("Local/0000666@miko_ajam-0000000a;2", "1?Records"    in new stack
    -- Goto (miko_ajam,0000666,24)
    -- Executing [0000666@miko_ajam:24] NoOp("Local/0000666@miko_ajam-0000000a;2", ""    in new stack
    -- Executing [0000666@miko_ajam:25] Set("Local/0000666@miko_ajam-0000000a;2", "recordingfile=
"    in new stack
    -- Executing [0000666@miko_ajam:26] GotoIf("Local/0000666@miko_ajam-0000000a;2", "0?FindInFileSystem:FindInUserfield"    in new stack
    -- Goto (miko_ajam,0000666,27)
    -- Executing [0000666@miko_ajam:27] Set("Local/0000666@miko_ajam-0000000a;2", "recordingfile=
"    in new stack
    -- Executing [0000666@miko_ajam:28] GotoIf("Local/0000666@miko_ajam-0000000a;2", "0?FindInFileSystem:FailDownload"    in new stack
    -- Goto (miko_ajam,0000666,34)
    -- Executing [0000666@miko_ajam:34] ExecIf("Local/0000666@miko_ajam-0000000a;2", "1?UserEvent(FailDownloadRecord,Channel: SIP/780)"    in new stack
    -- Executing [0000666@miko_ajam:35] Wait("Local/0000666@miko_ajam-0000000a;2", "30"    in new stack



Посмотрел по базе cdr поле recordingfile пустое,тоесть не заполняется,поэтому и не видит файл! Asterisk у меня без FreePBX. Получается чтобы это поле заполнялось во все экстеншены мне надо вставить
exten => s,n,Set(CDR(recordingfile)=${CALLFILENAME}) что будет не красиво, возможно ли это где-то указать в конфиге cdr ? Вообщем вопрос как лучше сделать? На wiki(http://wiki.miko.ru/doc:panel1ccrm:asterisk_config:playrecords) для простого asterisk данный вопрос не рассмотрен!
 
Цитата
возможно ли это где-то указать в конфиге cdr ?
Нет.
Цитата
Вообщем вопрос как лучше сделать?
Реализуйте по аналогии с FreePBX
Цитата
внести изменения в контекст записи разговоров.
exten => s,n,Set(CDR(recordingfile)=${CALLFILENAME})
То есть, где стартует запись разговоров там и заполняйте поле.
 
Цитата
Алексей Портнов пишет:
То есть, где стартует запись разговоров там и заполняйте поле.
А нельзя ли добавить в вашь контекст 0000666,чтобы это срабатывало только при записи из 1С ?
 
Цитата
beho1der пишет:
А нельзя ли добавить в вашь контекст 0000666,чтобы это срабатывало только при записи из 1С ?
Нет.
Описание того, как работает этот кусок плана набора:
http://wiki.askozia.ru/handbook:miko_edition:0000666

Задача приложения скачивание файла записи разговора / файла факсимильного сообщения.
Предполагается, что файл уже существует.
Из 1С можно инициировать старт и окончание текущего разговора. Но тут используется метод компонента.
 
Вообщем сделал Настройка Asterisk для скачивания файла записи пользователем из панели телефонии без добавление

Цитата
exten => s,n,Set(CDR(recordingfile)=${CALLFILENAME})
Подредактировал на asterisk диалплан 0000666к такому виду(переконвертирую в mp3,нужно чтобы в системе стоял lame)


Код
exten => 0000666,1,NoCDR()
exten => 0000666,n,Set(chan=${v1})
exten => 0000666,n,Set(uniqueid1c=${v3})
exten => 0000666,n,Set(monitor_path=${ASTSPOOLDIR}/monitor)
exten => 0000666,n,Set(fax_path=${ASTSPOOLDIR}/fax)
exten => 0000666,n,Set(recuploadfldr=/var/www/1c/rec)
exten => 0000666,n,Set(faxuploadfldr=/var/www/1c/fax)
exten => 0000666,n,Set(RecFax=${v6})
exten => 0000666,n,Answer()
exten => 0000666,n,Gotoif($[${RecFax} = FAX]?FAX)
exten => 0000666,n,Gotoif($[${RecFax} = Records]?Records)
exten => 0000666,n,Hangup()

exten => 0000666,n(FAX),NoOp()
exten => 0000666,n,Set(result=${SHELL(find ${fax_path} -name ${uniqueid1c}* -exec cp {} ${faxuploadfldr} \;)})
exten => 0000666,n,Set(faxfile=${SHELL(cd ${faxuploadfldr} && find  ${uniqueid1c}*|head -n 1)})
exten => 0000666,n,ExecIf($[${LEN(${faxfile})} < 4 ]?UserEvent(FailDownloadFax,Channel: ${chan}))
exten => 0000666,n,ExecIf($[${LEN(${faxfile})} > 4 ]?UserEvent(StartDownloadFax,Channel: ${chan},FileName: 80/1c/fax/${faxfile))
exten => 0000666,n,Wait(30)
exten => 0000666,n,System(rm  ${faxuploadfldr}/${faxfile})
exten => 0000666,n,Hangup()

exten => 0000666,n(Records),NoOp()
exten => 0000666,n,Set(namedorashiren=$[${LEN(${uniqueid1c})}-4])
exten => 0000666,n,Set(decode_mp3=${SHELL(lame -S -V2 ${monitor_path}/${uniqueid1c} ${monitor_path}/${uniqueid1c:0:${namedorashiren}}.mp3 && rm -f ${monitor_path}/${uniqueid1c} && echo OK)})
exten => 0000666,n,Set(recordingfile=${uniqueid1c:0:${namedorashiren}}.mp3)
exten => 0000666,n,Gotoif($[${LEN(${recordingfile})} > 4]?FindInFileSystem:FailDownload)
exten => 0000666,n(FindInFileSystem),Set(result=${SHELL(echo OK && cp ${monitor_path}/${recordingfile} ${recuploadfldr})})
exten => 0000666,n,Wait(1)
exten => 0000666,n,Set(recfile=${SHELL(cd ${recuploadfldr} && find *${recordingfile}*|head -n 1)})
exten => 0000666,n,ExecIf($[${LEN(${recfile})} > 4 ]?UserEvent(StartDownloadRecord,Channel: ${chan},FileName: 80/1c/rec/${recfile}))
exten => 0000666,n(FailDownload),ExecIf($[${LEN(${recfile})} < 4 ]?UserEvent(FailDownloadRecord,Channel: ${chan}))
exten => 0000666,n,Wait(15)
exten => 0000666,n,System(rm  ${recuploadfldr}/${recfile})
exten => 0000666,n,Hangup() 
На стороне 1С использую не Monitor,а Mixmonitor для того чтобы создавался один файл,а также конвертирую его из wav в mp3

P.S  Мне кажется надо добавить в комментарии в коде 1С к параметрам Monitor что для микширования каналов должен быть установлен sox
Читают тему (гостей: 1)