Профиль | Публикации (6) | Комментарии (147) | Избранное (752) |
mysql -uroot -p -e "alter table `cdr` add column `filename` varchar(120) after `userfield`;" asterisk
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});
};
};
_XXXXXX => {
&recording(${CALLERID(number)},${EXTEN});
Dial(SIP/rtk/${EXTEN});
Hangup();
}
1392597899.17572-2014-02-17-07_44-83843ZZZХХХ-32ХХZZ.mp3
1 0 * * * /root/sh/mvrecords.sh
#!/bin/bash
ym=`date +%Y-%m -%d "-1 day"`
ymd=`date +%Y-%m-%d"-1 day"`
mkdir -p /records/mp3/$ym/$ymd/
mv /records/mp3/*$ymd* /records/mp3/$ym/$ymd/
/var/www# ls -l
total 60
-rw-r--r-- 1 fessae fessae 182 Nov 19 2011 callrates.csv
drwxr-xr-x 3 fessae fessae 4096 Sep 26 2012 contrib
-rw-r--r-- 1 fessae fessae 1986 Dec 22 2012 download.php
-rw-r--r-- 1 fessae fessae 246 Sep 6 2013 downloads.php
drwxr-xr-x 4 fessae fessae 4096 Apr 15 20:48 include
-rw-r--r-- 1 fessae fessae 30384 Dec 2 20:21 index.php
lrwxrwxrwx 1 root root 13 Apr 15 20:48 records -> /records/mp3/
drwxr-xr-x 2 fessae fessae 4096 Feb 13 2013 style
drwxr-xr-x 3 fessae fessae 4096 Feb 18 21:07 templates
$recorded_file = $row['filename'];
$mycalldate = substr("$calldate",0,10);
$mycalldate_ym = substr("$calldate",0,7);
$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";}
}
}
include/config.inc.php
mysql -p
mysql> alter table cdr alter filename set default 'none';
mysql> describe cdr;
+-------------+-----------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------------+------+-----+---------------------+----------------+
| id | int(9) unsigned | NO | PRI | NULL | auto_increment |
| calldate | datetime | NO | MUL | 0000-00-00 00:00:00 | |
| clid | varchar(80) | NO | | | |
| src | varchar(80) | NO | MUL | | |
| dst | varchar(80) | NO | MUL | | |
| dcontext | varchar(80) | NO | | | |
| channel | varchar(80) | NO | | | |
| dstchannel | varchar(80) | NO | | | |
| lastapp | varchar(80) | NO | | | |
| lastdata | varchar(80) | NO | | | |
| duration | int(11) | NO | | 0 | |
| billsec | int(11) | NO | | 0 | |
| disposition | varchar(45) | NO | | | |
| amaflags | int(11) | NO | | 0 | |
| accountcode | varchar(20) | NO | MUL | | |
| uniqueid | varchar(32) | NO | MUL | | |
| userfield | varchar(255) | NO | | | |
| filename | varchar(120) | YES | | none | |
+-------------+-----------------+------+-----+---------------------+----------------+
18 rows in set (0.00 sec)
mysql> \q
Bye
Основные особенности
Полностью русский интерфейс
Обновленный дизайн
Всплывающие подсказки
Корректный экспорт записей в CSV файл
Правильный подсчет стоимости звонков (плагин)
Просмотр стоимости каждого звонка (плагин)
Возможность указать нетарифицируемый интервал для правильного подсчета стоимости
Возможность указать доп. тариф. Например: Стоимость первой минуты 1 руб., далее по 10 коп. (доп. тариф)
Имя файла записи звонка хранится в базе
Возможность прослушивания записи звонка через веб-интерфейс
На номер телефона можно нажать и получить о нем информацию
Плеер для прослушивания звонка подгружается через javascript, так что ничего не тормозит
Если записи звонков архивируются, будет предложено скачать запись
Если поступил факс, его также можно скачать
Файлы для скачивания отдаются скриптом с возможностью докачки
Папка для хранения записей может находиться в любой директории вашего сервера
И еще много всего...
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Комментарии (33)