【问题标题】:AT Modem - Audio Data Transmission - Escape DLE?AT Modem - 音频数据传输 - Escape DLE?
【发布时间】:2019-09-08 14:13:56
【问题描述】:

我正在编写一个与 AT 调制解调器通信的应用程序(在这种情况下使用科胜讯 cx93010 芯片组,请参阅此处的手册:https://www.manualslib.com/manual/1140976/Conexant-Cx93010.html)。 我的应用程序收集 callerid 信息并使用各种方式获取基于该信息的信息(黑名单网站查询、扩展信息、本地白名单和黑名单等)

我想更进一步,出于多种原因发送和接收语音数据,例如应答机,检测号码被屏蔽的人何时呼叫,然后播放预定义的消息并挂断。

我已经设置了一个接口来与调制解调器通信并获取我想要的 callerid 数据,并以此挂断电话。

我的问题如下:

当我的应用程序接收音频数据时,不是说音频(!)字节流随机(!)包含 DLE 消息作为音频数据的一部分吗?

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

-那些随机事件是否被转义?如果有,怎么做?

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

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

提前谢谢你!

【问题讨论】:

    标签: protocols at-command modem serial-communication


    【解决方案1】:

    为了结束这个,特别是因为(至少对我而言)这已经出现在谷歌搜索的顶部,我想分享我自己想出的答案。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-07
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      相关资源
      最近更新 更多