Как да получите Caller ID в C#?

Искам да използвам 56K модем за получаване на телефонен номер на този, който се обажда на домашния телефон. Има ли начин да се постигне това с C#?


person zer0w1dthspace    schedule 29.07.2009    source източник
comment
Това е страхотно, просто имайте изскачащ прозорец или нещо подобно всеки път, когато телефонът звъни. Минус: Кой вече има стационарен телефон...   -  person tsilb    schedule 13.05.2010
comment
Трябва да посочите модела на модема. Активирането на Caller ID се различава при различните модеми. Модемите USRobotoics изискват различни AT команди от модемите Conexant.   -  person jww    schedule 08.11.2019


Отговори (3)


Не всички модеми поддържат идентификация на обаждащия се. А за тези, които го правят, изпълнението варира между производителите.

Идентификационният номер на повикващия се предава през серийните данни, така че ще трябва да използвате TAPI библиотека (или HyperTerminal на Windows, за да го тествате). Идентификационният номер на обаждащия се обикновено се появява между първото и второто позвъняване.

Ще трябва да подадете команда към модема, за да активирате идентификацията на обаждащия се. Обикновено:

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

OK

Проверете документацията за вашия модем.

При входящо повикване модемът ще получи низа за повикване. Обикновено:

RING

След това ще влезе текстът за идентификация на обаждащия се. Ако си спомням правилно, той ще бъде във формата:

NMBR=XXXXXXXXXX

[търся справка. Ще публикувам връзка, когато я намеря]

АКТУАЛИЗАЦИЯ: А, намерих такъв. Вижте тази страница за командите и низовете за свързване за различни модеми:

Как да тествате модем за поддръжка на Caller ID

person Robert Cartaino    schedule 29.07.2009
comment
добре, ще го пробвам у дома, ще е много добре, ако намерите препратка. Благодаря. - person zer0w1dthspace; 29.07.2009

Възможно е, но има някои неща, които трябва да имате предвид:

  • Все още трябва да имате идентификация на обаждащия се, поддържана от вашия оператор/доставчик. Основната POTS линия няма да включва тази информация, освен ако операторът не е свършил допълнителна работа, за да я добави. Така че не можете да направите това, за да избегнете плащането на допълнителна такса за идентификация на обаждащия се.
  • Не е вграден в .Net. Ще трябва да извикате основната TAPI библиотека. Никога не съм работил с тази библиотека, така че това е всичко, което мога да ви кажа.
person Joel Coehoorn    schedule 29.07.2009
comment
Сигурен съм, че телефонната ми линия поддържа идентификация на обаждащия се, защото телефонът показва номера на обаждащия се на екрана си. Ще продължа с TAPI, благодаря. - person zer0w1dthspace; 29.07.2009

serialPort1.Open(); serialPort1.WriteLine("AT#cid=1" + System.Environment.NewLine); // където serialPort1 е серийният контрол за повече подробности вижте следната връзка: http://www.itworld2.com/frmsCsharp.aspx

person USA    schedule 30.10.2009
comment
хех, не знаех, че можете да добавите тези низови команди с метода writeline.. tnx (връзката обаче не работи) - person Vasile Surdu; 11.09.2013