【问题标题】:Create a C++ program that processes incoming calls on a phone-line (land-line)创建一个 C++ 程序来处理电话线(陆线)上的来电
【发布时间】:2017-08-17 17:51:30
【问题描述】:

一段时间以来,我一直在折腾我认为很棒的想法:我想编写一个 C++ 电话服务器来处理我在固定电话上的所有来电。我将拥有一个白名单(再也不用担心电话推销员了!),一个黑名单,并且可以使用我的游戏耳机访问我的手机,让我可以在我打电话的时候拨打/接听电话游戏什么的。将来我还想把它连接到一个 gui 上,让它有弹出窗口和其他很酷的功能。

问题是,我不知道从哪里开始。我对 C++ 足够熟悉,但不知道如何用电话线做任何事情。我可以将电话线插入我的计算机,但我不知道如何让我的程序能够使用该连接。有 WinSock2 可以使用我的以太网连接,有没有类似的东西可以用来使用电话线?由于它使用相同的以太网插孔,我想知道是否甚至可以使用 WinSock2 来使用电话线?

我看到了这篇文章,它不是特别有用:stackoverflow link,它指出了双音多频信令。我偶然发现了这个网站:link,但这并不能真正帮助我入门。

所以我想知道,是否有某种图书馆可以让我接入连接到我电脑的电话线?是否有关于电话线的标准以及音调的不同组合意味着什么?这里的任何人都可以帮助我开始吗?我意识到这是一项艰巨的任务,因此任何朝着正确方向的推动都将不胜感激。谢谢。

[更新:] 我找到了这个question,这是朝着正确方向迈出的一步,但我不确定它是否对我有帮助(我需要睡觉,早上会看看)。不过,我确实看到提到了 Microsoft Telephony API,明天我会尝试对此进行更多研究。

【问题讨论】:

  • 这会很困难,因为现在大多数调制解调器不附带语音解码硬件;仅与数据传输硬件有关。如果您有语音调制解调器,请继续,但我认为您不太可能这样做。
  • 您确定电话线“[使用]与您的网络连接相同的以太网插孔”吗?我不确定你住在哪里,但我的电话是 RJ11,我的以太网是 RJ45。请参阅wiki。
  • @Sedate Alien 我只是在谈论我电脑中的端口,我知道它们是不同的线路。
  • “端口”是什么意思?物理插孔(即孔)或其他东西?我家周围的(旧)笔记本电脑上的物理插孔是不同的。
  • 我使用了一个旧的变焦调制解调器外部串行但能够语音;发送和接收原始数据——一些编解码器都依赖于 AT 命令的配置。我想写一个小脚本很容易,或者使用现有的软件,如 vgetty 或 mgetty 和调制解调器。另见linuxtoys.org/answer/answering_machine.html

标签: c++ windows networking phone-call


【解决方案1】:

如果不是绝对需要使用 MS 产品,您也可以考虑在Asterisk 尝试一下。这是一个开源 PBX(在软件中),允许在 Linux、Windows(模拟)和 Mac 上进行开发。在我工作的公司,我们用它来实现小规模的交换,大约 100 条线左右。它还可以与 VoIP 很好地连接,并允许使用大量协议。我用 C++ 开发了实时处理语音包的脚本和程序,到目前为止,我的经验一直很好。至于您所说的阻止电话推销员等的用例,这将是一个非常合适的选择。查看更多详细信息here。

【讨论】:

    【解决方案2】:

    在做了更多研究后,一个链接指向另一个链接,并提出了新的搜索词,我偶然发现了这个网站,它看起来可以让我开始使用 C++ 中的 Windows Telephony API:link。此链接包含开源 c++ 示例,展示了如何完成此问题所要求的基础知识,我只需要测试它们是否仍然有效。

    这只是我研究的开始,所以我会及时向您发布任何其他发现。如果其他人在这方面知识渊博,请随时向我提供有关我想要完成的工作的信息。

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 2013-02-08
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      相关资源
      最近更新 更多