рд░рд┐рдХреЙрд░реНрдб рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕


рд╕рд░реНрдЪ рдЗрдВрдЬрди рд╣реЗрдбрд░ рдореЗрдВ рдХреА рдЧрдИ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рджреЗрддрд╛ рд╣реИред
рдореБрдЭреЗ рд╣рдмреНрд░рд╛рд╣рдмреНрд░ рдкрд░ рдРрд╕рд╛ рдХреЛрдИ рд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!
рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рддрд╛рд░рд╛рдВрдХрд┐рдд рд╕реАрдбреАрдЖрд░ рджрд░реНрд╢рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реАред
рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рднрд╛рд╖рд╛ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдмрдбрд╝реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ "рдЖрд╡рд╛рдЬ" рд╕реЗ рдХрд┐рдпрд╛, рдпрд╣ рд╣реИ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рд╛, рд╕рд╛рде рд╣реА рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
рдлрд╝рд┐рд▓реНрдЯрд░ рдлрд╝реАрд▓реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, рд╕реЙрд░реНрдЯ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЖрд░рд╛рдо рд╕реЗ рд╣реИрдмреНрд░реИрдЯ рдХреЗ рдиреАрдЪреЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

UPDATE_2016
рдирдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддреИрдпрд╛рд░ред
рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡реАрдбрд┐рдпреЛ рдЧрд╛рдЗрдб:

рдпрд╣рд╛рдБ рдФрд░


рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рд▓реЛрдЧреЛ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рджрд╛рди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЬрдЧрд╣ рдореЗрдВ рд░рд╣реЗред
рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЛ рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / form.tpl.php рдореЗрдВ рдЕрд╕рд╣рдЬ рдХрд░реЗрдВ


рдФрд░ рдЗрд╕рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдХреЛ рдлрд╝реНрд▓реИрд╢ рдкреНрд▓реЗрдпрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдпрд╛ рд╕реБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдкрд╛рдХ рдХрд▓рд╛ MySQL

рд╣рдорд╛рд░реЗ Asterisk рдХреА CDRs рдХреЛ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред)
Cdr_mysql.conf рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ, [рдХреЙрд▓рдо] рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ
alias realdst => realdst alias filename => filename 

рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо CDR рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдлрд╝рд╛рдЗрд▓ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВ:
 mysql -uroot -p -e "alter table `cdr` add column `filename` varchar(120) after `userfield`;" asterisk 


dialplan

рдореИрдВ рддрд╛рд░рд╛рдВрдХрди рдбрд╛рдпрд▓рдкреИрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Extension.ael рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
extensions.ael
 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(); } 


рдЧреНрд▓реЛрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрде рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореИрдХреНрд░реЛ рдХреЙрд▓рд░ рдХреЗ рдирдВрдмрд░ рдФрд░ рдЙрд╕ рдирдВрдмрд░ рдХреЛ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреЙрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рд░рд┐рдХреЙрд░реНрдб рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА wav рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИ, рдПрдордкреА 3 рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо MySQL рдореЗрдВ CDR рдиреЗрдордкреНрд▓реЗрдЯ рдкрд░ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдпреВрдирд┐рдХрд┐рдб-рдбреЗрдЯ_рдЯрд╛рдЗрдо-рдлреНрд░реЙрдо-рдХреЙрд▓-рдЯреВ-рдХреЙрд▓ рд╣реИ:
 1392597899.17572-2014-02-17-07_44-83843ZZZ-32ZZ.mp3 

рд╡рд░реНрддрдорд╛рди рджрд┐рди рдХреЗ рд▓рд┐рдП рдПрдордкреА 3 рдлрд╝рд╛рдЗрд▓реЗрдВ / рд░рд┐рдХреЙрд░реНрдб / рдПрдордкреА 3 рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВ
рд╣рд░ рд░рд╛рдд, рдХреНрд░реЛрди рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕реА рддрд┐рдерд┐ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
 1 0 * * * /root/sh/mvrecords.sh 

 #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin y=`date +%Y -d "-1 day"` ym=`date +%Y-%m -d "-1 day"` ymd=`date +%Y-%m-%d -d "-1 day"` mkdir -p /records/$y/$ym/$ymd/ mv /records/mp3/*$ymd* /records/mp3/$y/$ym/$ymd/ 


рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╣рд╛рдВ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЖрдкрдХреЛ / рд░рд┐рдХреЙрд░реНрдбреНрд╕ / рдПрдордкреА 3 / рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
 /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 

рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯред




рдкреАрдПрдЪрдкреА

рд╢рд╛рдорд┐рд▓ / functions.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдлрд╝рд╛рдЗрд▓" рдмрдЯрди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реИ рдФрд░ "рдлрд╝рд╛рдЗрд▓" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдлрд╝реНрд▓реИрд╢ рдкреНрд▓реЗрдпрд░ рд╣реИред
рд╢рд╛рдорд┐рд▓ рд╣реИрдВ / functions.php рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛
  $recorded_file = $row['filename']; $mycalldate = substr("$calldate",0,10); $mycalldate_ym = substr("$calldate",0,7); $mydate = date("Ymd"); 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";} } } 


рдпрд╣ рдХреЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╡рд░реНрддрдорд╛рди рджрд┐рди рдХреЗ рд▓рд┐рдП, рд╣рдо / рд░рд┐рдХреЙрд░реНрдб / рдПрдордкреА 3 рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рдкрд┐рдЫрд▓реЗ рд░рд┐рдХреЙрд░реНрдбреНрд╕ / рдПрдордкреА 3 / YEAR-MONTH / YEAR-MONTH-DAY / рдХреЗ рд▓рд┐рдП
рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА, рддреЛ рд╣рдо "рдлрд╝рд╛рдЗрд▓" рдлрд╝реАрд▓реНрдб рдореЗрдВ "рдиреЛ рдПрдВрдЯреНрд░реА" рджреЗрдЦреЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, MySQL рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг include/config.inc.php рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ

рдкрд░реНрджрд╛

рд╡рд╣ рд╕рдм рд╣реИ!
рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдореЗрд░рд╛ рдХрд╛рдо рдЙрдкрдпреЛрдЧреА рд╣реИред

ps
1 рдФрд░ 2 рд▓рд┐рдВрдХ рдкрд░ рд╕реЙрд░реНрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ

рдпреБрдкреАрдбреА
рдпрджрд┐ рд╣реЗрдмрд░ рдкрд░ рдХреЛрдИ рдЦрд╛рддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдордВрдЪ рдкрд░ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ - sysadminz.ru/index.php?topic=6592.0
UPD 2
рдПрдХ рдЫреЛрдЯреА рд╕реА рдЧрдбрд╝рдмрдбрд╝ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛, рдЕрдЧрд░ рдХреБрдЫ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдХреНрд╖рдо рд╣реИ (рдпрд╛рдиреА, рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рднрд░рд╛ рдЧрдпрд╛ рд╣реИ), рддреЛ рдлреНрд▓реИрд╢ рдкреНрд▓реЗрдпрд░ рдЕрднреА рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реАрдбреАрдЖрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ:
 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 

UPD 3 (рдкреЛрд╕реНрдЯ рд╣реЗрдбрд░ рд╕реЗ)
рдХреЙрдорд░реЗрдб рд▓рд╛рдн (рдЙрд░реНрдл рдкреНрд░реЛрдЧ- рдЗрдЯ ) рдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
рдЫрд╡рд┐
рдЫрд╡рд┐
рдЫрд╡рд┐
рдЫрд╡рд┐

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рд╕рднреА рд░реВрд╕реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рдЕрдкрдбреЗрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди
рдЯреВрд▓рдЯрд┐рдкреНрд╕
CSV рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕рд╣реА рдирд┐рд░реНрдпрд╛рдд
рдХреЙрд▓ рдХреА рд▓рд╛рдЧрдд рдХреА рд╕рд╣реА рдЧрдгрдирд╛ (рдкреНрд▓рдЧрдЗрди)
рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреА рд▓рд╛рдЧрдд рджреЗрдЦреЗрдВ (рдкреНрд▓рдЧрдЗрди)
рд▓рд╛рдЧрдд рдХреА рд╕рд╣реА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдЪрд╛рд░реНрдЬ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЯреИрд░рд┐рдлред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдкрд╣рд▓реЗ рдорд┐рдирдЯ рдХреА рд▓рд╛рдЧрдд 1 рд░рдЧрдбрд╝ рд╣реИред рдлрд┐рд░ 10 рдХреЛрдкреЗрдХред (рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реБрд▓реНрдХ)
рдХреЙрд▓ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ
рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реБрдирдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдЖрдк рдлреЛрди рдирдВрдмрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдПрдХ рдХреЙрд▓ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдХреБрдЫ рднреА рдзреАрдорд╛ рди рд╣реЛ
рдпрджрд┐ рдХреЙрд▓ рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд░рд┐рдХреЙрд░реНрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЕрдЧрд░ рдЖрдкрдХреЛ рдлреИрдХреНрд╕ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рджреА рдЧрдИ рд╣реИрдВ
рднрдВрдбрд╛рд░рдг рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреА рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдФрд░ рдмрд╣реБрдд рдХреБрдЫ ...


рд▓рд┐рдВрдХ - prog-it.imtqy.com/Asterisk-CDR-Viewer-Mod

Source: https://habr.com/ru/post/In212815/


All Articles