Искам да използвам 56K модем за получаване на телефонен номер на този, който се обажда на домашния телефон. Има ли начин да се постигне това с C#?
Как да получите Caller ID в C#?
Отговори (3)
Не всички модеми поддържат идентификация на обаждащия се. А за тези, които го правят, изпълнението варира между производителите.
Идентификационният номер на повикващия се предава през серийните данни, така че ще трябва да използвате TAPI библиотека (или HyperTerminal на Windows, за да го тествате). Идентификационният номер на обаждащия се обикновено се появява между първото и второто позвъняване.
Ще трябва да подадете команда към модема, за да активирате идентификацията на обаждащия се. Обикновено:
AT#CID=1
(orAT+VCID=1
)OK
Проверете документацията за вашия модем.
При входящо повикване модемът ще получи низа за повикване. Обикновено:
RING
След това ще влезе текстът за идентификация на обаждащия се. Ако си спомням правилно, той ще бъде във формата:
NMBR=XXXXXXXXXX
[търся справка. Ще публикувам връзка, когато я намеря]
АКТУАЛИЗАЦИЯ: А, намерих такъв. Вижте тази страница за командите и низовете за свързване за различни модеми:
Как да тествате модем за поддръжка на Caller ID
Възможно е, но има някои неща, които трябва да имате предвид:
- Все още трябва да имате идентификация на обаждащия се, поддържана от вашия оператор/доставчик. Основната POTS линия няма да включва тази информация, освен ако операторът не е свършил допълнителна работа, за да я добави. Така че не можете да направите това, за да избегнете плащането на допълнителна такса за идентификация на обаждащия се.
- Не е вграден в .Net. Ще трябва да извикате основната TAPI библиотека. Никога не съм работил с тази библиотека, така че това е всичко, което мога да ви кажа.
serialPort1.Open(); serialPort1.WriteLine("AT#cid=1" + System.Environment.NewLine); // където serialPort1 е серийният контрол за повече подробности вижте следната връзка: http://www.itworld2.com/frmsCsharp.aspx