通过GSM调制解调器进行语音通话

9
我想使用GSM调制解调器拨打电话并播放录制的消息,等待用户按下数字后挂断电话。系统需要知道线路是否忙碌,用户是否接听以及用户按下了哪个数字(如果有)。如果在30秒内没有按下任何键,则它应该放弃连接。如果用户在问题完成之前按下数字,则语音应停止(用户不必等待)。此外,如果系统可以处理无效数字(播放“无效数字”消息,播放原始消息并等待输入),那就太好了。同时进行多个呼叫也很好,但我想这是不可能的?
我发现这篇文章非常好地解释了低级接口。但是,这个问题更加实用 - 你会推荐哪些库和哪款GSM调制解调器?操作系统是Linux,调制解调器可以是RS232或USB。我更喜欢Python,但C(++)也可以。
顺便说一句:这不是电话营销,而是通知系统。虽然这没什么关系... ;)
编辑:我了解到这个系统被称为关键字“IVR”(添加给未来的搜索者)。

感谢有帮助的编辑。 - S.M.Mousavi
GSM/GPRS SIM800L模块怎么样?我个人没有使用过,但它支持与Arduino进行语音通话。由于Arduino是开源的,也许在Linux中实现它是可能的。 - Konrad Gajewski
2个回答

2
调制解调器通常用于数据传输,但是你似乎正在传输语音,尽管是预先录制的语音和音调。
虽然您已经确定了使用语音调制解调器的额外语音功能可以实现这一点,但除非您确实需要调制解调器的数据功能,否则使用GSM到VoIP网关可能会更容易。
您可以将VoIP连接到GSM网关,然后将其连接到低成本或免费的开源PABX(例如Asterisk),并使用它来构建您的特定应用程序。
一些网关甚至支持多个SIM卡,因此您可以针对给定的号码选择提供最低呼叫费率的SIM卡,例如,如果您知道要拨打的号码在特定运营商上,则该运营商可能提供其SIM卡之间的免费“网络内”通话。如果您希望进行大量呼叫,则这可能是一个优势。
如果您搜索“VoIP GSM网关”,您将找到一些示例。
以下链接也提供了概述: http://www.voip-info.org/wiki/view/VOIP+GSM+Gateways

我本来希望能够避免使用Asterisk - 我听说它很难设置。但如果没有其他选择,我就不得不去尝试了。 :) - johndodo

1
我虽然不是这个领域的专家,但这是我想要深入研究的个人项目。
以下是我认为最佳方法:
1. 获取像这样的VOIP GSM网关:VOIP+GSM+Gateways。 2. 连接到现有的PABX系统或下载一个免费的,如asterisk
然后,您需要按照PABX开发说明书的指示创建拨号计划和路由。我不知道是否已经有了任何相关的内容,但我相信您会找到许多所需部分的示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接