USB CDC
+ -

CDC DialDigits

2025-07-11 0 0

1. DialDigits 请求用途

DialDigits 用于在指定线路上拨号DTMF数字。
主机通过此请求发送拨号字符串,设备根据字符串中的命令字符执行相应的拨号操作,支持数字拨号、DTMF音调、脉冲拨号、暂停等功能。


2. USB 控制传输格式

字段 值/说明
bmRequestType 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口
bRequest 0x36 (DIAL_DIGITS)
wValue 0x0000
wIndex 接口号
wLength 拨号字符串长度
Data 拨号字符串(见下表支持的字符)

3. Characters in a Dialing Command(Table 59)

字符 动作
0-9 拨号指定数字
* # 拨号指定DTMF键
P p 使用脉冲拨号拨号所有后续数字
T t 使用音调拨号拨号所有后续数字
! 在拨号字符串中插入钩挂开关闪烁
, 暂停拨号固定时间段(通常2秒)
; 表示稍后将提供更多数字
W w 在继续拨号前等待拨号音或中断拨号音
D d 保持音调开启。所有后续拨号音保持开启直到收到保持音调关闭
U u 保持音调关闭。关闭所有保持的拨号音

4. 典型主机端请求示例

C 结构体示例:

char dialing_string[] = "T1234567890";  // 音调拨号

USB_SETUP_PACKET setup = {
    .bmRequestType = 0x21,           // 主机到设备,类,接口
    .bRequest = 0x36,                // DIAL_DIGITS
    .wValue = 0x0000,
    .wIndex = interface_number,      // 通信接口号
    .wLength = strlen(dialing_string)
};
// 发送setup包和dialing_string数据

5. 拨号字符串示例

拨号字符串 说明
“T1234567890” 音调拨号1234567890
“P1234567890” 脉冲拨号1234567890
“T123,456” 音调拨号123,暂停2秒,拨号456
“T123!456” 音调拨号123,钩挂闪烁,拨号456
“T123W456” 音调拨号123,等待拨号音,拨号456

6. 设备端处理要点

  • 解析拨号字符串中的每个字符。
  • 根据字符类型执行相应的拨号操作。
  • 支持混合拨号模式(如先音调后脉冲)。
  • 完成后通过状态阶段(Status Stage)ACK主机。

7. 常见应用场景

场景 拨号字符串 说明
标准拨号 “T1234567890” 音调拨号电话号码
脉冲拨号 “P1234567890” 脉冲拨号电话号码
暂停拨号 “T123,456” 拨号123,暂停,拨号456
钩挂闪烁 “T123!456” 拨号123,闪烁,拨号456

8. 参考

0 篇笔记 写笔记

CDC DialDigits
1. DialDigits 请求用途DialDigits 用于在指定线路上拨号DTMF数字。主机通过此请求发送拨号字符串,设备根据字符串中的命令字符执行相应的拨号操作,支持数字拨号、DTMF音调、脉冲拨号、暂停等功能。2. USB 控制传输格式字段值/说明bmRequestTy......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!