Asterisk mit PHP verbinden

So siehts aus, denke ist richtig:

Code:
[admin]
secret=geheim
deny = 0.0.0.0/0.0.0.0
permit = 127.0.0.1/255.255.255.255
read=all,system,call,log,verbose,command,agent,user,config
write=all,system,call,log,verbose,command,agent,user,config
 
127.0.0.1 ist dann richtig, wenn Du im PHP Skript bei fsockopen die 127.0.0.1 als Host stehen hast. Die Netzmaske für den Localhost ist aber üblicherweise 255.0.0.0

Ansonsten muss da das Netzwerk hin, in dem der Rechner mit dem PHP Server liegt, oder gleich der Rechner, von dem aus Du auf den Asterisk zugreifen willst, z.B. 192.168.2.0/255.255.255.0

manager reload danach nicht vergessen.
 
Nein im PHP Skript steht bei mir 192.168.1.71 5038 weil Asterisk ja auf der Virtuellen Machine unter Debian läuft und die Debian die IP-Adresse 192.168.1.71 hat. Dies habe ich mit ifconfig rausbekommen.

Deswegen:
Code:
$fp = fsockopen("192.168.1.71", 5038, $errno, $errstr, 30);

Der Php Script läuft auf dem XP Rechner mit dieser IP-Adresse: 192.168.1.76

manager reload???
 
Der Php Script läuft auf dem XP Rechner mit dieser IP-Adresse: 192.168.1.76

Was sagt uns das im Hinblick auf permit?
192.168.1.0/255.255.255.0 oder eben nur 192.168.1.76/255.255.255.0

Du hast nur dem Localhost den Zugriff erlaubt und wunderst Dich, warum Du von einem anderen Rechner aus nicht zugreifen kannst...

Wenn Du jetzt dann Deinen permit Eintrag korrigiert hast, solltest Du ein manager reload auf der CLI machen, oder gleich Asterisk neu starten, damit die Änderungen greifen.

Ich seh schon, Du hast noch einen langen Weg vor Dir.
 
Ich wollte gerade erklären was du jetzt geschrieben hast. Es funktioniert jetzt :)
Wie du gesagt hast habe ich permit auf permit=192.168.1.0/255.255.255.0 geändert.

Echt habe ich noch einen langen weg? :(
 
habe ich noch einen langen weg?

Vermutlich ja.
Ich hoffe ja, daß Du nicht wirklich Informatiker bist. Oder wie bist Du sonst ohne Englisch-Kenntnisse durchs Studium gekommen?
Machst Du das hier beruflich, oder ist es eine private Spielerei?

Du wirst wahrscheinlich einen Parse-Error von PHP bekommen, weil Du zu wenig Klammern gesetzt hast.

Nein, wird er nicht. Die Syntax ist an C orientiert und nicht an Pascal.
 
Man braucht kein Englisch um Informatik zu studieren. Für die 1-2 Englisch Vorlesungen kann man auswendig lernen :rosen:

Und fürs implementieren brauch man auch keine tiefen Kenntnisse.
Ich kann Englisch aber halt nur mittelmäßig. Kann nicht alle Wörter verstehen, aber über die hälfte meistens.
Ist keine Spielereiiiii, mache Praktikum, und kenne mich mit Asterisk net aus. Bin noch am lernen.

So,
Ich wollte jemanden anrufen, was fehlt mir jetzt noch? Oder was kommt als nächstes?
 
Als nächstes schickst Du, wie ich bereits sagte, ein Originate Kommando. Link findest Du irgendwo am Anfang. Und zu guter letzt noch ein Logoff.

Das mit dem Studium schockiert mich jetzt etwas, genau so wie die Sache mit dem Praktikum. Asterisk in einer VM geht ja grad noch, aber XP als Server für PHP in einer nicht-Spielerei-Umgebung?

Ralf, da haben ganz sicher die Klammern gefehlt => Parse Error
Danach lief das Skript ja zumindest mal durch.
 
Auswendig lernen ohne Verstehen bringt einen auf Dauer nicht weiter.

Hast Du es denn ausprobiert? Was passiert bisher?

@rentier-s
Genau diese Beispiel von oben läuft bei mir ohne Parser-Fehler durch. Es kommen nur Meldungen, weil $fp kein gültiger Stream ist.
PHP:
    $zaehler = 0;
    fwrite($fp, $out);
    while (!feof($fp) && $zaehler < 200) {
        echo fgets($fp, 128);
        $zaehler++;
    }
 
XP ist ein BS und Apache ein Server. Warum?
Haben getrennte Aufgaben. Der eine hat mit dem anderen nichts zu tun von den Aufgaben her.
 
Das stimmt. Dann verstehe ich nur nicht Deine Aussage oben "Mein Server ist nicht XP, mein Webserver ist Apache". Wie Du richtig schreibst, hat das eine mit dem anderen nichts zu tun, und schließen sich nicht gegenseitig aus. Nach dem, was Du oben geschrieben hast, ist Dein Webserver Apache auf XP und nicht Apache ohne XP.
 
Ja war ein falsche Ausdruck von mir aber auch deswegen weil rentier-s so geschrieben hat:
"XP als Server für PHP". Deswegen kam von mir sowas blödes raus. :)
 
folgendes

Action: Originate
Channel: SIP/101test // hier kommt meine nummer rein? Was in SIP.conf steht? Meine endet zb mit 35: SIP/35 ???
Context: default
Exten: 8135551212 // das hab ich net verstanden?
Priority: 1
Callerid: 3125551212 // irgend eine ID? oder die nummer des anrufers?also von mir?
Timeout: 30000
Variable: var1=23,var2=24,var3=25 // habe ich auch nicht verstanden,wozu variablen?
ActionID: ABC45678901234567890 // das ist irgendeine Id gel?
 
Probiere es doch einfach mal aus.
Bei Channel würde ich das herein setzen, was auch angezeigt wird, wenn Du einen Anruf von Hand machst.
Exten ist im Zweifelsfall die Nummer, die angerufen werden soll.
Bei Callerid würde ich die eigene Nummer einsetzen.
Und die anderen beiden Felder sind vermutlich nicht von Bedeutung.
 
Zuletzt bearbeitet:
Hab ich ja schon gemacht, gibt fehler aus: Missing action in request.
 
informatiker340, zeig doch noch mal Dein aktuelles Skript.
 
PHP:
$errstr = "Verbindung konnte nicht aufgebaut werden.";
$fp = fsockopen("192.168.1.71", 5038, $errno, $errstr, 10);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out  = "Action: Login\r\n";
    $out .= "ActionID: 1\r\n";
    $out .= "Username: admin\r\n";
	$out .= "Secret: geheim\r\n\r\n";
	
	$zaehler = 0;
    fwrite($fp, $out);
    while ((!feof($fp)) && ($zaehler < 200)) {
        echo fgets($fp, 128);
		$zaehler++;		
    }
    fclose($fp);
}

Ich tippe per Hand den Originate in die Telnet Konsole und schicke es.
Dann liefert telnet mir als Message: Originate failed
Und Asterisk liefert mir eine WARNING, eine NOTICE, und zwei ERROR's
Das schicke ich:

Action: Originate
Channel: SIP/101test
Context: tests
Exten: 125
Priority: 1
Callerid: 122112
Timeout: 30000
Variable: var1=23
ActionID: 666999
 

Statistik des Forums

Themen
246,787
Beiträge
2,257,472
Mitglieder
374,842
Neuestes Mitglied
lu386
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.