Outlook Wählhilfe (Makro) ohne Box zu modifizieren

Status
Für weitere Antworten geschlossen.
Hallo,

Wenn die SIP-Telefone (Was auch immer das ist VoIP über wLAN? oder was anderes?) auf einer anderen Seite zu finden sind, dann müsstest du mir mal mitteilen auf welcher. Ich hab keine derartigen Telefone und ich weiß auch nicht, ob meine 7170 das überhaupt unterstützt.

Bei dem Wählen wird die Vorwahl aus der Telefonnummer durch ein 0 ersetzt. Oder was meintest du?
QUOTE]

Die SIP Telefone sind jetzt unter diesem Link zu finden
Code:
http://fritz.box/cgi-bin/webcm?getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Apagename=siplist&var%3Aerrorpagename=siplist&var%3Amenu=fon&var%3Apagemaster=&time%3Asettings%2Ftime=1241201092%2C-120&var%3Aroute=&var%3Aisnew=0

Das Ergebniss der Seite sende ich Dir per PM. (Uuups merke gerade das wir da eine anderen Weg finden müssen, nur 5000 Zeichen erlaubt)

Bei den Vorwahlnummern meine ich, das man vor dem 0 einsetzten überprüfen sollte was ursprünglich geschrieben war. Wenn Du bei einer Rufnummer die +90 (212) 123456 lautet erst die Sonderzeichen entfernst um dann festzustellen das schon eine 0 zwischen Landesvorwahl und Ortsnetz vorhanden ist. Genauer gesagt in der Funktion "NurZiffern"
Code:
    nurZiffern = ""
    TelNr = UCase(TelNr)
    Vorwahl = TelNrTeile(TelNr)
    pos = InStr(1, Vorwahl, ";", vbTextCompare) + 1
    Vorwahl = Mid(Vorwahl, pos, InStr(pos, Vorwahl, ";", vbTextCompare) - pos) [COLOR="Red"]Bis hier ist die richtige Vorwahle 0212 ermittelt[/COLOR]
    ' Nur gültige Zeichen in der Nummer erlauben!
    For i = 1 To Len(TelNr)[COLOR="red"]und hier wird die Nummer dann verhackstückelt und Vorwahl nicht übernommen da ja die Klammer ignoriert wird, daher am Ene kommt 0090212123456 raus statt 0090[B]0[/B]212123456[/COLOR]
        c = Mid(TelNr, i, 1)
        Select Case c                ' Einzelnes Char auswerten
        ' Zahlen und Steuerzeichen direkt übertragen.
        Case "0" To "9", "*", "#"
            nurZiffern = nurZiffern + c

getestet im Direktbereich mit ? nurZiffern("+90 (212) 123456","0049")

WireShark werde ich mal ausprobieren, vielleicht hilft das ja mit den nicht ansteuerbaren DECTs weiter.

Schönen 1.Mai

Gruß FP
 
Zuletzt bearbeitet:
Also ich nutze kein Analog, definitiv nicht, und bei mir funktioniert die interne Fax Funktion seit gut 1 1/2 Jahren
Hmmm, manchmal sieht man den Wald vor lauter Bäumen nicht mehr. :lamer: Du hast natürlich Recht. Klappt prima.

Gruß
J.
 
Session-IDs im Anrufmonitor?

Ist das FritzBoxDingsbums reif für die aktuelle Vorschau auf die offizielle Firmware der 7270, bzw. lässt sich das leicht machen?

Anmeldung an der Benutzeroberfläche schlägt fehl trotz korrekter Eingabe des FRITZ!Box-Kennwortes?

Ursache:

Die verbesserten Sicherheitsfunktionen, die in dieser FRITZ!Box Firmware enthalten sind, können unter ungünstigen Umständen dazu führen, dass die Anmeldung an der Benutzeroberfläche der FRITZ!Box nicht mehr oder nur noch eingeschränkt möglich ist. Greift ein im Hintergrund laufendes Programm wie z.B. ein Anrufmonitor ohne gültige Session-ID permanent auf die FRITZ!Box zu, beendet dieser Zugriff eine aktive Sitzung. In der Praxis äußert sich das darin, dass die FRITZ!Box regelmäßig ein erneutes Login fordert.

Lösung:
Stellen Sie sicher, dass alle Programme, die auf die FRITZ!Box zugreifen, in aktueller Version vorliegen und Session-IDs unterstützen. Veraltete Programme müssen ggf. deaktiviert werden, bis eine neue Version vorliegt.
 
@Kruemelino:
Wenn ich in Outlook eine Email selektiere und dann auf Wählen gehe werden alle Kontakte durchsucht und die Nummern ermittelt. Ich habe diese Suche angepasst und optimiert, so dass dies deutlich schneller von statten geht (Stichwort Items.Find).

Ich habe ca. 1000 Kontakte (Firmennetzwerk) drinnen. In der aktuellen Version dauerte es ca. 5 sek bis der Kontakt gefunden wurde. Nach der Umstellung erscheint der Dialog ohne Verzögerung.

Hast Du in der neuen Version die Stelle bereits optimiert? Falls nein, würde ich dir bei Interesse gerne mein Coding zur Verfügung stellen.
 
Ist die Anleitung im ersten Beitrag noch aktuell?
 
nein habe das noch nicht angepasst, bitte schicke es mir zu. Danke

Also ich habe die Optimierung aktuell nur für die Emailadressen-Kontakt-Suche implementiert. Deshalb habe ich dies als neue Funktion FindeKontakt2 deklariert:

Schritt 1: Folgenden Code im Modul FritzBox am Ende anhängen:
Code:
Function FindeKontakt2(TelNr As String, Absender As String, LandesVW As String, KontaktID As String, StoreID As String, Ordner As Object) As Boolean
    ' sucht in der Kontaktdatenbank nach der TelNr/Email (aktuell nur Email)
    ' Parameter:  TelNr (String):      Telefonnummer des zu Suchenden
    '             Absender (String):   AbsenderEmailadresse, des Suchenden
    '             LandesVW (String):   eigene Landesvorwahl
    '             KontaktID (String):  ID der Kontaktdaten falls was gefunden wurde (nur Rückgabewert)
    '             Ordner (Object):     der zu durchsuchende Kontaktordner (für die rekursive Suche)
    ' Rückgabewert (Boolean):          'true' wenn was gefunden wurde

    Dim gefunden   As Boolean      'was gefunden?
    Dim objContact As ContactItem  'gefundener Kontakt
    Dim objOrdner  As MAPIFolder   'aktueller Unterordner
         
    gefunden = False
    If Ordner.Class = olfolder And Ordner.DefaultItemType = olContactItem Then
        
        ' Items initialisieren
        Set objContact = Ordner.items.Find("[Email1Address] = """ & Absender & """ OR [Email2Address] = """ & Absender & """ OR [Email3Address] = """ & Absender & """")
        If Not TypeName(objContact) = "Nothing" Then
            gefunden = True
            KontaktID = objContact.EntryID
            StoreID = objContact.Parent.StoreID
            'MsgBox "Name: " & objContact.LastNameAndFirstName & vbCr & "Wert: " & objContact.Email1DisplayName
        End If
            
        If gefunden = False Then
            'Unterordner durchsuchen
            For Each objOrdner In Ordner.Folders
                gefunden = FindeKontakt2(TelNr, Absender, LandesVW, KontaktID, StoreID, objOrdner)
                If gefunden = True Then
                    Exit For
                End If
            Next
        End If
    End If

    FindeKontakt2 = gefunden

End Function '(FindeKontakt2)

Schritt 2: Um die neue Funktion einzuhängen muss folgende Zeile in der "Sub WählboxStart()" (auch Modul FritzBox) angepasst werden:
Code:
If FindeKontakt("", Absender, "", KontaktID, StoreID, olfolder) Then
--> If FindeKontakt[color=Red]2[/color]("", Absender, "", KontaktID, StoreID, olfolder) Then

Tipp: Vor und nach dem Ändern einfach mal die Zeit für die Suche stoppen. Der Unterschied war bei mir gewaltig!

Wenn ich Zeit hab, schau ich mir mal noch die Nummern-Kontakt-Suche an.
Falls etwas unklar ist oder ich einen Fehler übersehen habe, gib mir Bescheid. Danke!
 
danke soweit. Bei emails funktioniert das prima. Nur bei Telefonnummern sehe ich große Probleme. Diese Item.Find beachtet die Nummernformatierung nicht. Damit fällt es für denjenigen (wie ich), der die Telefonnummern formatiert hat, raus. Es sei denn wir haben noch eine Idee dazu.

Edit: Das führt sicher auch zu Problemen, bei der Groß und Kleinschreibung der Emails.
 
Zuletzt bearbeitet:
Hi,

also die FindeKontakt2 funktioniert aktuell nur für den Email Adressen. Die zu ersetzende Zeile in meinem obigen Beispiel (FindeKontakt("", Absender, ""...) gibt es nur einmal im Quellcode. Die Telefonnummern-Kontakt-Suche habe ich wie gesagt noch nicht angepasst.

Eine unterschiedliche Groß- und Kleinschreibung der Emailadresse funktionierte in meinen Tests einwandfrei. Hast es bei dir einen Fehler ergeben? Falls ja, könntest Du mir eine Beispiel Email-Adresse nennen bei der es nicht funktionierte?
 
Hallo,

nein ich habe es nochmal probiert. Die Email-Adresssuche funktioniert mit Groß- und Kleinschreibung. Die Telefonnummernsuche ist mit den Item.Find fast unmöglich umzusetzten. Der Anrufmonitor bekommt die Telefonnummer mit 0123456789. In den Kontakten steht sie mit +49 (1234) 56789.
Auf deutsch es wird nicht gefunden. Ich habe mir da aber schonwas anderes überlegt: Eine Indizierung der Kontaktdaten (später auch rws). Es funktioniert bei mir ganz gut. Dazu Anhang.
Die Indizierung funktioniert so:
Eine Funktion durchsucht alle Kontakte nach Telefonnummern. Wenn sie fündig wurde, speichert sie diese in eine seperate ini-Datei mit den zugehörigen Adressdaten des ContaktItems.
Wenn ein Anruf reinkommt wird in dem Index als erstes die Nimmer gesucht. Je nach Erfolg wird weiter fortgefahren. Das spart bei großen Adressbüchern sicher Zeit.

lg Gert
 
Hi Gert,

dies ist eine andere Option. Wie findest Du diese Variation:
Die Indizierung wandelt die aktuellen Nummern der Kontakte in ein durchsuchbares Format um. Diese Nummern werden direkt als neue Attribute/Merkmale an den Kontakten im Outlook gespeichert. Wenn ein Anruf reinkommt, dann wird mit Hilfe von .Find oder .Restrict der Kontakt gesucht.

Vorteile:
- Die Nummern werden direkt im Outlook gespeichert.
- Die Suche funktioniert mit Outlook Boardmitteln. Kein lästiges Dateihandling.
- Performante Suche im Outlook möglich. Vermutlich schneller als die Dateisuche.
- Implementierungsaufwand dürfte geringer sind.
- Beim Reindexen werden nur die Kontakte neu geindext, die sich seit dem letzten Durchlauf geändert haben. (Im Outlook hat jeder Kontakt einen Zeitstempel. Beim Indizieren speichern wir das Datum/Zeit und können beim nächsten Durchlauf dies als Filter benutzen)

Nachteil:
- eventuelles Cleanup der Kontakte wenn jemand dasTool nicht mehr benutzen möchte. Aber das Problem existiert ja bei obiger Lösung mit Löschung der Indexdatei auch ;-)

Viele Grüße,
SagHalt
 
Hallo,

ja deine Variante hat auch gewissen Reiz. Vorallem, weil man die Boardmittel nutzt. An welches Kontakt-Attribut hattest du gedacht? Das muss ich mir mal durch den Kopf gehen lassen.
Viele meiner gestern geschriebener Funktionen können unter umständen noch verwendet werden. Kleine Anpassungen wäre nötig.
Die Indizierung der RWS würde ich trotzdem gerne außerhalb von Outlook speichern. Diese Daten haben nichts darin zu suchen.

Ich geh erstmal frühstücken.

Gert
 
Man kann ja neue benutzerdefinierte Felder zu jedem Kontakt anlegen.

Was ich jetzt nicht ganz verstehe: Was für Daten sind denn in der Indizierung der RWS enthalten? Falls es nur die Daten der vorhandenen Kontakte sind, würde man keine zusätzliche Indizierung der Telefonnr. benötigen, da .restrict oder .find hochperformant sind.
 
Da hier einige ungeduldig auf eine Änderung der Anmelderoutine für die 7270 warten, brauche ich erstmal deren Hilfe. Da ich selber (wie schon oft mitgeteilt) keine 7270 habe, kann ich nur unterstützend arbeiten.

Im Anhang findet sich ein kleines Tool, welches sich über die Session-IDs versucht einzuloggen. Wenn alles klappt, dann sollte die Session-ID irgendwo im Quelltext stehen.

Hoffentlich klappt das auch

Gruß Kruemel
 
Zuletzt bearbeitet:
Hi Gert - hab dir E-Mail geschickt.
 
Challenge-ID ok, richtig zusammengesetzter Response und SID im Quelltext :)
 
Also ich habe beim ausführen den selben Fehler welchen ich dir schon geschickt habe.
 
Status
Für weitere Antworten geschlossen.

Zurzeit aktive Besucher

Statistik des Forums

Themen
245,762
Beiträge
2,239,376
Mitglieder
372,973
Neuestes Mitglied
DeSpo_0108
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.