Protocols 在调制解调器上-音频数据传输-退出DLE?

Protocols 在调制解调器上-音频数据传输-退出DLE?,protocols,at-command,modem,serial-communication,Protocols,At Command,Modem,Serial Communication,我正在编写一个与AT调制解调器通信的应用程序(在本例中,使用的是conexant cx93010芯片组,请参阅此处的手册:)。 我的应用程序收集callerid信息,并使用各种方式获取基于该信息的信息(黑名单网站查询、分机信息、本地白名单和黑名单等) 我想更进一步,发送和接收语音数据的原因有很多,例如:电话答录机、检测被抑制号码的人何时来电,然后播放预定义消息并挂断 我已经设置了一个接口,可以与调制解调器通话,获取所需的callerid数据,并根据该数据挂断电话 我的问题如下: 当我的应用程序接

我正在编写一个与AT调制解调器通信的应用程序(在本例中,使用的是conexant cx93010芯片组,请参阅此处的手册:)。 我的应用程序收集callerid信息,并使用各种方式获取基于该信息的信息(黑名单网站查询、分机信息、本地白名单和黑名单等)

我想更进一步,发送和接收语音数据的原因有很多,例如:电话答录机、检测被抑制号码的人何时来电,然后播放预定义消息并挂断

我已经设置了一个接口,可以与调制解调器通话,获取所需的callerid数据,并根据该数据挂断电话

我的问题如下:

当我的应用程序接收音频数据时,TestStream所说的音频(!)不是随机(!)将DLE消息作为音频数据的一部分吗

我已经检查了手册和其他资源,但没有任何信息告诉我情况是否如此,如果是,如何处理

-这些随机事件是否被逃脱?如果是,怎么做

-或者,音频数据是以固定大小的块(基于编解码器)发送的,在这些块之间,可能会出现有意的DLE消息,这样我就可以忽略x个字节中出现的DLE字符

在网上找到的各种代码示例(基本上是我能找到的所有示例)都忽略了这一点。我想知道它们是准确的实现,还是仅仅是显示基本功能的快速而肮脏的示例,随着时间的推移,这些角落案例已经被遗忘了


提前谢谢你

为了结束这篇文章,特别是因为(至少对我来说)这篇文章已经出现在谷歌搜索的顶部,我想与大家分享我自己的答案

因此,作为数据流一部分的随机DLE字节(“数据”意味着“有效载荷”,而不是原始数据)通过向其附加另一个DLE字节来转义(根据手册)。因此,两个DLE字节同时出现意味着您需要删除其中一个,并且单个DLE是数据的一部分。如果您在原始流中遇到单数DLE,则表示下一个字符肯定是调制解调器(DCE)发送给您(DTE)的事件代码,但以下字符除外:

DLE+SUB组合用于转义两个连续传输的DLE字节。这样做是为了不破坏要传输的原始数据量

这意味着简单地将原始数据接收和解释为音频数据和/或发送音频数据而不转义的各种示例只是不准确的过度简化

感谢所有阅读我原始问题的人