asterisk cdr mysql

23 отговора 0 прегледа
#1

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?

Отговор
в отговор на grigspace #2

Re: asterisk cdr mysql

"Note: Add-ons for Asterisk 1.8 and 10 can be installed from the "menuselect" menu."

Предполагам това си пропуснал?

Моля.

[линк] - За теб ли е?
Отговор
в отговор на Cyber_SAS #3

Re: asterisk cdr mysql

Ами не мога да го пусна това меню.

Как се прави тази работа?

Отговор
в отговор на grigspace #4

Re: asterisk cdr mysql

make menuselect
И там избираш само и единствено онова което ти трябва.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #5

Re: asterisk cdr mysql

Сега ще те питат както е меню селект ... Човека иска да си инсталира пакет!

--
[линк] :: [линк]
Отговор
в отговор на OSag #6

Re: asterisk cdr mysql

Е ми - никой не се е родил научен.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #7

Re: asterisk cdr mysql

Стана!!!

Успаях да пусна menuselect, наложи се да направя ./configure на menuselect-a
Освен това се оказа, че трябва да инсталирам още един къп devel - неща, за да стане компилирането както трябва.
Наложи се даже да инсталирам mysql-devel, щото без него не се генерираше така необходимия ми cdr_addon_mysql.so.

Сега вече връзката към mysql-a работи
Данните се трупат като сняг на парцали през зимата и всичко е ОК.

Остават още 2 неща:

1. Да записвам всички разговори;
2. Да асоцирам (интересно как) записаните разговори към натрупаната (като сняг на парцали) информация в базата данни;

Дайте идеи, моля.

Вече не ме е страх от компилиране, така че...

Отговор
в отговор на grigspace #8

Re: asterisk cdr mysql

Начина е - правиш си един аги скрипт, на какъвто ти е кеф език. Може на C, може на perl, php - каквото се сетиш.
Преди дайл, сетваш име на звуковия файл.
Дайла си има опция, с която указваш да се записва.
След дайл, пишеш у базата данни името на файла, който ти си генерирал и какъвто идентификатор за разговора си избрал.
Имай предвид че събеседниците трябва да бъдат предупреждавани ако записваш рразговора.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #9

Re: asterisk cdr mysql

Благодаря много за изчерпателните насоки.

Благодарение на зачитането на опцийте на Dial() успях да разбера и как да пусна трансферите - то трябвало задължително да има "tT" за да стават с команди...

Четох и за "wWXx", обаче там записът почвал покоманда на потребителя...

Моля за още насоки.

Отговор
в отговор на grigspace #10

Re: asterisk cdr mysql

$AGI->exec("Monitor wav,$rfile,b");
$AGI->exec("DIAL $dialstr");
$AGI->exec("StopMonitor");
Където $rfile е променлива с името на файла, $dialstr е диал стринга.
Така записваш с каквото име искаш, а след разговора - може на база статус да пишеш в ДБ.
Това е част от мой perl скрипт.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #11

Re: asterisk cdr mysql

Чувам, че така се получавали 2 файла, един за входящия и един за изходящия канали.

После някой трябвало да ги смесва.

Можело и на автомат, но не виждам "м" - флаг?

Отговор
в отговор на grigspace #12

Re: asterisk cdr mysql

Ми може да поровиш малко и да видиш. На мен са ми трябвали 2 файла и го правя с 2 файла. Има и вариант с един, ама трябваше somix ако не се лъжа да бъде инсталиран. Не съм сигурен. А и нищо, ама нищо, ама хич нищо не ти пречи да ръннеш външен апликейшън и да ти ги миксне, а после да изтриеш двата файла.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #13

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 и получавам така жадуваното име на файла!!!!

Дали ще е надеждно???

Отговор
в отговор на grigspace #14

Re: asterisk cdr mysql

Не. За тази работа си генерираш име на файла по нещо сигурно, например Call ID. И другата вълшебна команда, която търсиш е MixMonitor.

--
[линк] :: [линк]
Отговор
в отговор на grigspace #15

Re: asterisk cdr mysql

caller+callee+timestamp би трябвало да е доста надеждно.
Но другия метод май е по надежден.

Bеer? Mоre?
Плацебото
Отговор
в отговор на grigspace #16

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`;
?>


Ако искаш оттук можеш да си направиш запис в базата данни с името на файлчето и т.н.

[линк] - За теб ли е?
Отговор
в отговор на Cyber_SAS #17

Re: asterisk cdr mysql

Това му е висша математика.

--
[линк] :: [линк]
Отговор
в отговор на OSag #18

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' ???

Моля, помогнете, как се прави конференция???

[линк]
Отговор
в отговор на grigspace #19

Re: asterisk cdr mysql

[линк]
Мини отново през онова страшното нещо, дето май леко го попретупа предния път и внимателно чети.
Имам пред вид make menuconfig.
Ми просто не си си инсталирал съответния апликейшън, или не ти е трябвал, или е бил неактивен, заради някое депенденси.
Май не ти се занимава с агита.
Ама все пак може да видиш и какво прави ConfBridge. Аз лично го предпочитам

Bеer? Mоre?
Плацебото
Отговор
в отговор на OSag #20

Re: asterisk cdr mysql

Хе хе - що ве? Cut n Paste

Само си инсталира lame и sox (то би трябвало да ги има) и проверява пътищата до тях.

Несравнимо е като запълване на диска wav vs mp3 а качеството си е същото...

[линк] - За теб ли е?
Отговор