2009-07-29 21 views
9

Witam Chcę używać modemu 56K do uzyskania numeru telefonu, kto dzwoni do telefonu domowego, czy jest sposób na osiągnięcie tego przy pomocy C#?Jak uzyskać ID dzwoniącego w języku C#?

+0

Czy ktoś z przedmiotową wiedzą powinien ponownie zadać to pytanie? –

+1

To niesamowite, po prostu wyskakuj okienek lub coś, co dzwoni telefon. Minus: Kto już ma telefon stacjonarny ... – tsilb

Odpowiedz

17

Nie wszystkie modemy obsługują ID dzwoniącego. Dla tych, którzy to robią, implementacja różni się w zależności od producenta.

Tam ID dzwoniącego jest przekazywany przez dane szeregowe, więc będziesz musiał użyć TAPI library (lub HyperTerminal Windowsa, aby go przetestować). Numer identyfikacyjny dzwoniącego zwykle pojawia się między pierwszym a drugim dzwonkiem.

Będziesz musiał wydać komendę modemu, aby aktywować ID dzwoniącego. Zazwyczaj:

AT#CID=1 (lub AT+VCID=1)

OK

Sprawdź w dokumentacji modemu.

Po nadejściu połączenia modem odbierze ciąg połączenia. Zazwyczaj.

RING

Następnie tekst ID dzwoniącego przyjdzie Jeśli jestem pamiętając poprawnie, to będzie w formie:

NMBR=XXXXXXXXXX

[Szukam referencji. Opublikuję link, gdy go znajdę]

UPDATE: Ah, znalazłem jeden. Sprawdź tę stronę do poleceń i ciągów połączenia dla różnych modemów:

How to Test a Modem for Caller ID Support

+0

ok, spróbuję go w domu, będzie bardzo dobrze, jeśli znajdziesz referencję. Dzięki. – zer0w1dthspace

5

Jest to możliwe, ale jest kilka rzeczy o tym należy pamiętać:

  • Nadal mieć identyfikator rozmówcy obsługiwane przez operatora/dostawcy. Podstawowa linia POTS nie będzie zawierać tych informacji, chyba że przewoźnik wykonał dodatkową pracę, aby go dodać. Nie możesz tego zrobić, aby uniknąć płacenia dodatkowej opłaty za identyfikację dzwoniącego.
  • Nie jest wbudowany w .Net. Będziesz musiał zadzwonić do podstawowej biblioteki TAPI. Nigdy nie pracowałem z tą biblioteką sam, więc to tyle, ile mogę powiedzieć.
+0

Jestem pewna, że ​​moja linia telefoniczna obsługuje ID dzwoniącego, ponieważ telefon wyświetla numer dzwoniącego na ekranie. Będę kontynuował z TAPI, dzięki. – zer0w1dthspace

3

serialPort1.Open(); serialPort1.WriteLine ("AT # cid = 1" + System.Environment.NewLine); // gdzie serialPort1 jest numerem seryjnym , aby uzyskać więcej szczegółów, patrz następujący link: http://www.itworld2.com/frmsCsharp.aspx

+0

heh, nie wiedziałem, że możesz dodać te polecenia łańcuchów za pomocą metody writeline .. tnx (link nie działa) –

Powiązane problemy