asterisk cdr mysql
23 отговора
0 прегледа
asterisk cdr mysql
Пуснах Asterisk 1.8.7.0 на Fedora Core 15
Инсталирах го и го update-вам с yum
Сега трябва CDR-данните да се записват в MySQL база данни и от там да се правят разни справки.
Четох, четох и разбрах, че трябва да инсталирам asterisk-addons, за да може asterisk-а да пише в MySQL-базата било то директно, било през odbc.
Опитах с yum install asterisk-addons, обаче няма такъв пакет. Кофти.
Изтеглих от asterisk.org asterisk-addons-1.6.2.3
направих ./configure
после пуснах make, абоаче получавам следната грешка:
make[1]: Entering directory `/usr/src/asterisk-addons-1.6.2.3/channels'
[CC] chan_ooh323.c -> chan_ooh323.o
In file included from chan_ooh323.c:18:0:
chan_ooh323.h:53:26: fatal error: asterisk/rtp.h: No such file or directory
compilation terminated.
make[1]: *** [chan_ooh323.o] Error 1
make[1]: Leaving directory `/usr/src/asterisk-addons-1.6.2.3/channels'
make: *** [channels] Error 2
Моля, помогнете!
Как да инсталирам тези пусти addons?
Инсталирах го и го update-вам с yum
Сега трябва CDR-данните да се записват в MySQL база данни и от там да се правят разни справки.
Четох, четох и разбрах, че трябва да инсталирам asterisk-addons, за да може asterisk-а да пише в MySQL-базата било то директно, било през odbc.
Опитах с yum install asterisk-addons, обаче няма такъв пакет. Кофти.
Изтеглих от asterisk.org asterisk-addons-1.6.2.3
направих ./configure
после пуснах make, абоаче получавам следната грешка:
make[1]: Entering directory `/usr/src/asterisk-addons-1.6.2.3/channels'
[CC] chan_ooh323.c -> chan_ooh323.o
In file included from chan_ooh323.c:18:0:
chan_ooh323.h:53:26: fatal error: asterisk/rtp.h: No such file or directory
compilation terminated.
make[1]: *** [chan_ooh323.o] Error 1
make[1]: Leaving directory `/usr/src/asterisk-addons-1.6.2.3/channels'
make: *** [channels] Error 2
Моля, помогнете!
Как да инсталирам тези пусти addons?
Re: asterisk cdr mysql
"Note: Add-ons for Asterisk 1.8 and 10 can be installed from the "menuselect" menu."
Предполагам това си пропуснал?
Моля.
[линк] - За теб ли е?
Предполагам това си пропуснал?
Моля.
[линк] - За теб ли е?
Re: asterisk cdr mysql
make menuselect
И там избираш само и единствено онова което ти трябва.
Bеer? Mоre?
Плацебото
И там избираш само и единствено онова което ти трябва.
Bеer? Mоre?
Плацебото
Re: asterisk cdr mysql
Сега ще те питат както е меню селект ... Човека иска да си инсталира пакет!
--
[линк] :: [линк]
--
[линк] :: [линк]
Re: asterisk cdr mysql
Стана!!!
Успаях да пусна menuselect, наложи се да направя ./configure на menuselect-a
Освен това се оказа, че трябва да инсталирам още един къп devel - неща, за да стане компилирането както трябва.
Наложи се даже да инсталирам mysql-devel, щото без него не се генерираше така необходимия ми cdr_addon_mysql.so.
Сега вече връзката към mysql-a работи
Данните се трупат като сняг на парцали през зимата и всичко е ОК.
Остават още 2 неща:
1. Да записвам всички разговори;
2. Да асоцирам (интересно как) записаните разговори към натрупаната (като сняг на парцали) информация в базата данни;
Дайте идеи, моля.
Вече не ме е страх от компилиране, така че...
Успаях да пусна menuselect, наложи се да направя ./configure на menuselect-a
Освен това се оказа, че трябва да инсталирам още един къп devel - неща, за да стане компилирането както трябва.
Наложи се даже да инсталирам mysql-devel, щото без него не се генерираше така необходимия ми cdr_addon_mysql.so.
Сега вече връзката към mysql-a работи
Данните се трупат като сняг на парцали през зимата и всичко е ОК.
Остават още 2 неща:
1. Да записвам всички разговори;
2. Да асоцирам (интересно как) записаните разговори към натрупаната (като сняг на парцали) информация в базата данни;
Дайте идеи, моля.
Вече не ме е страх от компилиране, така че...
Re: asterisk cdr mysql
Начина е - правиш си един аги скрипт, на какъвто ти е кеф език. Може на C, може на perl, php - каквото се сетиш.
Преди дайл, сетваш име на звуковия файл.
Дайла си има опция, с която указваш да се записва.
След дайл, пишеш у базата данни името на файла, който ти си генерирал и какъвто идентификатор за разговора си избрал.
Имай предвид че събеседниците трябва да бъдат предупреждавани ако записваш рразговора.
Bеer? Mоre?
Плацебото
Преди дайл, сетваш име на звуковия файл.
Дайла си има опция, с която указваш да се записва.
След дайл, пишеш у базата данни името на файла, който ти си генерирал и какъвто идентификатор за разговора си избрал.
Имай предвид че събеседниците трябва да бъдат предупреждавани ако записваш рразговора.
Bеer? Mоre?
Плацебото
Re: asterisk cdr mysql
Благодаря много за изчерпателните насоки.
Благодарение на зачитането на опцийте на Dial() успях да разбера и как да пусна трансферите - то трябвало задължително да има "tT" за да стават с команди...
Четох и за "wWXx", обаче там записът почвал покоманда на потребителя...
Моля за още насоки.
Благодарение на зачитането на опцийте на Dial() успях да разбера и как да пусна трансферите - то трябвало задължително да има "tT" за да стават с команди...
Четох и за "wWXx", обаче там записът почвал покоманда на потребителя...
Моля за още насоки.
Re: asterisk cdr mysql
$AGI->exec("Monitor wav,$rfile,b");
$AGI->exec("DIAL $dialstr");
$AGI->exec("StopMonitor");
Където $rfile е променлива с името на файла, $dialstr е диал стринга.
Така записваш с каквото име искаш, а след разговора - може на база статус да пишеш в ДБ.
Това е част от мой perl скрипт.
Bеer? Mоre?
Плацебото
$AGI->exec("DIAL $dialstr");
$AGI->exec("StopMonitor");
Където $rfile е променлива с името на файла, $dialstr е диал стринга.
Така записваш с каквото име искаш, а след разговора - може на база статус да пишеш в ДБ.
Това е част от мой perl скрипт.
Bеer? Mоre?
Плацебото
Re: asterisk cdr mysql
Чувам, че така се получавали 2 файла, един за входящия и един за изходящия канали.
После някой трябвало да ги смесва.
Можело и на автомат, но не виждам "м" - флаг?
После някой трябвало да ги смесва.
Можело и на автомат, но не виждам "м" - флаг?
Re: asterisk cdr mysql
Ми може да поровиш малко и да видиш. На мен са ми трябвали 2 файла и го правя с 2 файла. Има и вариант с един, ама трябваше somix ако не се лъжа да бъде инсталиран. Не съм сигурен. А и нищо, ама нищо, ама хич нищо не ти пречи да ръннеш външен апликейшън и да ти ги миксне, а после да изтриеш двата файла.
Bеer? Mоre?
Плацебото
Bеer? Mоre?
Плацебото
Re: asterisk cdr mysql
Много интересна работа се оказа:
пускам monitor директно от extensions.conf:
exten => _XXX,1,Monitor(wav,,m)
exten => _XXX,n,Dial(SIP/${EXTEN},60,tTwWxX)
exten => _XXX,n,HangUp()
Име на записвания (и автоматично миксиран - работи) файл - по подразбиране.
И о, изненада:
-rw-r--r-- 1 asterisk asterisk 3355884 Oct 25 20:19 1319563003-SIP-778-00000081.wav
и какво има в записа в cdr в mysql-a?
timestamp: 1319563003
channel: SIP/778-00000081
събирам timestamp-a и channel-a , str_replace '/' --> '-', добавям wav и получавам така жадуваното име на файла!!!!
Дали ще е надеждно???
пускам monitor директно от extensions.conf:
exten => _XXX,1,Monitor(wav,,m)
exten => _XXX,n,Dial(SIP/${EXTEN},60,tTwWxX)
exten => _XXX,n,HangUp()
Име на записвания (и автоматично миксиран - работи) файл - по подразбиране.
И о, изненада:
-rw-r--r-- 1 asterisk asterisk 3355884 Oct 25 20:19 1319563003-SIP-778-00000081.wav
и какво има в записа в cdr в mysql-a?
timestamp: 1319563003
channel: SIP/778-00000081
събирам timestamp-a и channel-a , str_replace '/' --> '-', добавям wav и получавам така жадуваното име на файла!!!!
Дали ще е надеждно???
Re: asterisk cdr mysql
Не. За тази работа си генерираш име на файла по нещо сигурно, например Call ID. И другата вълшебна команда, която търсиш е MixMonitor.
--
[линк] :: [линк]
--
[линк] :: [линк]
Re: asterisk cdr mysql
caller+callee+timestamp би трябвало да е доста надеждно.
Но другия метод май е по надежден.
Bеer? Mоre?
Плацебото
Но другия метод май е по надежден.
Bеer? Mоre?
Плацебото
Re: asterisk cdr mysql
Ето как го правя аз, защото предпочитам мп3 ки - иначе много място отива...
[globals]
MONITOR_EXEC=/var/lib/asterisk/agi-bin/_mix
[contextname]
exten => s,1,Answer()
exten => s,2,Set(AudioFile=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)}-${EXTEN})
exten => s,n,Monitor(wav,${AudioFile},m)
А това е файлчето, което миксира за мен:
cat ./_mix
#!/usr/local/bin/php -q
<?php
sleep(5);
$IN=$argv[1];
$OUT=$argv[2];
if (substr($IN,-6)=="in.wav") {
$MIX=substr($IN,0,strlen($IN)-7).".wav";
$FINAL=substr($IN,0,strlen($IN)-7).".mp3";
} else {
$MIX=substr($OUT,0,strlen($IN)-8).".wav";
$FINAL=substr($IN,0,strlen($IN)-8).".mp3";
}
$MIX=str_replace("//","/",$MIX);
$FINAL=str_replace("//","/",$FINAL);
$a=`/usr/local/bin/sox -m $IN $OUT $MIX`;
$b=`/usr/local/bin/lame --quiet --preset voice -v -B 32 -a $MIX $FINAL`;
$b1=`chmod 755 $FINAL`;
$d=`rm $IN`;
$e=`rm $OUT`;
$f=`rm $MIX`;
?>
Ако искаш оттук можеш да си направиш запис в базата данни с името на файлчето и т.н.
[линк] - За теб ли е?
[globals]
MONITOR_EXEC=/var/lib/asterisk/agi-bin/_mix
[contextname]
exten => s,1,Answer()
exten => s,2,Set(AudioFile=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)}-${EXTEN})
exten => s,n,Monitor(wav,${AudioFile},m)
А това е файлчето, което миксира за мен:
cat ./_mix
#!/usr/local/bin/php -q
<?php
sleep(5);
$IN=$argv[1];
$OUT=$argv[2];
if (substr($IN,-6)=="in.wav") {
$MIX=substr($IN,0,strlen($IN)-7).".wav";
$FINAL=substr($IN,0,strlen($IN)-7).".mp3";
} else {
$MIX=substr($OUT,0,strlen($IN)-8).".wav";
$FINAL=substr($IN,0,strlen($IN)-8).".mp3";
}
$MIX=str_replace("//","/",$MIX);
$FINAL=str_replace("//","/",$FINAL);
$a=`/usr/local/bin/sox -m $IN $OUT $MIX`;
$b=`/usr/local/bin/lame --quiet --preset voice -v -B 32 -a $MIX $FINAL`;
$b1=`chmod 755 $FINAL`;
$d=`rm $IN`;
$e=`rm $OUT`;
$f=`rm $MIX`;
?>
Ако искаш оттук можеш да си направиш запис в базата данни с името на файлчето и т.н.
[линк] - За теб ли е?
Re: asterisk cdr mysql
Успях!!!
Много съм щастлив!!!
Много съм горд!!!
Ето как го направих:
exten => _XXX,1,Monitor(wav,/var/www/html/pbx/monitor/${UNIQUEID},m)
exten => _XXX,n,Dial(SIP/${EXTEN},60,tTwWxX)
exten => _XXX,n,HangUp()
За щастие в mysql-базата се записва UNIQUEID-то в едноименното поле и така свързвам записа в cdr-a с файла.
Файловете са във wav-формат, 8kHz, mono, 16-bit (около 1MB/минута, което за сега не ефатално).
Качеството на записа е перфектно.
Бих искал да благодаря на всички, които взеха участие в дискусията и ми помогнаха да настроя системата.
Беше ми много интересно и много приятно да общувам с всички вас!
Сега боря проблема с конференцийте.
Четох, четох, гледам - хората го правят с MeetMe().
Направих meetme.conf:
[general]
audiobuffers=32
[rooms]
conf => 9000
и добавих в extensions.conf:
exten => 9000,1,MeetMe(9000,i,1234)
Резултат:
[Oct 26 22:34:43] WARNING[18828]: pbx.c:4088 pbx_extension_helper: No application 'MeetMe' for extension (local, 9000, 1)
== Spawn extension (local, 9000, 1) exited non-zero on 'SIP/777-000000f5'
Чудна работа - как така нямам application 'MeetMe' ???
Моля, помогнете, как се прави конференция???
[линк]
Много съм щастлив!!!
Много съм горд!!!
Ето как го направих:
exten => _XXX,1,Monitor(wav,/var/www/html/pbx/monitor/${UNIQUEID},m)
exten => _XXX,n,Dial(SIP/${EXTEN},60,tTwWxX)
exten => _XXX,n,HangUp()
За щастие в mysql-базата се записва UNIQUEID-то в едноименното поле и така свързвам записа в cdr-a с файла.
Файловете са във wav-формат, 8kHz, mono, 16-bit (около 1MB/минута, което за сега не ефатално).
Качеството на записа е перфектно.
Бих искал да благодаря на всички, които взеха участие в дискусията и ми помогнаха да настроя системата.
Беше ми много интересно и много приятно да общувам с всички вас!
Сега боря проблема с конференцийте.
Четох, четох, гледам - хората го правят с MeetMe().
Направих meetme.conf:
[general]
audiobuffers=32
[rooms]
conf => 9000
и добавих в extensions.conf:
exten => 9000,1,MeetMe(9000,i,1234)
Резултат:
[Oct 26 22:34:43] WARNING[18828]: pbx.c:4088 pbx_extension_helper: No application 'MeetMe' for extension (local, 9000, 1)
== Spawn extension (local, 9000, 1) exited non-zero on 'SIP/777-000000f5'
Чудна работа - как така нямам application 'MeetMe' ???
Моля, помогнете, как се прави конференция???
[линк]
Re: asterisk cdr mysql
[линк]
Мини отново през онова страшното нещо, дето май леко го попретупа предния път и внимателно чети.
Имам пред вид make menuconfig.
Ми просто не си си инсталирал съответния апликейшън, или не ти е трябвал, или е бил неактивен, заради някое депенденси.
Май не ти се занимава с агита.
Ама все пак може да видиш и какво прави ConfBridge. Аз лично го предпочитам
Bеer? Mоre?
Плацебото
Мини отново през онова страшното нещо, дето май леко го попретупа предния път и внимателно чети.
Имам пред вид make menuconfig.
Ми просто не си си инсталирал съответния апликейшън, или не ти е трябвал, или е бил неактивен, заради някое депенденси.
Май не ти се занимава с агита.
Ама все пак може да видиш и какво прави ConfBridge. Аз лично го предпочитам
Bеer? Mоre?
Плацебото
Re: asterisk cdr mysql
Хе хе - що ве? Cut n Paste
Само си инсталира lame и sox (то би трябвало да ги има) и проверява пътищата до тях.
Несравнимо е като запълване на диска wav vs mp3 а качеството си е същото...
[линк] - За теб ли е?
Само си инсталира lame и sox (то би трябвало да ги има) и проверява пътищата до тях.
Несравнимо е като запълване на диска wav vs mp3 а качеството си е същото...
[линк] - За теб ли е?