Автор Тема: Статистика и прослушивание звонков asterisk  (Прочитано 182287 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #15 : 03 ноября 2013, 10:55:37 »
но из браузера же не выдаст
эт почему не выдаст?
У меня же работает :)
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн celestes

  • Новичок
  • *
  • Сообщений: 3
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Россия
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #16 : 20 января 2014, 11:30:07 »
добрый день. нужна помощь

у меня есть настроенный на запись разговоров в мп3 астериск, пишет в каталог /records/mp3
формат имени файла
Цитировать
CALLFILENAME=${STRFTIME(${EPOCH},,%d-%m-%Y_%H:%M)}-${CALLERID(number)}-${EXTEN}-${UNIQUEID}
как должен выглядеть скрипт в functions.inc.php чтобы всё заработало?

у меня получилось сделать только если давать имя файлу по его uniqeid.

и еще у меня не проигрывается файл. кнопка play есть, а "бегунок" не идет.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #17 : 20 января 2014, 11:43:13 »
добрый день. нужна помощь

у меня есть настроенный на запись разговоров в мп3 астериск, пишет в каталог /records/mp3
формат имени файла
Цитировать
CALLFILENAME=${STRFTIME(${EPOCH},,%d-%m-%Y_%H:%M)}-${CALLERID(number)}-${EXTEN}-${UNIQUEID}
как должен выглядеть скрипт в functions.inc.php чтобы всё заработало?

у меня получилось сделать только если давать имя файлу по его uniqeid.

и еще у меня не проигрывается файл. кнопка play есть, а "бегунок" не идет.

Прицепи свой  functions.inc.php, покажи вывод результата запроса
select * from cdr where calldate like '2014-01-20%' limit 1;

+ в приложеном файле немного допиленная версия(добавил кнопочку рядом с плеером, для возможности скачать файл)



Updated: 20 January 2014, 12:53:57

ну и попробуй скачать свой файл и проиграть обычным проигрывателем )
« Последнее редактирование: 20 января 2014, 11:53:57 от FessAectan »
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн celestes

  • Новичок
  • *
  • Сообщений: 3
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Россия
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #18 : 20 января 2014, 12:52:44 »
а в какой файл там добавлена сама кнопка? у меня не появилась.
вот кусок из functions.inc для файлов с именем = uniqeid
Цитировать
$recorded_file = $row['uniqueid'];
$mycalldate = substr("$calldate",0,10);
$mycalldate_ym = substr("$calldate",0,7);
$mydate = date("Y-m-d");
$from1 = $row['src'];
$to1 = $row['dst'];
/* ============================================================================ */


if (file_exists("mp3/$recorded_file.mp3"))

результат запроса

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #19 : 20 января 2014, 16:04:41 »
Обрати внимание на
globals {
    WAV=/records/wav; //Временный каталог с WAV
    MP3=/records/mp3; //Куда выгружать mp3 файлы
    RECORDING=1; // Запись, 1 - включена.
};



macro recording (calling,called) {
        if ("${RECORDING}" = "1"){
              Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called});
              Set(monopt=nice -n 19 /usr/bin/lame -b 32  --silent "${WAV}/${fname}.wav"  "${MP3}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${fname}.mp3");
              Set(CDR(filename)=${fname}.mp3);
              Set(CDR(realdst)=${called});
              MixMonitor(${WAV}/${fname}.wav,b,${monopt});

       };
};
я пишу в отдельный столбец имя файла

и


buhta, у меня вот такая запись в базу падает -
1382864334.714773-2013-10-27-15_58-507-89130ХХХХХХ.mp3
в поле filename,
т.е.
uniqueid-год_месяц_день-час_минута_кто-куда.mp3

выложи select из таблицы, типо такого
 select * from cdr where calldate like '2013-10%'  limit 1;
если время будет подправлю, но проще как у меня сделать  :)
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #20 : 20 января 2014, 17:40:25 »
Более подробно постараюсь объяснить.
В functions.inc.php есть строки
        $recorded_file = $row['filename'];
        $mycalldate = substr("$calldate",0,10);
        $mycalldate_ym = substr("$calldate",0,7);
        $mydate = date("Y-m-d");
1. $recorded_file = $row['filename'];
присваевает переменной recorded_file значение возвращенное запросом из базы(читай имя файла, ибо именно имя я пишу в поле filename таблицы cdr)
2. $mycalldate = substr("$calldate",0,10);
присваевает переменной mycalldate  дату  в формате Y-m-d, наприемр 2014-01-20($calldate берется из формы, там где вводишь date range)
3. $mycalldate_ym = substr("$calldate",0,7);
тоже самое что и п.2, но в формате Y-m
4. $mydate = date("Y-m-d");
тут понятно я думаю, текущая дата

далее
if ($mycalldate<$mydate){
if (file_exists("records/$mycalldate_ym/$mycalldate/$recorded_file")) {
echo " <td class="record_col"><a href="downloads.php?audio=records/$mycalldate_ym/$mycalldate/$recorded_file" title="Скачать файл с разговором"><img src="templates/images/sound.png"</a>
                                <object type="application/x-shockwave-flash" data="include/player_mp3_maxi.swf" width="150" height="20">
                                <param movie=include/player_mp3_maxi.swf/>
                                <param name=FlashVars value=mp3=records/$mycalldate_ym/$mycalldate/$recorded_file />     </td>n";
}
else {echo "    <td class="record_col">запись отсутствует</td>n"; }
}
else {
if (file_exists("records/$recorded_file")) {
echo " <td class="record_col"><a href="downloads.php?audio=records/$recorded_file" title="Скачать файл с разговором"><img src="templates/images/sound.png"</a>
                                <object type="application/x-shockwave-flash" data="include/player_mp3_maxi.swf" width="150" height="20">
                                <param movie=include/player_mp3_maxi.swf/>
                                <param name=FlashVars value=mp3=records/$recorded_file />     </td>n";
}
else {echo "    <td class="record_col">запись отсутствует</td>n";}

}
}


этот кусок кода разжевывать не буду
суть в том что если дата введенная в форме меньше текущей, то ищем записи в уже отсортированных скриптом в кроне папках
crontab -l|grep -v "^#"
1 0 * * * /root/sh/mvrecords.sh
cat /root/sh/mvrecords.sh
#!/bin/bash
ym=`date  %Y-%m -d "-1 day"`
ymd=`date  %Y-%m-%d -d "-1 day"`
mkdir -p /records/mp3/$ym/$ymd/
mv /records/mp3/*$ymd* /records/mp3/$ym/$ymd/
иначе ищем файлы в текущей папке(в records/)
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн celestes

  • Новичок
  • *
  • Сообщений: 3
  • Рейтинг: 0
    • Просмотр профиля
  • Откуда: Россия
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #21 : 28 января 2014, 10:33:58 »
я в скрипте разобрался, но в силу слабого знания синтаксиса языка были проблемы с допиливанием)
сейчас всё сделал, спасибо за помощь

Оффлайн ck80

  • Новичок
  • *
  • Сообщений: 2
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Челябинск
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #22 : 28 января 2014, 14:12:12 »
FessAectan, помогите добавить кнопку скачивания. Я ваш конфиг немного кастомизировал, т.к. у меня пути до файлов другие. Но вот как добавить кнопочку не соображу:

Я так понимаю её код вот сюда нужно добавить:
if (file_exists("/var/spool/asterisk/monitor/$mydate_y/$mydate_m/$mydate_d/$recorded_file")) {
echo " <td class="record_col"><object type="application/x-shockwave-flash" data="include/player_mp3_maxi.swf" width="150" height="20">
                                <param movie=include/player_mp3_maxi.swf/>
                                                                <param name=FlashVars value=mp3=/var/spool/asterisk/monitor/$mydate_y/$mydate_m/$mydate_d/$recorded_file />
                                                                asdf </td>n";
                                                                }
                                                                else {echo "    <td class="record_col"></td>n"; }
                                                                }

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #23 : 28 января 2014, 17:40:26 »
ck80, в первом сообщении треда файлик прикреплен, скачайте его, там уже все добавлено.


Updated: 28 January 2014, 18:40:47

celestes, пожалуйста.
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн ck80

  • Новичок
  • *
  • Сообщений: 2
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Челябинск
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #24 : 29 января 2014, 05:13:57 »
В архиве нет файла functions.inc.php

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #25 : 29 января 2014, 05:56:31 »
ck80, да, промахнулся немного.
Обновил первый пост, перекачайте оттуда.
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #26 : 29 января 2014, 05:59:53 »
сюда тоже выложу
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн lamobot

  • Начинающий
  • *
  • Сообщений: 13
  • Рейтинг: 0
  • Пол: Мужской
    • myskp.ru
    • Просмотр профиля
  • Откуда: myskp.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #27 : 06 марта 2014, 16:41:13 »
Всем доброго времени суток!

Помогите пожалуйста!

взял за основу:
Цитировать
[macroStartRecord]
exten => s,1,NoOp
same => n,Set(fname=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%Y/%m/%d/${CDR(uniqueid)}-%Y-%m-%d-%H_%M)}-${CALLERID(num)}-${CDR(dst)})
same => n,Set(CDR(filename)=${STRFTIME(${EPOCH},,${CDR(uniqueid)}-%Y-%m-%d-%H_%M)}-${CALLERID(num)}-${CDR(dst)}.mp3)
same => n,Set(MONITOR_OPT=nice -n 19 /usr/bin/lame -b 16 --silent "${fname}.wav" "${fname}.mp3" && rm -f "${fname}.wav")
same => n,MixMonitor(${fname}.wav,b,${MONITOR_OPT})

Не работает запись. Конфигурация:
GoIP4(101) -> asterisk -> SIP-телефон(200).
GoIP настроен так, чтоб звонить на номер 200.

extensions.conf
Цитировать
[night]
exten => 200,1,Macro(StartRecord,200,SIP/200)
exten => 200,n,Hangup

[from-goip4]
include => day,09:00-19:59,mon-fri,*,*
include => night

[macro-StartRecord]
exten => s,1,NoOp
same => n,Set(fname=/records/mp3/${STRFTIME(${EPOCH},,%Y-%m/%Y-%m-%d/${CDR(uniqueid)}-%Y-%m-%d-%H_%M)}-${CALLERID(num)}-${CDR(dst)})
same => n,Set(CDR(filename)=${STRFTIME(${EPOCH},,${CDR(uniqueid)}-%Y-%m-%d-%H_%M)}-${CALLERID(num)}-${CDR(dst)}.mp3)
same => n,Set(MONITOR_OPT=nice -n 19 /usr/bin/lame -b 16 --silent "${fname}.wav" "${fname}.mp3" && rm -f "${fname}.wav")
same => n,MixMonitor(${fname}.wav,b,${MONITOR_OPT})

В итоге, при поступлении звонка с goip соединение происходит и тут же обрывается(астериск ложит трубку), лог:
Цитировать
== Using SIP RTP CoS mark 5
    -- Executing [200@from-goip4:1] Answer("SIP/101-0000007d", "") in new stack
    -- Executing [200@from-goip4:2] Macro("SIP/101-0000007d", "StartRecord,200,SIP/200") in new stack
    -- Executing [s@macro-StartRecord:1] NoOp("SIP/101-0000007d", "") in new stack
    -- Executing [s@macro-StartRecord:2] Set("SIP/101-0000007d", "fname=/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200") in new stack
    -- Executing [s@macro-StartRecord:3] Set("SIP/101-0000007d", "CDR(filename)=1394112398.125-2014-03-06-20_26-73832269756-200.mp3") in new stack
    -- Executing [s@macro-StartRecord:4] Set("SIP/101-0000007d", "MONITOR_OPT=nice -n 19 /usr/bin/lame -b 16 --silent "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav" "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.mp3" && rm -f "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav"") in new stack
    -- Executing [s@macro-StartRecord:5] MixMonitor("SIP/101-0000007d", "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav,b,nice -n 19 /usr/bin/lame -b 16 --silent "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav" "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.mp3" && rm -f "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav"") in new stack
    -- Executing [200@from-goip4:3] Hangup("SIP/101-0000007d", "") in new stack
  == Spawn extension (from-goip4, 200, 3) exited non-zero on 'SIP/101-0000007d'
  == Begin MixMonitor Recording SIP/101-0000007d
  == Executing [nice -n 19 /usr/bin/lame -b 16 --silent "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav" "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.mp3" && rm -f "/records/mp3/2014-03/2014-03-06/1394112398.125-2014-03-06-20_26-73832269756-200.wav"]
  == End MixMonitor Recording SIP/101-0000007d

Помогите победить?

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #28 : 06 марта 2014, 17:32:25 »
lamobot, попробуй без макроса сперва, напрямую в екстеншен вставь строки для записи
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн lamobot

  • Начинающий
  • *
  • Сообщений: 13
  • Рейтинг: 0
  • Пол: Мужской
    • myskp.ru
    • Просмотр профиля
  • Откуда: myskp.ru
Прослушивание звонков из asterisk-cdr-viewer
« Ответ #29 : 06 марта 2014, 20:34:49 »
Эммм... Что именно в экстеншн вставить? Содержимое макроса?
Ник соответствует познаниям в астериске.))