嗯,还有其他选项,这取决于您需要在服务器和移动设备之间传输的数据量。
对于短时间内需要传输的少量数据,您可以尝试使用Asterisk PBX,让您的手机拨打服务器电话并发送其他DTMF数字作为您的数据,然后由Asterisk PBX(类似于来自您的有线电视公司的交互式电话音频菜单)进行解释。Asterisk是GPL开源软件。
另一个选择(昂贵且需要大量工作)是生成一个带有数据内容的音频信号,并拨打与附加的传真/调制解调器PCI板连接的电话号码,像呼叫一样发送该音频。它不需要长时间通话,因为您可以在短暂的音频流中放入大量数据。
您的服务器可以通过访问接收端上的内容来检查该数据。只需从附加的传真/调制解调器PCI板记录通话,或者您可以在本地计算机上使用Asterisk PBX服务器保存音频文件,然后通过您的服务器软件进行处理。
无论如何,您都需要创建新的协议和数据编码类型,就像您提到的“机器可读编码”。
因此,对于数据类型,您可以在移动设备上保存许多短音频文件,并将它们作为数据类型播放,但使用上面提到的DTMF会更容易。或者您可以进行编码:获取可以通过语音呼叫使用的
声音频谱(宽带/窄带),并将其除以所需的单个字符或块的数量(查看如何在
base64中编码,以获得一些想法)。然后创建一个函数,只需将您的数据编码为短音频流(阅读有关
PCM编码的内容,以及如果您想进一步复杂化(但加快速度),请阅读更多关于
快速傅里叶变换的内容)。
创建一个简单的协议,如下:第一个音频包是一系列音调,用于发出请求、验证,并等待服务器的确认响应(可以通过在此后1秒钟内不挂断呼叫来实现)。第二个音频包是第一帧数据的大小,然后从第三个音频包开始,就是数据本身,其大小显示在前面。类似ftp协议的描述。然后,您需要对其进行改进,以使每个数据包的时间尽可能短,同时保持可靠性。
为了节省语音通话费用,您还可以探索电话号码选项,例如Google Voice、Skype或任何Voip服务。