在 OpenVela 系统的 NSH 命令行环境中,telephonytool
是一款功能强大的 Telephony 命令工具,涵盖了调制解调器管理、呼叫控制、SIM 卡操作、短信服务、网络配置及 IMS 功能等全方位通信相关操作。本文将基于官方文档,对所有命令进行系统梳理与补全,通过清晰的结构和详细的示例,帮助读者快速掌握其使用方法。
一、工具入门:认识 telephonytool 及命令语法
1.1 工具简介
telephonytool
是 OpenVela 系统中用于通信功能管理的核心命令行工具,通过它可以进入专属控制台,执行与调制解调器、呼叫、SIM 卡、网络等相关的所有操作。所有子命令均需在 telephonytool
控制台中执行。
1.2 进入控制台的方法
-
命令:
telephonytool
-
操作步骤:
- 在 NSH 命令行中输入
ap> telephonytool
- 终端显示
telephonytool>
提示符,表明成功进入控制台
- 示例输出:
goldfish-armv7a-ap> telephonytool
\[ 177.780000] \[31] \[ WARN] \[ap] Successfully connected to unix socket /var/run/dbus/system\_bus\_socket
\[ 177.847300] \[31] \[ DEBUG] \[ap] \[async\_queue:85]uv\_async\_queue\_init
telephonytool> \[ 178.167200] \[31] \[ INFO] \[ap] enable\_modem\_abnormal\_event\_done:0
1.3 命令语法规则
所有命令遵循统一的语法表示法,便于理解和使用:
表示法 | 说明 | 示例 |
---|---|---|
无符号文本 | 必须原样输入 | hold_and_answer 需完整输入
|
[方括号内容] | 占位符,需替换为实际值 | hangup-all [slot_id] 中 [slot_id] 替换为具体数值
|
二、radio/modem 命令:调制解调器与无线电管理
调制解调器(modem)和无线电(radio)是设备通信的核心组件,以下命令覆盖其状态查询、事件监听、功能配置等操作。
命令 | 命令说明 | 命令格式 | 关键参数 | 操作示例 |
---|---|---|---|---|
list-modem | 列出所有可用的 modem | list-modem | 无 | 输入 telephonytool> list-modem ,输出 modem found with path -> /ril_0 |
listen-modem | 监听特定 slot 的 modem 事件(如状态变化、呼叫事件等) | listen-modem [slot_id] [event_id] | slot_id :仅支持 0;event_id :事件 ID(0 为无线电状态变化,1 为呼叫事件等)
| 输入 telephonytool> listen-modem 0 0 ,输出监听开始信息及 watch_id |
unlisten-modem | 取消监听 modem 事件 | unlisten-modem [watch_id] | watch_id :listen-modem 返回的监听 ID
| 输入 telephonytool> unlisten-modem 75 ,输出停止监听信息
|
get-radio-cap | 查询 modem 支持的功能(语音、数据等) | get-radio-cap [feature_type] | feature_type :0(语音)、1(数据)、2(短信)、3(IMS)
| 输入 telephonytool> get-radio-cap 0 ,输出 radio feature type : 0 is supported ? 1 |
set-radio-power | 设置 radio 电源状态(对应飞行模式) | set-radio-power [slot_id] [state] | state :0(关闭)、1(开启)
| 输入 telephonytool> set-radio-power 0 0 ,输出电源关闭确认信息
|
get-radio-power | 获取 radio 电源状态 | get-radio-power [slot_id] | 无 | 输入 telephonytool> get-radio-power 0 ,输出当前电源状态值
|
set-rat-mode | 设置无线接入技术(RAT)模式 | set-rat-mode [slot_id] [mode] | mode :支持 UMTS(0)、GSM only(1)、LTE 混合模式(9)等
| 输入 telephonytool> set-rat-mode 0 9 ,输出模式设置成功信息
|
get-rat-mode | 获取当前 RAT 模式 | get-rat-mode [slot_id] | 无 | 输入 telephonytool> get-rat-mode 0 ,输出模式值
|
get-imei | 获取设备 IMEI 码 | get-imei [slot_id] | 无 | 输入 telephonytool> get-imei 0 ,输出设备 IMEI 码
|
get-imeisv | 获取设备 IMEISV 码 | get-imeisv [slot_id] | 无 | 输入 telephonytool> get-imeisv 0 ,输出设备 IMEISV 码
|
get-phone-state | 获取设备电话状态 | get-phone-state [slot_id] | 无 | 输入 telephonytool> get-phone-state 0 ,输出电话状态值
|
send-modem-power | 控制 modem 开关状态 | send-modem-power [slot_id] [on] | on :0(关闭)、1(开启)
| 输入 telephonytool> send-modem-power 0 0 ,输出 modem 关闭信息
|
get-radio-state | 获取 radio 状态 | get-radio-state [slot_id] | 无 | 输入 telephonytool> get-radio-state 0 ,输出 radio 状态值
|
get-modem-revision | 获取 modem 基带版本 | get-modem-revision [slot_id] | 无 | 输入 telephonytool> get-modem-revision 0 ,输出基带版本号
|
get-msisdn | 获取本地电话号码 | get-msisdn [slot_id] | 无 | 输入 telephonytool> get-msisdn 0 ,输出本机号码
|
get-modem-activity-info | 获取 modem 活动信息 | get-modem-activity-info [slot_id] | 无 | 输入 telephonytool> get-modem-activity-info 0 ,输出活动记录
|
enable-modem | 启用或关闭 modem | enable-modem [slot_id] [state] | state :0(关闭)、1(开启)
| 输入 telephonytool> enable-modem 0 1 ,输出 modem 开启信息
|
get-modem-status | 获取 modem 状态 | get-modem-status [slot_id] | 无 | 输入 telephonytool> get-modem-status 0 ,输出状态记录
|
oem-req-raw | 发送 16 进制数据给 modem(如 eSIM 操作) | oem-req-raw [slot_id] [request_data] [data_length] | request_data :16 进制字符串;data_length :字节数
| 输入 telephonytool> oem-req-raw 0 01A0B023 4 ,输出发送成功信息
|
oem-req-strings | 发送字符串到 modem(如 AT 命令) | oem-req-strings [slot_id] [request_data] [data_length] | request_data :字符串;data_length :字节数
| 输入 telephonytool> oem-req-strings 0 AT+CPIN? 1 ,输出发送记录
|
send-command | 发送内部 RIL 消息 | send-command [slot_id] [atom id] [ril request id] | atom id :目标模块标识;ril request id :请求类型
| 输入 telephonytool> send-command 0 16 57 ,输出命令发送信息
|
send-screen-state | 设置屏幕状态给 modem | send-screen-state [slot_id] [screen_state] | screen_state :0(关闭)、1(开启)
| 输入 telephonytool> send-screen-state 0 1 ,输出屏幕状态设置信息
|
三、call 命令:呼叫全流程控制
从拨号、接听、挂断到通话切换,以下命令覆盖语音呼叫的完整生命周期管理。
命令 | 命令说明 | 命令格式 | 关键参数 | 操作示例 |
---|---|---|---|---|
listen-call | 监听呼叫状态变化(如接通、挂断) | listen-call [slot_id] [event_id] | event_id :0(呼叫状态变化)、1(紧急号码列表变化)、2(回铃音变化)
| 输入 telephonytool> listen-call 0 1 ,输出监听信息及 watch_id |
unlisten-call | 取消监听呼叫信息 | unlisten-call [watch_id] | watch_id :listen-call 返回的 ID
| 输入 telephonytool> unlisten-call 95 ,输出停止监听信息
|
listen-call-slot-change | 监听呼叫插槽(call slot)变化 | listen-call-slot-change | 无 | 输入 telephonytool> listen-call-slot-change ,输出监听信息及 watch_id |
dial | 发起电话呼叫 | dial [slot_id] [number] [hide_call_id] | number :目标号码;hide_call_id :0(显示本机号)、1(隐藏)
| 输入 telephonytool> dial 0 10086 0 ,输出拨号信息
|
answer_0 | 接听来电 | answer_0 [slot_id] [call_id] | call_id :来电标识(如 /ril_0/voicecall01 )
| 输入 telephonytool> answer_0 0 /ril_0/voicecall01 ,输出接听记录
|
hangup_0 | 挂断指定通话 | hangup_0 [slot_id] [call_id] | call_id :通话标识
| 输入 telephonytool> hangup_0 0 /ril_0/voicecall01 ,输出挂断记录
|
release_and_answer | 释放当前通话并接通新来电 | release_and_answer [slot_id] | 无 | 输入 telephonytool> release_and_answer 0 ,输出操作记录
|
hold_and_answer | 保持当前通话并接通新来电 | hold_and_answer [slot_id] | 无 | 输入 telephonytool> hold_and_answer 0 ,输出操作记录
|
release_and_swap | 挂断当前通话,切换到保持通话 | release_and_swap [slot_id] | 无 | 输入 telephonytool> release_and_swap 0 ,输出切换记录
|
swap | 切换通话状态(活动 / 保持) | swap [slot_id] [action] | action :1(切到保持通话)、0(切到活动通话)
| 输入 telephonytool> swap 0 1 ,输出切换记录
|
hangup-all | 挂断所有通话(含后台通话) | hangup-all [slot_id] | 无 | 输入 telephonytool> hangup-all 0 ,输出挂断所有通话记录
|
get-call | 获取当前所有通话信息 | get-call [slot_id] | 无 | 输入 telephonytool> get-call 0 ,输出通话数量、ID、状态等
|
transfer | 转移当前通话到其他设备(需网络支持) | transfer [slot_id] | 无 | 输入 telephonytool> transfer 0 ,输出转移操作记录
|
get-ecclist | 获取所有紧急号码列表 | get-ecclist [slot_id] | 无 | 输入 telephonytool> get-ecclist 0 ,输出紧急号码及信息
|
is-ecc | 检查号码是否为紧急号码 | is-ecc [number] | number :待检查号码
| 输入 telephonytool> is-ecc 110 ,输出检查结果(是 / 否)
|
send-tones | 发送预置 DTMF 信号(如按键音) | send-tones [slot_id] [dtmf] | dtmf :数字信号(如 11、23)
| 输入 telephonytool> send-tones 0 11 ,输出发送记录
|
start-dtmf | 通话中发送单个 DTMF 信号 | start-dtmf [slot_id] [dtmf] | dtmf :单个数字(0-9、*、#)
| 输入 telephonytool> start-dtmf 0 1 ,输出发送记录
|
stop-dtmf | 停止发送 DTMF 信号 | stop-dtmf [slot_id] | 无 | 输入 telephonytool> stop-dtmf 0 ,输出停止记录
|
四、SIM 命令:SIM 卡与 UICC 管理
SIM 卡是用户身份识别的核心载体,以下命令涵盖其状态查询、密码管理、数据交互等操作。
命令 | 命令说明 | 命令格式 | 关键参数 | 操作示例 |
---|---|---|---|---|
listen-sim | 监听 SIM 卡事件(如状态变更、ICCID 变化) | listen-sim [slot_id] [event_id] | event_id :支持 SIM 状态变更(28)、UICC 应用状态变更等
| 输入 telephonytool> listen-sim 0 28 ,输出监听信息及 watch_id |
unlisten-sim | 取消监听 SIM 卡事件 | unlisten-sim [watch_id] | watch_id :listen-sim 返回的 ID
| 输入 telephonytool> unlisten-sim 189 ,输出停止监听信息
|
has-icc | 查询指定插槽是否有 ICC 卡(如 SIM 卡) | has-icc [slot_id] | 无 | 输入 telephonytool> has-icc 0 ,输出 “存在” 或 “不存在” 结果
|
get-sim-state | 获取 SIM 卡状态(如就绪、锁定、未插入) | get-sim-state [slot_id] | 无 | 输入 telephonytool> get-sim-state 0 ,输出 SIM_READY 或其他状态
|
get-iccid | 获取 SIM 卡的 ICCID(集成电路卡标识符) | get-iccid [slot_id] | 无 | 输入 telephonytool> get-iccid 0 ,输出 ICCID 码(如 898600XXXXXXXXXX)
|
get-sim-operator | 获取 SIM 卡所属运营商的 PLMN(国家码 + 网络码) | get-sim-operator [slot_id] | 无 | 输入 telephonytool> get-sim-operator 0 ,输出如 46000(中国电信)
|
get-sim-operator-name | 获取运营商名称(SPN) | get-sim-operator-name [slot_id] | 无 | 输入 telephonytool> get-sim-operator-name 0 ,输出 “中国移动” 等
|
get-sim-subscriber-id | 获取订阅者标识(如 IMSI) | get-sim-subscriber-id [slot_id] | 无 | 输入 telephonytool> get-sim-subscriber-id 0 ,输出 IMSI 码
|
change-pin | 修改 SIM 卡 PIN 码 | change-pin [slot_id] [pin_type] [old_pin] [new_pin] | pin_type :pin 或 pin2 ;old_pin /new_pin :旧 / 新密码
| 输入 telephonytool> change-pin 0 pin 1234 2345 ,输出修改结果
|
enter-pin | 验证 SIM 卡 PIN 码(解锁) | enter-pin [slot_id] [pin_type] [pin] | pin :待验证密码
| 输入 telephonytool> enter-pin 0 pin 1234 ,输出验证结果
|
reset-pin | 通过 PUK 码重置 PIN 码(PIN 锁定时使用) | reset-pin [slot_id] [puk_type] [puk] [new_pin] | puk_type :puk 或 puk2 ;puk :解锁密钥
| 输入 telephonytool> reset-pin 0 puk 12345678 2345 ,输出重置结果
|
lock-pin | 激活 SIM 卡 PIN 锁(开机需验证 PIN) | lock-pin [slot_id] [pin_type] [pin] | pin :当前 PIN 码
| 输入 telephonytool> lock-pin 0 pin 1234 ,输出激活结果
|
unlock-pin | 关闭 SIM 卡 PIN 锁 | unlock-pin [slot_id] [pin_type] [pin] | pin :当前 PIN 码
| 输入 telephonytool> unlock-pin 0 pin 1234 ,输出关闭结果
|
open-logical-channel | 打开与 SIM 卡的逻辑通道(用于数据读写) | open-logical-channel [slot_id] [aid_str] [len] | aid_str :应用标识符;len :字符串长度
| 输入 telephonytool> open-logical-channel 0 A0000000871002FF86FFFF89FFFFFFFF 16 ,输出会话 ID
|
close-logical-channel | 关闭逻辑通道,释放资源 | close-logical-channel [slot_id] [session_id] | session_id :open-logical-channel 返回的 ID
| 输入 telephonytool> close-logical-channel 0 1 ,输出关闭信息
|
transmit-apdu-logical-channel | 通过逻辑通道发送 APDU 命令(与 SIM 卡交互) | transmit-apdu-logical-channel [slot_id] [session_id] [pdu] [len] | pdu :16 进制数据;len :字节数
| 输入 telephonytool> transmit-apdu-logical-channel 0 1 FFF2000000 5 ,输出交互结果
|
transmit-apdu-basic-channel | 通过基本通道发送 APDU 命令 | transmit-apdu-basic-channel [slot_id] [pdu] [len] | 同上 | 输入 telephonytool> transmit-apdu-basic-channel 0 A0B000010473656E669000 11 ,输出交互结果
|
get-uicc-enablement | 获取 UICC 应用启用状态 | get-uicc-enablement [slot_id] | 无 | 输入 telephonytool> get-uicc-enablement 0 ,输出 0(未启用)或 1(启用)
|
set-uicc-enablement | 启用 / 禁用 UICC 应用 | set-uicc-enablement [slot_id] [state] | state :0(禁用)、1(启用)
| 输入 telephonytool> set-uicc-enablement 0 1 ,输出设置结果
|
五、sms/cbs 命令:短消息与小区广播服务
短消息服务(SMS)和小区广播服务(CBS)的发送、接收、存储管理命令如下。
命令 | 命令说明 | 命令格式 | 关键参数 | 操作示例 |
---|---|---|---|---|
send-sms | 发送文本短信 | send-sms [slot_id] [number] [text] | number :目标号码;text :短信内容
| 输入 telephonytool> send-sms 0 10086 hello ,输出发送成功标识及 uuid |
send-data-sms | 发送数据短信(二进制数据,用于应用通信) | send-data-sms [slot_id] [number] [text] [port] | port :目标端口号
| 输入 telephonytool> send-data-sms 0 10086 hello 0 ,输出发送结果
|
get-service-center-number | 获取短信服务中心(SMSC)号码 | get-service-center-number [slot_id] | 无 | 输入 telephonytool> get-service-center-number 0 ,输出 SMSC 号码
|
set-service-center-number | 设置短信服务中心号码 | set-service-center-number [slot_id] [number] | number :服务中心号码
| 输入 telephonytool> set-service-center-number 0 10086 ,输出设置记录
|
get-cell-broadcast-power | 获取小区广播(CB)功能开关状态 | get-cell-broadcast-power [slot_id] | 无 | 输入 telephonytool> get-cell-broadcast-power 0 ,输出 1(启用)或 0(禁用)
|
set-cell-broadcast-power | 开启 / 关闭小区广播功能 | set-cell-broadcast-power [slot_id] [state] | state :1(开启)、0(关闭)
| 输入 telephonytool> set-cell-broadcast-power 0 1 ,输出设置结果
|
get-cell-broadcast-topics | 获取支持的小区广播类型(如地震预警) | get-cell-broadcast-topics [slot_id] | 无 | 输入 telephonytool> get-cell-broadcast-topics 0 ,输出类型标识列表
|
set-cell-broadcast-topics | 设置支持的小区广播类型 | set-cell-broadcast-topics [slot_id] [topic_type] | topic_type :广播类型标识
| 输入 telephonytool> set-cell-broadcast-topics 0 1 ,输出设置记录
|
copy-sms-to-sim | 将短信保存到 SIM 卡 | copy-sms-to-sim [slot_id] [number] [text] | 同 send-sms | 输入 telephonytool> copy-sms-to-sim 0 10086 hello11 ,输出保存记录
|
delete-sms-from-sim | 删除 SIM 卡中的短信 | delete-sms-from-sim [slot_id] [index] | index :短信序号
| 输入 telephonytool> delete-sms-from-sim 0 1 ,输出删除记录
|
六、network 命令:网络状态与注册管理
设备网络注册、信号强度、小区信息等网络相关操作命令如下。
命令 | 命令说明 | 命令格式 | 关键参数 | 操作示例 |
---|---|---|---|---|
listen-network | 监听网络事件(如注册状态变化、信号强度变化) | listen-network [slot_id] [event_id] | event_id :支持网络状态变化(18)、语音注册状态变化等
| 输入 telephonytool> listen-network 0 18 ,输出监听信息及 watch_id |
unlisten-network | 取消监听网络事件 | unlisten-network [watch_id] | watch_id :listen-network 返回的 ID
| 输入 telephonytool> unlisten-network 198 ,输出停止监听信息
|
register-auto | 设置自动网络选择模式(设备自动选网) | register-auto [slot_id] | 无 | 输入 telephonytool> register-auto 0 ,输出自动选网设置记录
|
register-manual | 手动选择网络 | register-manual [slot_id] [mcc] [mnc] [technology] | mcc :国家码(如 460);mnc :网络码(如 00);technology :网络类型(lte、gsm 等)
| 输入 telephonytool> register-manual 0 460 00 lte ,输出手动选网记录
|
get-signalstrength | 获取信号强度参数(RSSI、RSRP 等) | get-signalstrength [slot_id] | 无 | 输入 telephonytool> get-signalstrength 0 ,输出信号强度详细指标
|
get-display-name | 获取当前驻留网络的运营商名称 | get-display-name [slot_id] | 无 | 输入 telephonytool> get-display-name 0 ,输出 “中国移动” 等
|
get-registration-info | 获取网络注册信息(状态、运营商等) | get-registration-info [slot_id] | 无 | 输入 telephonytool> get-registration-info 0 ,输出注册状态、mcc、mnc 等
|
get-voice-nwtype | 获取 CS 域(电路交换)网络类型 | get-voice-nwtype [slot_id] | 无 | 输入 telephonytool> get-voice-nwtype 0 ,输出网络类型值
|
get-voice-registered | 获取 CS 域注册状态 | get-voice-registered [slot_id] | 无 | 输入 telephonytool> get-voice-registered 0 ,输出注册状态值
|
get-voice-roaming | 获取 CS 域漫游状态 | get-voice-roaming [slot_id] | 无 | 输入 telephonytool> get-voice-roaming 0 ,输出漫游状态值(0 为非漫游)
|
scan-network | 发起搜网操作,查询可用网络 | scan-network [slot_id] | 无 | 输入 telephonytool> scan-network 0 ,输出搜网记录
|
get-serving-cellinfo | 获取当前服务小区信息 | get-serving-cellinfo [slot_id] | 无 | 输入 telephonytool> get-serving-cellinfo 0 ,输出小区类型、mcc、mnc 等
|
get-neighbouring-cellInfos | 获取邻区信息 | get-neighbouring-cellInfos [slot_id] | 无 | 输入 telephonytool> get-neighbouring-cellInfos 0 ,输出邻区数量及详细信息
|
set-cell-info-list-rate | 设置小区信息更新周期 | set-cell-info-list-rate [slot_id] [period] | period :周期(秒)
| 输入 telephonytool> set-cell-info-list-rate 0 10 ,输出设置记录
|
七、ims 命令:IP 多媒体子系统管理
IMS(IP 多媒体子系统)支持高清语音(VoLTE)、视频通话等功能,相关配置与状态查询命令如下。
命令 | 命令说明 | 命令格式 | 关键参数 | 操作示例 |
---|---|---|---|---|
enable-ims | 开启 / 关闭 IMS 能力 | enable-ims [slot_id] [action] | action :0(关闭)、1(开启)
| 输入 telephonytool> enable-ims 0 1 ,输出开启 IMS 记录
|
get-ims-enabled | 获取 IMS 开关状态 | get-ims-enabled [slot_id] | 无 | 输入 telephonytool> get-ims-enabled 0 ,输出 1(开启)或 0(关闭)
|
set-ims-cap | 设置 IMS 支持的业务功能 | set-ims-cap [slot_id] [cap-value] | cap-value :1(语音)、4(短信)、5(语音 + 短信)
| 输入 telephonytool> set-ims-cap 0 1 ,输出设置语音功能记录
|
listen-ims | 监听 IMS 注册状态、信号强度变化等 | listen-ims [slot_id] | 无 | 输入 telephonytool> listen-ims 0 ,输出监听信息及 watch_id |
get-ims-registration | 查询 IMS 信息(注册状态、VoLTE 状态等) | get-ims-registration [slot_id] [action] | action :0(全信息)、1(注册状态)、2(VoLTE 状态)
| 输入 telephonytool> get-ims-registration 0 0 ,输出 IMS 详细信息
|
总结
telephonytool
命令使用要点:
-
环境依赖:所有命令均需在
telephonytool
控制台中执行,进入方式为ap> telephonytool
。 -
参数规范:
slot_id
目前仅支持 0,其他参数(如event_id
、number
)需严格按格式要求填写。 -
功能关联:命令按通信模块划分(modem、呼叫、SIM 等),实际使用中需结合场景组合操作(如拨号前需确认网络注册状态)。
-
反馈机制:命令执行后终端会返回操作结果(成功 / 失败标识、状态值等),可据此判断操作有效性。
通过本文的系统梳理,相信开发者能快速定位所需命令,高效完成 OpenVela 系统的通信功能调试与管理工作。