liubin | 281ac46 | 2023-07-19 14:22:54 +0800 | [diff] [blame^] | 1 | #ifndef LYNQ_ECALL_H |
| 2 | #define LYNQ_ECALL_H |
| 3 | #include "mbtk_type.h" |
| 4 | #include "mbtk_log.h" |
| 5 | |
| 6 | typedef uint32 ecall_handle_type; |
| 7 | |
| 8 | typedef enum{ |
| 9 | LYNQ_ECALL_SET_NUMBER = 0, /* Set Number */ |
| 10 | LYNQ_ECALL_SET_URI = 1, /* Set Uri */ |
| 11 | }LYNQ_ECall_Set_Type; |
| 12 | |
| 13 | typedef enum{ |
| 14 | LYNQ_EMER_CAT_MANUAL_ECALL = 0, /* Manual Emergency eCall */ |
| 15 | LYNQ_EMER_CAT_AUTO_ECALL = 1, /* Automatic Emergency eCall */ |
| 16 | }LYNQ_ECall_Category; |
| 17 | |
| 18 | typedef enum{ |
| 19 | LYNQ_ECALL_TEST = 0, /* Test eCall */ |
| 20 | LYNQ_ECALL_EMERGENCY = 1, /* Emergency eCall */ |
| 21 | LYNQ_ECALL_RECONFIG = 2, /* Reconfiguration eCall */ |
| 22 | LYNQ_ECALL_VAR_MAX, |
| 23 | }LYNQ_ECall_Variant; |
| 24 | |
| 25 | typedef enum{ |
| 26 | LYNQ_ECALL_SENDING_START = 1, |
| 27 | LYNQ_ECALL_SENDING_MSD = 2, |
| 28 | LYNQ_ECALL_LLACK_RECEIVED = 3, |
| 29 | LYNQ_ECALL_ALACK_POSITIVE_RECEIVED = 4, |
| 30 | LYNQ_ECALL_ALACK_CLEARDOWN_RECEIVED = 5, |
| 31 | LYNQ_ECALL_ACTIVE = 11, |
| 32 | LYNQ_ECALL_DISCONNECTED = 12, |
| 33 | LYNQ_ECALL_IMS_ACTIVE = 13, |
| 34 | LYNQ_ECALL_IMS_DISCONNECTED = 14, |
| 35 | LYNQ_ECALL_ABNORMAL_HANGUP=15, |
| 36 | LYNQ_ECALL_IMS_MSD_ACK = 20, |
| 37 | LYNQ_ECALL_IMS_UPDATE_MSD = 21, |
| 38 | LYNQ_ECALL_IMS_IN_BAND_TRANSFER = 22, |
| 39 | LYNQ_ECALL_IMS_MSD_NACK = 23, |
| 40 | LYNQ_ECALL_IMS_SRVCC = 24, |
| 41 | LYNQ_ECALL_ONLY_DEREGISTRATION = 31, |
| 42 | LYNQ_ECALL_MAY_DEREGISTER = 32, |
| 43 | LYNQ_ECALL_PSAP_CALLBACK_START = 40, |
| 44 | LYNQ_ECALL_PSAP_CALLBACK_IMS_UPDATE_MSD = 41, |
| 45 | LYNQ_ECALL_T2_TIMER_OUT = 9000, |
| 46 | LYNQ_ECALL_T5_TIMER_OUT = 9001, |
| 47 | LYNQ_ECALL_T6_TIMER_OUT = 9002, |
| 48 | LYNQ_ECALL_T7_TIMER_OUT = 9003, |
| 49 | LYNQ_ECALL_REDIAL_TIMER_OUT = 9004, |
| 50 | LYNQ_ECALL_AUTO_ANS_TIMER_OUT = 9005, |
| 51 | LYNQ_ECALL_AUTO_ANS_IMS_TIMER_OUT = 9006, |
| 52 | LYNQ_ECALL_UNSPECIFIED = 0xffff, |
| 53 | }LYNQ_ECall_Indication; |
| 54 | |
| 55 | int lynq_ecall_init(ecall_handle_type *handle); |
| 56 | int lynq_ecall_deinit(ecall_handle_type handle); |
| 57 | int lynq_set_test_num(LYNQ_ECall_Set_Type type, const char *test_num, int test_num_length); |
| 58 | int lynq_set_reconf_num(LYNQ_ECall_Set_Type type, const char *reconf_num, int reconf_num_length); |
| 59 | int lynq_fast_ecall(int* handle, |
| 60 | LYNQ_ECall_Category lynq_ecall_cat, |
| 61 | LYNQ_ECall_Variant lynq_ecall_variant, |
| 62 | const char *addr, int addr_length, |
| 63 | const unsigned char *msd_data, int msd_length); |
| 64 | int lynq_make_ecall(int* handle, LYNQ_ECall_Variant type); |
| 65 | int lynq_set_msd(int* handle, const unsigned char *msd_data, int msd_length); |
| 66 | int lynq_set_ivs(int enable); |
| 67 | int lynq_ivs_push_msd(); |
| 68 | int lynq_wait_ecall_indication(int* handle, LYNQ_ECall_Indication *eCall_Indication); |
| 69 | int lynq_ecall_hungup(int handle); |
| 70 | |
| 71 | #endif |