T-Box Basic dev
Loading...
Searching...
No Matches
ril_backend.h
Go to the documentation of this file.
1
10
11#ifndef __RIL_BACKEND_H__
12#define __RIL_BACKEND_H__
13
14#include <stdbool.h>
15#include <stddef.h>
16#include <stdint.h>
17
18#include <tbox/radio.h>
19#include <tbox/ril_core.h>
20#include <tbox/sim.h>
21#include <tbox/sms.h>
22#include <tbox/voice.h>
23
25#define RIL_BACKEND_APN_MAX 64U
27#define RIL_BACKEND_USERNAME_MAX 64U
29#define RIL_BACKEND_PASSWORD_MAX 64U
31#define RIL_BACKEND_APN_TYPE_MAX 32U
33#define RIL_BACKEND_IFNAME_MAX 16U
35#define RIL_BACKEND_IPV4_ADDRESS_MAX 40U
37#define RIL_BACKEND_IPV6_ADDRESS_MAX 64U
38
50
60
70
82
86typedef uint32_t ril_backend_profile_id_t;
87
99
109
130
145
155typedef int (*ril_backend_event_callback_t)(const ril_backend_event_t* event, void* context);
156
160typedef struct
161{
163 int (*init)(void);
165 void (*deinit)(void);
169 int (*get_signal)(uint8_t* rssi);
173 int (*get_operator_name)(char* value, size_t* length);
179 int (*set_ims_enabled)(bool enabled);
185
189typedef struct
190{
192 int (*init)(void);
194 void (*deinit)(void);
198 int (*get_imsi)(char* value, size_t* length);
200 int (*get_iccid)(char* value, size_t* length);
202 int (*get_number)(char* value, size_t* length);
204 int (*verify_pin)(const tbox_sim_pin_request_t* request);
206 int (*change_pin)(const tbox_sim_pin_request_t* request);
208 int (*unblock_pin)(const tbox_sim_pin_request_t* request);
210 int (*enable_pin)(const tbox_sim_pin_request_t* request);
212 int (*disable_pin)(const tbox_sim_pin_request_t* request);
214
218typedef struct
219{
221 int (*init)(void);
223 void (*deinit)(void);
225 int (*send_text)(const tbox_sms_text_request_t* request);
227 int (*send_pdu)(const tbox_sms_pdu_request_t* request);
229 int (*delete_message)(tbox_sms_storage_t storage, tbox_sms_mode_t mode, uint32_t storage_index);
231 int (*get_service_center)(char* value, size_t* length);
233 int (*set_service_center)(const char* value);
235
239typedef struct
240{
242 int (*init)(void);
244 void (*deinit)(void);
246 int (*find_profile)(const char* apn_type, ril_backend_data_profile_t* profile);
254 int (*validate_profile)(const ril_backend_data_profile_t* profile, size_t enabled_count, bool implicit);
266 int (*start)(ril_backend_profile_id_t profile_id, ril_ip_type_t ip_type, bool reconnect);
268 int (*stop)(ril_backend_profile_id_t profile_id, ril_ip_type_t ip_type);
270
274typedef struct
275{
277 int (*init)(void);
279 void (*deinit)(void);
281 int (*dial)(const tbox_voice_dial_request_t* request, uint32_t* call_id);
283 int (*answer)(uint32_t call_id);
285 int (*hangup)(uint32_t call_id);
287 int (*switch_active)(void);
289 int (*send_dtmf)(char digit);
291 int (*set_volume)(uint32_t volume);
293 int (*get_volume)(uint32_t* volume);
299 int (*get_call)(uint32_t call_id, tbox_call_event_t* call);
301 int (*start_ecall)(const tbox_ecall_request_t* request);
303 int (*set_ecall_test_number)(tbox_ecall_number_type_t type, const char* number);
305 int (*set_ecall_msd)(uint32_t call_id, const uint8_t* data, size_t length);
307
311typedef struct
312{
314 int (*init)(ril_backend_event_callback_t callback, void* context);
316 void (*deinit)(void);
320 int (*get_version)(char* value, size_t* length);
322 int (*get_imei)(char* value, size_t* length);
324 int (*get_sv)(char* value, size_t* length);
326 void (*tick)(void);
328 int (*reset_modem)(void);
335
342
343#endif /* __RIL_BACKEND_H__ */
uint32_t tbox_radio_network_mask_t
首选网络制式位掩码类型
Definition radio.h:60
tbox_radio_ims_status_t
IMS 注册状态。
Definition radio.h:92
tbox_radio_rf_mode_t
射频工作模式。
Definition radio.h:101
uint32_t tbox_ril_capability_t
RIL 后端能力位掩码类型
Definition ril_core.h:32
tbox_sim_state_t
SIM 卡状态。
Definition sim.h:42
tbox_sms_storage_t
短消息存储位置。
Definition sms.h:71
tbox_sms_mode_t
短消息网络模式。
Definition sms.h:82
tbox_ecall_number_type_t
eCall 测试号码类型。
Definition voice.h:82
tbox_voice_audio_mode_t
音频承载方式。
Definition voice.h:102
T-Box 无线网络接口
#define RIL_BACKEND_IFNAME_MAX
后端内部网络接口名称容量,包含结尾 NUL
Definition ril_backend.h:33
ril_data_link_state_t
数据链路状态
Definition ril_backend.h:55
@ RIL_DATA_LINK_CONNECTING
数据链路正在建立
Definition ril_backend.h:57
@ RIL_DATA_LINK_CONNECTED
数据链路已连接
Definition ril_backend.h:58
@ RIL_DATA_LINK_DISCONNECTED
数据链路已断开
Definition ril_backend.h:56
ril_data_auth_t
APN 鉴权类型
Definition ril_backend.h:75
@ RIL_DATA_AUTH_CHAP
CHAP 鉴权
Definition ril_backend.h:78
@ RIL_DATA_AUTH_PAP
PAP 鉴权
Definition ril_backend.h:77
@ RIL_DATA_AUTH_PAP_CHAP
PAP 或 CHAP 鉴权
Definition ril_backend.h:79
@ RIL_DATA_AUTH_NONE
不鉴权
Definition ril_backend.h:76
@ RIL_DATA_AUTH_DEFAULT
由模组自动选择鉴权方式
Definition ril_backend.h:80
ril_ip_type_t
数据链路 IP 类型
Definition ril_backend.h:65
@ RIL_IP_TYPE_IPV4
仅使用 IPv4
Definition ril_backend.h:66
@ RIL_IP_TYPE_IPV6
仅使用 IPv6
Definition ril_backend.h:67
@ RIL_IP_TYPE_IPV4V6
同时使用 IPv4 和 IPv6
Definition ril_backend.h:68
#define RIL_BACKEND_PASSWORD_MAX
后端内部 APN 密码容量,包含结尾 NUL
Definition ril_backend.h:29
#define RIL_BACKEND_APN_TYPE_MAX
后端内部 APN 类型容量,包含结尾 NUL
Definition ril_backend.h:31
uint32_t ril_backend_profile_id_t
模组 profile 标识
Definition ril_backend.h:86
#define RIL_BACKEND_APN_MAX
后端内部 APN 字符串容量,包含结尾 NUL
Definition ril_backend.h:25
ril_backend_event_type_t
守护进程需要处理的后端事件类别
Definition ril_backend.h:43
@ RIL_BACKEND_EVENT_RADIO_REFRESH
无线网络状态需要刷新
Definition ril_backend.h:44
@ RIL_BACKEND_EVENT_SMS_RECEIVED
收到短信
Definition ril_backend.h:46
@ RIL_BACKEND_EVENT_DATA_CALL
数据链路状态变化
Definition ril_backend.h:47
@ RIL_BACKEND_EVENT_VOICE
语音或 eCall 状态变化
Definition ril_backend.h:48
@ RIL_BACKEND_EVENT_SIM_STATE
SIM 卡状态变化
Definition ril_backend.h:45
#define RIL_BACKEND_IPV6_ADDRESS_MAX
后端内部 IPv6 地址字符串容量,包含结尾 NUL
Definition ril_backend.h:37
const ril_backend_ops_t * ril_backend_get(void)
获取当前编译平台的静态模组后端。
#define RIL_BACKEND_IPV4_ADDRESS_MAX
后端内部 IPv4 地址字符串容量,包含结尾 NUL
Definition ril_backend.h:35
#define RIL_BACKEND_USERNAME_MAX
后端内部 APN 用户名容量,包含结尾 NUL
Definition ril_backend.h:27
int(* ril_backend_event_callback_t)(const ril_backend_event_t *event, void *context)
后端事件接收函数。
Definition ril_backend.h:155
T-Box RIL 客户端核心接口
T-Box SIM 卡接口
T-Box 短消息接口
已归一化的数据链路事件
Definition ril_backend.h:114
char ipv4_gateway[RIL_BACKEND_IPV4_ADDRESS_MAX]
IPv4 网关
Definition ril_backend.h:122
ril_data_link_state_t state
数据链路状态
Definition ril_backend.h:116
char ipv4_address[RIL_BACKEND_IPV4_ADDRESS_MAX]
IPv4 地址
Definition ril_backend.h:121
char ipv6_secondary_dns[RIL_BACKEND_IPV6_ADDRESS_MAX]
IPv6 备用 DNS.
Definition ril_backend.h:128
char ipv6_address[RIL_BACKEND_IPV6_ADDRESS_MAX]
IPv6 地址
Definition ril_backend.h:125
char ipv6_primary_dns[RIL_BACKEND_IPV6_ADDRESS_MAX]
IPv6 主 DNS.
Definition ril_backend.h:127
char ifname[RIL_BACKEND_IFNAME_MAX]
网络接口名称
Definition ril_backend.h:119
char ipv4_primary_dns[RIL_BACKEND_IPV4_ADDRESS_MAX]
IPv4 主 DNS.
Definition ril_backend.h:123
char ipv6_gateway[RIL_BACKEND_IPV6_ADDRESS_MAX]
IPv6 网关
Definition ril_backend.h:126
int error
模组上报的链路错误码
Definition ril_backend.h:118
ril_backend_profile_id_t profile_id
模组 profile 标识
Definition ril_backend.h:115
ril_ip_type_t ip_type
已建立链路的地址类型
Definition ril_backend.h:117
char ipv4_secondary_dns[RIL_BACKEND_IPV4_ADDRESS_MAX]
IPv4 备用 DNS.
Definition ril_backend.h:124
数据拨号功能域接口
Definition ril_backend.h:240
int(* init)(void)
初始化数据拨号功能域。
Definition ril_backend.h:242
int(* create_profile)(const ril_backend_data_profile_t *profile, ril_backend_profile_id_t *profile_id)
创建数据 profile。
Definition ril_backend.h:252
int(* get_profile)(ril_backend_profile_id_t profile_id, ril_backend_data_profile_t *profile)
查询指定数据 profile。
Definition ril_backend.h:248
int(* start)(ril_backend_profile_id_t profile_id, ril_ip_type_t ip_type, bool reconnect)
启动指定 profile 的数据链路。
Definition ril_backend.h:266
int(* validate_profile)(const ril_backend_data_profile_t *profile, size_t enabled_count, bool implicit)
校验 profile 是否符合当前模组限制。
Definition ril_backend.h:254
int(* stop)(ril_backend_profile_id_t profile_id, ril_ip_type_t ip_type)
停止指定 profile 的数据链路。
Definition ril_backend.h:268
void(* deinit)(void)
释放数据拨号功能域资源。
Definition ril_backend.h:244
int(* set_profile)(const ril_backend_data_profile_t *profile)
更新指定数据 profile。
Definition ril_backend.h:250
int(* find_profile)(const char *apn_type, ril_backend_data_profile_t *profile)
按 APN 类型查询模组中的数据 profile。
Definition ril_backend.h:246
int(* get_default_profile)(ril_backend_profile_id_t *profile_id)
查询模组默认 profile。
Definition ril_backend.h:258
bool(* requires_default_route)(const ril_backend_data_profile_t *profile)
判断该 profile 是否需要由守护进程更新 CAP 默认路由。
Definition ril_backend.h:256
int(* resolve_link_info)(ril_backend_data_event_t *event)
在 daemon 线程中将回调携带的链路信息补全为本机可用的数据路径。
Definition ril_backend.h:264
一路数据拨号 profile
Definition ril_backend.h:104
ril_backend_profile_settings_t profile
profile 参数
Definition ril_backend.h:106
char apn_type[RIL_BACKEND_APN_TYPE_MAX]
模组侧 APN 类型
Definition ril_backend.h:107
ril_backend_profile_id_t profile_id
模组 profile 标识
Definition ril_backend.h:105
已归一化的模组后端事件
Definition ril_backend.h:135
tbox_sim_state_t sim_state
SIM 卡状态
Definition ril_backend.h:139
tbox_voice_event_t voice
语音或 eCall 事件
Definition ril_backend.h:142
ril_backend_data_event_t data
数据链路事件
Definition ril_backend.h:141
ril_backend_event_type_t type
后端事件类别
Definition ril_backend.h:136
tbox_sms_message_t sms
接收短信
Definition ril_backend.h:140
静态模组后端接口
Definition ril_backend.h:312
void(* deinit)(void)
释放模组后端资源。
Definition ril_backend.h:316
int(* get_sv)(char *value, size_t *length)
查询模组 IMEI 软件版本号。
Definition ril_backend.h:324
int(* get_capabilities)(tbox_ril_capability_t *capabilities)
查询后端支持的功能域能力。
Definition ril_backend.h:318
void(* tick)(void)
驱动不具备独立事件线程的模组 SDK;无需轮询时为 NULL。
Definition ril_backend.h:326
const ril_backend_voice_ops_t * voice
语音功能域接口
Definition ril_backend.h:333
int(* get_imei)(char *value, size_t *length)
查询模组 IMEI。
Definition ril_backend.h:322
const ril_backend_data_ops_t * data
数据拨号功能域接口
Definition ril_backend.h:332
int(* get_version)(char *value, size_t *length)
查询模组版本。
Definition ril_backend.h:320
const ril_backend_sim_ops_t * sim
SIM 功能域接口
Definition ril_backend.h:330
const ril_backend_radio_ops_t * radio
无线网络功能域接口
Definition ril_backend.h:329
const ril_backend_sms_ops_t * sms
短消息功能域接口
Definition ril_backend.h:331
int(* reset_modem)(void)
释放全部功能域资源并重置模组;调用后所有功能域均需重新初始化。
Definition ril_backend.h:328
int(* init)(ril_backend_event_callback_t callback, void *context)
初始化模组后端并注册事件接收函数。
Definition ril_backend.h:314
模组 profile 参数
Definition ril_backend.h:92
char apn[RIL_BACKEND_APN_MAX]
APN 名称
Definition ril_backend.h:93
ril_data_auth_t auth
鉴权类型
Definition ril_backend.h:96
char password[RIL_BACKEND_PASSWORD_MAX]
鉴权密码
Definition ril_backend.h:95
ril_ip_type_t ip_type
PDP 地址类型
Definition ril_backend.h:97
char username[RIL_BACKEND_USERNAME_MAX]
鉴权用户名
Definition ril_backend.h:94
无线网络功能域接口
Definition ril_backend.h:161
int(* get_ims_status)(tbox_radio_ims_status_t *status)
查询 IMS 注册状态。
Definition ril_backend.h:171
int(* get_rf_mode)(tbox_radio_rf_mode_t *mode)
查询 RF 模式。
Definition ril_backend.h:183
int(* set_rf_mode)(tbox_radio_rf_mode_t mode)
设置 RF 模式。
Definition ril_backend.h:181
int(* set_preferred_network)(tbox_radio_network_mask_t networks)
设置首选网络制式。
Definition ril_backend.h:175
void(* deinit)(void)
释放无线网络功能域资源。
Definition ril_backend.h:165
int(* get_preferred_network)(tbox_radio_network_mask_t *networks)
查询首选网络制式。
Definition ril_backend.h:177
int(* get_signal)(uint8_t *rssi)
查询并转换为 GSM RSSI 标准值。
Definition ril_backend.h:169
int(* get_operator_name)(char *value, size_t *length)
查询运营商名称。
Definition ril_backend.h:173
int(* get_registration)(tbox_radio_registration_status_t *status)
查询网络注册状态。
Definition ril_backend.h:167
int(* init)(void)
初始化无线网络功能域。
Definition ril_backend.h:163
int(* set_ims_enabled)(bool enabled)
设置 IMS 开关。
Definition ril_backend.h:179
SIM 功能域接口
Definition ril_backend.h:190
int(* init)(void)
初始化 SIM 功能域。
Definition ril_backend.h:192
int(* get_iccid)(char *value, size_t *length)
查询 ICCID。
Definition ril_backend.h:200
int(* unblock_pin)(const tbox_sim_pin_request_t *request)
使用 PUK 解锁 PIN。
Definition ril_backend.h:208
void(* deinit)(void)
释放 SIM 功能域资源。
Definition ril_backend.h:194
int(* enable_pin)(const tbox_sim_pin_request_t *request)
启用 PIN 校验。
Definition ril_backend.h:210
int(* get_number)(char *value, size_t *length)
查询 SIM 卡号。
Definition ril_backend.h:202
int(* disable_pin)(const tbox_sim_pin_request_t *request)
禁用 PIN 校验。
Definition ril_backend.h:212
int(* verify_pin)(const tbox_sim_pin_request_t *request)
校验 PIN。
Definition ril_backend.h:204
int(* change_pin)(const tbox_sim_pin_request_t *request)
修改 PIN。
Definition ril_backend.h:206
int(* get_imsi)(char *value, size_t *length)
查询 IMSI。
Definition ril_backend.h:198
int(* get_status)(tbox_sim_state_t *status)
查询 SIM 卡状态。
Definition ril_backend.h:196
短消息功能域接口
Definition ril_backend.h:219
void(* deinit)(void)
释放短消息功能域资源。
Definition ril_backend.h:223
int(* send_pdu)(const tbox_sms_pdu_request_t *request)
发送 PDU 短信。
Definition ril_backend.h:227
int(* send_text)(const tbox_sms_text_request_t *request)
发送文本短信。
Definition ril_backend.h:225
int(* set_service_center)(const char *value)
设置短信服务中心号码。
Definition ril_backend.h:233
int(* init)(void)
初始化短消息功能域。
Definition ril_backend.h:221
int(* get_service_center)(char *value, size_t *length)
查询短信服务中心号码。
Definition ril_backend.h:231
int(* delete_message)(tbox_sms_storage_t storage, tbox_sms_mode_t mode, uint32_t storage_index)
删除模组内短信。
Definition ril_backend.h:229
语音和 eCall 功能域接口
Definition ril_backend.h:275
int(* get_volume)(uint32_t *volume)
查询通话音量。
Definition ril_backend.h:293
int(* send_dtmf)(char digit)
发送 DTMF 字符。
Definition ril_backend.h:289
int(* answer)(uint32_t call_id)
接听呼叫。
Definition ril_backend.h:283
int(* hangup)(uint32_t call_id)
挂断呼叫。
Definition ril_backend.h:285
int(* set_ecall_msd)(uint32_t call_id, const uint8_t *data, size_t length)
更新 eCall MSD。
Definition ril_backend.h:305
int(* start_ecall)(const tbox_ecall_request_t *request)
发起 eCall。
Definition ril_backend.h:301
void(* deinit)(void)
释放语音功能域资源。
Definition ril_backend.h:279
int(* get_audio_mode)(tbox_voice_audio_mode_t *mode)
查询音频路由模式。
Definition ril_backend.h:297
int(* set_audio_mode)(tbox_voice_audio_mode_t mode)
设置音频路由模式。
Definition ril_backend.h:295
int(* switch_active)(void)
切换当前活动呼叫。
Definition ril_backend.h:287
int(* get_call)(uint32_t call_id, tbox_call_event_t *call)
查询指定呼叫。
Definition ril_backend.h:299
int(* init)(void)
初始化语音功能域。
Definition ril_backend.h:277
int(* set_ecall_test_number)(tbox_ecall_number_type_t type, const char *number)
设置测试 eCall 号码。
Definition ril_backend.h:303
int(* dial)(const tbox_voice_dial_request_t *request, uint32_t *call_id)
发起普通语音呼叫。
Definition ril_backend.h:281
int(* set_volume)(uint32_t volume)
设置通话音量。
Definition ril_backend.h:291
通话状态事件。
Definition voice.h:157
eCall 启动请求。
Definition voice.h:167
分业务注册状态。
Definition radio.h:81
PIN 操作请求。
Definition sim.h:66
收到的短消息。
Definition sms.h:113
PDU 短信发送请求。
Definition sms.h:103
文本短信发送请求。
Definition sms.h:91
拨号请求。
Definition voice.h:147
语音事件。
Definition voice.h:196
T-Box 语音和 eCall 接口