рдЗрд╕
рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж
, рдореБрдЭреЗ рднрдп рдХреЗ рд╕рд╛рде рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЗ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдереЗред рдФрд░ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рджрд┐рди рдореЗрдВ 10-20 рд╣рдЬрд╛рд░ рд░реВрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рдд рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдШреБрдЯрдиреЗ рдкрд░ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреЗрдВрдХреА - рд╢рд╛рдпрдж рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ ...
рд╕рд┐рд╕реНрдЯрдо рдХреА рддреИрдпрд╛рд░реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ php рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sqlite3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ php-cli рдФрд░ php5-sqlite3 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ ubunt рдкрд░ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
sudo apt-get install php5-cli php5-sqlite
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реАредрдХрд╛рдо рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдпрд╣ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛ рдлреЛрди рдирдВрдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ рдкрд╣рд▓реЗ рд╣реА рдХреЙрд▓ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдореЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ (рд╡реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ рд╣реИрдВ)ред рдпрджрд┐ рд╕реАрдорд╛ рдкрд╛рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ - рд╢рдмреНрдж 'рд╕реНрдЯреЙрдк' рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд░рд┐рдЯрд░реНрди 'рдЬрд╛рд░реА' рд░рд╣рддрд╛ рд╣реИ
<?php $rules = array( 60 => 2,
рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рдирдкрд╣рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рдЙрддреНрддрд░ () рдХрдорд╛рдВрдб рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ "рд░рд┐рдореВрд╡реНрд╕" рд▓рд╛рдЗрди рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред
exten => 8800XXXXXXX,1,Set(resp=${SHELL(php /home/scripts/antiddos.php ${CALLERID(num)})}); exten => 8800XXXXXXX,2,Gosubif($[${resp}==stop]?${EXTEN},${MATH(${PRIORITY}+1),int}:${EXTEN},${MATH(${PRIORITY}+2),int}); exten => 8800XXXXXXX,3,HangUp(); exten => 8800XXXXXXX,4,Answer(); ...
рдЪрд▓реЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд╛рдпрд▓рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:1) рд╕реЗрдЯ (рд╕рдореНрдорд╛рди = $ {SHELL (php /home/scripts/antiddos.php $ {CALLERID (num)})));
рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реИрд▓реНрдпреВ рдХреЛ рд╕рд╛рдВрддреНрд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдореБрджреНрд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реИрдВ
2) рдЧреЛрд╕реБрдмреАрдл ($ [$ {resp} == stop]? $ {EXTEN}, $ {MATH ($ {PRIORITY} +1), int}: $ {EXTEN}, $ {MATH ($ PRIORITY} +2) ), рдЗрдВрдЯ});
рдпрджрд┐ рдорд╛рди 'рд╕реНрдЯреЙрдк' рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдбрд╛рдпрд▓рдкреИрди рдХреЗ рдЕрдЧрд▓реЗ рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдЬрд╛рдПрдВ, рдЬрд╣рд╛рдВ HangUp () рдЯреАрдо рд╣рдорд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреА рд╣реИ
рдЕрдиреНрдпрдерд╛, рд╣рдо рд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
рдЖрдЦрд┐рд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИредрдпрджрд┐ рд╕реАрдорд╛ рдкрд╛рд░ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд╕рдЖрдИрдкреА рд╕рддреНрд░ рдорд┐рд▓реЗрдЧрд╛:
sip provider me invite => <= trying <= OK ack =>
рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЪрд╛рд░реНрдЬрд┐рдВрдЧ рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИ
рдпрджрд┐ рд╣рдо
рд╣реИрдВрдбрдЕрдк () рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдПрд╕рдЖрдИрдкреА рд╕рддреНрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
sip provider me invite => <= trying <= DECLINE ack =>
рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЙрд▓ рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЗрдирдХрдорд┐рдВрдЧ рдХреЙрд▓ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ред рдмрд┐рд▓рд┐рдВрдЧ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рд╣реБрдИ рдФрд░ рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред
рдпреБрдкреАрдбреА:
рдЕрдирд╛рдо рдирдВрдмрд░реЛрдВ рд╕реЗ рд╣рдорд▓рд╛ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдВрдЯреА-рдПрдУрдПрди рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд┐рдП рдЧрдП рдирдВрдмрд░реЛрдВ рдкрд░ рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...