blob: 02d45fe09b8bc454e2c40fce19d61f6466d5cc32 [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001/*-----------------------------------------------------------------------------------------------*/
2/**
3 @file ql_data_call.h
4 @brief Data service API
5*/
6/*-----------------------------------------------------------------------------------------------*/
7
8/*-------------------------------------------------------------------------------------------------
9 Copyright (c) 2018 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
10 Quectel Wireless Solution Proprietary and Confidential.
11-------------------------------------------------------------------------------------------------*/
12
13/*-------------------------------------------------------------------------------------------------
14 EDIT HISTORY
15 This section contains comments describing changes made to the file.
16 Notice that changes are listed in reverse chronological order.
17 $Header: $
18 when who what, where, why
19 -------- --- ----------------------------------------------------------
20 20181024 tyler.kuang Created .
21-------------------------------------------------------------------------------------------------*/
22
23#ifndef __QL_MS_DATA_CALL_H__
24#define __QL_MS_DATA_CALL_H__
25#include <sys/socket.h>
26#include <netinet/in.h>
27#include <arpa/inet.h>
28#include "ql_data_call.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34
35
36/*-----------------------------------------------------------------------------------------------*/
37/**
38 @brief Initialize the data call service
39 @return
40 QL_ERR_OK - successful
41 QL_ERR_INVALID_ARG - as defined
42 QL_ERR_UNKNOWN - unknown error, failed to connect to service
43 QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry
44 Other - error code defined by ql_type.h
45 */
46/*-----------------------------------------------------------------------------------------------*/
47int ql_ms_data_call_init(void);
48
49/*-----------------------------------------------------------------------------------------------*/
50/**
51 @brief Create a data call instance
52 @param[in] call_id The unique identifier of the data call instance, specified by the user
53 @param[in] call_name Friendly data call name, specified by the user
54 @param[in] is_background Whether the data call status is maintained by the data call service daemon.
55 If it is 0, the data call instance will be deleted after the data call process exits.
56 @return
57 QL_ERR_OK - successful
58 QL_ERR_INVALID_ARG - as defined
59 QL_ERR_UNKNOWN - unknown error, failed to connect to service
60 QL_ERR_SERVICE_NOT_READY - service is not ready, need to retry
61 Other - error code defined by ql_type.h
62 */
63/*-----------------------------------------------------------------------------------------------*/
64int ql_ms_data_call_create(int call_id, const char *call_name, int is_background);
65
66/*-----------------------------------------------------------------------------------------------*/
67/**
68 @brief Alloc for a data call configuration instance
69 @return
70 NULL - Not enough memory
71 Other - successful
72 */
73/*-----------------------------------------------------------------------------------------------*/
74ql_data_call_param_t *ql_ms_data_call_param_alloc(void);
75
76/*-----------------------------------------------------------------------------------------------*/
77/**
78 @brief Initialize the data call configuration instance
79 @param[in] param Point to the data call configuration instance
80 @return
81 QL_ERR_OK - Successful
82 QL_ERR_INVALID_ARG - Invalid arguments
83 */
84/*-----------------------------------------------------------------------------------------------*/
85int ql_ms_data_call_param_init(ql_data_call_param_t *param);
86
87/*-----------------------------------------------------------------------------------------------*/
88/**
89 @brief Release the data call configuration instance
90 @param[in] param Point to the data call configuration instance
91 @return
92 QL_ERR_OK - Successful
93 QL_ERR_INVALID_ARG - Invalid arguments
94 */
95/*-----------------------------------------------------------------------------------------------*/
96int ql_ms_data_call_param_free(ql_data_call_param_t *param);
97
98
99/*-----------------------------------------------------------------------------------------------*/
100/**
101 @brief Bind APN ID, range:1-16
102 @param[in] param Point to the data call configuration instance
103 @param[in] apn_id APN ID, range:1-16
104 @return
105 QL_ERR_OK - Successful
106 QL_ERR_INVALID_ARG - Invalid arguments
107 */
108/*-----------------------------------------------------------------------------------------------*/
109int ql_ms_data_call_param_set_apn_id(ql_data_call_param_t *param, int apn_id);
110
111/*-----------------------------------------------------------------------------------------------*/
112/**
113 @brief Get APN name from configuration instance
114 @param[in] param Point to the data call configuration instance
115 @param[out] buf APN ID
116 @return
117 QL_ERR_OK - Successful
118 QL_ERR_INVALID_ARG - Invalid arguments
119 */
120/*-----------------------------------------------------------------------------------------------*/
121int ql_ms_data_call_param_get_apn_id(ql_data_call_param_t *param, int *apn_id);
122
123
124/*-----------------------------------------------------------------------------------------------*/
125/**
126 @brief Configure APN name
127 @param[in] param Point to the data call configuration instance
128 @param[in] apn_name APN name
129 @return
130 QL_ERR_OK - Successful
131 QL_ERR_INVALID_ARG - Invalid arguments
132 */
133/*-----------------------------------------------------------------------------------------------*/
134int ql_ms_data_call_param_set_apn_name(ql_data_call_param_t *param, const char *apn_name);
135
136/*-----------------------------------------------------------------------------------------------*/
137/**
138 @brief Get APN name from configuration instance
139 @param[in] param Point to the data call configuration instance
140 @param[out] buf APN name buffer
141 @param[in] buf_len APN name buffer size
142 @return
143 QL_ERR_OK - Successful
144 QL_ERR_INVALID_ARG - Invalid arguments
145 */
146/*-----------------------------------------------------------------------------------------------*/
147int ql_ms_data_call_param_get_apn_name(ql_data_call_param_t *param, char *buf, int buf_len);
148
149/*-----------------------------------------------------------------------------------------------*/
150/**
151 @brief Configure APN user name
152 @param[in] param Point to the data call configuration instance
153 @param[in] user_name APN user name
154 @return
155 QL_ERR_OK - Successful
156 QL_ERR_INVALID_ARG - Invalid arguments
157 */
158/*-----------------------------------------------------------------------------------------------*/
159int ql_ms_data_call_param_set_user_name(ql_data_call_param_t *param, const char *user_name);
160
161/*-----------------------------------------------------------------------------------------------*/
162/**
163 @brief Get APN user name from configuration instance
164 @param[in] param Point to the data call configuration instance
165 @param[out] buf APN user name buffer
166 @param[in] buf_len APN user name buffer size
167 @return
168 QL_ERR_OK - Successful
169 QL_ERR_INVALID_ARG - Invalid arguments
170 */
171/*-----------------------------------------------------------------------------------------------*/
172int ql_ms_data_call_param_get_user_name(ql_data_call_param_t *param, char *buf, int buf_len);
173
174/*-----------------------------------------------------------------------------------------------*/
175/**
176 @brief Configure APN user password
177 @param[in] param Point to the data call configuration instance
178 @param[in] user_password APN user password
179 @return
180 QL_ERR_OK - Not enough memory
181 QL_ERR_INVALID_ARG - Invalid arguments
182 */
183/*-----------------------------------------------------------------------------------------------*/
184int ql_ms_data_call_param_set_user_password(ql_data_call_param_t *param, const char *user_password);
185
186/*-----------------------------------------------------------------------------------------------*/
187/**
188 @brief Get APN user password from configuration instance
189 @param[in] param Point to the data call configuration instance
190 @param[out] buf APN user password buffer
191 @param[in] buf_len APN user password buffer size
192 @return
193 QL_ERR_OK - Not enough memory
194 QL_ERR_INVALID_ARG - Invalid arguments
195 */
196/*-----------------------------------------------------------------------------------------------*/
197int ql_ms_data_call_param_get_user_password(ql_data_call_param_t *param, char *buf, int buf_len);
198
199
200/*-----------------------------------------------------------------------------------------------*/
201/**
202 @brief Configure the data call authentication method
203 @param[in] param Point to the data call configuration instance
204 @param[in] auth_pref Defined by QL_DATA_CALL_AUTH_PREF_E
205 @return
206 QL_ERR_OK - Successful
207 QL_ERR_INVALID_ARG - Invalid arguments
208 */
209/*-----------------------------------------------------------------------------------------------*/
210int ql_ms_data_call_param_set_auth_pref(ql_data_call_param_t *param, int auth_pref);
211
212/*-----------------------------------------------------------------------------------------------*/
213/**
214 @brief Configure the data call authentication method
215 @param[in] param Point to the data call configuration instance
216 @param[out] p_data Store return value
217 @return
218 QL_ERR_OK - Successful
219 QL_ERR_INVALID_ARG - Invalid arguments
220 */
221/*-----------------------------------------------------------------------------------------------*/
222int ql_ms_data_call_param_get_auth_pref(ql_data_call_param_t *param, int *p_data);
223
224
225/*-----------------------------------------------------------------------------------------------*/
226/**
227 @brief Configure the data call IP version
228 @param[in] param Point to the data call configuration instance
229 @param[in] ip_ver Defined by QL_NET_IP_VER_E
230 @return
231 QL_ERR_OK - Successful
232 QL_ERR_INVALID_ARG - Invalid arguments
233 */
234/*-----------------------------------------------------------------------------------------------*/
235int ql_ms_data_call_param_set_ip_version(ql_data_call_param_t *param, int ip_ver);
236
237/*-----------------------------------------------------------------------------------------------*/
238/**
239 @brief Get IP version from configuration instance
240 @param[in] param Point to the data call configuration instance
241 @param[out] p_ver Store return value
242 @return
243 QL_ERR_OK - Successful
244 QL_ERR_INVALID_ARG - Invalid arguments
245 */
246/*-----------------------------------------------------------------------------------------------*/
247int ql_ms_data_call_param_get_ip_version(ql_data_call_param_t *param, int *p_ver);
248
249/*-----------------------------------------------------------------------------------------------*/
250/**
251 @brief Configure the data call auto reconnection mode
252 @param[in] param Point to the data call configuration instance
253 @param[in] mode Defined by QL_NET_DATA_CALL_RECONNECT_MODE_E
254 @return
255 QL_ERR_OK - Successful
256 QL_ERR_INVALID_ARG - Invalid arguments
257 */
258/*-----------------------------------------------------------------------------------------------*/
259int ql_ms_data_call_param_set_reconnect_mode(ql_data_call_param_t *param, int reconnect_mode);
260
261/*-----------------------------------------------------------------------------------------------*/
262/**
263 @brief Get auto reconnection mode from configuration instance
264 @param[in] param Point to the data call configuration instance
265 @param[out] p_mode Store return value
266 @return
267 QL_ERR_OK - Successful
268 QL_ERR_INVALID_ARG - Invalid arguments
269 */
270/*-----------------------------------------------------------------------------------------------*/
271int ql_ms_data_call_param_get_reconnect_mode(ql_data_call_param_t *param, int *p_mode);
272
273/*-----------------------------------------------------------------------------------------------*/
274/**
275 @brief Configure the data call auto reconnection interval
276 @param[in] param Point to the data call configuration instance
277 @param[in] time_list Interval time list in ms
278 @param[in] num Number of time list
279 @return
280 QL_ERR_OK - Successful
281 QL_ERR_INVALID_ARG - Invalid arguments
282 */
283/*-----------------------------------------------------------------------------------------------*/
284int ql_ms_data_call_param_set_reconnect_interval(ql_data_call_param_t *param, int *time_list, int num);
285
286/*-----------------------------------------------------------------------------------------------*/
287/**
288 @brief Get auto reconnection interval from configuration instance
289 @param[in] param Point to the data call configuration instance
290 @param[out] time_list Store return value
291 @param[in,out] p_num
292 @return
293 QL_ERR_OK - Successful
294 QL_ERR_INVALID_ARG - Invalid arguments
295 */
296/*-----------------------------------------------------------------------------------------------*/
297int ql_ms_data_call_param_get_reconnect_interval(ql_data_call_param_t *param, int *time_list, int *p_num);
298
299/*-----------------------------------------------------------------------------------------------*/
300/**
301 @brief Configure the data call sim id
302 @param[in] param Point to the data call configuration instance
303 @param[in] sim_id Store return value
304 @return
305 QL_ERR_OK - Successful
306 QL_ERR_INVALID_ARG - Invalid arguments
307 */
308/*-----------------------------------------------------------------------------------------------*/
309int ql_ms_data_call_param_set_sim_id(ql_data_call_param_t *param, int sim_id);
310
311/*-----------------------------------------------------------------------------------------------*/
312/**
313 @brief Get the data call sim id from configuration instance
314 @param[in] param Point to the data call configuration instance
315 @param[out] p_sim_id Store return value
316 @return
317 QL_ERR_OK - Successful
318 QL_ERR_INVALID_ARG - Invalid arguments
319 */
320/*-----------------------------------------------------------------------------------------------*/
321int ql_ms_data_call_param_get_sim_id(ql_data_call_param_t *param, int *p_sim_id);
322
323/*-----------------------------------------------------------------------------------------------*/
324/**
325 @brief Configure the specified data call instance
326 @param[in] call_id Specify a data call instance
327 @param[in] param Point to the data call configuration instance
328 @return
329 QL_ERR_OK - Successful
330 QL_ERR_INVALID_ARG - Invalid arguments
331 */
332/*-----------------------------------------------------------------------------------------------*/
333int ql_ms_data_call_config(int call_id, ql_data_call_param_t *param);
334
335/*-----------------------------------------------------------------------------------------------*/
336/**
337 @brief Get the specified data call configuration instance
338 @param[in] call_id Specify a data call instance
339 @param[in] param Point to the data call configuration instance
340 @return
341 QL_ERR_OK - Successful
342 QL_ERR_INVALID_ARG - Invalid arguments
343 */
344/*-----------------------------------------------------------------------------------------------*/
345int ql_ms_data_call_get_config(int call_id, ql_data_call_param_t *param);
346
347/*-----------------------------------------------------------------------------------------------*/
348/**
349 @brief Start data call
350 @param[in] call_id Specify a data call instance
351 @return
352 QL_ERR_OK - successful
353 QL_ERR_NOT_INIT - uninitialized
354 QL_ERR_SERVICE_NOT_READY - service is not ready
355 QL_ERR_INVALID_ARG - Invalid arguments
356 Other - error code defined by ql_type.h
357 */
358/*-----------------------------------------------------------------------------------------------*/
359int ql_ms_data_call_start(int call_id);
360
361/*-----------------------------------------------------------------------------------------------*/
362/**
363 @brief Stop data call
364 @param[in] call_id Specify a data call instance
365 @return
366 QL_ERR_OK - successful
367 QL_ERR_NOT_INIT - uninitialized
368 QL_ERR_SERVICE_NOT_READY - service is not ready
369 QL_ERR_INVALID_ARG - Invalid arguments
370 Other - error code defined by ql_type.h
371 */
372/*-----------------------------------------------------------------------------------------------*/
373int ql_ms_data_call_stop(int call_id);
374
375/*-----------------------------------------------------------------------------------------------*/
376/**
377 @brief Delete a data call instance
378 @param[in] call_id Specify a data call instance
379 @return
380 QL_ERR_OK - successful
381 QL_ERR_NOT_INIT - uninitialized
382 QL_ERR_SERVICE_NOT_READY - service is not ready
383 QL_ERR_INVALID_ARG - Invalid arguments
384 Other - error code defined by ql_type.h
385 */
386/*-----------------------------------------------------------------------------------------------*/
387int ql_ms_data_call_delete(int call_id);
388
389/*-----------------------------------------------------------------------------------------------*/
390/**
391 @brief Get the current data call instance list
392 @param[out] list Data call instance array
393 @param[in,out] list_len, in-> Data call instance array size, out->current data call instance number
394 @return
395 QL_ERR_OK - successful
396 QL_ERR_NOT_INIT - uninitialized
397 QL_ERR_SERVICE_NOT_READY - service is not ready
398 QL_ERR_INVALID_ARG - Invalid arguments
399 Other - error code defined by ql_type.h
400 */
401/*-----------------------------------------------------------------------------------------------*/
402int ql_ms_data_call_get_list(ql_data_call_item_t *list, int *list_len);
403
404/*-----------------------------------------------------------------------------------------------*/
405/**
406 @brief Get the data call status
407 @param[in] call_id Specify a data call instance
408 @param[out] p_sta Point to status instance
409 @return
410 QL_ERR_OK - successful
411 QL_ERR_NOT_INIT - uninitialized
412 QL_ERR_SERVICE_NOT_READY - service is not ready
413 QL_ERR_INVALID_ARG - Invalid arguments
414 Other - error code defined by ql_type.h
415 */
416/*-----------------------------------------------------------------------------------------------*/
417int ql_ms_data_call_get_status(int call_id, ql_data_call_status_t *p_sta);
418
419/*-----------------------------------------------------------------------------------------------*/
420/**
421 @brief Register data call status change event
422 @param[in] cb
423 @return
424 QL_ERR_OK - successful
425 QL_ERR_NOT_INIT - uninitialized
426 QL_ERR_SERVICE_NOT_READY - service is not ready
427 QL_ERR_INVALID_ARG - Invalid arguments
428 Other - error code defined by ql_type.h
429 */
430/*-----------------------------------------------------------------------------------------------*/
431int ql_ms_data_call_set_status_ind_cb(ql_data_call_status_ind_cb_f cb);
432
433/*-----------------------------------------------------------------------------------------------*/
434/**
435 @brief Set APN related configuration.If the apn does not exist, it is automatically created.
436 @param[in] sim_id SIM ID, range:1-2
437 @param[in] apn_id APN ID, range:1-16
438 @param[in] p_info APN configuration
439 @return
440 QL_ERR_OK - successful
441 QL_ERR_NOT_INIT - uninitialized
442 QL_ERR_SERVICE_NOT_READY - service is not ready
443 QL_ERR_INVALID_ARG - Invalid arguments
444 Other - error code defined by ql_type.h
445 */
446/*-----------------------------------------------------------------------------------------------*/
447int ql_ms_data_call_set_apn_config(int sim_id, int apn_id, ql_data_call_apn_config_t *p_info);
448
449/*-----------------------------------------------------------------------------------------------*/
450/**
451 @brief Set APN related configuration. If the apn does not exist, it is automatically created and
452 the default parameters are set.
453 @param[in] sim_id SIM ID, range:1-2
454 @param[in] apn_id APN ID, range:1-16
455 @param[out] p_info APN configuration
456 @return
457 QL_ERR_OK - successful
458 QL_ERR_NOT_INIT - uninitialized
459 QL_ERR_SERVICE_NOT_READY - service is not ready
460 QL_ERR_INVALID_ARG - Invalid arguments
461 Other - error code defined by ql_type.h
462 */
463/*-----------------------------------------------------------------------------------------------*/
464int ql_ms_data_call_get_apn_config(int sim_id, int apn_id, ql_data_call_apn_config_t *p_info);
465
466
467/*-----------------------------------------------------------------------------------------------*/
468/**
469 @brief Registration server error callback. Currently, only if the server exits abnormally,
470 the callback function will be executed, and the error code is QL_ERR_ABORTED;
471 @param[in] cb Callback function
472 @return
473 QL_ERR_OK - successful
474 Other - error code defined by ql_type.h
475 */
476/*-----------------------------------------------------------------------------------------------*/
477int ql_ms_data_call_set_service_error_cb(ql_data_call_service_error_cb_f cb);
478
479/*-----------------------------------------------------------------------------------------------*/
480/**
481 @brief Deinitialize the data call service
482 @return
483 QL_ERR_OK - successful
484 Other - error code defined by ql_type.h
485 */
486/*-----------------------------------------------------------------------------------------------*/
487int ql_ms_data_call_deinit(void);
488
489
490#ifdef __cplusplus
491}
492#endif
493
494#endif
495