Rückrufservice?

lambax2

Neuer User
Mitglied seit
11 Jul 2010
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

wir besitzen nun auch eine Fritzbox und da ich gerade an unserer neuen Homepage sitze wollte ich mal fragen welche modifakationen ich an der fritzbox vornehmen muss um folgendes zu erreichen:

Unser Kunde soll auf unserer Homepage auf den Button "Rückruf" klicken, damit soll ein Befehl (z.B. über die dyndns) zur fritzbox gelangen, diese soll dann die rufnummer des Kunden wählen und mit einem entgerät verbinden...

ist das möglich?

Marco


-- ich sollte erwähnen, wir haben die FritzBox 7270
 
kompliziert...

also ich habe mich die komplette nacht damit rumgeschlagen in diesem (und auch anderen) Foren ein wenig zu stöbern... jedoch enden alle meine Versuche im Sand...

jedoch kann ich denke ich mein vorhaben nun etwas genauer beschreiben:


Zum Ablauf:
- Kunde sendet seine Telefonnummer per Formular an PHP-Script ($dialNumber)
- PHP-Script überprüft die Telefonnummer
- PHP öffnet mittels cURL eine Verbindung über die Fernwartung (DynDNS) zur Fritz!Box
- PHP holt sich die SESSION (mittels md5-Passwort und Challange)
- PHP sendet den Dial()-Befehl per cURL


# Vorgegebene Variablen (übergeben von der HomePage)
PHP:
$dialNumber;



#1 Webserver (PHP) soll mit hilfe der "cURL"-Funktion die "Challange" holen.

PHP:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://xxxx.xxxx.com/cgi-bin/webcm');
// Verbindung zum DynDNS-Account
curl_setopt($ch, CURLOPT_USERPWD, "xxxx:xxxx");
// Username und Password für HTTPAUTH
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ;
curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
$headers = array(
            "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
            "Cache-Control: max-age=0",
			"Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3",
			"Connection: keep-alive",
			"Keep-Alive: 115",
			"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
			"Authorization: Basic xxxxxxxx",
			"Host: xxxx.xxxx.com",
            "Pragma: no-cache"
        );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// festlegen der HEADER-Daten (Einstellungen 1zu1 vom Browser)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 GTB7.1");
// USERAGENT (eenfalls 1zu1 vom Browser)
$info = curl_exec($ch);

Nun sollte mein gewünschtes Ergebniss folgendes sein:
HTML:
<SessionInfo>
<iswriteaccess>0</iswriteaccess>
<SID>0000000000000000</SID>
<Challenge>79b73ede</Challenge>
</SessionInfo>

stattdessen bekomme ich aber folgendes:
Code:
HTTP/1.0 200 OK
Content-Type: text/plain
getcgivars(): Couldn't read CGI input from STDIN.

so leider beschränken sich meine Erfahrungen mit CGI auf NULL... und trotz ewiger Suche habe ich leider keine passenden Ergebnisse gefunden.


#2 Erstellen der "response"

(sofern Schritt 1 funktionieren würde)
PHP:
$xml = simplexml_load_string($info);

$newSID = $xml->Challenge . '-' . md5($FritzPasswort);


#3 Anruf absetzen

PHP:
$data = array(	'sid' => $newSID,
			'telcfg:settings/UseClickToDial' => '1',
			'telcfg:command/Dial' => $dialNumber,
			'telcfg:settings/DialPort' => '1' );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://xxxx.xxxx.com/cgi-bin/webcm');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ;
curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
$headers = array(
            "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
            "Cache-Control: max-age=0",
			"Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3",
			"Connection: keep-alive",
			"Keep-Alive: 115",
			"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
			"Authorization: Basic xxxxxxxx",
			"Host: xxxx.xxxx.com",
            "Pragma: no-cache"
        );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "xxxxx:xxxxxxx");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$info = curl_exec($ch);

so nach meinem Verständnis (was zugegebener Maßen in diesem Falle echt überschaubar ist) sollte so eine Dial abgesetzt werden.



ich hoffe es ist so einwenig verständlicher...


PS: ich habe mir auch mal die FireFox-AddOns runtergeladen und in diesen einwenig rumgestöbert, jedoch beziehen sich dort alle Funktionen a) auf eine Fritzbox im localen Netzwerk also (fritz.box bzw die IP) und b) komme ich nicht an die FB_Addon Klasse ran diese wird auf eine mir unbekannte art includiert...

PPS: ich könnte mir auch eine Lösung vorstellen das auf der FritzBox ein Script den Call/Dial auslöst und dieses Script per Fernwartung/HTTP ausgelöst wird (und die Rufnummer übergeben wird), wäre mit sicherheit eine bessere Variante, jedoch ist mein Wissen über Scripte auf der FritzBox etwa so ausgereift wie Scripte auf meinem Toster :D
 
Zuletzt bearbeitet:
Hallo,

so weit ich mich entsinne, bietet der Voip-Proxy "Voxalot" solch eine Funktion an. Ich habe damit früher einmal rumgespielt, als der Service noch komplett kostenlos war.

Sieh in Dir einfach mal an. Ansonsten solltest Du mal weiter nach dem Schlagwort "clicktodial" suchen.
 
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.