Asterisk Newbie - Asterisk mit PHP und mySQL Datenbank

ariellemuc

Neuer User
Mitglied seit
6 Apr 2005
Beiträge
3
Punkte für Reaktionen
0
Punkte
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
 
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.
 
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
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.