2017-01-27 2 views
-1

Ich bin neu zu schreiben, um Freepbx und SternchenWie Sternchen Anwendung

Ich muss wissen, wie man eine Anwendung zu schreiben, die jeden abgehenden Anruf überprüfen, ob die Erweiterung Erlaubnis zu sehen.

zum Beispiel habe ich 2 Verlängerung 100.200 und jedesmal, wenn die eine der Erweiterung versuchen, abgehenden Anruf muß ich in meiner Datenbank überprüfen, um zu sehen, ob er diese Berechtigung hat, und wenn nicht blockieren, den Anruf

leid meine Englisch nicht so gut

Antwort

2

Ich gehe davon aus, dass Sie Asterisk installiert haben und grundlegende Einrichtung mit SIP-Softphones konfiguriert haben. Sie können hinzufügen müssen folgende zu Ihrem /etc/asterisk/extensions.conf

[internal] 
exten => _XXXXXXXXXX,1,Answer() 
same => n,Set(callerid=${CALLERID(num)}) 
same => n,Verbose(Your Callerid is ${callerid}) 
same => n,Saydigits(${callerid}) 
same => n,AGI(check_callerid.php,${callerid}) 
;same => n,Hangup() 

[welcome] 
exten => s,1,Playback(welcome) 
same => n,Verbose(Allowed to call) 
;same => n,Dial(SIP/trunkname/${EXTEN}) 

[good_bye] 
exten => s,1,Playback(goodbye) 
same => n,Verbose(Not Allowed to call) 
same => n,Hangup() 

Nach diesem Reload Asterisk:

asterisk -rvvvv 
reload 

herunterladen phpagi Bibliothek, führen Sie folgende Befehle an Ihrer Asterisk-Konsole

cd /var/lib/asterisk/agi-bin 
git clone https://github.com/welltime/phpagi 

check_callerid.php Dann erstellen Skript an /var/lib/asterisk/agi-bin und geben Sie volle Erlaubnis dazu. Unten Skript können Sie kopieren,

#!/usr/bin/php 
<?php 

    global $agi; 
    require 'phpagi/phpagi.php'; 

    $agi = new AGI(); 
    $agi->answer(); 
    $callerid = $argv[1]; 

    $agi->verbose("CallerID is: $callerid"); 
    $check_in_db = checkDB($callerid); //check caller allowed to do call 

    if($check_in_db==1){$agi->exec("Goto","welcome,s,1");} //allowed to do call, go to dial plan 
    else{$agi->exec("Goto","good_bye,s,1");} //not allowed to do call, go to dial plan 


    function checkDB($callerid){ 
    //check here callerid allowed to do call or not 
    return 1; 
    } 

?> 

Jetzt von einem Ihrer registrierten Softphone zu wählen versuchen, alle 10-stellige Nummer auf Ihren Anruf exten => _XXXXXXXXXX,1,Answer() in Ihrem Wählplan landen

+0

thks Sie meinen Tag retten –