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

Install OpenVPN 2.4 and 2.6 on Alma / Rocky Linux

 To install OpenVPN on AlmaLinux 9.5, you can follow these steps: 1. Update the System : Before installing any software, it's a good idea to update your system: sudo dnf update -y 2. Install EPEL Repository : OpenVPN is available in the EPEL (Extra Packages for Enterprise Linux) repository. First, install the EPEL repository: sudo dnf install epel-release -y 3. Install OpenVPN : After enabling the EPEL repository, install OpenVPN: sudo dnf install openvpn -y 4. Install NetworkManager (Optional) : If you are using NetworkManager for managing network connections, you can install the OpenVPN plugin for NetworkManager: sudo dnf install NetworkManager-openvpn -y 5. Configure OpenVPN : Once installed, you need to configure OpenVPN by copying your .ovpn configuration file to the /etc/openvpn/ directory: sudo cp /path/to/your/config.ovpn /etc/openvpn/ 6. Start OpenVPN : You can start OpenVPN by specifying the configuration file directly: sudo openvpn --config /etc...

Vicidial Scratch installation Alma -9/10

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* sudo dnf install kernel-devel-$(uname -r) -y # Install english language pack dnf install -y glibc-langpack-en # Configure new locale. This basically just edits /etc/locale.conf localectl set-locale en_US.UTF-8 #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 ####For PHP 7.4 use this script. chmod +x alma-rocky9-ast16.sh ./alma-rocky9-ast16.sh Or the Asterisk 18 version: chmod +x alma-rocky9-ast18.sh ./alma-rock...

How to Format and Mount a New 1TB HDD

🖥 How to Format and Mount a New 1TB HDD to /var/www/recordings on Linux If you’ve added a new HDD to your Linux server and want to use it as a dedicated storage location — for example, to store Asterisk or web server recordings — you’ll need to partition, format, mount, and configure it to auto-mount at boot . In this guide, we’ll walk through the process of wiping the drive (careful — data will be lost!), creating a single ext4 partition , and mounting it permanently. Step 1: Identify Your New Disk Run: lsblk Example output: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8 : 0 0 931.5 G 0 disk ├─sda1 8 : 1 0 50 M 0 part ├─sda2 8 : 2 0 540.8 G 0 part └─sda3 8 : 3 0 390.6 G 0 part In our case, /dev/sda is the new 1TB disk. ⚠ Warning: Double-check you’ve picked the right disk! Formatting the wrong one will destroy data. Step 2: Unmount Any Mounted Partitions sudo umount /dev/sda* 2>/dev/null Step 3: Wipe Old Partitions and Create One ...