.titleBar { margin-bottom: 5px!important; }

Asterisk Newbie - Asterisk mit PHP und mySQL Datenbank

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von ariellemuc, 13 Apr. 2005.

  1. ariellemuc

    ariellemuc Neuer User

    Registriert seit:
    6 Apr. 2005
    Beiträge:
    3
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi -

    bitte wegen meinen Fragen nicht lachen - bin Newbie und auch noch n Mädel - sprich ich tu mich doppelt udn dreifach schwer (zumal ich weder Programmierer bin und mich neu in PHP, Asterisk und SQL einarbeite) :lol:

    Was will ich machen?
    Eine GUI, über die ich via Asterisk telefonieren kann. Der Benutzer loggt sich hier ein, und soll alle anderen PbX-Nutzer sehen, mit deren jemweiligem Status (online, telefoniert, offline) Diese wird mit PHP realisiert.
    Im Hintergrund ist eine mySQL DB.

    Nun zu den Fragen:

    1.) Ick kapier schon wie ich alle conf-Dateien in Asterisk einrichten muss um telefonieren zu können (einfachen test hab ich dabei schon gemacht - PHP_Seite mit Login, Hard-Codiert User/Login in Asterisk, eingabe Telefonnummer) - das funktioniert auch, hier mal der Code:

    Code:
    
    <?php  
    
    
    /*include("/var/www/CTI/asterisk.inc");*/
    
    if (!empty($_POST['call'])) 
    {
    	echo "<p class=\"style1\">";
        		echo "<input name=\"imageField\" type=\"image\" src=\"hangup.png\" width=\"170\" height=\"38\" border=\"0\">";
      	echo "</p>";
    
    
    
     
    
     
    	$Dial_Number = $_POST['call'];
    	echo $Dial_Number;
    	echo "
    Channel: CAPI/@777777:" .$Dial_Number;
    	
    	$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout);
    	fputs($socket, "Action: Login\r\n");
    	fputs($socket, "UserName: test\r\n");
    	fputs($socket, "Secret: test\r\n\r\n");
    	
    	//if (login() == 1) {
    
    		fputs($socket, "Action: originate\r\n");
    		fputs($socket, "Exten: 99999999\r\n");
    		fputs($socket, "Context: from-internal\r\n");
    		fputs($socket, "Channel: CAPI/@777777:" .  $Dial_Number . "\r\n");
    		fputs($socket, "Priority: 1\r\n");
    		fputs($socket, "Callerid: 08999999999\r\n\r\n");
    		$wrets=fgets($socket,128);
    	//}
    }
    else {
    	echo "<p class=\"style1\">";
        		echo "<input name=\"imageField\" type=\"image\" src=\"call.png\" width=\"170\" height=\"38\" border=\"0\">";
      	echo "
    
    ";
      //	echo "<INPUT TYPE="submit" NAME="ok" VALUE="login" class="smalltext" onclick="checkflag=this.name">";
      echo "</p>";
    
      	
    }
    
    if (!empty($_POST['call']))
    {}
    
    
    ?>
    
    
    So, und nun ist es ja aber so - will ja nicht für jeden user ne eigene PHP Seite mit den Asterisk-Daten schreiben - sprich ich will irgendwie mit meinem login auch automatisch auf Asterisk eingeloggt sein. Sprich wenn der Benutzer sich auf der Page anmeldet auch direkt lostelefonieren kann. Wie mache ich das am besten, welche möglichkeiten habe ich, welche hat welchen Vorteil/Nachteil? Geht das überhaupt mit dem mySQL Login mit PHP gleich auf Asterisk einzuloggen? Es gibt ja auch die möglichkeit alle Asterisk conf einstellungen per mySQL zu verwalten - aber wie geht das dann genau? Was mir nähmlich null klar ist, ist, wie ich Asterisk und PHP "verbinde" - sprich wie ich meine Daten hin-oder herschaufle - z.B. wenn ich die Einstellungen über die DB verwalte, klar dann mache ich ein PHP, Das die benötigten daten zum (einloggen auf asterisk) abfrägt in variablen einträgt und dann an z.B die extensions.conf schickt - bis zur sql abfrage klappts noch bei mir, aber wie ich das dann in die extensions.conf eintragen lasse (bzw. auch bei logout wieder austragen lasse, no kapische - und keine infos gefunden) - geht dasüberhaupt diese dateien dynamisch zu verwalten?

    2. Will ich auf der Seite ja wie schon geschrieben den Status des Users abfragen - on line,offline, telefoniert - wie mache ich das (im endeffekt ähnliches prob wie oben - nur umgedreht - von asterisk nach der PHP-Seite) - weiss mittlerweile dass man das in der manager.conf abfragen kann
    Folgende API-COmmands hab ich gefunden, die passen könnten:
    ExtensionState: Check Extension Status
    Status: Status
    Leider ist da keine erklärung dazu drin - und bei viop-info.org ist auch nur ein java beispiel und ein C beispiel drin - nix mit php :( !

    hat irgendjemand dazu vielleicht beispiele mit php (muss nicht 100% stimmen- kann gut ableiten ;) ) - scripte oder sowas?

    Bitte nicht mit abgekürzten Fachbegriffen um euch werfen ;) - bin froh wenn ich das in normalen Sätzen kapiere - sorry tue mir grad echt schwer mit Experten-Slang ;).

    So, hoffe es kann mir jemand weiter helfen, ich danke euch im voraus!

    LG Steffi
     
  2. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Willst Du so etwas wie in meiner Signatur machen? Du kannst Asterisk per "Realtime" an Deine MySQL hängen. Siehe http://voip-info.org/wiki-Asterisk+RealTime und von dort verlinkte Seiten zu SIP, Extensions etc.. Asterisk kann dann alle SIP-User, den Wählplan und noch mehr (falls Du das brauchst) in der Datenbank verwalten. Dein PHP könnte dann ganz leicht in der MySQL was ändern. Wenn Du mit Deiner bisherigen Methode weiter arbeiten willst empfehle ich phpagi, siehe http://phpagi.sourceforge.net/.
    Zum Punkt 2: Wenn Du Realtime hast, dann gibts in der Tabelle der SIP-User ein Feld regseconds. Das ist ein Unix-Timestamp. Liegt der in der Zukunft, so ist das SIP-Telefon eingeloggt. Liegt er in der Vergangenheit, so ist das Telefon offline.
     
  3. srt

    srt Neuer User

    Registriert seit:
    10 Apr. 2005
    Beiträge:
    7
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Köln
    Du kannst dir mal iStuff von junghanns.net anschauen.
    Aus dem README:

    iStuff, a very simple php webinterface to display extension states.
    This interface requires bristuff-0.2.0-RC3 or later.

    Es benutzt das Manager API und ist eine Webanwendung in PHP.
    Vielleicht gibt dir das ein paar gute Ideen zum Start.

    http://www.junghanns.net/asterisk/downloads/iStuff-0.0.1.tar.gz

    =Stefan