Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TAPI - lineMakeCall - Format der Telefonnummer (https://www.delphipraxis.net/175161-tapi-linemakecall-format-der-telefonnummer.html)

baumina 3. Jun 2013 09:23

TAPI - lineMakeCall - Format der Telefonnummer
 
Ich habe ein Adress-Programm aus dem man via TAPI (lineMakeCall) einen Teilnehmer anrufen kann. Früher hing ein Modem am Rechner, dem ich die Rufnummer ohne Sonderzeichen und Leerzeichen (+ wurde durch 00 ersetzt) übergeben konnte (z.B. 0049301234567). Da sich die Zeiten ändern, und die heutigen Telefonanlagen einen TAPI-Treiber zur Verfügung stellen, habe ich mein Programm dementsprechend auch erneuern müssen. Klappt auch alles prima, solange in der Telefonnummer keine Ländervorwahl ist. Wenn ich mit der Wählhilfe von Windows 7 (dialer.exe) rumspiele (die ja auch TAPI verwendet) verzweifel ich so langsam. Das Rufnummernformat, wie es die Handys meist verwenden (DIN 5008) mag TAPI nicht, da die Windows-TAPI das Microsoftspezifische kanonische Format verwendet.

Beispiele:
aus "+49 30 1234567" wird "30 1234567" Nicht OK
aus "0049 30 1234567" wird "0049 30 1234567" mag meine Telefonanlage nicht
aus "0049301234567" wird "0049301234567" mag meine Telefonanlage nicht
aus "+49301234567" mag die Wählhilfe nicht
aus "030 1234567" wird "030 1234567" OK
aus "0301234567" wird "0301234567" OK
aus "+43 30 1234567" wird "00 43 30 1234567" OK (da Ausland)
aus "0043301234567" wird "0043301234567" OK (da Ausland)
aus "+49 (30) 1234567" wird "0 30 1234567" OK
aus "+49 (030) 1234567" wird "0 30 1234567" OK
usw.

Da ich gelesen habe, dass viele Handys mit dem MS kanonischen Format nicht auskommen, möchte ich ungern dieses in meinem Programm verwenden (ich exportiere meine Adressen ins Exchange und das wiederum benutzen mehrere Handys).

Nun zu meiner Frage an euch:
Wie würdet ihr die Rufnummern automatisch fürs TAPI umformatieren, dass es sowohl fürs Inland als auch fürs Ausland passt (leider sind Länderkennzahlen und Ortsvorwahlen unterschiedlich lang)?
Wie habt ihr das Problem gelöst?

p80286 3. Jun 2013 11:48

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Code:
aus "+49 (30) 1234567" wird "0 30 1234567" OK
aus "+49 (030) 1234567" wird "0 30 1234567" OK
So da sollte es auch egal sein ob Du +43,+49 oder was auch immer als Ländervorwahl hast.
Viel schwerer ist es den Datenerfassungskräften klar zu machen, daß eine Betrieblich Vorwahl auch vollständig einzugeben ist
also
+49(221)12345-123 statt 123

Gruß
K-H

generic 3. Jun 2013 12:50

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Du nimmst die Vorwahliste der Bundesnetzagentur und parst die Strings.

http://www.bundesnetzagentur.de/Shar...s_ONB.zip.html

baumina 3. Jun 2013 13:22

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Zitat:

Zitat von p80286 (Beitrag 1217358)
Code:
aus "+49 (30) 1234567" wird "0 30 1234567" OK
aus "+49 (030) 1234567" wird "0 30 1234567" OK
So da sollte es auch egal sein ob Du +43,+49 oder was auch immer als Ländervorwahl hast.
Viel schwerer ist es den Datenerfassungskräften klar zu machen, daß eine Betrieblich Vorwahl auch vollständig einzugeben ist
also
+49(221)12345-123 statt 123

Gruß
K-H

Ja, das kanonische Format von Microsoft ( +49 (030) 12345-67 ) funktioniert für TAPI prima, aber wie gesagt, ich möchte die Daten so nicht in der Datenbank haben, weil damit wiederum nicht alle Handys zurecht kommen.

baumina 3. Jun 2013 13:29

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Zitat:

Zitat von generic (Beitrag 1217365)
Du nimmst die Vorwahliste der Bundesnetzagentur und parst die Strings.

http://www.bundesnetzagentur.de/Shar...s_ONB.zip.html

Ja, sieht so aus, dass ich für Inland-Rufnummern eine andere Abhandlung brauche als für Ausland-Rufnummern.

p80286 3. Jun 2013 16:02

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Zitat:

Zitat von baumina (Beitrag 1217370)
Ja, das kanonische Format von Microsoft ( +49 (030) 12345-67 ) funktioniert für TAPI prima, aber wie gesagt, ich möchte die Daten so nicht in der Datenbank haben, weil damit wiederum nicht alle Handys zurecht kommen.

Das hatte ich wohl überlesen, aber warum? ggf. fütterst Du das Handy mit dem Ergebnis eines entsprechenden Selects.
Zitat:

Zitat von baumina (Beitrag 1217372)
Ja, sieht so aus, dass ich für Inland-Rufnummern eine andere Abhandlung brauche als für Ausland-Rufnummern.

Inland und Ausland sind ja sehr relative Begriffe geworden. Du mußt nur einmal aus Belgien auf die deutsche Datenbank zugreifen, dann benötigst Du ganz schnell die nationale Vorwahl.

Gruß
K-H

DeddyH 4. Jun 2013 10:33

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Wenn man die Nummer in verschiedene Teile aufteilt (Landeskennzahl, Ortsvorwahl, Hauptnummer, Durchwahl), dann könnte man daraus doch je nach Anforderung das entsprechende Format generieren, oder täusche ich mich?

p80286 4. Jun 2013 12:45

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Was meinst Du mit "Aufteilen"?
das MS-Format bietet ja eigentlich die Möglichkeit dazu (Stringverarbeitung).
Oder schwebt Dir für jeden Bestandteil ein seperates Feld, oder noch besser eine seperate Tabelle vor?

Gruß
K-H

DeddyH 4. Jun 2013 12:56

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Ich dachte da an eine Telefontabelle, bestehend aus den beschriebenen Feldern.

p80286 4. Jun 2013 14:44

AW: TAPI - lineMakeCall - Format der Telefonnummer
 
Bleibt letztlich die Frage wie "gewählt" werden soll/kann
  • 00492211234567
  • +492211234567
  • 02211234567

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz