2009-07-29 2 views
9

Привет, я хочу использовать модем 56K для получения номера телефона, который вызывает домашний телефон, есть ли способ достичь этого с помощью C#?Как получить идентификатор вызывающего абонента в C#?

+0

Может ли кто-нибудь с предметными знаниями ответить на этот вопрос? –

+1

Это очень здорово, просто всплывающее окно или что-то всякий раз, когда звонит телефон. Даунсайд: у кого есть стационарная связь ... – tsilb

ответ

17

Не все модемы поддерживают идентификатор вызывающего абонента. И для тех, кто это делает, реализация варьируется между производителями.

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

Вам необходимо будет отправить команду модему для активации идентификатора вызывающего абонента. Как правило:

AT#CID=1 (или AT+VCID=1)

OK

Проверьте документацию для вашего модема.

При поступлении входящего вызова модем получит строку вызова. Как правило:.

RING

Затем АОН текст придет в случае, если я правильно вспомнить, то это будет в форме:

NMBR=XXXXXXXXXX

[Я ищу ссылку. Я отправлю ссылку, когда найду его]

UPDATE: Ах, нашел один. Проверьте эту страницу для команд и строк соединения для различных модемов:

How to Test a Modem for Caller ID Support

+0

хорошо, я попробую его дома, это будет очень хорошо, если вы найдете ссылку. Спасибо. – zer0w1dthspace

5

Это возможно, но есть некоторые вещи об этом следует иметь в виду:

  • Вы все еще должны иметь идентификатор вызывающего абонента поддерживается несущей/поставщика. Основная линия POTS не будет включать эту информацию, если оператор не выполнил дополнительную работу, чтобы добавить ее. Таким образом, вы не можете сделать это, чтобы не платить дополнительную плату идентификатора звонящего.
  • Он не встроен в .Net. Вам нужно будет позвонить в основную библиотеку TAPI. Я никогда не работал с этой библиотекой, так что это насколько я могу вам рассказать.
+0

Я уверен, что моя телефонная линия поддерживает идентификатор вызывающего абонента, потому что на экране телефона отображается номер вызывающего абонента. Я продолжу с TAPI, спасибо. – zer0w1dthspace

3

serialPort1.Open(); serialPort1.WriteLine ("AT # cid = 1" + System.Environment.NewLine); // где serialPort1 является последовательным управлением для получения дополнительной информации см. следующую ссылку: http://www.itworld2.com/frmsCsharp.aspx

+0

heh, не знал, что вы можете добавить эти команды строк с помощью метода writeline. Tnx (ссылка не работает) –

Смежные вопросы