Asterisk рдореЗрдВ рдЬреАрдПрд╕рдПрдо рдХреЛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛ

рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!

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

рджрд┐рдпрд╛ рдЧрдпрд╛: FreeBSD 9, Asterisk 11.4, 2x Addpac GS1002 (рд╕рднреА 4 рд╕рд┐рдо рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╕рд┐рдо рдХрд╛рд░реНрдб рдкрд░ 4 рдЯреНрд░рдВрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛: рдХреНрд░рдорд╢рдГ 9001, 9002, 9003, 9004ред рдЙрдирдХреЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдорд╛рд╣ 300 рдорд┐рдирдЯ рдХреЗ "рдЕрд╕реАрдорд┐рдд" рдХреЗ рд╕рд╛рде рдПрдХ рдзрд╛рд░реАрджрд╛рд░ рдЯреИрд░рд┐рдл рд╣реИред
рдХрд╛рд░реНрдп: рдпрджрд┐ рдХрд┐рд╕реА рд╕рд┐рдо рдХрд╛рд░реНрдб рдкрд░ рдХреЛрдИ рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рднреЗрдЬреЗрдВ (рдпрд╣ рдЯреИрд░рд┐рдл рдХреЗ рд╕рд╛рде рдЬреАрдПрд╕рдПрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╕реНрддрд╛ рд╣реИ)

1. mysql рдореЗрдВ cdr рдмрдЪрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдореБрдЭреЗ рдореИрдиреБрдЕрд▓ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдЖрдкрдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ cdr_mysql.so рдореЙрдбреНрдпреВрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

2. рд╕рдВрджрд░реНрдн рдХреЛ рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ редconf (рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП app_mysql.so рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рд╕рд┐рдВрдкрд▓ рдореИрд╕рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕)!

рдореИрдХреНрд░реЛ рдореЗрдВ рд╣реА рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИред

[macro-gsm] exten => s,1(start),Set(ARG2=$[${ARG2} + 1]) ;,    same => n,GotoIf($[${ARG2}>=9005]?sip:repeat) ;  4 ,  9005 -    same => n(repeat),MYSQL(Connect connid localhost asterisk password asterisk) ;    same => n,MYSQL(Query resultid ${connid} SELECT SUM(`billsec`) FROM `cdr` WHERE `dstchannel` LIKE '%${ARG2}%' AND `calldate` BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') AND LAST_DAY(NOW()) + INTERVAL 1 DAY) ;  .  -           same => n,MYSQL(Fetch fetchid ${resultid} duration) ;    duration same => n,MYSQL(Clear ${resultid}) ;     same => n,MYSQL(Disconnect ${connid}) same => n,GotoIf($[${duration}<=18000]?call:start) ;      300 ,    ,  -   ,         same => n(call),Set(limit=$[18000 - ${duration}]) ;    ,      same => n,Dial(SIP/${ARG2}/${ARG1},,S(${limit})tTr) ; same => n,GotoIf($[${DIALSTATUS}=ANSWER]?finish:start) ;  -  ,   -   same => n(sip),Dial(SIP/ctm/${ARG1},,Ttr) ;   same => n(finish),Hangup ;  exten => h,1,MYSQL(Clear ${resultid}) ;      ,  . same => n,MYSQL(Disconnect ${connid}) 

рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдХреЙрд▓ рдЙрджрд╛рд╣рд░рдг: exten => _79XXXXXXXXX, 1, рдореИрдХреНрд░реЛ (рдЬреАрдПрд╕рдПрдо, $ {EXTEN}, 9000)
9000: рдЯреНрд░рдВрдХ рд╕рдВрдЦреНрдпрд╛ - 1

рдореИрдХреНрд░реЛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдиреБрдХрд╕рд╛рди рдПрдХ рдЕрдкрдирд╛рдиреЗ рдпреЛрдЧреНрдп рдХреНрд╡реЗрд░реА рд╣реИ, рдЯреНрд░рдВрдХ рдирд╛рдо рдХреЗрд╡рд▓ рдбрд┐рдЬрд┐рдЯрд▓ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВред рдкреНрд▓рд╕ - рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд╣реИ)

рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд▓рд┐рдП pfactum , PyroRed рдФрд░ Malamut рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

UPD: рдореИрдХреНрд░реЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╡реНрд╣рд╛рдЗрдЯрдб рдФрд░ рд░реИрдЧрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

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


All Articles