рдЧрд░реНрдореА, рдЫреБрдЯреНрдЯреА, рддрд╛рд░рд╛рдВрдХрди рдпрд╛ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд╡реАрдУрдЖрдИрдкреА рдСрдкрд░реЗрдЯрд░

рдЧрд░реНрдореА, рдЫреБрдЯреНрдЯреА, рддрд╛рд░рд╛рдВрдХрди


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

  1. рд╕реНрдерд╛рдиреАрдп рджрд░реЛрдВ рдкрд░ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╣реАрдВ рд╕реЗ рднреА рдХреЙрд▓
  2. рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  3. рдпрджрд┐ рдореИрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реВрдВ рддреЛ рдзреНрд╡рдирд┐ рд╕рдВрджреЗрд╢
  4. рдзреНрд╡рдирд┐ рдореЗрд▓
  5. рдПрд╕рдПрдордПрд╕ рд░рд┐рд╕реЗрдкреНрд╢рди рдФрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди
  6. рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд╛


рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЪрдпрди



рдмрдЬрдЯ рд╡реАрдУрдЖрдИрдкреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рддрд╛рд░рд╛рдВрдХрди рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдХрднреА-рдХрднреА рдХрд╛рдо рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╕рд╕реНрддрд╛, рд╣рдВрд╕рдореБрдЦ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпред

рдПрдХ рдЬреАрдПрд╕рдПрдо рдЧреЗрдЯрд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреЛрдЗрдк 12 рд╣рдЬрд╛рд░ рд░реВрдмрд▓ рд╣реИред рдФрд░ рдЕрдзрд┐рдХред рдЗрд╕рд▓рд┐рдП, рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдерд╛, рд╡рд╣ рдерд╛ chan_dongle рдФрд░ рдПрдХ рдЬреЛрдбрд╝реА huawiред

рдПрд╕рдПрдордПрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рднреЗрдЬрдирд╛ рдпрд╛ рддреЛ рдЬреИрдмрд░ рдпрд╛ рдИрдореЗрд▓ рд╣реИред

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

рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдореИрдВрдиреЗ рдкреЗрдВрдЯреНрд░реА рдХреЗ рд╕реБрджреВрд░ рдХреЛрдиреЗ рдореЗрдВ рдЭрд╛рдВрдХрд╛ рдФрд░ рдПрдХ рдкреБрд░рд╛рдирд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдирд┐рдХрд╛рд▓рд╛ред рдЙрдмрдВрдЯреВ рд╕рд┐рд╕реНрдЯрдо рдХрдм рд╕реЗ рдореЗрд░реЗ рдЬреИрд╕реЗ рдбреЗрдмрд┐рдпрди рдХрд░реАрдмред рдореИрдВ рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдЙрдмрдВрдЯреБ рдХреЛ рдЬрд╛рджреВ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж рд╣реА рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдЬреЗрдбреА рд░рд╛рд╕реНрддрд╛ рд╣рдм рдкрд░ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдорд╛рди рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рд╣рдо рддрд╛рд░ рдХреЛ 11 рд╣реИрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдбрд╛рд▓ рджреЗрдВрдЧреЗ рдФрд░ рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдг рдЫрд┐рдкрд╛рдПрдВрдЧреЗред рд╣рдо OpenVPN рдХреЛ рдирд╢реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред 11 рддрд╛рд░рд╛рдВрдХрди рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирдП xmpp рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред

OpenVPN

рдЪреВрдВрдХрд┐ рдУрдкрдирд╡реАрдкреАрдПрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗрдЯ рдХреЗ рдкреАрдЫреЗ рдХрд╛рдо рдкрд░ рд╣реЛрдЧрд╛, рд╣рдо рдПрдХ рдмрд╛рд╣рд░реА рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд░реНрдордиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд░реНрд╡рдирд╛рд╢ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдЬреЛ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕реЗрд▓реЗрд▓ (рдХрднреА рдХреЛрдИ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ) рдкрд╕рдВрдж рдЖрдпрд╛, рд╕рдм рдХреБрдЫ рд╕рд╣рдЬ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рдбрд╝рдХ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд▓рд╛рдЧрдд рдХрд╛рдлреА рдорд╛рдирд╡реАрдп рд╣реИрдВ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рди рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЪрд┐рдкрдХреЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдкрд░ рдУрдкрдирд╡реАрдкреАрдПрди рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдмрд┐рдпрдиред

рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП
рд╣рдордиреЗ рдУрдкрдирд╡реАрдкреАрдПрди рдбрд╛рд▓рд╛
sudo su aptitude update aptitude upgrade aptitude install openvpn 


рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕реЗрдЯ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ:
 mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ 


рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдВрдкрд╛рджрди
 nano /etc/openvpn/easy-rsa/vars 

рдореИрдВ рдирд┐рдпрдо:
 export KEY_COUNTRY="RU" export KEY_PROVINCE="REGION" export KEY_CITY="GLUBINKA" export KEY_ORG="KROILOVO CORP" export KEY_EMAIL=тАЭKC@example.ruтАЭ 


рддрдм рд╣рдо рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 cd /etc/openvpn/easy-rsa/ source vars ./clean-all ./build-dh ./pkitool --initca ./pkitool --server server cd keys openvpn --genkey --secret ta.key cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/ 


рдЕрдм рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЬреЗрдирд░реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
 cd /etc/openvpn/easy-rsa/ source vars ./build-key client_name , clien_name   


рдХреНрд▓рд╛рдЗрдВрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
 /etc/openvpn/ca.crt /etc/openvpn/easy-rsa/keys/clien_name.crt /etc/openvpn/easy-rsa/keys/ clien_name.key /etc/openvpn/ta.key 


рдореЗрд░рд╛ рд╕рд░реНрд╡рд░
 port 1110 proto tcp dev tun ca ca.crt cert server.crt key server.key dh dh1024.pem server 192.168.100.0 255.255.255.0 ifconfig-pool-persist ipp.txt client-to-client #     tls-auth ta.key 0 keepalive 10 120 comp-lzo max-clients 10 persist-key persist-tun status openvpn-status.log verb 3 


рд▓рд┐рдирдХреНрд╕ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП
рд╣рдордиреЗ рдУрдкрдирд╡реАрдкреАрдПрди рдбрд╛рд▓рд╛
 sudo su aptitude update aptitude upgrade aptitude install openvpn 

in / etc / openvpn рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
 ca.crt clien_name.crt lien_name.key ta.key client_name.conf 

рдореЗрд░реЗ рдореБрд╡рдХреНрдХрд┐рд▓_рдирд╛рдо.рдХреЙрдиреНрдлрд╝
 Client dev tun proto tcp remote serverIP 1110 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client_name.crt key client_name.key tls-auth ta.key 1 comp-lzo verb 3 


Android рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП
Google Play рд╕реЗ Android рдХреЗ рд▓рд┐рдП OpenVPN рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд╕рд░реНрд╡рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рд╣рдо рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред


рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рд╡реАрдкреАрдПрди рдореЗрдВ рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдорд┐рд▓рддреЗ рд╣реИрдВред
рдореБрдЭреЗ 5 рдбрд┐рд╡рд╛рдЗрд╕ рдорд┐рд▓реЗ:
  1. OpenVPN рд╕рд░реНрд╡рд░
  2. рддрд╛рд░рд╛рдВрдХрди
  3. рдиреЛрдЯрдмреБрдХ
  4. рдлреЛрди рдирдВрдмрд░
  5. рд╕рд╛рдереА рдлреЛрди


рддрд╛рд░рд╛рдВрдХрди

рд╣рдо asterisk.org рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдбреНрд╕ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕ рдХреНрд╖рдг рдЬрдм рдореИрдВрдиреЗ asterisk.org рдХреЛ рд░рдЦрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ 11.2.1 рд╕реЗрдЯ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкрдбрд╝рд╛ рдерд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ 11.4.0 рдЙрдкрд▓рдмреНрдз рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЪреИрдВрдЬ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИред
рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 sudo su mkdir /usr/src/asterisk cd /usr/src/asterisk wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz aptitude update aptitude upgrade 

рд╣рдордиреЗ рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЛ рд░рдЦрд╛
 aptitude install build-essential linux-headers-`uname -r` g++ libmysqlclient-dev libxml2-dev libncurses5-dev libsqlite3-dev libssl-dev libsrtp0-dev unixodbc-dev 

рдЪреВрдБрдХрд┐ рдЖрдк рдореЗрдВ jabber рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ iksemel рдФрд░ opensl рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдХреЗ рдмрд┐рдирд╛, xmpp рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛
 aptitude install libssl-dev libssl1.0.0 libiksemel-dev libiksemel3 

рд╕реЗрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
 tar xvf asterisk-11-current.tar.gz cd asterisk-11-current ./configure make menuselect 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ xmpp рдФрд░ рдмрд╛рдХреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
 make make install 

рдХрд░рдирд╛
 make samples 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдХрд░рдирд╛
 make config 

рддрд╛рдХрд┐ рддрд╛рд░рд╛рдВрдХрди рджрд╛рдирд╡ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПред


рдЪрд╛рди рдбреЛрдВрдЧрд▓

рдЕрдЧрд▓рд╛ рд╣рдореЗрдВ chan_dongle рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЕрджреНрднреБрдд рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЬрд┐рд╕реЗ рдХреЙрдорд░реЗрдб рдмреАрдЬреА 2 рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЫрдд рдХреЗ рдлреЗрд▓реНрдЯ рдЧрд╛рдпрдм рд╣реЛ рдЧрдП, рдЫрдд рдХреЗ рдлреЗрд▓реНрдЯреНрд╕, рджреБрд░реНрдЧрдо рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реБрдЖ (рдЬреЛ рдХрд┐ рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ) рдФрд░ 11 рддрд╛рд░рд╛рдВрдХрди рдХреЗ рддрд╣рдд рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдХрдЯреНрдард╛ рд╣реЛрдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЧрд┐рддреВрдм рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛ред
рдЪрд╛рди_рдЧрдВрдЧрд▓реЗ рд╕реЗрдЯ рдХрд░рдирд╛
 aptitude install git cd /usr/src/asterisk wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip unzip asterisk11.zip 

рдЦреИрд░, рдлрд┐рд░ рдореИрдиреБрдЕрд▓ рдкрд░
 aclocal autoconf automake тАУa ./configure Make Make install 



рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡рд┐рдХрд┐ рдХреЗ рд╡рд┐рдХреА рдХреЛ рдкрдврд╝реЗрдВред 1550.mobi рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рд╕рдорд░реНрдерд┐рдд рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдореЛрдбреЗрдо рдЦреЛрдЬреЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ E1550 рдФрд░ E173 рдирд┐рдХрд▓рд╛ред рд╕реНрд╡рдпрдВ рдореЙрдбреЗрдо рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, usbmodeswitch рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдпрд╛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рддрд╣рдд, рд╣рдо рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрд╡рд▓ рдореЙрдбреЗрдо рдореЗрдВ рдореЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ E1550 рдкрд░ рдЕрднреА рднреА рдЖрд╡рд╛рдЬ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдореИрдВрдиреЗ рдбреЛрдВрдЧрд▓.рдХреЙрдиреНрдлрд╝ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рд╕рд┐рдо рдХрд╛рд░реНрдбреЛрдВ рдХреЗ рдЖрдИрдПрдордПрд╕рдЖрдИ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдореЙрдбреНрдпреВрд▓ рдмрд╣реБрдд рд╣реА рд╕рд┐рдо рдХрд╛рд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛, рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднред
рдбреЛрдВрдЧрд▓ .conf рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ
 context=dongle-incoming [mts] imsi=25001xxxxxxxxxx; exten=911 [megafon] imsi=25002xxxxxxxxxx; exten=921 


рдЕрдм CLI рддрд╛рд░рд╛рдВрдХрди рдореЗрдВ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдореЙрдбреЗрдо рдЭреБрдХрд╛ рд╣реБрдЖ рд╣реИ
 dongle reload now dongle show devices 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рд╕рднреА рд╕рд╛рдорд╛рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддрд╛рд░рд╛рдВрдХрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

Sip.conf рдореЗрдВ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ
sip.conf
 [general] language = ru; tcpenable = yes ; transport = tcp,udp; [LOCAL-USERS](!) type = friend ; host = dynamic ; context = from-office ; disallow = all ; allow = ulaw ; allow = alaw ; allow = gsm ; monitor = yes ; callcounter = yes ; callwaiting = no ; rtptimeout = 10; rtpholdtimeout = 20; dtmfmode = rfc2833 ; [10](LOCAL-USERS) ; username = 10 ; secret = passfor10 ; [11](LOCAL-USERS) ; username = 11 ; secret = passfor11 ; [12](LOCAL-USERS); username = 12 ; secret = passfor12; [13](LOCAL-USERS); username = 13 ; secret = passfor13; [14](LOCAL-USERS); username = 14 ; secret = passfor14; 


Queues.conf рдореЗрдВ рдПрдХ рдХрддрд╛рд░ рдмрдирд╛рдПрдБ
queues.conf
 [general] persistentmembers = yes ; autofill = yes ; monitor-type = MixMonitor [WORKGROUP] strategy = ringall; ringinuse = yes ; timeout = 20 ; retry = 1 ; maxlen = 0 ; member => SIP/10 member => SIP/11 member => SIP/12 member => SIP/13 member => SIP/14 


рдЪреВрдВрдХрд┐ рдореИрдВ рдПрдИрдПрд▓ рдХреЛ рдзрд╛рд░рдгрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдорд╛рдирддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдиреЗ рдЗрд╕ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ред
Extensions.ael
 Globals { __TRANSFER_CONTEXT=transfer; //     }; context transfer{ _1X => Dial(SIP/${EXTEN},60,t); //  } context from-office { includes { ; //      mobile-numbers; city-numbers; local-users; }; }; context mobile-numbers { ;//  _89XXXXXXXXX => Dial(Dongle/s:25002/${EXTEN},,T); //  ,      :) }; context city-numbers { ; // _XXXXXX => Dial(Dongle/s:25002/${EXTEN},,T); }; context dongle-incoming { ;//  c chan_dongle 921 => Queue(WORKGROUP,t,,,60); //       workgroup 911 =>{ ;//     Answer; Dial(SIP/10,60,tT); //   Dial(SIP/11,60,tT); //   Playback(/tmp/ya_v_otpuske); //     Jabbersend(asterisk@jabber_example.ru,grasp@jabber_example.ru,    {CALLERID(num)}); //   jabber   Hangup; }; sms => { Jabbersend(asterisk@jabber_example.ru,grasp@jabber_example.ru,${CALLERID(num)} ${SMS}); // jabber    Hangup(); }; ussd => { Jabbersend(asterisk@ jabber_example.ru,grasp@jabber_example.ru,${USSD}); // // jabber   ussd Hangup(); }; }; context local-users { _500 => { ; //     Wait(2); Record(/tmp/ast:wav); Wait(2); Playback(/tmp/ast); Wait(2); Hangup; }; _600 => { ; //  ,    jabber System(/usr/sbin/asterisk -x 'dongle ussd mts *100#'); System(/usr/sbin/asterisk -x 'dongle ussd megafon *100#'); }; _1X => { Dial(SIP/${EXTEN},60,tT); //    }; }; 


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

Android рдкрд░, рдореИрдВрдиреЗ 2x 3x рдЧреНрд░рд╛рд╣рдХ рдФрд░ CSipSimple рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдПред рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдУрдкрдирд╡реАрдкреАрдПрди рдореЗрдВ рдореИрдВрдиреЗ "рд╡реАрдкреАрдПрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд" рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ 3 рдЬреА рдФрд░ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдВрдЪ рдХреА, рдпрд╣ рд╣рдХрд▓рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред

рдЬреИрдмрд░ рдХреЗ рд▓рд┐рдП рдУрдкрдирдлрд╛рдпрд░ рдЙрдард╛рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдк рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Xmpp.conf рдореЗрдВ рдореИрдВрдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдПрдХ рдЖрдзрд╛ рдХрд┐рдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖред OpenFire рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдкреНрд▓рдЧ-рдЗрди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИред рдпрд╣ рдЬреИрдмрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдХреЛ рдХрд╕рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЕрдВрдд рдореЗрдВ рдпрд╣ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЖрдкрдХреЛ рдзреНрд╡рдирд┐ рдореЗрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ рдпрд╛ рддреЛ рдореИрдВ рдЫреБрдЯреНрдЯреА рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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

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

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


All Articles