Outlook Wählhilfe (Makro) ohne Box zu modifizieren

Status
Für weitere Antworten geschlossen.
So lange das Passwort nach dem Update erst einmal ignoriert wird, spricht nichts dagegen. So lange man weiß, dass man das neu eingeben muss (und sich dann nicht wundert), ist es ok.
Wie wäre es in der Ping Funktion mit
Code:
If InStr(1, Text, "Antwort", vbTextCompare) > 0 Then
 
Problem mit dem Anrufmonitor unter Vista 64Bit Ultimate

Hi,

ich setze Fritz!Box Telefon-dingsbums mit einem Fritz!Fon 7150, sowie Vista 64 Ultimate mit Outlook 2007 ein, der Rechner befindet sich in einem anderen Subnetz als die Fritz!Fon Anlage.
Alles klappt soweit ganz gut, nur der Anrufmonitor bringt immer folgende Fehlermeldung:

Code:
TCP/IP Fehler
Error in OpenConnection::inet_Addr -Case unknown in TCPIP::SetLastErrorCode=0

Der Anrufmonitor in der Fritzbox wurde natürlich vorab mit #96*5* aktiviert,
eine entsprechende Rückmeldung auf dem Telefon habe ich erhalten.
Ein telnet auf die Fritzbox auf Port 1012 zeigt auch das dort ein Dienst läuft.

Interessant ist das in den Einstellungen für "IP des Rechners(zur Kontrolle)" kein Wert angezeigt wird, das Feld ist einfach leer.

Eine Verbindung zur FritzBox durch den Rechner auf Port 1012 der FritzFon wird auch gar nicht erst aufgebaut, habe dies mit Wireshark geprüft.

Ist ein solches Problem bekannt?
Was kann icht tun? :confused:
Vielen Dank im Voraus,

JNoir
 
Welche Adresse ist denn in den Einstellungen eingetragen? fritz.box, oder die IP-Adresse? Wenn fritz.box, kannst du die Adresse pingen?
Warum z.Zt die Adresse nicht angezeigt wird, kann Kruemelino sagen, mal schauen, was er dazu sagt...
Welche Version setzt Du denn ein?

Gruß

MarcoMarco
 
Hi,

es ist die IP-Adresse eingetragen, über DNS kann ich fritz.box allerdings auch auflösen und anpingen.

Gruß,

JNoir
 
Ich bin mir ziemlich sicher, dass der Fehler genau aus dem Grund auftritt. Die IP wird einfach nicht ermittelt. Deswegen kommt es zu dieser Fehlermeldung.

Die Frage ist nun, warum sie nicht ermittelt wird. Sicherlich ist die Function LocalIPAddress fehlerhaft. Bzw liefert sie nichts zurück.
Es wär ganz nett wenn du mir mal deine IP Konfiguration schicken könntest.

Was kannst du tun?

Erstmal kannst du nur die eigene IP per Hand eintragen.
es gibt diese Zeile zweimal:
Code:
tcp.LocalHostIP = LocalIPAddress()
einmal in AnrMonStart und AnrMonAnAus
Du ersetzt in diesen Zeilen LocalIPAddress() dich deine IP.
also zum Beispiel:
Code:
tcp.LocalHostIP = "192.168.178.2"

Kruemel
 
Klasse, genau das war es, jetzt klappt alles. :groesste: Trotzdem komisch das die IP Adresse nicht automatisch ermittelt werden kann. :confused:
Hast du was dies angeht eine Idee?
Vielen Dank.
 
7270 + Outlook 2003

Moinsen,

gute Idee, die Tapi, aber leider habe ich ein Problem:

1. ich kann zwar wählen und es geht auch das Fenster auf "bitte abnehmen" aber der Ruf wird nicht zu meinem DECT-Mobilteil durchgestellt.
2. #95*5* ist aktiviert
3. wenn ich angerufen werden erscheint der Kontakt korrekt
4. habe kein Ostrosoft Winsock in meiner Auswahlliste der Zuweisungen
5. kann nicht den Win HTTP Service aktivieren (fehlende DLL)
6. benutze Vista 32, FB 7270, Outlook 2003

Kann jemand helfen?
 
Hallo cyberty,

erst einmal danke für Deinen indirekten Hinweis mit der Winsock und WinHTTP, denn die werden nicht mehr benötigt!!! Es scheint ja so zu sein, dass die Kommunikation mit der FritzBox funktioniert.
Wartest Du jetzt auf ein Klingeln Deines DECT-Telefons oder nimmst Du auch beherzt ab und hört "gar nichts"???
Hast Du denn mal den Telefontest auf der Weboberfläche gemacht. Da sollte dann Dein DECT-Telefon testmäßig klingeln. Dann wäre auf jeden Fall die Zuordnung Telefonname<->Port richtig....

Gruß

MarcoMarco
 
Hallo amrcomarco,

vielen Dank für die schnelle Antwort.

1. wenn ich die Wahlhilfe bei de 7270 aktiviere, dann kann ich auch die ausgewählten Telefone klingeln lassen.
2. wenn ich die Wählhilfe, also dieses Programm (dingsbums) benutze, dann klingelt weder das Telefon, noch kann ich irgendwas hören, wenn ich a. auf laut hören stelle oder b. abnehme
 
Hallo,

7270

Die Wählhilfe ist nicht für die 7270 optimiert. Das liegt vor allem an einer fehlenden 7270 mit der ich testen kann.

Das Makro nutzt die Weboberfläche (Wahlhilfe) der Fritzbox. Jedes angeschlossene Telefon hat ein sog. Dialport. Diese konnten wir aber nicht für die DECT-Geräte herausfinden. Auch AVM hat uns nicht geholfen.

Mein Bruder meinte, man müsste überprüfen was zuf Fritz!box (7270) übersendet wird, wenn man die Weboberfläche verwendet.

Dazu gibt es zum Beispiel das Pogramm Wireshark.

Irgendetwas muss ja zuf Fritz!Box übermittelt werden, damit das richtige Telefon gewählt wird.

Ich kenne niemanden mit einer 7270, der mich mal ranlassen könnte.

Wie marcomarco schon richtig gesagt hat, wird Ostrosoft Winsock und WinHttp nicht mehr benötigt. Letzteres funktioniert unter Vista nicht. Deswegen wurde es durch xmlhttp ersetzt.

CallbyCall

Bei mir funktioniert das Ermitteln der Vorwahlen.

um das mal zu Testen:
Code:
Sub CbCtesten()
    Dim TelNr As String
        
        TelNr = "0123456789"
        
        CbCBilligerTelefonieren TelNr
        formCallbyCall.Show

End Sub

Oder funktioniert das Zusammensetzen der Nummer nicht? Das kann ich mir aber nicht vorstellen.

3.39

Ich bitte euch mal zu testen. Wie gesagt ich hab die Passwortverschlüsselung geändert. Alle müssen das Passwort neu eingeben.
Dann hab ich die neue Ping drin, und diverse Bugfixes.
Anhang anzeigen 23618

so long

Kruemel
 
@cyberty:

Nur um eben schnell was klar zu stellen: Wenn man aber der Weboberfläche testet, dann wählt die FritzBox z.B. **1 oder **2 für Nebenstelle 1 oder 2 (jedenfalls bei der 7170)
Darum klingeln die Telefone. Das macht das Skript aber nicht. Eigentlich klingelt das Telefon erst, wenn der andere drangegangen ist. Der hört dann "Ihre Verbindung wird gehalten" und dann klingelt Dein Telefon. Da das nicht so toll ist, sagt das Skript, dass man während des Wählvorganges einfach abheben soll, dann ist man "in der Leitung" und der Angerufene denkt nicht, dass er Opfer von einem Telefonstreich geworden ist.

Wie Kruemlino schon sehr richtig bemerkte, (so ein gutes Gedächtnis habe ich nicht ;) )
ist es "nur" ein DECT-intern-Rufnummern-Problem, warum Du nicht in die Leitung gehen kannst... :(

@Kruemelino:
ich werden heute Abend mal testen, wo es hakt und auch mal schreiben an welcher Stelle es klemmt ;)

Gruß

MarcoMarco
 
@marcomarco

1. Also ich höre überhaupt kein Klingeln und! der angewählte Teilnehmer wird auch nicht angerufen, obwohl das Fenster etwas anderes sagt.
2. wenn ich die Wählhilfe aus der FB benutze, dann klingelt es und es erscheint in meinem DECT-Display erst **50 und dann "Wählhilfe"
3. im "Fenster" erscheint die Nummer die ich angewählt habe so wie es sein sollte: 0049xxyyyyyy# (xx=Vorwahl, yy=Nummer)
 
Zuletzt bearbeitet:
...wie kann ich das alles eigentlich wieder denstallieren? Bei mir kommen immer Runtimefehler.
 
Einfach in Outlook [ALT]+[F11] drücken und dort alle Module entfernen (ohne exportieren), die du hinzugefügt hast.
Wenn bei dir Runtimefehler kommen, solltest du das eh' tun und eventuell alles sauber von vorne installieren.
 
Hallo Kruemel,

ich habe die 2.39 mal installiert und keine Fehler in dem Sinne entdecken können.
Nun zum CBC-"Bug"
Der Outlook meldet den Fehler in "HTTPtransfer" und zwar bei
Code:
If http.readyState = 4 Then HTTPTransfer = StrConv(http.responseBody, vbUnicode)

Bei mir ist dann dan der Stelle die "FormData" leer... :(

Gruß

MarcoMarco
 
Ich habe gerade mal alle meine Dateien exportiert und mit der neuen Beta verglichen. Ich hätte damit ein paar Dinge hinzuzufügen.

Definitionenen.bas
Code:
Function LocalIPAddress() As String
[B]' Ermittelt die eigene IP Adresse, die für die Verbindung zur Fritzbox benutzt wird.
' Dazu werden alle verfügbaren Netzadapter auf das gleiche Subnetz zu dem der FritzBox verglichen,
' was momentan noch zu Problemen führt, wenn die FritzBox in einem anderen IP-Raum steht[/B]
On Error Resume Next
'für API-Aufrufe
Dim cbRequired  As Long
Dim buff()      As Byte
Dim Adapter     As IP_ADAPTER_INFO
Dim AdapterStr  As IP_ADDR_STRING
'allgemeine Variablen
Dim ptr1        As Long
Dim sIPAddr     As String
Dim sAllAddr    As String
Dim sGWAddr     As String
Dim FB_ADD      As String
Dim pos         As Long
Dim DateiPfad As String
DateiPfad = GetSetting("FritzBox", "Optionen", "TBini", StandardPfad & "\Einstellungen.ini")
    
FB_ADD = GetINI(DateiPfad, "Optionen", "TBFBAdr", "192.168.178.1")
[B]
' Ggf. die Adresse der Gegenstelle auflösen[/B]
Ping FB_ADD

pos = InStrRev(FB_ADD, ".", , vbTextCompare)
FB_ADD = Left(FB_ADD, pos)
GetAdaptersInfo ByVal 0&, cbRequired
If cbRequired > 0 Then
    ReDim buff(0 To cbRequired - 1) As Byte
    If GetAdaptersInfo(buff(0), cbRequired) = 0 Then
        'Zeiger (Pointer) zu den gespeicherten Daten (buff) ermitteln
        ptr1 = VarPtr(buff(0))
        'ptr1 ist 0 wenn keine weiteren Adapter vorhanden sind
        Do While Not ptr1 = 0
            'aktuellen Zeiger auf Datenstruktur (Adapter) zuweisen
            CopyMemory Adapter, ByVal ptr1, LenB(Adapter)
            With Adapter
                'IP-Adresse des Adapters auslesen
                sIPAddr = TrimNull(StrConv(.IpAddressList.ipaddress.ipAddr, vbUnicode))
                ' IP-Adresse des zugehörigen Gateways auslesen
                sGWAddr = TrimNull(StrConv(.GatewayList.ipaddress.ipAddr, vbUnicode))
                If Not InStr(1, sGWAddr, FB_ADD, vbTextCompare) = 0 _
                    Or Not InStr(1, sIPAddr, FB_ADD, vbTextCompare) = 0 Then
                        LocalIPAddress = sIPAddr
                End If
                '[B]Pointer [/B]auf nächsten Adapter setzen
                ptr1 = .dwNext
            End With
        Loop
    End If
End If
End Function

In FormDirektwahl.frm sind die Änderungen bei mir genau anders herum als in der Beta (die If-Abfrage ist in beiden Funktionen umgetauscht)
Code:
Private Sub ButtonWeiter_Click()
    ' Fenster schließen und Wählbox starten
    Dim DateiPfad   As String
    Dim TelNr       As String

    DateiPfad = GetSetting("FritzBox", "Optionen", "TBini", StandardPfad & "\Einstellungen.ini")
    TelNr = nurZiffern(Me.TelNrBox.Value, "")
    
    [B]If Not Len(TelNr) = 0 Then[/B]
        FritzBox.Wählbox "-1;", "-1", TelNr
        Unload Me
    End If
End Sub

Private Sub TelNrBox_Change()
    ' Sicherheit, damit keine leere Nummer übergeben wird
    [B]If Not Len(nurZiffern(Me.TelNrBox.Value, "")) = 0 Then[/B]
        Me.ButtonWeiter.Enabled = True
    Else
        Me.ButtonWeiter.Enabled = False
    End If
End Sub
Was ist hier richtig (und wieso, wenn nicht meine Version)?
Rechtschreibung in Anrufliste2Excel()
Code:
                If Meldung("[B]Möchten [/B]Sie die Anrufliste auswerten?", vbYesNo) = vbYes Then
Doppler aus der Meldung "Überprüfen Sie das Passwort" entfernt
Code:
                If Not InStr(1, Text, "Anmeldung", vbTextCompare) = 0 Then
                    FBLogin = False
                    LogFile "Einloggen in die Fritz!Box war nicht erfolgreich."
                    [B]Meldung "Überprüfen Sie das Passwort der Fritz!Box in den Einstellungen!", vbCritical[/B]
                ElseIf Text = "" Then
                    FBLogin = False
                    LogFile "Keine Fritz!Box gefunden."
                    Meldung "Es wurde keine Fritz!Box gefunden.", vbCritical
                Else
                    WriteINI DateiPfad, "Optionen", "EinloggZeit", Date + Time
                    LogFile "Erfolgreich in die Fritz!Box eingeloggt."
                    FBLogin = True
                End If
KeyÄnderung
Code:
If Meldung("Das Passwort der " & tempZugang & " kann nicht entschlüsselt werden. Es muss zurückgesetzt werden.[B]" & vbNewLine & "Geben Sie es in den Einstellungen neu ein." & vbNewLine & vbNewLine & "[/B]Soll es jetzt zurückgesetzt werden?", vbYesNo) = vbYes Then
Und eine Erweiterung der Funktion Meldung
Code:
Function Meldung(ByVal Text As String, Typ As VbMsgBoxStyle[B], Optional Zusatzüberschrift As String[/B]) As VbMsgBoxResult
' Diese Funktion ist nur hinzugefügt worden, damit alle Fehlermeldungen gleich aussehen
    Dim Überschrift As String
    Überschrift = "Fritz!Box Dingsbums"
    Select Case Typ
    Case vbCritical
        Überschrift = Überschrift + " - Ein Fehler ist aufgetreten!"
    Case vbExclamation
        Überschrift = Überschrift + " - Achtung!"
    Case vbInformation
        Überschrift = Überschrift + " - Information"
    Case vbYesNo
        Überschrift = Überschrift + " - Frage"
    End Select
[B]    If Len(Zusatzüberschrift) > 0 Then
       Überschrift = Überschrift + ": " + Zusatzüberschrift
    End If[/B]
    Meldung = MsgBox(Text, Typ, Überschrift)
End Function
mit einem Beispiel in VersionsCheck()
Code:
                If Meldung("Es gibt eine neue Version des Fritz!Box Telefon-dingsbums vom " & Mid(Text, pos + 1, 10) & "." & _
                vbNewLine & "Ihre Version: " & aktVersion & vbNewLine & "Neue Version: " & neuVersion & vbNewLine & "Bitte die readme.txt beachten!" & _
                vbNewLine & vbNewLine & "Möchten Sie die neue Version jetzt herunterladen?", vbYesNo[B], "Neue Version gefunden!"[/B]) = vbYes Then
                    formConfig.Herunterladen neuVersion
                End If
Änderung an Crypt, um abstürze zu vermeiden
Code:
Public Function Crypt(Inp As String, Key As String, Mode As Boolean) As String
[B]    If Len(Key) > 0 Then[/B]
        Dim z As String
        Dim i As Integer, Position As Integer
        Dim cptZahl As Long, orgZahl As Long
        Dim keyZahl As Long, cptString As String
        
        For i = 1 To Len(Inp)
           Position = Position + 1
           If Position > Len(Key) Then Position = 1
           keyZahl = Asc(Mid(Key, Position, 1))
           
           If Mode Then
           
               'Verschlüsseln
               orgZahl = Asc(Mid(Inp, i, 1))
               cptZahl = orgZahl Xor keyZahl
               cptString = Hex(cptZahl)
               If Len(cptString) < 2 Then cptString = "0" & cptString
               z = z & cptString
           
           Else
           
               'Entschlüsseln
               If i > Len(Inp) \ 2 Then Exit For
               cptZahl = CByte("&H" & Mid$(Inp, i * 2 - 1, 2))
               orgZahl = cptZahl Xor keyZahl
               z = z & Chr$(orgZahl)
           
           End If
       Next i
    
       Crypt = z
[B]    Else
       Crypt = ""
    End If
End Function[/B]

Des Weiteren ist mir aufgefallen, dass während eines Gespräches die CPU-Auslastung auf 100% hochgeht. Irgendwo scheint da anstatt dem Timer eine Schleife durchzulaufen.

Außerdem gibt es bei mir einen Fehler in FritzBoxDaten(), seit dem ich beim Update die angebotene Funktion "Passwort zurücksetzen" genutzt habe: "Ungültiges Argument...". Hier scheint es, als würde man trotz falschem (weil druch das Löschen entfertes) Passwort versucht werden Daten aus der Weboberfläche auszulesen. Wo gehört da die Abfrage rein, ob das PW richtig ist?
Code:
    'Festnetznummer ermitteln
    pos1 = InStr(1, Text, "telcfg:settings/MSN/POTS", vbTextCompare)
    pos2 = [B]InStr[/B](pos1, Text, "value='", vbTextCompare) + 7
    pos3 = InStr(pos2, Text, "' id", vbTextCompare)
    TelNr = Mid(Text, pos2, pos3 - pos2)
MfG,
McShark
 
Zuletzt bearbeitet:
Hallo

Was ist hier richtig (und wieso, wenn nicht meine Version)?
Im Prinzip ist es egal.
Wenn man eine Nummer Ziffer für Ziffer eingibt wird bei deiner Version jedes mal nurZiffern aufgerufen. Das ist sicherlich nicht sinnvoll.
Und eine Erweiterung der Funktion Meldung
Das ist möglich. Aber die If-Abfrage brauchst du nicht. Wenn du in Zusatzüberschrift nichts reichschreibst ist es eh ein "Leer"-string

Den Rest schau ich mir an wenn ich zuhause bin.

Kruemel
 
Im Prinzip ist es egal.
Wenn man eine Nummer Ziffer für Ziffer eingibt wird bei deiner Version jedes mal nurZiffern aufgerufen. Das ist sicherlich nicht sinnvoll.
Ich hatte es so eingebaut, damit man bei Eingabe eines nicht gewählten Zeichens nicht den wählen-Button bekommt. Das Wählen kann in diesem Fall ja auch nicht klappen. So spart man sich aber auch jede Abfrage beim Klick auf wählen, also neuer Vorschlag (benötigt man den entfernten Dateipfad hier?)
Code:
Private Sub ButtonWeiter_Click()
    ' Fenster schließen und Wählbox starten
    ' Die Telefonnnumer wird bereits bei der Eingabe geprüft, daher hier nicht notwendig
    FritzBox.Wählbox "-1;", "-1", nurZiffern(Me.TelNrBox.Value, "")
    Unload Me
End Sub

Private Sub TelNrBox_Change()
    ' Sicherheit, damit keine leere Nummer übergeben wird
    If Not Len(nurZiffern(Me.TelNrBox.Value, "")) = 0 Then
        Me.ButtonWeiter.Enabled = True
    Else
        Me.ButtonWeiter.Enabled = False
    End If
End Sub
Das ist möglich. Aber die If-Abfrage brauchst du nicht. Wenn du in Zusatzüberschrift nichts reichschreibst ist es eh ein "Leer"-string
Das ist ja gerade der Sinn der Abfrage: wenn die Zusatzüberschrift nicht leer ist wird nämlich auch ": " zwischen Überschrift und Zusatzüberschrift geschrieben.
Den Rest schau ich mir an wenn ich zuhause bin.
Klingt gut. Hatte übrigens heute auch mitten beim Arbeiten am PC den o.g. Fehler bekommen. Angerufen hat mich da keiner, ich auch niemanden und Outlook war minimiert. Seltsam.
 
Einfach in Outlook [ALT]+[F11] drücken und dort alle Module entfernen (ohne exportieren), die du hinzugefügt hast.
Wenn bei dir Runtimefehler kommen, solltest du das eh' tun und eventuell alles sauber von vorne installieren.

...danke! Kann hier mal jemand posten, welche Module und sonstige Einträge durch das Dingsbums entstehen, resp. wie ein jungfräuliches Verzeichnis des VB aussieht?

thx
 
Status
Für weitere Antworten geschlossen.
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.