Как получить идентификатор вызывающего абонента в С#?

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


person zer0w1dthspace    schedule 29.07.2009    source источник
comment
Это довольно круто, просто всплывающее окно или что-то в этом роде всякий раз, когда звонит телефон. Недостаток: у кого больше стационарный телефон...   -  person tsilb    schedule 13.05.2010
comment
Вы должны указать модель модема. Включение идентификатора вызывающего абонента различается в зависимости от модема. Для модемов USRobotoics требуются другие AT-команды, чем для модемов Conexant.   -  person jww    schedule 08.11.2019


Ответы (3)


Не все модемы поддерживают определитель номера. А для тех, кто это делает, реализация зависит от производителя.

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

Вам нужно будет дать команду модему, чтобы активировать определитель номера. Обычно:

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

OK

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

При поступлении вызова модем получает строку вызова. Обычно:

RING

Затем придет текст идентификатора вызывающего абонента. Если я правильно помню, он будет в виде:

NMBR=XXXXXXXXXX

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

ОБНОВЛЕНИЕ: А, нашел. На этой странице вы найдете команды и строки подключения для различных модемов:

Как протестировать модем для поддержки определителя номера

person Robert Cartaino    schedule 29.07.2009
comment
хорошо, я попробую это дома, будет очень хорошо, если вы найдете ссылку. Спасибо. - person zer0w1dthspace; 29.07.2009

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

  • Вам по-прежнему необходимо иметь идентификатор вызывающего абонента, поддерживаемый вашим оператором связи/провайдером. Базовая линия POTS не будет включать эту информацию, если только оператор не проделал дополнительную работу по ее добавлению. Таким образом, вы не можете сделать это, чтобы не платить дополнительную плату за определение номера вызывающего абонента.
  • Он не встроен в .Net. Вам придется вызвать базовую библиотеку TAPI. Сам я никогда не работал с этой библиотекой, так что это все, что я могу вам сказать.
person Joel Coehoorn    schedule 29.07.2009
comment
Я уверен, что моя телефонная линия поддерживает идентификатор вызывающего абонента, потому что телефон показывает номер вызывающего абонента на экране. Я продолжу работу с ТАПИ, спасибо. - person zer0w1dthspace; 29.07.2009

серийныйПорт1.Открыть(); 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