Como obter identificação de chamadas em C#?
-
05-07-2019 - |
Pergunta
Olá, eu quero usar o modem 56k para obter o número de telefone de quem liga para o telefone doméstico, existe uma maneira de conseguir isso com C#?
Solução
Nem todos os modems suportam ID do chamador. E para aqueles que fazem, a implementação varia entre os fabricantes.
Lá o identificador de chamadas é passado através dos dados seriais, para que você tenha que usar o Biblioteca Tapi (ou hiperterminal do Windows para testá -lo). O número de identificação do chamador normalmente aparece entre o primeiro e o segundo anel.
Você precisará emitir um comando para o modem para ativar o ID do chamador. Tipicamente:
AT#CID=1
(ouAT+VCID=1
)OK
Verifique a documentação do seu modem.
Quando uma chamada chegar, o modem receberá a string de chamada. Tipicamente:
RING
Então o texto do identificador de chamadas entrará. Se eu estiver lembrando corretamente, estará no formulário:
NMBR=XXXXXXXXXX
Estou procurando uma referência. Vou postar um link quando puder encontrá -lo
ATUALIZAR: Ah, encontrado um. Confira esta página para obter os comandos e strings de conexão para vários modems:
Como testar um modem para suporte de identificação de chamadas
Outras dicas
É possível, mas há algumas coisas sobre isso que você deve observar:
- Você ainda precisa ter o ID do chamador suportado pela sua operadora/provedor. Uma linha básica de POTS não incluirá essas informações, a menos que a transportadora tenha feito algum trabalho extra para adicioná -las. Portanto, você não pode fazer isso para evitar pagar uma taxa de identificação de chamadas extra.
- Não está embutido no .NET. Você terá que ligar para o básico Tapi biblioteca. Eu nunca trabalhei com essa biblioteca, então isso é o máximo que posso lhe dizer.
serialport1.open (); serialport1.writeLine ("em#cid = 1" + System.environment.newline); // onde serialport1 é o controle serial para obter mais detalhes, consulte o link seguinte: http://www.itworld2.com/frmscsharp.aspx