T-Box Basic dev
Loading...
Searching...
No Matches
TBOX_VOICE

T-Box 语音和 eCall More...

Data Structures

struct  tbox_voice_dial_request_t
 拨号请求。 More...
struct  tbox_call_event_t
 通话状态事件。 More...
struct  tbox_ecall_request_t
 eCall 启动请求。 More...
struct  tbox_ecall_event_t
 eCall 状态事件。 More...
struct  tbox_voice_event_t
 语音事件。 More...

Macros

#define TBOX_RIL_PHONE_NUMBER_MAX   32U
 包含结尾 NUL 的电话号码容量
#define TBOX_RIL_ECALL_MSD_MAX   140U
 eCall MSD 最大字节数

Typedefs

typedef void(* tbox_voice_callback_t) (const tbox_voice_event_t *event, void *context)
 语音事件回调。

Enumerations

enum  tbox_call_status_t {
  TBOX_CALL_UNKNOWN = 0 , TBOX_CALL_DIALING = 1 , TBOX_CALL_ALERTING = 2 , TBOX_CALL_INCOMING = 3 ,
  TBOX_CALL_ACTIVE = 4 , TBOX_CALL_HELD = 5 , TBOX_CALL_ENDED = 6 , TBOX_CALL_WAITING = 7
}
 通话状态。 More...
enum  tbox_call_type_t { TBOX_CALL_VOICE = 0 , TBOX_CALL_EMERGENCY = 1 }
 通话类别。 More...
enum  tbox_ecall_trigger_t { TBOX_ECALL_AUTOMATIC = 0 , TBOX_ECALL_MANUAL = 1 }
 eCall 触发方式。 More...
enum  tbox_ecall_variant_t { TBOX_ECALL_TEST = 0 , TBOX_ECALL_EMERGENCY = 1 , TBOX_ECALL_RECONFIGURE = 2 }
 eCall 呼叫类型。 More...
enum  tbox_ecall_number_type_t { TBOX_ECALL_TEST_NUMBER = 0 , TBOX_ECALL_TEST_URI = 1 }
 eCall 测试号码类型。 More...
enum  tbox_voice_slot_t { TBOX_VOICE_SLOT_1 = 0 , TBOX_VOICE_SLOT_2 = 1 , TBOX_VOICE_EMBEDDED = 2 , TBOX_VOICE_REMOTE = 3 }
 语音卡槽。 More...
enum  tbox_voice_audio_mode_t { TBOX_VOICE_AUDIO_CODEC = 0 , TBOX_VOICE_AUDIO_RTP = 1 }
 音频承载方式。 More...
enum  tbox_ecall_status_t {
  TBOX_ECALL_UNKNOWN = 0 , TBOX_ECALL_STARTING = 1 , TBOX_ECALL_SENDING_MSD = 2 , TBOX_ECALL_MSD_ACKNOWLEDGED = 3 ,
  TBOX_ECALL_DIALING = 4 , TBOX_ECALL_ALERTING = 5 , TBOX_ECALL_ACTIVE = 6 , TBOX_ECALL_DISCONNECTED = 7 ,
  TBOX_ECALL_FAILED = 8 , TBOX_ECALL_CALLBACK = 9 , TBOX_ECALL_LLACK_RECEIVED = 10 , TBOX_ECALL_CLEARDOWN_RECEIVED = 11 ,
  TBOX_ECALL_MSD_NOT_ACKNOWLEDGED = 12 , TBOX_ECALL_UPDATE_MSD = 13 , TBOX_ECALL_IN_BAND_TRANSFER = 14 , TBOX_ECALL_SRVCC = 15 ,
  TBOX_ECALL_ONLY_DEREGISTRATION = 16 , TBOX_ECALL_MAY_DEREGISTER = 17 , TBOX_ECALL_CALLBACK_UPDATE_MSD = 18 , TBOX_ECALL_SENDING_START_IN_VOICE = 19 ,
  TBOX_ECALL_T2_TIMEOUT = 20 , TBOX_ECALL_T5_TIMEOUT = 21 , TBOX_ECALL_T6_TIMEOUT = 22 , TBOX_ECALL_T7_TIMEOUT = 23 ,
  TBOX_ECALL_REDIAL_TIMEOUT = 24 , TBOX_ECALL_AUTO_ANSWER_TIMEOUT = 25 , TBOX_ECALL_START_SUCCEEDED = 26 , TBOX_ECALL_START_FAILED = 27 ,
  TBOX_ECALL_START_NO_RETRY = 28
}
 eCall 状态。 More...
enum  tbox_voice_event_type_t { TBOX_VOICE_EVENT_CALL = 1 , TBOX_VOICE_EVENT_ECALL = 2 }
 语音事件类别。 More...

Functions

int tbox_voice_register_callback (tbox_voice_callback_t callback, void *context)
 注册语音事件回调。
int tbox_voice_unregister_callback (void)
 注销语音事件回调。
int tbox_voice_dial (const tbox_voice_dial_request_t *request, uint32_t *call_id)
 发起通话。
int tbox_voice_answer (uint32_t call_id)
 接听通话。
int tbox_voice_hangup (uint32_t call_id)
 挂断通话。
int tbox_voice_switch_active (void)
 切换活动通话。
int tbox_voice_send_dtmf (char digit)
 发送 DTMF。
int tbox_voice_set_volume (uint32_t volume)
 设置通话音量。
int tbox_voice_get_volume (uint32_t *volume)
 查询通话音量。
int tbox_voice_set_audio_mode (tbox_voice_audio_mode_t mode)
 设置音频承载方式。
int tbox_voice_get_audio_mode (tbox_voice_audio_mode_t *mode)
 查询音频承载方式。
int tbox_voice_get_call (uint32_t call_id, tbox_call_event_t *call, size_t *length)
 查询指定通话。
int tbox_voice_start_ecall (const tbox_ecall_request_t *request)
 异步启动 eCall。
int tbox_voice_set_ecall_test_number (tbox_ecall_number_type_t type, const char *number)
 设置测试 eCall 号码。
int tbox_voice_set_ecall_msd (uint32_t call_id, const uint8_t *data, size_t length)
 更新指定 eCall 的 MSD。

Detailed Description

T-Box 语音和 eCall

接口均为线程安全的同步调用,调用前需通过

See also
tbox_ril_init() 初始化,远端调用最多等待 2 秒。

Typedef Documentation

◆ tbox_voice_callback_t

typedef void(* tbox_voice_callback_t) (const tbox_voice_event_t *event, void *context)

语音事件回调。

event 仅在回调期间有效。回调运行于 RIL 内部事件线程,应尽快返回,不得主动等待、 休眠或执行其他耗时操作;需要后续处理时,应复制事件并交由业务线程执行。

Parameters
event语音或 eCall 事件。
context注册回调时提供的上下文,可为 NULL。

Enumeration Type Documentation

◆ tbox_call_status_t

通话状态。

Enumerator
TBOX_CALL_UNKNOWN 

未知

TBOX_CALL_DIALING 

正在拨号

TBOX_CALL_ALERTING 

对端振铃

TBOX_CALL_INCOMING 

来电

TBOX_CALL_ACTIVE 

通话中

TBOX_CALL_HELD 

保持

TBOX_CALL_ENDED 

已结束

TBOX_CALL_WAITING 

呼叫等待

◆ tbox_call_type_t

通话类别。

Enumerator
TBOX_CALL_VOICE 

普通语音

TBOX_CALL_EMERGENCY 

紧急呼叫

◆ tbox_ecall_number_type_t

eCall 测试号码类型。

Enumerator
TBOX_ECALL_TEST_NUMBER 

电话号码

TBOX_ECALL_TEST_URI 

URI.

◆ tbox_ecall_status_t

eCall 状态。

Enumerator
TBOX_ECALL_UNKNOWN 

未知

TBOX_ECALL_STARTING 

正在启动

TBOX_ECALL_SENDING_MSD 

正在发送 MSD

TBOX_ECALL_MSD_ACKNOWLEDGED 

MSD 已确认

TBOX_ECALL_DIALING 

正在拨号

TBOX_ECALL_ALERTING 

对端振铃

TBOX_ECALL_ACTIVE 

通话中

TBOX_ECALL_DISCONNECTED 

已断开

TBOX_ECALL_FAILED 

失败

TBOX_ECALL_CALLBACK 

回拨窗口

TBOX_ECALL_LLACK_RECEIVED 

已收到链路层确认

TBOX_ECALL_CLEARDOWN_RECEIVED 

已收到清除确认

TBOX_ECALL_MSD_NOT_ACKNOWLEDGED 

MSD 未获确认

TBOX_ECALL_UPDATE_MSD 

请求更新 MSD

TBOX_ECALL_IN_BAND_TRANSFER 

已切换到带内传输

TBOX_ECALL_SRVCC 

已发生 SRVCC 切换

TBOX_ECALL_ONLY_DEREGISTRATION 

要求立即去注册

TBOX_ECALL_MAY_DEREGISTER 

允许去注册

TBOX_ECALL_CALLBACK_UPDATE_MSD 

PSAP 回呼期间请求更新 MSD.

TBOX_ECALL_SENDING_START_IN_VOICE 

通话期间开始发送 MSD

TBOX_ECALL_T2_TIMEOUT 

T2 定时器超时

TBOX_ECALL_T5_TIMEOUT 

T5 定时器超时

TBOX_ECALL_T6_TIMEOUT 

T6 定时器超时

TBOX_ECALL_T7_TIMEOUT 

T7 定时器超时

TBOX_ECALL_REDIAL_TIMEOUT 

重拨定时器超时

TBOX_ECALL_AUTO_ANSWER_TIMEOUT 

自动接听定时器超时

TBOX_ECALL_START_SUCCEEDED 

发起成功

TBOX_ECALL_START_FAILED 

发起失败

TBOX_ECALL_START_NO_RETRY 

无需重播

◆ tbox_ecall_trigger_t

eCall 触发方式。

Enumerator
TBOX_ECALL_AUTOMATIC 

自动触发

TBOX_ECALL_MANUAL 

手动触发

◆ tbox_ecall_variant_t

eCall 呼叫类型。

Enumerator
TBOX_ECALL_TEST 

测试呼叫

TBOX_ECALL_EMERGENCY 

紧急呼叫

TBOX_ECALL_RECONFIGURE 

重新配置呼叫

◆ tbox_voice_audio_mode_t

音频承载方式。

Enumerator
TBOX_VOICE_AUDIO_CODEC 

模组编解码器

TBOX_VOICE_AUDIO_RTP 

RTP.

◆ tbox_voice_event_type_t

语音事件类别。

Enumerator
TBOX_VOICE_EVENT_CALL 

通话状态事件

TBOX_VOICE_EVENT_ECALL 

eCall 状态事件

◆ tbox_voice_slot_t

语音卡槽。

Enumerator
TBOX_VOICE_SLOT_1 

卡槽 1

TBOX_VOICE_SLOT_2 

卡槽 2

TBOX_VOICE_EMBEDDED 

嵌入式卡

TBOX_VOICE_REMOTE 

远程卡

Function Documentation

◆ tbox_voice_answer()

int tbox_voice_answer ( uint32_t call_id)

接听通话。

Parameters
call_id通话标识。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_dial()

int tbox_voice_dial ( const tbox_voice_dial_request_t * request,
uint32_t * call_id )

发起通话。

Parameters
request拨号请求,仅在调用期间借用。
call_id输出通话标识。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_get_audio_mode()

int tbox_voice_get_audio_mode ( tbox_voice_audio_mode_t * mode)

查询音频承载方式。

Parameters
mode输出音频承载方式。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_get_call()

int tbox_voice_get_call ( uint32_t call_id,
tbox_call_event_t * call,
size_t * length )

查询指定通话。

当 call 为 NULL 时,仅返回所需长度。

Parameters
call_id通话标识。
call输出通话状态,可为 NULL。
length输入缓冲区长度,输出实际或所需长度。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_get_volume()

int tbox_voice_get_volume ( uint32_t * volume)

查询通话音量。

Parameters
volume输出通话音量。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_hangup()

int tbox_voice_hangup ( uint32_t call_id)

挂断通话。

Parameters
call_id通话标识。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_register_callback()

int tbox_voice_register_callback ( tbox_voice_callback_t callback,
void * context )

注册语音事件回调。

每个进程只允许注册一个回调。

Parameters
callback语音事件回调。
context回调上下文,可为 NULL。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_send_dtmf()

int tbox_voice_send_dtmf ( char digit)

发送 DTMF。

Parameters
digit0 至 9、星号或井号。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_set_audio_mode()

int tbox_voice_set_audio_mode ( tbox_voice_audio_mode_t mode)

设置音频承载方式。

Parameters
mode音频承载方式。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_set_ecall_msd()

int tbox_voice_set_ecall_msd ( uint32_t call_id,
const uint8_t * data,
size_t length )

更新指定 eCall 的 MSD。

Parameters
call_ideCall 通话标识。
dataMSD,仅在调用期间借用。
lengthMSD 字节数,最大 140 字节。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_set_ecall_test_number()

int tbox_voice_set_ecall_test_number ( tbox_ecall_number_type_t type,
const char * number )

设置测试 eCall 号码。

Parameters
type号码类型。
numberNUL 结尾的测试号码或 URI;空字符串用于清除测试号码。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_set_volume()

int tbox_voice_set_volume ( uint32_t volume)

设置通话音量。

Parameters
volume音量等级,范围 0 至 5。
Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_start_ecall()

int tbox_voice_start_ecall ( const tbox_ecall_request_t * request)

异步启动 eCall。

Parameters
requesteCall 请求,仅在调用期间借用。
Returns
TBOX_OK 请求已受理,其他值表示请求未受理。
Note
后端执行结果通过语音回调上报:

◆ tbox_voice_switch_active()

int tbox_voice_switch_active ( void )

切换活动通话。

Returns
TBOX_OK 成功,其他值失败。

◆ tbox_voice_unregister_callback()

int tbox_voice_unregister_callback ( void )

注销语音事件回调。

返回后不会再启动新的语音事件回调。

Returns
TBOX_OK 成功,其他值失败。