Łukasz Sokólski

Łukasz Sokólski Programista .NET, C#

Temat: Program typu Dialer ID

Witam ponownie!

No właśnie Caller ID. Czy ktoś z Was próbował z tym walczyć? Potrzebuję naklepać aplikację, która pokaże nr telefonu dzwoniącego. Co z tym numerem będzie się działo później to już nie ważne. Ważne, że do komputera jest podpięta Nokia 6230i (zakupiona do celów deweloperskich;).
Próbowałem wykorzystać bibliotekę GSMComm, ale co najwyżej mogę z aplikacji wysłać sms, pobawić się bazą smsów, bądź kontaktów, więc tutaj odpada. Działa to na zasadzie "tam", a ja szukam drogi "spowrotem".
Znalazłem info, żeby wykorzystać TAPI i aktualnie z tym walczę. Być może moje starania spełzną na niczym, ponieważ nie znalazłem na 100% potwierdzenia, że TAPI w tym przypadku spełni oczekiwania. Walczę dalej:)

Tutaj moje pytanie. Korzystaliście kiedyś z TAPI, bądź mieliście podobny problem? W jakim kierunku radzicie się kierować?
Tomasz M.

Tomasz M. never go full
retard!

Temat: Program typu Dialer ID

Wujek Google zaproponował coś takiego, może pomoże...

http://www.exceletel.com/products/TeleTools/SampleProg...
http://www.julmar.com/blog/mark/PermaLink,guid,d503a16...Tomasz M. edytował(a) ten post dnia 13.09.10 o godzinie 08:58
Dariusz Sobala

Dariusz Sobala Black House sp. z
o.o.

Temat: Program typu Dialer ID

Witam

Ja znalazłem coś takiego...
Trzeba porównać, czy w zestawie at 6230 są te komendy

Pozdrawiam

CLS
OPEN "COM1:9600,N,8,1" FOR RANDOM AS #1
PRINT #1, "+++" ' tell modem "here comes AT commands"
PRINT #1, "AT#CID=1" ' tell modem to allow Caller ID
PRINT #1, "ATS0=3" ' tell modem to answer on third ring
DO
IF NOT EOF(1) THEN
PRINT INPUT$(1,#1)
END IF
LOOP UNTIL LEN(INKEY$)
CLOSE
END

Gdy ktoś dzwoni:
RING

DATE = 0922
TIME = 1350
NMBR = 5555555
NAME = THECALLERSNAME

RING
Łukasz Sokólski

Łukasz Sokólski Programista .NET, C#

Temat: Program typu Dialer ID

@Tomasz Maciąg
Pierwszy link dotyczy powiadamiania przez JS, więc odpada (można się pokusić o przeróbkę kodu, chyba), [poprawka, jest sample w VB.NET]
Drugi link trafny, widać idąc w stronę TAPI mogę (chyba) osiągnąć sukces, szczególnie zainteresowała mnie linia:
tapi.TE_CALLNOTIFICATION += delegate(object sender, TapiCallNotificationEventArgs e)
Jak widać zdarzenie TapiCellNotification powinno dać odpowiedź przez:
e.Call.ToString();
Ale niestety teraz tego nie sprawdzę, ponieważ developerska nokia się rozładowała :), wieczorem dam znać jak poszły testy.

@Dariusz Sobala:
Sprawdzam liste komend dla nokii

Dzięki za odpowiedzi.

Edit:
Całą noc walczyłem z TAPI, po czym wyrzuciłem w diabły :)
z TAPI mogłem co najwyżej odczytać nazwę urządzenia: "Nokia...", i wyświetlić liczbę aktualnych połączeń (jeśli aktualnie ktoś dzwoni to liczba = 1).
Więc TAPI pożegnałem, na rzecz komend AT i nasłuchiwania portu COM. Wieczorem napiszę jak przebiegły testy (nokia nie przeszła stress-testów i wyładowała się ;)Łukasz Sokólski edytował(a) ten post dnia 14.09.10 o godzinie 13:26
Łukasz Sokólski

Łukasz Sokólski Programista .NET, C#

Temat: Program typu Dialer ID

Jak mówiłem poniżej mały fragment, może się komuś przyda:

 
private SerialPort phonePort = new SerialPort();
...
//metoda nasluchujaca:
private void Nasluchuj()
{
phonePort.PortName = "4"; //co ptawda fon podpięty jest na usb ale widoczny w systemie na porcie czwartym (system->urzadzenia->modem->tutaj info jaki port!
phonePort.BaudRate = 9600;
phonePort.Parity = Parity.None;
phonePort.StopBits = StopBits.One;
phonePort.DataBits = 8;
phonePort.Handshake = Handshake.None;
try
{
if(phonePort.IsOpen)
phonePort.Close();
else
phonePort.Open();
phonePort.DataReceived += new SerialDataReceivedEventHandler(phonePort_DataReceived);//tym bedziemy zbierać wszelkie naleciałości wysyłane przez telefon
phonePort.Write("AT" + Convert.ToChar(13)); //!Ważne! - taki mały test, w odpowiedzi fon powinien zwrócić "OK"
phonePort.Write(AT+CLIP=1 + Convert.ToChar(13)); //!Bardzo, ale to bardzo ważne, bez przełączenia fona na Clip=1 telefon nie zwraca nr dzwoniącego, tylko wiadomość "RING" - sygnał o połączeniu
}
}
...
//nie zapominajmy o:
void phonePort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
MessageBox.Show(sp.ReadExisting());
//tutaj w pierwszej kolejności będzie komunikat "RING", dopiero później coś w rodzaju: "+CLIP: "503xxxxxx" ,129" gdzie 503xxxxxx to oczywiście poszukiwany nr telefonu :)
}


Mam nadzieję, że ktoś skorzysta, przyznam, że męczyłem się z tym kilka dni, a wszystko przez to, że nie miałem w telefonie przełączonego CLIP na 1 :)

Pozdrawiam!
Łukasz SokólskiŁukasz Sokólski edytował(a) ten post dnia 20.09.10 o godzinie 19:19
Dariusz Sobala

Dariusz Sobala Black House sp. z
o.o.

Temat: Program typu Dialer ID

Witam
Panie Łukaszu za informację o wynikach pracy plus.
Podoba mi się takie podejście do sprawy :)

Pozdrawiam ds
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Program typu Dialer ID

Stworzyłem jakiś czas temu aplikacje typu CallerID z użyciem telefonu Nokia.
Wykorzystałem do tego komendy AT podobnie jak ty, ale trzeba było trochę posiedzieć. Polecam specyfikację komend AT do Nokii, bo niektóre to rozszerzenia tych standardowych.

Następna dyskusja:

Ciekawy program dla program...




Wyślij zaproszenie do