рдПрд╕рдЖрдИрдкреА рдкреНрд░рджрд╛рддрд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рддрд░реАрдХрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдХ рд╕рд┐рдк рдкреНрд░рджрд╛рддрд╛, рдпрд╛ рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдИрд╕реАрдПрдл рдкрдХреНрд╖ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдпрд╣ рдПрд╕рдЖрдИрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдкреВрдЫрддрд╛ рд╣реВрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдПрд╕рдЖрдИрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдЬрд┐рд╕реЗ рдЖрд░рдПрдлрд╕реА 3261 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рд╡рд┐рдХрд▓реНрдк рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЙрди рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рджреВрд░рд╕реНрде рдкрдХреНрд╖ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рджреВрд░рд╕реНрде рдкрдХреНрд╖ (рдХреЛрдИ рдирд┐рд╡реЗрд╢ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред RFC рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
 рд╡рд┐рдХрд▓реНрдк sip: carol@chicago.com SIP / 2.0
       Via: SIP / 2.0 / UDP pc33.atlanta.com; рд╢рд╛рдЦрд╛ = z9hG4bKhjhs8ass877
       рдореИрдХреНрд╕-рдлрд╝реЙрд░реНрд╡рд░реНрдб: 70
       рдХреЛ: <sip: carol@chicago.com>
       рдкреНрд░реЗрд╖рдХ: рдРрд▓рд┐рд╕ <sip: alice@atlanta.com>; рдЯреИрдЧ = 1928301774
       рдХреЙрд▓-рдЖрдИрдбреА: a84b4c76e66710
       CSeq: 63104 рд╡рд┐рдХрд▓реНрдк
       рд╕рдВрдкрд░реНрдХ: <sip: alice@pc33.atlanta.com>
       рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ: рдЖрд╡реЗрджрди / рдПрд╕рдбреАрдкреА
       рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ: 0
рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрддреНрддрд░ рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рд╣рдордиреЗ рдПрдХ INVITE рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ 200 (OK) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рджреВрд░рд╕реНрде рдкрдХреНрд╖ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЖрдЗрдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдЖрдИрдкреА рдкреИрдХреЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдФрд░ рдЗрд╕реЗ рджреВрд░рд╕реНрде рдкрдХреНрд╖ рдХреЛ рднреЗрдЬреЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓ рдореЗрдВ:
 #! / usr / рдмрд┐рди / рдкрд░реНрд▓
 рдЙрдкрдпреЛрдЧ IO :: рд╕реЙрдХреЗрдЯ;
 POSIX 'strftime' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;

 рдЙрдк SipPing {
         my ($ msg, $ рд░рд┐рдореЛрдЯрд╣реЙрд╕реНрдЯ, $ рдХреИрд▓рд┐рдб, $ рд╕реЙрдХреЗрдЯ, $ рджрд┐рдирд╛рдВрдХ, $ рд╢рд╛рдЦрд╛, $ рд▓реЛрдХрд▓рд┐рдк, $ рдбреЗрд╕реНрдЯ);
         $ рд░рд┐рдореЛрдЯрд╣реЛрд╕реНрдЯ = рд╢рд┐рдлреНрдЯ;
         $ рд▓реЛрдХрд┐рдк = рд╢рд┐рдлреНрдЯ;
         $ рд╕реЙрдХреЗрдЯ = IO :: рд╕реЙрдХреЗрдЯ :: INET-> рдирдпрд╛ (
                 PeerAddr => $ рд░рд┐рдореЛрдЯрд╣реЛрд╕реНрдЯ,
                 рдкреАрд░рдкреЛрд░реНрдЯ => 5060,
                 рд▓реЛрдХрд▓рдкреЛрд░реНрдЯ => 5060,
                 рд▓реЛрдХрд▓рдЕрдбреНрдбрд░ => $ рд╕реНрдерд╛рдиреАрдп
                 рдкреБрди: рдЙрдкрдпреЛрдЧ => 1, 
                 рдкреНрд░реЛрдЯреЛ => 'udp',
         );
         $ рдХреИрд▓рд┐рдбред = ('0' .. '9', "рдП .." рдПрдл ") [рдЗрдВрдЯ (рд░реИрдВрдб (16))] рдХреЗ рд▓рд┐рдП 1 .. 32;
         $ рддрд╛рд░реАрдЦ = рд╕реНрдЯреНрд░реИрдлрд╝рдЯрд╛рдЗрдо ('% a,% e% B% Y% I:% M:% S% Z', рд╕реНрдерд╛рдиреАрдп рд╕рдордп ());
         $ рд╢рд╛рдЦрд╛ = "z9hG4bk"ред  рд╕рдордп ();
         рдореЗрд░рд╛ $ рдкреИрдХреЗрдЯ = qq (
             рд╡рд┐рдХрд▓реНрдк рдПрд╕рдЖрдИрдкреА: $ рд░рд┐рдореЛрдЯрд╣реЛрд╕реНрдЯ рдПрд╕рдЖрдИрдкреА / 2.0
                Via: SIP / 2.0 / UDP $ localip: 5060; рд╢рд╛рдЦрд╛ = z9hG4bK39aaa111; рдкрд╛рд╕рдкреЛрд░реНрдЯ
                рдореИрдХреНрд╕-рдлрд╝реЙрд░реНрд╡рд░реНрдб: 70
                рдкреНрд░реЗрд╖рдХ: "UA" <sip: ua \ @ $ localip>; tag = as54192a85
                To: <sip: $ рд░рд┐рдореЛрдЯрд╣реЛрд╕реНрдЯ>
                рд╕рдВрдкрд░реНрдХ: <sip: asterisk \ @ $ localip: 5060>
                рдХреЙрд▓-рдЖрдИрдбреА: 7706430b46622c057aeaa5ec057a0b59 \ @ $ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг: 6060
                CSeq: 102 рд╡рд┐рдХрд▓реНрдк
                рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ: UA
                рджрд┐рдирд╛рдВрдХ: рдмреБрдз, реирез рджрд┐рд╕рдВрдмрд░ реирежрезрей режреж:режрез рдЬреАрдПрдордЯреА
                рдЕрдиреБрдорддрд┐ рджреЗрдВ: INVITE, ACK, CANCEL, рдСрдкреНрд╢рдиреНрд╕, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, рдкрдмреНрд▓рд┐рдХ
                рд╕рдорд░реНрдерд┐рдд: рдЬрдЧрд╣, рдЯрд╛рдЗрдорд░
                рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ: 0
          );
         $ рд╕реЙрдХреЗрдЯ $ рдкреИрдХреЗрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ;
         eval {
                 рд╕реНрдерд╛рдиреАрдп $ SIG {ALRM} = рдЙрдк {die};
                 рдЕрд▓рд╛рд░реНрдо 1;
                 рдореЗрд░реЗ $ sock_addr = recv ($ рд╕реЙрдХреЗрдЯ, $ рд╕рдВрджреЗрд╢, 190.0);
                 рдЕрд▓рд╛рд░реНрдо 0;
                 1;
         } рдпрд╛ "рдЕрд╕рдлрд▓" рдорд░ рдЧрдпрд╛;
         рдЕрдЧрд░ ($ рд╕рдВрджреЗрд╢) {
                 рдкреНрд░рд┐рдВрдЯ "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: $ msg \ n";
         } {
                 рдкреНрд░рд┐рдВрдЯ "рд╡рд┐рдлрд▓";
         }
         рдХрд░реАрдм ($ рд╕реЙрдХреЗрдЯ);
 }

 $ рд░рд┐рдореЛрдЯрд╣реЙрд╕реНрдЯ = '192.168.0.3';
 $ localIp = '192.168.0.2';
 & SipPing ($ RemoteHost, $ localIp);

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


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


All Articles