Страница 1 из 3
FreePBX DISA не записывает разговоры.
Добавлено: 25 июн 2013, 14:44
chubaka
Здравствуйте.
Сейчас работает вот так:
Пользователь звонит с мобильного телефона на *, далее * по правилу входящего маршрута для этого пользователя переводит звонок на DISA где пользователь набирает свой пин код и попадает на общею линию где он может набирать номера.
Не работает:
В CDR отчетах звонки отображаются но прослушать разговор нельзя так как нету записи.
Вопрос:
Как сделать чтобы все звонки DISA записывались и отображались в CDR ?
Заранее благодарен.
Re: FreePBX DISA не записывает разговоры.
Добавлено: 25 июн 2013, 15:44
chubaka
У меня сейчас вот так :
Если делаю вот так :
в CDR записи нету
Заранее благодарен.
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 10:26
chubaka
Делаю такие настройки
запись не производится , что я не так делаю?
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 12:35
chubaka
Сделал вот такой context в extensions_custom.conf
Код: Выделить всё
[from-internal-disa]
exten => _X.,1,MixMonitor(FROM-DISA-${UNIQUEID}.wav)
exten => _X.,2,Goto(from-internal,${EXTEN},1)
Он записывается в корень /var/spool/asterisk/monitor/ а надо чтобы /var/spool/asterisk/monitor/ГОД/МЕСЯЦ/ДЕНЬ/ и что-бы отображался в CDR
как доделать ?
Заранее благодарен.
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 13:12
virus_net
chubaka писал(а):а надо чтобы /var/spool/asterisk/monitor/ГОД/МЕСЯЦ/ДЕНЬ/
Код: Выделить всё
exten => _X.,1,Set(FOLDER=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%C%y/%m/%d)})
exten => _X.,n,MixMonitor(${FOLDER}/FROM-DISA-${UNIQUEID}.wav)
только директория должна существовать при этом.
либо нужно будет добавить:
Код: Выделить всё
exten => _X.,n,System(/bin/mkdir -p ${FOLDER})
перед
MixMonitor и не забываем про права на папку
chubaka писал(а):и что-бы отображался в CDR
а вот это видимо придется делать самому - скриптом.
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 13:18
chubaka
Спасибо
мб как-то можно сделать вот так (поправите если бред)
В extensions_override_freepbx.conf добавить
Код: Выделить всё
[disa-dial]
include => disa-dial-custom
exten => _[0-9a-zA-Z*#].,1,Noop(called ${EXTEN} in ${DISACONTEXT} by ${DISA})
exten => _[0-9a-zA-Z*#].,n,Dial(Local/${EXTEN}@${DISACONTEXT},300,${HANGUP})
exten => _[0-9a-zA-Z*#].,n,Gosub(s-${DIALSTATUS},1)
exten => _[0-9a-zA-Z*#].,n,Goto(${DISA})
exten => s-ANSWER,1,Return()
exten => s-CANCEL,1,Return()
exten => s-BUSY,1,Playtones(busy)
exten => s-BUSY,n,Wait(3)
exten => s-BUSY,n,Return()
exten => _s-.,1,Noop(DISA Dial failed due to ${DIALSTATUS} - returning to dial tone)
exten => _s-.,n,Playtones(congestion)
exten => _s-.,n,Wait(3)
exten => _s-.,n,StopPlaytones
exten => _s-.,n,Return()
; end of [disa-dial]
и как-то сюда добавить
Код: Выделить всё
exten => _X.,1,Set(FOLDER=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%C%y/%m/%d)})
exten => _X.,n,MixMonitor(${FOLDER}/FROM-DISA-${UNIQUEID}.wav)
Заранее благодарен.
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 13:30
virus_net
chubaka, ты спросил "как" - я ответил "как"
chubaka писал(а):и как-то сюда добавить
предлагаю тебе самому покумекать над этим вопросом, а не ждать решения на блюдечке
ты сначала сам попробуй, а потом уже снова проси помощи если что-то конкретное не получится
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 13:38
chubaka
Я не спорю что кумекать надо самому, но если бы я мог сам решить данную задачу, не обращался бы на форму.
Заранее благодарен.
Re: FreePBX DISA не записывает разговоры.
Добавлено: 26 июн 2013, 15:34
chubaka
Переделал контекст (сильно не пинайте учусь)
Код: Выделить всё
[from-internal-disa-rec]
exten => _X.,1,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => _X.,2,Set(CALLFILENAME=DISA-${UNIQUEID}.wav)
exten => _X.,3,Set(FOLDER=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%C%y/%m/%d)})
exten => _X.,4,MixMonitor(${FOLDER}/${CALLFILENAME},a,${MIXMON_POST})
exten => _X.,5,Set(CDR(recordingfile)=${CALLFILENAME})
exten => _X.,6,Goto(from-internal,${EXTEN},1)
Файл создается DISA-1372246152.308.wav но в логах вижу вот что:
Код: Выделить всё
-- Executing [s@macro-hangupcall:3] ExecIf("Local/84957874742@from-internal-disa-rec-0000004a;2", "0?Set(CDR(recordingfile)=)") in new stack
Что я не так делаю, почему файл не подставляется ?
Re: FreePBX DISA не записывает разговоры.
Добавлено: 27 июн 2013, 08:48
virus_net
chubaka писал(а):если бы я мог сам решить данную задачу, не обращался бы на форму
одно дело хотя бы попытаться её решить, а другое сидеть на попе ровно и ждать пока тебе напишут готовое для тебя решение.
если самому не пробовать, то никогда ничему и не научишся.
chubaka писал(а):Переделал контекст (сильно не пинайте учусь)
нормальный контекст. единственное что: не стоит проставлять порядковый номер (
priority) в каждой строке. Начинаешь с 1-цы, все остальные вставляешь букву
n.
Код: Выделить всё
[from-internal-disa-rec]
exten => _X.,1,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => _X.,n,Set(CALLFILENAME=DISA-${UNIQUEID}.wav)
exten => _X.,n,............
......................
Пусть * сам нумерует (устанавливает
priority) после 1-цы. Это спасет тебя от дальнейших проблем, когда одну из строк грохнешь, а нумерацию забудешь поправить.
chubaka писал(а):почему файл не подставляется
исходя и приведенного тобой контекста и вывода из консоли можно предположить что либо контекст скопирован не оттуда, либо
dialplan reload не выполнен.
Внимательно посмотри. В строчке лога присутствует вызов функции
ExecIf, но в приведенном тобой контексте его нет, а потому что это строка из macro hangupcall (что опять же написано в логе), а не из контекста from-internal-disa-rec.