Skip to main content

Click to Call API for Asterisk/Freepbx

Click to Call API for Asterisk/Freepbx

 

 

Create call.php file in /var/www/html/

paste below mention code in call.php

and replace context and manager username password


<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
$strUser = "ccserver"; #specify the asterisk manager username you want to login with
$strSecret = "ccserver"; #specify the password for the above user


$strHost = "127.0.0.1";
//Clean up EXT
$ext = $_GET['exten'];
$ext = filter_var($ext, FILTER_SANITIZE_NUMBER_INT);
$ext = preg_replace("/[^0-9,.]/", "", $ext);

$strChannel = "SIP/".$ext;
$strContext = $_GET['cnt'];
$strWaitTime = "30"; #Wait Time before hangin up
$strPriority = "1";
$strMaxRetry = "2"; #maximum amount of retries

if(isset($_GET['number'])){
$number=strtolower($_GET['

number']);}
elseif(isset($_GET['phone'])){
$number=strtolower($_GET['
phone']);
}
//Clean up number
$number = filter_var($number, FILTER_SANITIZE_NUMBER_INT);
$number = preg_replace("/[^0-9,.]/", "", $number);


//The following line adds a 1 before the number if its not there already... You can remove this if you already added this into your outbound route or you dont need a 1.
//if(substr($number,0,1) != 1){$number = "1".$number;}
 
$pos=strpos ($number,"local");
if ($number == null) :
exit() ;
endif ;
if ($pos===false) :
$errno=0 ;
$errstr=0 ;

//OPEN CNAM LOOKUP
$callerid = $callerid = "$number";////////@file_get_
contents("https://api.opencnam.com/v2/phone/".$number) or $callerid = "Web Call";
$strCallerId = $callerid." <$ext>";

$oSocket = fsockopen ("localhost", 5038, $errno, $errstr, 20);
if (!$oSocket) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: off\r\n");
fputs($oSocket, "Username: $strUser\r\n");
fputs($oSocket, "Secret: $strSecret\r\n\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: $strChannel\r\n");
fputs($oSocket, "WaitTime: $strWaitTime\r\n");
fputs($oSocket, "CallerId: $strCallerId\r\n");
fputs($oSocket, "Exten: $number\r\n");
fputs($oSocket, "Context: $strContext\r\n");
fputs($oSocket, "Variable: DID=$ext\r\n");
fputs($oSocket, "Priority: $strPriority\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
sleep(2);
fclose($oSocket);
}
echo "Extension $strChannel should be calling $number." ;
else :
exit() ;
endif ;
?>
 
Call url :- http://<your_asterisk_ip_address>/call.php?exten=SIP/737&number=777777777
 
 
https://alex.mamchenkov.net/2017/07/18/asterisk-initiate-call-extension-php-script/

Comments

Popular posts from this blog

Vicidial Scratch installation Alma -9

Step 1 – Download the dependencies   hostnamectl set-hostname xxxxxx.xxxxx.xxx ### Use YOUR SubDomain vi /etc/hosts ##Change domain name for actual server ip (xxx.xxx.xxx.xxx   complete domain name    subdomain only) timedatectl set-timezone Asia/Kolkata yum check-update yum update -y yum -y install epel-release yum update -y yum install git -y yum install -y kernel* #Disable SELINUX sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config     reboot Step 2 – Run the Script cd /usr/src/ git clone https://github.com/manish23k/vicidial-install-scripts cd vicidial-install-scripts chmod +x alma-rocky9-ast16.sh ./alma-rocky9-ast16.sh Or the Asterisk 18 version: chmod +x alma-rocky9-ast18.sh ./alma-rocky9-ast18.sh

Vicidial Scratch installation Debian 11 with Asterisk 16, WebRTC and Dynamic Portal

  Vicidial Scratch installation Debian 11  Asterisk 16, WebRTC and Dynamic Portal apt update apt upgrade apt-get install git nano wget cd /usr/src/ git clone https://github.com/manish23k/Vici_Install_Scripts_Deb_11.git cd Vici_Install_Scripts_Deb_11/ chmod +x *.sh Run ./vici_install_deb_ast16.sh Install WebRTC ./vicidial-install-webrtc.sh Once Done with Configuration Secure Server with Vici Dynamic Portal Run ./vici_dynportal.sh

How to delete old call logs and other logs in vicidial or goautodial.

Step 1 : SSH to the server using the Putty Step 2:   login to mysql by typing   mysql -p                    (if you dont know password try below command )               mysql -ucron -p1234 Step 3 : select the asterisk database by typing               use asterisk step 4: Run the below command to check total disk occupied by asterisk database                SELECT table_schema AS "asterisk", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema; Step 5 : Run the below command to check disk space consumed by each table in asterisk database SELECT table_name AS "Table", ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)" FROM information_schema.TABLES WHERE table_schema = "asterisk" ORDER BY (data_length + inde...