Soporte & Consultoria

Soporte Remoto y Consultoria skype : ambiorixg12.
Nota no se brinda ningun tipo de consulta o soporte fuera del blog de forma gratuita

martes, 30 de diciembre de 2025

click to call

 <?php
//https://pbxncom/asterisk_api/click_to_call.php?key=A7f9K2bX4qP1Lz7a&src=100&dst=13052341212&cid=11302846&trunk=1

//error_reporting(E_ALL & ~E_USER_WARNING & ~E_USER_NOTICE);


//ini_set('display_errors', 1);

header('Content-Type: application/json');
$key="kA7f9Mze";

if($_GET['key']!="$key"){


echo json_encode(["Auth"=>401],JSON_PRETTY_PRINT);
exit();
}

print_r(json_encode($_REQUEST, JSON_PRETTY_PRINT));

$timeout=100;

$host="127.0.0.1";

$port=5038;



$src = preg_replace('/\D/', '', $_GET['src']); // remove non-digits
$dst = preg_replace('/\D/', '', $_GET['dst']); // remove non-digits

$trunkId = preg_replace('/\D/', '', $_GET['trunk']); // remove non-digits


$trunks=[1=>"Twilio",2=>"Telnyx",3=>"Didlogic"];

$trunk=$trunks[$trunkId]??$trunks[1];  // set  a default trunk if none is selected



$cid = preg_replace('/\s+/', '', $_GET['cid']);

$id = preg_replace('/\s+/', '', $_GET['id']);


$socket = fsockopen("$host","$port", $errno, $errstr, 10);

      if (!$socket){

      //If network connection fails; 
      print_r(json_encode([$errstr=>$errno],JSON_PRETTY_PRINT));

        }else{

            fputs($socket, "Action: Login\r\n");

            fputs($socket, "UserName: admin\r\n");

            fputs($socket, "Secret: L29481uKCU\r\n\r\n");



          $wrets=fgets($socket,128);

                
              fputs($socket, "Action: Originate\r\n" );

              fputs($socket, "Channel: Local/$src@click_to_call_api_src\r\n" );

              fputs($socket, "Exten: $dst\r\n" );

               fputs($socket, "Context: click_to_call_api_dst\r\n" );

               fputs($socket, "Priority: 1\r\n" );

               fputs($socket, "CallerID: $cid\r\n" );

                fputs($socket, "Variable: __src=$src\r\n" );

               fputs($socket, "Variable: __dst=$dst\r\n" );

               fputs($socket, "Variable: __cid=$cid\r\n" );

                fputs($socket, "Variable: __trunk=$trunk\r\n" );

             fputs($socket, "Async: yes\r\n\r\n" );   

        fputs($socket, "Action: Logoff\r\n\r\n");

           while (!feof($socket)){
  $result=fgets($socket);

                   print_r(json_encode(["API"=>"$wrets","MSG"=>$result],JSON_PRETTY_PRINT));




}



fclose($socket);

 }



?>


-------------

 [click_to_call_api_src]

exten=>_x.,1,Noop("DST : ${src}, DST : ${dst}, CID : ${CID} , TRUNK : ${trunk}");

same=>n,Set(CALLERID(num)=${dst})

same=>n,Dial(PJSIP/${src})

same=>n,hangup()


[click_to_call_api_dst]

exten=>_x.,1,Noop("DST : ${src}, DST : ${dst}, CID : ${CID} , TRUNK : ${trunk}");

same=>n,Set(CALLERID(num)=+${cid})


same => n,GotoIf($["${trunk}"="Telnyx"]?Telnyx)

same=>n,Dial(PJSIP/+${dst}@${trunk})

same=>n,hangup()


same => n(Telnyx),Set(dst=9817+${dst})  ;;add a prefix if trunk is Telnyx

same=>n,Dial(PJSIP/${dst}@${trunk})

same=>n,hangup()

-----------------

No hay comentarios:

Publicar un comentario