cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
wichtigFortschritt der Entwicklung
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68691
Mitglieder online: 0
Gäste online: 2
mehr...

Anzeige
Forum » Forum: Softwareprogrammierung » Thread: Fritz!Box - lwp-request.

Thread: Fritz!Box - lwp-request.

Tags:

15.11.2007 21:32 Uhr

 

Status: offline
Hallo zusammen.
Ich habe ein Problem, einen lwp-request auf eine einfache socket kommunikation abzubilden.
Über den lwp-request wird über Port 80 zum Webinterface der Fritz!Box verbunden
und anschließend ein Login und die Anwahl der entsprechend an das Script übergebebene Rufnummer vorgenommen. Nach einem bestimmten delay wird dann wieder aufgelegt.

Als normales Shellscript (bash mit lwp-request unix-cmd) funktioniert es einwandfrei.
Code:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
#!/bin/bash
# Script meldet sich an der FritzBox an
# und ruft die uebergebene Rufnummer an.
# Hier klingelt das Script lediglich kurz an.
#
# @author  Christian Felder
# @version 1.00-14.11.2007
#
 
##
# Constants
#
 
password="PWDSTRING"     # Webinterface Password
dialport=${2:-"FON 2"}  # Fon Port
 
delay=9                 #Zeit zwischen waehlen und auflegen
                        #Es muss beachtet werden, dass eine bestimmte Zeit gebraucht wird,
                        #um ueberhaupt eine Verbindung herzustellen
 
##
# parameter Check and number format
#
 
if [ "${1}" = "" ]; then
        echo "ERROR: Wrong Syntax"
        echo "Use: ./$(basename ${0}) number [fon-port]"
        exit 0
else
        # format number
        dialnumber=$(echo ${1} | sed -e '
                s/+/00/
                s/[^0-9]//g
        ')
fi
 
 
##
# commands definition
#
 
# Definition des Linux CMD: lwp-request
  cmd_lwp="lwp-request -s -m POST http://fritz.box/cgi-bin/webcm"
# Definition des Login CMDs auf der Fritz!Box
cmd_login="getpage=../html/de/menus/menu2.html
&var:lang=de
&login:command/password=${password}
&telcfg:settings/UseClickToDial=1
 
"
# Definition des Anwahl CMDs (FON) auf der Fritz!Box
  cmd_telcfg="getpage=../html/de/menus/menu2.html
&var:lang=de
&telcfg:settings/UseClickToDial=1
&telcfg:command/Dial=${dialnumber}
&telcfg:settings/DialPort=${dialport}"
# Definition des Auflegen CMDs (FON) auf der Fritz!Box
  cmd_hangup="getpage=../html/de/menus/menu2.html
&var:lang=de
&telcfg:settings/UseClickToDial=1
&telcfg:command/Hangup=${dialnumber}
&telcfg:settings/DialPort=${dialport}"
 
##
# main-Methode
#
 
{ echo -e "$cmd_login" | $cmd_lwp 2>&1 | echo "-"       #login
  echo -e "$cmd_telcfg" | $cmd_lwp 2>&1 | echo "-"      #call
  sleep $delay                                          #wait some seconds
  echo -e "$cmd_hangup" | $cmd_lwp 2>&1 | echo "-"      #cancel call
} | grep -v "^$" | 
echo "Dialing ${dialnumber} on fon-port: ${dialport}"
Nun möchte ich das Ganze entsprechend mit einem Python Script machen, ohne
das lwp-request unix-cmd zu benutzen, da auf dem Server, auf dem das Script zum Einsatz kommen soll, dieser CMD nicht vorhanden ist.

Die Socketkommunikation in python zu schreiben usw. ist kein Problem. Das habe ich bereits getan. Den Code lasse ich mal aus, um zum wesentlichen zu kommen.

Über den Socket geht beim ausführen des Shellscripts folgendes.

POST /cgi-bin/webcm HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 127.0.0.1
User-Agent: lwp-request/2.07
Content-Length: 114
Content-Type: application/x-www-form-urlencoded

Zitat:
getpage=../html/de/menus/menu2.html&var:lang=de&login:command/password=PWDSTRING&telcfg:settings/UseClickToDial=1


was mir gerade auffällt. die Rufnummer ist im request garnicht enthalten.
scheinbar scheint dies nur der Login zu sein...
Mehr konnte ich jedoch nicht mitlesen.

Wenn ich das ganze per telnet absetze.
Bekomme ich ne html Seite zurück geschickt.
und der Socket wird geschlossen.

Kein Klingeln :(
Was muss ich noch tun... jemand ne idee..
___________________________
"All input is evil, until proven otherwise" Michael Howard
16.11.2007 17:40 Uhr

 

Status: offline
*push*
echt keiner ne Idee.
Es soll ja keine komplett-Lösung sein.
Ne Hilfestellung hilft auch.

Ich hab mir jetzt auch den JFritz Source besorgt und suche noch die Stelle,
mit der Socket Kommunikation. Die müssen das ja schließlich auch irgendwie senden ;)
___________________________
"All input is evil, until proven otherwise" Michael Howard
17.11.2007 21:36 Uhr

 

Status: offline
log doch mal bitte deine komplette traffic während der runtime des scripts mit und poste alle requests an die fritz.box hierher
___________________________
Folgt mir auf Identi.ca/
nach obennach oben

Copyright © 2010 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - s.Oliver Onlineshop für Schuhe
ANEXIA - PHP Entwicklung - Dockers- Think Schuhe - der eigene Weg - Paul Green Damenschuhe - Bequeme Geox Schuhe - Web-Entwicklung - Fritz!Box Anrufmonitor für Mac OS - Rolladen, Markisen und Jalousien in Stuttgart - Rolladen in Stuttgart - SMSjobs