Quantcast
Channel: IP-Phone-Forum
Viewing all articles
Browse latest Browse all 15636

[Gelöst] Click to Call mit PHP und Asterisk

$
0
0
Hallo liebes Forum,

ich habe hier länger gewühlt und leider keine Lösung für mein Problem gefunden, wie man mit PHP auf Apache unter Linux zwei Telefonate zusammenschaltet. Auch online hab ich nur wenig gefunden und mich mühsam im IRC und in der Doku durchgewühlt. Als ehrlicher Open Source Nutzer bin ich nun natürlich dazu verpflichtet mein errungenes Wissen und meinen geschriebenen Code Preis zu geben. Meinen kompletten Artikel (mein Asterisk läuft übrigens auf Raspberry Pi) findet Ihr auf meinem Blog: Click to Call mit PHP.

Der PHP Quellcode für Click to Call ist im Prinzip ein Einzeiler, wenn man das ganze Drumherum weg denkt.

PHP-Code:

/* JSON API for calling */
$passwd "Mein Passwort";
 
// default standard result
$result = array("status" => "no-request""num1" => """num2" => "");
 
if(
array_key_exists("num1",$_GET) == true
        
&& array_key_exists("num2",$_GET) == true
        
&& array_key_exists("key",$_GET) == true){
 
        
// secret key is a hash of the number and the passwd
        
$secretKey md5($_GET["num1"].$_GET["num2"].$passwd);
 
        if(
$_GET["key"]==$secretKey){
                
$num1 $_GET["num1"];
                
$num2 $_GET["num2"];
 
                
/* check if both numbers start with a +*/
                
if(substr($num1,0,1)=="+" && substr($num2,0,1)=="+"){
                        
$num1 substr($num1,1);
                        
$num2 substr($num2,1);
                        if(
is_numeric($num1)==true && is_numeric($num2)){
                                
shell_exec("sudo asterisk -rx "originate Local/000"
                                        .
$num1."@outgoing "."extension 000".$num2."@outgoing"");
 
                                
$result = array("status" => "call-initiated",
                                                
"num1" => $num1"num2" => $num2);
                        }else{
                                
$result["status"] = "number-invalid";
                        }
                }else{
                        
$result["status"] = "number-invalid";
                }
        }else{
                
$result["status"] = "auth-failure";
        }
}
 
// output the result
header("Content-type: application/json");
echo(
json_encode($result)); 

Dazu habe ich mir auch eine kleine jQuery Mobile Web-App geschrieben, die selbstverständlich auch unter Apache Lizenz veröffentlicht ist:
https://code.google.com/p/click-to-call-webapp/



Viele Grüße, Jan

Viewing all articles
Browse latest Browse all 15636


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>