рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкреЛрд░реНрдЯрд▓ рд╕реЗ рд╕рдВрдЧрдарди рдХреЗ рднреАрддрд░ рдХреЙрд▓


рдХрдИ рд╕рдВрдЧрдарди рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдФрд░ рддрдХрдиреАрдХреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдЗрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ, рдФрд░ рдЕрдХреНрд╕рд░ "рд▓рд┐рдВрдХ" рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдХреНрд╖рдг рдореЗрдВ, рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЗрди рд╕рднреА hitherto рдЕрдкрд░рд┐рдЪрд┐рдд рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдорд╛рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛:

рдПрдХ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
  1. рд╕рдВрдЧрдарди рдХреЗ рднреАрддрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдлреЛрди рдкреНрд░рдгрд╛рд▓реА
  2. рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдФрд░ рдЗрд╕рдХреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ
  3. рдлреЛрди рдирдВрдмрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА
  4. рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкреЛрд░реНрдЯрд▓ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЗрд╡рд▓ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВред рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдЗрдВрдЬрди рдкрд░ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)


рдореВрд▓ рд░реВрдк рд╕реЗ, рдЗрди рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреА рдпреЛрдЧреНрдпрддрд╛ рд╕реЗ рдкрд░реЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧреЛрдВ рдкрд░ рдЬрд╛рдПрдВред

рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
  1. рд▓реЙрдЧрд┐рди рдФрд░ рдХрд░реНрдордЪрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ MySQL рддрд╛рд▓рд┐рдХрд╛ред рдбреЗрдЯрд╛ AD рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдиреНрдпреВрдирддрдо рд╢реНрд░рдо рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдкреЛрд░реНрдЯрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд╛рдЧрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛, рд╣рдорд╛рд░реЗ - рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ, рдлреЛрди рдирдВрдмрд░ рди рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реИ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд░реНрдХрд╣реАрди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдкреЛрд░реНрдЯрд▓ рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдПрдХ рдЧреИрдЬреЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдирдВрдмрд░ рдХреЛ рддреБрд░рдВрдд рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдордиреНрд╡рдп рдХреЗрдВрджреНрд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХрд┐рд╕реА рднреА рд╢рд╛рд░реАрд░рд┐рдХ рдХрд╛рд░реНрдп рдХреЗрдВрджреНрд░ рд╕реЗ рдЕрдкрдиреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
    `рдлреЛрди` рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
    рдЖрдИрдбреАрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕рдВрдЦреНрдпрд╛
    238LutovVO50,512

  2. PHP рдлрд╝рд╛рдЗрд▓ рдЬреЛ CURL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ Asterisk рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреА рд╣реИ рдФрд░ рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИ
    call.php
    <? //       require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); $USER = new CUser; $userlogin = $USER->GetLogin(); //       $results = $DB->Query("SELECT `number` FROM `phones` WHERE `user`='".$userlogin."' LIMIT 1"); $userphone = $results->Fetch(); if (!empty($_POST['call'])) { //      $recipient = str_replace(' ', '', $_POST['recipient']); $recipient = str_replace('+', '', $recipient); $recipient = str_replace('-', '', $recipient); $recipient = str_replace('(', '', $recipient); $recipient = str_replace(')', '', $recipient); $answer = ''; // C   Asterisk $command = array(); $command[1] = 'action=login&username=PORTAL&secret=PASSWORD&events=off'; $command[2] = 'action=originate&channel=local/'.$userphone['number'].'@PORTAL&context=redirportal&exten='.$recipient.'&priority=1&CallerID=PORTAL'; $command[3] = 'action=logoff'; //      CURL $curl = curl_init(); foreach($command as $key => $data) { //    ,       $mansession = $_COOKIE['mansession_id']; $cookie = 'mansession_id="'.$mansession.'"'; //   - Asterisk curl_setopt($curl, CURLOPT_URL, 'http://127.0.0.1:8088/rawman'); //    curl_setopt($curl, CURLOPT_HEADER, 1); //    POST curl_setopt($curl, CURLOPT_POST, 1); //   cookie curl_setopt($curl, CURLOPT_COOKIE, $cookie); // CURL  ,      (    ) curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //   curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $res = curl_exec($curl); //   ,       if(!$res) { $error = curl_error($curl).'('.curl_errno($curl).')'; echo $error; } //    ,   else { //          preg_match('/mansession_id="(.*)";/', $res, $cut); $_COOKIE['mansession_id'] = $cut[1]; //     $tech_answer .= '<h2> '.$key.': '.$data.'</h2>'.'<p><b>:</b></p>'.nl2br($res).'<br/><hr><br/>'; $answer = '<p style="color:green;"> </p>'; } } curl_close($curl); die('ok'); } else { die('not_ok'); } ?> 


  3. рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдЖрдкрдХреЛ рдкреЗрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ AJAX рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХрд╛ 90% рдХреБрдЦреНрдпрд╛рдд XMLHTTPRequest рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдЗрд╕рдХреЗ рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдФрд░ рднреА рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
    script.js
     function createRequestObject() { if (typeof XMLHttpRequest === 'undefined') { XMLHttpRequest = function() { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} throw new Error("This browser does not support XMLHttpRequest."); }; } return new XMLHttpRequest(); } function ajax_submit(params, path) { var req; req = createRequestObject(); req.open('POST', path, true); req.timeout=5000; req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.onreadystatechange = function() { if (req.readyState == 4) { if(req.status == 200) { // alert(" : "+req.responseText); if (req.responseText=='ok') { // alert('!'); } else { // alert(' !'); } } else { // alert(' '); } } } req.send(params); } function call_to (number) { var params = 'call=1&recipient='+number; var path = '/services/telephony/call/'; ajax_submit(params, path) } 


  4. рдЖрд╡рд╢реНрдпрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдпрд╛ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓
     <span class="link" onclick="call_to('50512')"></span>  



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╡рд╣ рд╕рдм рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХрд░реНрдордЪрд╛рд░реА рдЬреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
  1. рдкреЛрд░реНрдЯрд▓ рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрд╕рдХрд╛ рдирдВрдмрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИ (рдЬреНрдпрд╛рджрд╛рддрд░ рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд░реНрдЬ рд╣реИ, рдХреЗрд╡рд▓ рдирдП рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП)
  2. рдЦреЛрдЬ, рдХрдВрдкрдиреА рд╕рдВрд░рдЪрдирд╛ рдпрд╛ рдЯреЗрд▓реАрдлреЛрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдХреНрд╖реНрдп рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
  3. рдирдВрдмрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрд╕рдХреЗ рдбреЗрд╕реНрдХ рдкрд░ рдЦрдбрд╝рд╛ рдлреЛрди рдмрдЬрдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдлреЛрди рдЙрдард╛рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рд▓рдХреНрд╖реНрдп рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред

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


All Articles