Asterisk рдореЗрдВ рдХреЙрд▓рдмреИрдХ + рдбреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд╕рд╛рде рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рдХрд╛рд░реНрдп

рд╣реИрд▓реЛ, рдкреНрдпрд╛рд░реЗ рд╣реЗрдмреНрд░рд╡реЗрдЯреНрд╕ рдФрд░ рддрд╛рд░рд╛рдВрдХрди рдкреНрд░реЗрдорд┐рдпреЛрдВ!
рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдФрд░ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рддреЛ, рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:
- рд╕рдВрд╢реЛрдзрд┐рдд рд╡рд┐рддрд░рдг Elastix 2.3
- рддрд╛рд░рд╛рдВрдХрди 1.8.13.1
- FreePBX 2.8.1
- 24 рдирдВрдмрд░ рд╕рд┐рдк рдФрд░ 30 рдЪреИрдирд▓реЛрдВ рдХреЗ рдЬрд░рд┐рдП рдЬреБрдбрд╝рддреЗ рд╣реИрдВ
- рд╣реЛрд▓реНрдбрд┐рдВрдЧ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ 40 рд╡рд┐рднрд┐рдиреНрди рдПрд▓рдПрд▓рд╕реА
рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп:
- рдкреНрд░рддреНрдпреЗрдХ рдбреАрдЖрдИрдбреА тАЛтАЛрдирдВрдмрд░ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдВ (рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдПрд▓рдПрд▓рд╕реА рд╕реЗ)

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, "рдпрд╣ freePBX рд╣реИ - рд╕рдм рдХреБрдЫ рд╡рд╣рд╛рдВ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред" рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред

рдкрд╣рд▓рд╛ рдХрджрдоред рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреНрд░рддрд┐ рдЬрд╛рдЧрд░реВрдХрддрд╛ред


рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
PBX-> PBX рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди-> рдХреЙрд▓рдмреИрдХ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рднрд░реЗрдВред
рд╣рдо рдЖрдИрд╡реАрдЖрд░ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд╛рдВрдЫрд┐рдд рдореЗрдиреВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "9" рд╣рдорд╛рд░реЗ рдХреЙрд▓рдмреИрдХред
рдореИрдВ рдЬрд╛рдБрдЪрддрд╛ рд╣реВрдБ - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ 28-xx-yy рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ - рдХреЙрд▓ 28-xx-yy рд╕реЗ рд▓реМрдЯрд╛
рдЖрдИрд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП 28-xx-xx рдкрд░ рд╕рдорд╛рди рдерд╛ - рдХреЙрд▓ 28-xx-yy рд╕реЗ рд▓реМрдЯрд╛
рдЬрдм рдЖрдк рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рд╣рдордд рд╣реИрдВ, рдФрд░ рд╡реЗ рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдВрдпрдВрддреНрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд╛рдкрд╕ рдмреБрд▓рд╛рддреЗ рд╣реИрдВред рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рдХреБрдЫ рд╕рдВрдЧрдарди рд╣реИрдВред
рдпрд╣рд╛рдВ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реБрдЖ: рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ 28-xx-xx рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ - рдХреЙрд▓ 28-xx-xx рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдП

рдЪрд░рдг рджреЛ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ / FreePBX рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдвреВрдБрдврдирд╛


рдореИрдВ рдЕрднреА рдХрд╣реВрдВрдЧрд╛ред рд╢рд╛рдпрдж рдпрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдЪрд░рдг рддреАрди рд╕реАрдзреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ


рдХреЙрд▓рдмреИрдХ рдХрд╛ рд╕рдВрджрд░реНрдн рдПрдХреНрд╕рдЯреЗрдВрд╢рди_additional.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ
[callback] include => callback-custom exten => 1,1,Set(CALL=${CALLERID(number)}) exten => 1,n,Set(DESTINATION=ivr-5.s.1) exten => 1,n,Set(SLEEP=1) exten => 1,n,System(/var/lib/asterisk/bin/callback ${CALL} ${DESTINATION} ${SLEEP} &) exten => 1,n,Hangup 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд▓ php рд╕реНрдХреНрд░рд┐рдкреНрдЯ / var / lib / asterisk / bin / callback рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд▓ рд▓реЛрдХрд▓ рдЪреИрдирд▓ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рд░реВрдЯреНрд╕ (рдЖрдЙрдЯрд╕рд╛рдЗрдб рд░реВрдЯреНрд╕) рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ
рдФрд░ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдПрдХ рджрд┐рди рдмрд╛рдж, рдореБрдЭреЗ рдХреЙрд▓рдмреИрдХ рд╕реЗ рдбрд╛рдпрд▓ рдХрд░рддреЗ рд╕рдордп рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдбреАрдЖрдИрдбреА тАЛтАЛрдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рджреМрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЪреМрдерд╛ рдЪрд░рдгред рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдирд╛


рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рджреВрдВрдЧрд╛:


рддрдХрдиреАрдХреА рдкрдХреНрд╖ рдмрд╣реБрдд "рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓" рдирд┐рдХрд▓рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, FreePBX рдХрд┐рд╕реА рднреА рд╕рдордп рдПрдХреНрд╕рдЯреЗрдВрд╢рди_additional.conf рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реИред рд╡реЗрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рд╛ - рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди_override_freepbx.conf рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╣реА рд╣рд╡рд╛ рдореЗрдВ рдХрд╣реАрдВ рдЙрдбрд╝ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдмрд╣реБрдд рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рд╕рдВрджрд░реНрдн рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ [рдХреЙрд▓рдмреИрдХ]
рд╣рдореЗрдВ CID рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ DID рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреЙрд▓рдмреИрдХ-рдХрд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИ - рд╡реИрд╕реЗ рднреА, рдореБрдЦреНрдп рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдлрд┐рд░, рдореБрдЭреЗ рдПрдХ рдЙрдкрдпреЛрдЧреА рд▓реЗрдЦ рдпрд╛рдж рдЖрдпрд╛ред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди_custom.conf рдореЗрдВ [рдХреЙрд▓рдмреИрдХ] рдХреЙрдкреА рдХрд░рдХреЗ [рдХреЙрд▓рдмреИрдХ-рдПрдЬрд╝] рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреЙрд▓ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ FROM_DID рдЬреЛрдбрд╝реЗрдВ
 [callback-az] exten => 1,1,Set(CALL=${FROM_DID}${CALLERID(number)}) exten => 1,n,Set(DESTINATION=ivr-5.s.1) exten => 1,n,Set(SLEEP=1) exten => 1,n,Set(DESC='callb_CRT') exten => 1,n,System(/var/lib/asterisk/bin/callback ${CALL} ${DESTINATION} ${SLEEP} ${DESC} &) 

рдореБрдЭреЗ рдзреНрдпрд╛рди рд░рд╣реЗрдЧрд╛ рдХрд┐ рдлреЛрди рдкрд░ рдореЗрд░реЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рд░ рдХреЛ рдмрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - " рдХреЙрд▓рдмреИрдХ "
рдореИрдВ рдЖрдЧреЗ рджреМрдбрд╝реВрдВрдЧрд╛, рдЗрд╕рд╕реЗ рднрдЧрджрдбрд╝ рдордЪ рдЧрдИ - рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡реЗ рд╕рдВрдЧрдардиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрд▓ рдХрд╣рд╛рдВ рдЖрдпрд╛ рдерд╛ред рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЗрд╕рд▓рд┐рдП, рдКрдкрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореИрдВрдиреЗ DESC рдЪрд░, рдкрд╛рда рдЬреЛрдбрд╝рд╛, рдФрд░ рдЗрд╕реЗ рдХреЙрд▓рдмреИрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рднреЗрдЬ рджрд┐рдпрд╛ред рдЗрд╕рдиреЗ рд╕рднреА рдХреЛ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдпрд╛ред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ / var / lib / рддрд╛рд░рд╛рдВрдХрди / рдмрд┐рди / рдХреЙрд▓рдмреИрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рдЪреБрдХрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред
рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
 $callback_number = $args[0]; $callback_destination = $args[1]; $pause_seconds = $args[2]; 

рдиреАрдЪреЗ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
 $callback_desc = $args[3]; 

рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
 $callerid = "Callback" 

рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ
 $callerid = $callback_desc; 

рд╣реЛ рдЧрдпрд╛ред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╕рдВрджрд░реНрдн рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдкрд░реЛрдХреНрдд рдЙрдкрдпреЛрдЧреА рд▓реЗрдЦ рдФрд░ рдЪрд┐рддреНрд░ рдпрд╛рдж рд╣реИрдВред
Elastix рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реАрдзреЗ FreePBX рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВред рдпрд╣ рдпрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИ:
ip-add/admin
рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдирдХ рд╣реИрдВ, рд╡реЗ Google рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИрдВред

рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд░рддреЗ рд╣реИрдВ:

рдореИрдВ рд╕рдордЭрд╛ рджреВрдВрдЧрд╛ред рд▓рд╛рдЗрди рдХреЙрд▓рдмреИрдХ-рдПрдЬрд╝ рдореЗрдВ рдкрд╣рд▓рд╛ "1" , 1,1 рд╕рдВрджрд░реНрдн [рдХреЙрд▓рдмреИрдХ-рдПрдЬрд╝] рд╕реЗ рдХреЙрд▓рдмреИрдХ рдирдВрдмрд░ рд╣реИ - рд╣рдореЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрдИ рдХреЙрд▓рдмреИрдХ рдорд┐рд▓рддреЗ рд╣реИрдВ (рдкреНрд░рддреНрдпреЗрдХ рдбреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд▓рд┐рдП 1)ред рджреВрд╕рд░рд╛ "1" рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕рдВрдЦреНрдпрд╛ рд╣реИред

рдЦреИрд░, рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ - рд╣рдо рдЕрдкрдиреЗ рдбреАрдЖрдИрдбреА тАЛтАЛрдирдВрдмрд░ 9 рдХреЗ рдЖрдИрд╡реАрдЖрд░ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рд╣рдорд╛рд░рд╛ рдХрд╕реНрдЯрдо рдЧрдВрддрд╡реНрдп

рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдбреАрдЖрдИрдбреА тАЛтАЛрдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рд╣реИ

рдЕрдкрдиреЗ рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ! рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдЧреБрд░реБ рдирд╣реАрдВ рдорд╛рдирддрд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирддрд╛ рд╣реИред рдореБрдЭреЗ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдорд┐рд▓ рдЧрдпрд╛ рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

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


All Articles