#ifndef LYNQ_CALL_H | |
#define LYNQ_CALL_H 1 | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
#define LYNQ_PHONE_NUMBER_MAX 32 | |
#define INDEX_IS_NUMBER( alpha_char ) \ | |
( ( (alpha_char >= '0') && (alpha_char <= '9') ) ? 1 : 0 ) | |
#define LYNQ_CALL_MAX 10 | |
#define LYNQ_CALL_FAIL_VENDOR_CAUSE 64 | |
typedef enum { | |
LYNQ_CALL_FAIL_UNOBTAINABLE_NUMBER = 1, | |
LYNQ_CALL_FAIL_NORMAL = 16, | |
LYNQ_CALL_FAIL_BUSY = 17, | |
LYNQ_CALL_FAIL_CONGESTION = 34, | |
LYNQ_CALL_FAIL_ACM_LIMIT_EXCEEDED = 68, | |
LYNQ_CALL_FAIL_CALL_BARRED = 240, | |
LYNQ_CALL_FAIL_FDN_BLOCKED = 241, | |
LYNQ_CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242, | |
LYNQ_CALL_FAIL_IMEI_NOT_ACCEPTED = 243, | |
LYNQ_CALL_FAIL_DIAL_MODIFIED_TO_USSD = 244, /* STK Call Control */ | |
LYNQ_CALL_FAIL_DIAL_MODIFIED_TO_SS = 245, | |
LYNQ_CALL_FAIL_DIAL_MODIFIED_TO_DIAL = 246, | |
LYNQ_CALL_FAIL_CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, | |
LYNQ_CALL_FAIL_CDMA_DROP = 1001, | |
LYNQ_CALL_FAIL_CDMA_INTERCEPT = 1002, | |
LYNQ_CALL_FAIL_CDMA_REORDER = 1003, | |
LYNQ_CALL_FAIL_CDMA_SO_REJECT = 1004, | |
LYNQ_CALL_FAIL_CDMA_RETRY_ORDER = 1005, | |
LYNQ_CALL_FAIL_CDMA_ACCESS_FAILURE = 1006, | |
LYNQ_CALL_FAIL_CDMA_PREEMPTED = 1007, | |
LYNQ_CALL_FAIL_CDMA_NOT_EMERGENCY = 1008, /* For non-emergency number dialed | |
during emergency callback mode */ | |
LYNQ_CALL_FAIL_CDMA_ACCESS_BLOCKED = 1009, /* CDMA network access probes blocked */ | |
LYNQ_CALL_FAIL_ERROR_UNSPECIFIED = 0xffff | |
} lynq_last_call_fail_cause_t; | |
typedef struct | |
{ | |
lynq_last_call_fail_cause_t cause_code; | |
char vendor_cause[LYNQ_CALL_FAIL_VENDOR_CAUSE]; | |
}lynqLastCallFailCause; | |
int lynq_init_call(int uToken); | |
int lynq_deinit_call(); | |
int lynq_call(int *handle,char addr[]); | |
int lynq_call_answer(); | |
int lynq_call_hungup(int*handle); | |
int lynq_call_hungup_all(); | |
int lynq_wait_incoming_call(int *handle); | |
int lynq_set_auto_answercall(const int mode); | |
int lynq_get_mute_mic(int *status); | |
int lynq_set_mute_mic(const int enable); | |
int lynq_get_speech_volume(int *volume); | |
int lynq_set_speech_volume(const int volume); | |
int lynq_incall_record_start(const char* file_path); | |
int lynq_incall_record_stop(); | |
int lynq_set_DTMF(const char callnum); | |
int lynq_set_DTMF_volume(const int volume); | |
int lynq_get_current_call_state(int *handle, int *call_state,int *toa,int *direction,char addr[]); | |
#ifdef ECALL_SUPPORT | |
typedef enum{ | |
LYNQ_ECALL_SET_NUMBER = 0, /* Set Number */ | |
LYNQ_ECALL_SET_URI = 1, /* Set Uri */ | |
}LYNQ_ECall_Set_Type; | |
typedef enum{ | |
LYNQ_EMER_CAT_MANUAL_ECALL = 0, /* Manual Emergency eCall */ | |
LYNQ_EMER_CAT_AUTO_ECALL = 1, /* Automatic Emergency eCall */ | |
}LYNQ_ECall_Category; | |
typedef enum{ | |
LYNQ_ECALL_TEST = 0, /* Test eCall */ | |
LYNQ_ECALL_EMERGENCY = 1, /* Emergency eCall */ | |
LYNQ_ECALL_RECONFIG = 2, /* Reconfiguration eCall */ | |
LYNQ_ECALL_VAR_MAX, | |
}LYNQ_ECall_Variant; | |
typedef enum{ | |
LYNQ_ECALL_SENDING_START = 1, | |
LYNQ_ECALL_SENDING_MSD = 2, | |
LYNQ_ECALL_LLACK_RECEIVED = 3, | |
LYNQ_ECALL_ALACK_POSITIVE_RECEIVED = 4, | |
LYNQ_ECALL_ALACK_CLEARDOWN_RECEIVED = 5, | |
LYNQ_ECALL_ACTIVE = 11, | |
LYNQ_ECALL_DISCONNECTED = 12, | |
LYNQ_ECALL_IMS_ACTIVE = 13, | |
LYNQ_ECALL_IMS_DISCONNECTED = 14, | |
LYNQ_ECALL_ABNORMAL_HANGUP=15, | |
LYNQ_ECALL_IMS_MSD_ACK = 20, | |
LYNQ_ECALL_IMS_UPDATE_MSD = 21, | |
LYNQ_ECALL_IMS_IN_BAND_TRANSFER = 22, | |
LYNQ_ECALL_IMS_MSD_NACK = 23, | |
LYNQ_ECALL_IMS_SRVCC = 24, | |
LYNQ_ECALL_ONLY_DEREGISTRATION = 31, | |
LYNQ_ECALL_MAY_DEREGISTER = 32, | |
LYNQ_ECALL_PSAP_CALLBACK_START = 40, | |
LYNQ_ECALL_PSAP_CALLBACK_IMS_UPDATE_MSD = 41, | |
LYNQ_ECALL_T2_TIMER_OUT = 9000, | |
LYNQ_ECALL_T5_TIMER_OUT = 9001, | |
LYNQ_ECALL_T6_TIMER_OUT = 9002, | |
LYNQ_ECALL_T7_TIMER_OUT = 9003, | |
LYNQ_ECALL_REDIAL_TIMER_OUT = 9004, | |
LYNQ_ECALL_UNSPECIFIED = 0xffff, | |
}LYNQ_ECall_Indication; | |
int lynq_set_test_num(LYNQ_ECall_Set_Type type, const char *test_num, int test_num_length); | |
int lynq_fast_ecall(int* handle, LYNQ_ECall_Category lynq_ecall_cat, LYNQ_ECall_Variant lynq_ecall_variant, const char *addr, int addr_length, const unsigned char *msd_data, int msd_length); | |
int lynq_set_msd(int* handle, const unsigned char *msd_data, int msd_length); | |
int lynq_set_ivs(int enable); | |
int lynq_ivs_push_msd(); | |
int lynq_wait_ecall_indication(LYNQ_ECall_Indication *Endication); | |
#endif | |
/*E-CALL interface end*/ | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif |