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

рд╣рдо рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
- src рд╕реНрд░реЛрдд рд╣реИ;
- dst рдЧрдВрддрд╡реНрдп рд╣реИ;
- рдмрд┐рд▓реНрд▓реЗрдХ - рдмрд┐рд▓ рдпреЛрдЧреНрдп рд╕реЗрдХрдВрдб (рдлреЛрди рдЙрдард╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗрдХрдВрдб);
- рдЪреИрдирд▓ - рдЪреИрдирд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛;
- dstchannel - рдЪреИрдирд▓ рджрд┐рд╢рд╛;
- calldate - рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп;
- рдЕрджреНрд╡рд┐рддреАрдп - рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛;
- рд╕реНрд╡рднрд╛рд╡ - рдХреЙрд▓ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ: ANSWERED, NO ANSWER, BUSY, FAILEDред
- userfield рдПрдХ рдлреНрд░реА рдлреАрд▓реНрдб рд╣реИред
рд╕реНрдЯреЗрдЬ 2: рдЕрдкрдиреА рдЦреБрдж рдХреА рдЯреЗрдмрд▓ рдмрдирд╛рдПрдВред
price_russia - рд░реВрд╕реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдХреАрдорддреЛрдВ рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ред
CREATE TABLE IF NOT EXISTS `price_russia ` ( `code` int(10) NOT NULL COMMENT ' ', `cost` varchar(10) NOT NULL COMMENT '', `region` varchar(100) NOT NULL COMMENT '', UNIQUE KEY `code` (`code`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
price_international - рджреЗрд╢ рдХреЛрдб рдФрд░ рдХреАрдорддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ред
CREATE TABLE IF NOT EXISTS ` price_international` ( `code` int(10) NOT NULL COMMENT ' ', `price` varchar(10) NOT NULL COMMENT '', `country` varchar(100) NOT NULL COMMENT '', UNIQUE KEY `code` (`code`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ - рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдмрд▓ред
CREATE TABLE IF NOT EXISTS `clients` ( `login` varchar(32) NOT NULL COMMENT '', `password` varchar(32) NOT NULL COMMENT '', `email` varchar(40) NOT NULL COMMENT 'Email', `rate` smallint(4) NOT NULL COMMENT '', UNIQUE KEY `login` (`login`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
* рджрд░ рдХреНрд╖реЗрддреНрд░ рдЖрдкрдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЫреВрдЯ рдпрд╛ рдорд╛рд░реНрдХ-рдЕрдк рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (90 рд▓рд┐рдЦреЗрдВ - 10 рдкреНрд░рддрд┐рд╢рдд рдЫреВрдЯ рджреЗрдВ, 110 рд╕реЗрдЯ рдХрд░реЗрдВ - 10 рдкреНрд░рддрд┐рд╢рдд рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)ред
client_ext - рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдореИрдкрд┐рдВрдЧред
CREATE TABLE IF NOT EXISTS `clients_ext` ( `login` varchar(32) NOT NULL, `ext` int(6) NOT NULL, UNIQUE KEY `ext` (`ext`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
рдХреЙрд▓ - рд╕рдВрд╕рд╛рдзрд┐рдд рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ред
CREATE TABLE IF NOT EXISTS `calls` ( `uniqueid` varchar(32) NOT NULL, `date` datetime NOT NULL, `login` varchar(32) NOT NULL, `rate` bigint(10) NOT NULL, `ext` bigint(10) NOT NULL, `dst` bigint(20) NOT NULL, `src` bigint(20) NOT NULL, `type` varchar(20) NOT NULL, `minutes` int(10) NOT NULL, `seconds` int(100) NOT NULL, `cost` int(10) NOT NULL, `description` varchar(100) NOT NULL, UNIQUE KEY `uniqueid` (`uniqueid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
* рдЯрд╛рдЗрдк - рдХреЙрд▓ рдЯрд╛рдЗрдк (рдЗрдирдХрдорд┐рдВрдЧ / рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ)ред
рд╕реНрдЯреЗрдЬ 3: рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧред
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрд▓рд╛рдИ рдЬрд╛рдПрдЧреА, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рдпрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдЪреНрдЪреА рд░реЗрдЦрд╛рдУрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рдкрд░ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
mysql_query("UPDATE cdr SET userfield=`step1` WHERE userfield=``;");
рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ:
1. рдЧреНрд░рд╛рд╣рдХ, рдЙрдирдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рд╕рдореВрд╣ рдФрд░ рдЧреБрдгрдХред
function get_clients(){
2. рд░реВрд╕ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреЛрдб, рд╡рд┐рд╡рд░рдг рдФрд░ рдХреАрдорддреЗрдВред
function get_price_russia(){
3. рджреЗрд╢ рдХреЛрдб, рд╡рд┐рд╡рд░рдг рдФрд░ рджреБрдирд┐рдпрд╛ рднрд░ рдХреА рдХреАрдорддреЗрдВред
function get_price_international(){
рддрджрдиреБрд╕рд╛рд░, рд╣рдо рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ:
$clients=get_clients(); $price['russia']=get_price_russia(); $price['international']=get_price_international();
рдЕрдм рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$query=mysql_query("SELECT * FROM cdr WHERE userfield=`step1`"); while($row=mysql_fetch_assoc($row)){
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
( , .)
рдХреЙрд▓ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
function get_call_type($dst,$src){ $dst=strlen($dst); $src=strlen($src); if($scr<7 && $dst<7)$type='internal';
рдЕрдм рд╣рдореЗрдВ рдЙрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХ рдЪреИрдирд▓ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕реАрдбреАрдЖрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдпреЗ рдПрдХ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП "рдЪреИрдирд▓" рдлрд╝реАрд▓реНрдб рдФрд░ рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП "dstchannel" рдлрд╝реАрд▓реНрдб рд╣реИрдВред
function get_ext_from_channel($channel){
* рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди ...
рдЕрдм рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╣реИред
$login=$clients[$ext]['login']
рдФрд░ рдЧреБрдгрдХ
$rate=$clients[$ext]['rate']
рд╕реЗрдХрдВрдб рд╕реЗ рдорд┐рдирдЯ рддрдХ рдЧреЛрд▓:
$minutes=ceil($row['billsec']/60);
рдпрджрд┐ рдХреЙрд▓ рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдЗрдирдХрдорд┐рдВрдЧ рд╣реИ, рддреЛ рдЖрдк рдореВрд▓реНрдп рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ рдХрд╣рд╛рдВ рдЧрдпрд╛ рдерд╛ред
if($type=='outcoming'){
рдХреЙрд▓ рдХреА рдХреАрдордд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯреЗрдмрд▓ рдкрд░ рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред
mysql_query("INSERT INTO calls(uniqueid, date, login, rate, ext, dst, src, type, minutes, seconds, cost, description) VALUES ('$row[uniqueid]', '$row[calldate]', '$login', '$rate', '$ext', '$dst', '$row[src]', '$type', '$minutes', '$row[billsec]', '$cost', '$description')");
рдФрд░ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ, рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ:
mysql_query("UPDATE cdr SET userfield=`done` WHERE userfield=`step1`");
рдКрдкрд░ рдорд╛рд╕реНрдХреЛ рдХреЗ рдкрд╛рд╕ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд╕рд░реЗ рд╢рд╣рд░ рдпрд╛ рджреЗрд╢ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рд▓рд┐рдВрдХ:
77.108.85.102/habr/import.php.txt ,
77.108.85.102/habr/functions.php.txt ,