如何在Cocoa应用程序中读取来电显示信息?

如何在Cocoa应用程序中读取来电显示信息?,cocoa,telephony,phone-call,modem,Cocoa,Telephony,Phone Call,Modem,具体来说,我有一个苹果USB调制解调器,上面说它支持来电显示,我希望我的应用程序能够知道什么时候来电以及谁的来电。在未来,我可能会添加拨号功能等,但本末倒置。来电显示是第一站 也就是说,我不敢相信这已经被证明是如此之好,以至于在任何地方都能找到一个单一的例子(我已经用谷歌搜索出了其中的垃圾!),但是有人能告诉我如何在Mac应用程序中进行基本的来电显示检测吗?我更喜欢可可,但如果必须的话,我愿意用碳 现在我不是在寻找一个完整的关于电话API的例子,尽管再次强调,如果有必要的话,我会走这条路,但我甚

具体来说,我有一个苹果USB调制解调器,上面说它支持来电显示,我希望我的应用程序能够知道什么时候来电以及谁的来电。在未来,我可能会添加拨号功能等,但本末倒置。来电显示是第一站

也就是说,我不敢相信这已经被证明是如此之好,以至于在任何地方都能找到一个单一的例子(我已经用谷歌搜索出了其中的垃圾!),但是有人能告诉我如何在Mac应用程序中进行基本的来电显示检测吗?我更喜欢可可,但如果必须的话,我愿意用碳


现在我不是在寻找一个完整的关于电话API的例子,尽管再次强调,如果有必要的话,我会走这条路,但我甚至找不到它!在Windows端的所有地方都找到了这个,但在Mac上却找不到一个该死的东西

老兄,这太老套了。我已经五年没有看到任何与模拟调制解调器有关的东西了。我知道,在那一天,即使是NextStep modem的东西都在BSD中,并且是用C编写的。我不认为曾经有过Objective-C API。今天,一切都是免费的


看起来像是你可以使用的东西

这比你想象的要困难得多,因为没有API来控制调制解调器

上面TechZen提到的Asterisk是一个很好的参考,但是Asterisk没有您尝试使用的USB调制解调器的驱动程序。Sunristel的员工开始努力为苹果的USB调制解调器编写驱动程序,但我不确定他们是否在此期间放弃了它:

引用Afelio的页面:

苹果公司最近在Mac电脑和外部苹果USB调制解调器中使用的摩托罗拉SM56调制解调器的媒体服务器目前正在开发中


您能用命令与调制解调器通话吗?那么我认为您应该能够使用

AT#CID=1
如果您需要一个终端程序来与调制解调器通话,我可以向您推荐。我刚刚用它为mac电脑编译了

LIBS=-liconv ./configure ; make ; sudo make install
我不确定呼叫者id将如何显示,但我认为使用终端程序,您应该能够在从调制解调器输出
铃声时看到它

这一切都是新的吗?也许这是一个好机会

然后回到Cocoa,如何与调制解调器通话?看到这个了吗

这是一个关于来电显示的讨论,很有趣。显然,在第一个
铃声之后会输出呼叫者id和更多信息,如前所述,您可以(而且我已经)使用
屏幕/dev/tty.usbmodem00001
或类似的方法直接从终端访问调制解调器,发送AT命令或查看铃声和被呼叫者id(一旦通过AT或NCID启用)。 如上所述,他们还了解了minicom的使用情况

谷歌搜索
/dev/tty-mac-callerid
揭示了很多想法


至于编写软件,我想NCID要么证明是有用的(还有一个咆哮插件!),要么可以作为示例代码。具体请参见
使用调制解调器测试下的。这里是

我可以建议您制作一个标签“modem”,或者至少在问题的前面提到它吗?我花了一段时间才意识到你真正想要的是什么。迈克,调制解调器是次要的。我提到它是因为这就是我所拥有的,但如果有其他方法可以将来电显示从我的家庭电话线输入到应用程序中,我完全支持。毕竟,不仅仅是调制解调器能做到这一点。我有一个基于串口的来电显示框,它不是调制解调器,但可以读取来电显示信息。但如果有USB之类的东西,或者其他任何东西可以让我得到来电显示,那就是我最终想要的。黑匣子的胆量无关紧要。你。。。这就是问题所在。我曾研究过从手机蓝牙设备获取来电显示,但没有用。我也研究过VOIP,但除了Skype或其他应用程序之外,大多数VOIP硬件只是将信号转换回POTS线路,这样你仍然可以使用普通手机,因此你又回到了起点。正如我在回复上面的“调制解调器”评论时所说的,最终的结果是我想以某种方式获得来电显示通知。不要真的关心如何或超过什么方法。只是需要得到它。你可以给我任何解决办法,我完全赞成。我想这会很难。人们只是不再做很多这样的工作了。我建议您寻找一些与Posix兼容的Linux解决方案,并尝试将它们移植过来。Linux方面存在大量的硬件攻击。如果我能做到这一点,那就太好了。。。但我还没有找到任何方法,甚至无法到达COM端口发送命令。我正在研究苹果的示例,该示例可能会枚举串行端口,但我只能从查询系统连接了哪些调制解调器/端口以及调制解调器中得到一般响应,而且当我尝试打开端口时,它会失败。如果你知道任何与USB调制解调器,甚至只是一个COM端口通话的Mac代码,我很想看看!会是个好帮手@MarqueIV这个示例代码应该可以让您继续使用。您应该注意到在.c文件早期定义的AT命令