11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_TBS_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_TBS_H_
44#define BT_TBS_ERR_VAL_CHANGED 0x80
51#define BT_TBS_CALL_STATE_INCOMING 0x00
56#define BT_TBS_CALL_STATE_DIALING 0x01
58#define BT_TBS_CALL_STATE_ALERTING 0x02
60#define BT_TBS_CALL_STATE_ACTIVE 0x03
65#define BT_TBS_CALL_STATE_LOCALLY_HELD 0x04
70#define BT_TBS_CALL_STATE_REMOTELY_HELD 0x05
72#define BT_TBS_CALL_STATE_LOCALLY_AND_REMOTELY_HELD 0x06
80#define BT_TBS_REASON_BAD_REMOTE_URI 0x00
82#define BT_TBS_REASON_CALL_FAILED 0x01
84#define BT_TBS_REASON_REMOTE_ENDED_CALL 0x02
86#define BT_TBS_REASON_SERVER_ENDED_CALL 0x03
88#define BT_TBS_REASON_LINE_BUSY 0x04
90#define BT_TBS_REASON_NETWORK_CONGESTED 0x05
92#define BT_TBS_REASON_CLIENT_TERMINATED 0x06
94#define BT_TBS_REASON_NO_SERVICE 0x07
96#define BT_TBS_REASON_NO_ANSWER 0x08
98#define BT_TBS_REASON_UNSPECIFIED 0x09
106#define BT_TBS_RESULT_CODE_SUCCESS 0x00
108#define BT_TBS_RESULT_CODE_OPCODE_NOT_SUPPORTED 0x01
110#define BT_TBS_RESULT_CODE_OPERATION_NOT_POSSIBLE 0x02
112#define BT_TBS_RESULT_CODE_INVALID_CALL_INDEX 0x03
117#define BT_TBS_RESULT_CODE_STATE_MISMATCH 0x04
119#define BT_TBS_RESULT_CODE_OUT_OF_RESOURCES 0x05
121#define BT_TBS_RESULT_CODE_INVALID_URI 0x06
132#define BT_TBS_FEATURE_HOLD BIT(0)
134#define BT_TBS_FEATURE_JOIN BIT(1)
136#define BT_TBS_FEATURE_ALL (BT_TBS_FEATURE_HOLD | BT_TBS_FEATURE_JOIN)
144#define BT_TBS_SIGNAL_STRENGTH_NO_SERVICE 0
146#define BT_TBS_SIGNAL_STRENGTH_MAX 100
148#define BT_TBS_SIGNAL_STRENGTH_UNKNOWN 255
156#define BT_TBS_STATUS_FLAG_INBAND_RINGTONE BIT(0)
158#define BT_TBS_STATUS_FLAG_SILENT_MOD BIT(1)
166#define BT_TBS_CALL_FLAG_OUTGOING BIT(0)
168#define BT_TBS_CALL_FLAG_WITHHELD BIT(1)
170#define BT_TBS_CALL_FLAG_WITHHELD_BY_NETWORK BIT(2)
179#define BT_TBS_GTBS_INDEX 0xFF
186#define BT_TBS_MAX_UCI_SIZE 6
388 const char *from,
const char *friendly_name);
576 uint8_t tbs_count,
bool gtbs_found);
683#if defined(CONFIG_BT_TBS_CLIENT_ORIGINATE_CALL) || defined(__DOXYGEN__)
687#if defined(CONFIG_BT_TBS_CLIENT_TERMINATE_CALL) || defined(__DOXYGEN__)
691#if defined(CONFIG_BT_TBS_CLIENT_HOLD_CALL) || defined(__DOXYGEN__)
695#if defined(CONFIG_BT_TBS_CLIENT_ACCEPT_CALL) || defined(__DOXYGEN__)
699#if defined(CONFIG_BT_TBS_CLIENT_RETRIEVE_CALL) || defined(__DOXYGEN__)
703#if defined(CONFIG_BT_TBS_CLIENT_JOIN_CALLS) || defined(__DOXYGEN__)
707#if defined(CONFIG_BT_TBS_CLIENT_BEARER_PROVIDER_NAME) || defined(__DOXYGEN__)
711#if defined(CONFIG_BT_TBS_CLIENT_BEARER_UCI) || defined(__DOXYGEN__)
715#if defined(CONFIG_BT_TBS_CLIENT_BEARER_TECHNOLOGY) || defined(__DOXYGEN__)
727#if defined(CONFIG_BT_TBS_CLIENT_BEARER_URI_SCHEMES_SUPPORTED_LIST) || defined(__DOXYGEN__)
731#if defined(CONFIG_BT_TBS_CLIENT_BEARER_SIGNAL_STRENGTH) || defined(__DOXYGEN__)
735#if defined(CONFIG_BT_TBS_CLIENT_READ_BEARER_SIGNAL_INTERVAL) || defined(__DOXYGEN__)
739#if defined(CONFIG_BT_TBS_CLIENT_BEARER_LIST_CURRENT_CALLS) || defined(__DOXYGEN__)
743#if defined(CONFIG_BT_TBS_CLIENT_CCID) || defined(__DOXYGEN__)
747#if defined(CONFIG_BT_TBS_CLIENT_INCOMING_URI) || defined(__DOXYGEN__)
751#if defined(CONFIG_BT_TBS_CLIENT_STATUS_FLAGS) || defined(__DOXYGEN__)
757#if defined(CONFIG_BT_TBS_CLIENT_OPTIONAL_OPCODES) || defined(__DOXYGEN__)
763#if defined(CONFIG_BT_TBS_CLIENT_INCOMING_CALL) || defined(__DOXYGEN__)
767#if defined(CONFIG_BT_TBS_CLIENT_CALL_FRIENDLY_NAME) || defined(__DOXYGEN__)
Bluetooth Assigned Numbers, codes and identifiers.
Bluetooth connection handling.
bt_bearer_tech
Enum for valid bearer technology values.
Definition assigned_numbers.h:926
int bt_tbs_remote_retrieve(uint8_t call_index)
Notify the server that the remote party retrieved the call.
int bt_tbs_client_originate_call(struct bt_conn *conn, uint8_t inst_index, const char *uri)
Request to originate a call.
int bt_tbs_accept(uint8_t call_index)
Accept an alerting call.
bool(* bt_tbs_authorize_cb)(struct bt_conn *conn)
Callback function for authorizing a client.
Definition tbs.h:248
int bt_tbs_client_read_bearer_provider_name(struct bt_conn *conn, uint8_t inst_index)
Read the bearer provider name of a TBS instance.
struct bt_tbs_instance * bt_tbs_client_get_by_index(const struct bt_conn *conn, uint8_t index)
Look up Telephone Bearer Service instance by index.
int bt_tbs_join(uint8_t call_index_cnt, uint8_t *call_indexes)
Join calls.
int bt_tbs_client_hold_call(struct bt_conn *conn, uint8_t inst_index, uint8_t call_index)
Request to hold a call.
int bt_tbs_client_terminate_call(struct bt_conn *conn, uint8_t inst_index, uint8_t call_index)
Request to terminate a call.
void(* bt_tbs_client_call_states_cb)(struct bt_conn *conn, int err, uint8_t inst_index, uint8_t call_count, const struct bt_tbs_client_call_state *call_states)
Callback function for ccp_read_call_state.
Definition tbs.h:670
void(* bt_tbs_call_change_cb)(struct bt_conn *conn, uint8_t call_index)
Callback function for client request call state change.
Definition tbs.h:238
int bt_tbs_client_read_signal_interval(struct bt_conn *conn, uint8_t inst_index)
Read the signal strength reporting interval of a TBS instance.
int bt_tbs_client_set_outgoing_uri(struct bt_conn *conn, uint8_t inst_index, const char *uri)
Set the outgoing URI for a TBS instance on the peer device.
void(* bt_tbs_client_cp_cb)(struct bt_conn *conn, int err, uint8_t inst_index, uint8_t call_index)
Callback function for the CCP call control functions.
Definition tbs.h:599
int bt_tbs_client_read_call_uri(struct bt_conn *conn, uint8_t inst_index)
Read the call target URI of a TBS instance.
int bt_tbs_remote_incoming(uint8_t bearer_index, const char *to, const char *from, const char *friendly_name)
Notify the server of an incoming call.
void(* bt_tbs_client_read_string_cb)(struct bt_conn *conn, int err, uint8_t inst_index, const char *value)
Callback function for functions that read a string value.
Definition tbs.h:612
int bt_tbs_set_bearer_provider_name(uint8_t bearer_index, const char *name)
Set a new bearer provider.
int bt_tbs_remote_terminate(uint8_t call_index)
Notify the server that the remote party terminated the call.
int bt_tbs_remote_hold(uint8_t call_index)
Notify the server that the remote party held the call.
void(* bt_tbs_client_read_value_cb)(struct bt_conn *conn, int err, uint8_t inst_index, uint32_t value)
Callback function for functions that read an integer value.
Definition tbs.h:625
bool(* bt_tbs_originate_call_cb)(struct bt_conn *conn, uint8_t call_index, const char *uri)
Callback function for client originating a call.
Definition tbs.h:204
int bt_tbs_client_accept_call(struct bt_conn *conn, uint8_t inst_index, uint8_t call_index)
Accept an incoming call.
void bt_tbs_dbg_print_calls(void)
Prints all calls of all services to the debug log.
void(* bt_tbs_terminate_call_cb)(struct bt_conn *conn, uint8_t call_index, uint8_t reason)
Callback function for client terminating a call.
Definition tbs.h:217
int bt_tbs_client_read_technology(struct bt_conn *conn, uint8_t inst_index)
Read the technology of a TBS instance.
void bt_tbs_register_cb(struct bt_tbs_cb *cbs)
Register the callbacks for TBS.
void(* bt_tbs_client_current_calls_cb)(struct bt_conn *conn, int err, uint8_t inst_index, uint8_t call_count, const struct bt_tbs_client_call *calls)
Callback function for ccp_read_current_calls.
Definition tbs.h:654
int bt_tbs_terminate(uint8_t call_index)
Terminate a call.
int bt_tbs_set_status_flags(uint8_t bearer_index, uint16_t status_flags)
Sets the feature and status value.
int bt_tbs_remote_answer(uint8_t call_index)
Notify the server that the remote party answered the call.
int bt_tbs_client_read_current_calls(struct bt_conn *conn, uint8_t inst_index)
Read the list of current calls of a TBS instance.
int bt_tbs_unregister_bearer(uint8_t bearer_index)
Unregister a Telephone Bearer.
int bt_tbs_register_bearer(const struct bt_tbs_register_param *param)
Register a Telephone Bearer.
int bt_tbs_client_read_friendly_name(struct bt_conn *conn, uint8_t inst_index)
Read the friendly name of a call for a TBS instance.
void(* bt_tbs_client_discover_cb)(struct bt_conn *conn, int err, uint8_t tbs_count, bool gtbs_found)
Callback function for ccp_discover.
Definition tbs.h:575
int bt_tbs_client_read_status_flags(struct bt_conn *conn, uint8_t inst_index)
Read the feature and status value of a TBS instance.
int bt_tbs_client_set_signal_strength_interval(struct bt_conn *conn, uint8_t inst_index, uint8_t interval)
Set the signal strength reporting interval for a TBS instance.
void(* bt_tbs_join_calls_cb)(struct bt_conn *conn, uint8_t call_index_count, const uint8_t *call_indexes)
Callback function for client joining calls.
Definition tbs.h:228
int bt_tbs_set_bearer_technology(uint8_t bearer_index, enum bt_bearer_tech new_technology)
Set a new bearer technology.
int bt_tbs_client_read_signal_strength(struct bt_conn *conn, uint8_t inst_index)
Read the current signal strength of a TBS instance.
struct bt_tbs_instance * bt_tbs_client_get_by_ccid(const struct bt_conn *conn, uint8_t ccid)
Look up Telephone Bearer Service instance by CCID.
int bt_tbs_client_join_calls(struct bt_conn *conn, uint8_t inst_index, const uint8_t *call_indexes, uint8_t count)
Join multiple calls.
int bt_tbs_client_read_remote_uri(struct bt_conn *conn, uint8_t inst_index)
Read the remote URI of a TBS instance.
int bt_tbs_hold(uint8_t call_index)
Hold a call.
void(* bt_tbs_client_termination_reason_cb)(struct bt_conn *conn, int err, uint8_t inst_index, uint8_t call_index, uint8_t reason)
Callback function for ccp_read_termination_reason.
Definition tbs.h:638
int bt_tbs_client_read_bearer_uci(struct bt_conn *conn, uint8_t inst_index)
Read the UCI of a TBS instance.
int bt_tbs_client_retrieve_call(struct bt_conn *conn, uint8_t inst_index, uint8_t call_index)
Retrieve call from (local) hold.
int bt_tbs_client_register_cb(struct bt_tbs_client_cb *cbs)
Register the callbacks for CCP.
int bt_tbs_client_read_ccid(struct bt_conn *conn, uint8_t inst_index)
Read the content ID of a TBS instance.
int bt_tbs_set_signal_strength(uint8_t bearer_index, uint8_t new_signal_strength)
Update the signal strength reported by the server.
int bt_tbs_client_discover(struct bt_conn *conn)
Discover TBS for a connection.
int bt_tbs_retrieve(uint8_t call_index)
Retrieve a call.
int bt_tbs_client_read_uri_list(struct bt_conn *conn, uint8_t inst_index)
Read the URI schemes list of a TBS instance.
int bt_tbs_originate(uint8_t bearer_index, char *uri, uint8_t *call_index)
Originate a call.
int bt_tbs_set_uri_scheme_list(uint8_t bearer_index, const char *uri_scheme_list)
Sets the URI scheme list of a bearer.
int bt_tbs_client_read_optional_opcodes(struct bt_conn *conn, uint8_t inst_index)
Read the supported opcode of a TBS instance.
void(* bt_tbs_client_write_value_cb)(struct bt_conn *conn, int err, uint8_t inst_index)
Callback function for writing values to peer device.
Definition tbs.h:586
int bt_tbs_client_read_call_state(struct bt_conn *conn, uint8_t inst_index)
Read the states of the current calls of a TBS instance.
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:39
#define bool
Definition stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Opaque type representing a connection to a remote device.
Struct to hold the Telephone Bearer Service callbacks.
Definition tbs.h:255
bt_tbs_originate_call_cb originate_call
Client originating call.
Definition tbs.h:257
bt_tbs_call_change_cb accept_call
Client accepting call.
Definition tbs.h:263
bt_tbs_call_change_cb hold_call
Client holding call.
Definition tbs.h:261
bt_tbs_terminate_call_cb terminate_call
Client terminating call.
Definition tbs.h:259
bt_tbs_authorize_cb authorize
Callback to authorize a client.
Definition tbs.h:269
bt_tbs_join_calls_cb join_calls
Client joining calls.
Definition tbs.h:267
bt_tbs_call_change_cb retrieve_call
Client retrieving call.
Definition tbs.h:265
Struct to hold a call state.
Definition tbs.h:548
uint8_t index
Index of the call.
Definition tbs.h:550
uint8_t state
State of the call (see BT_TBS_CALL_STATE_*).
Definition tbs.h:552
uint8_t flags
Call flags (see BT_TBS_CALL_FLAG_*).
Definition tbs.h:554
Struct to hold a call as the Telephone Bearer Service client.
Definition tbs.h:558
struct bt_tbs_client_call_state call_info
Call information.
Definition tbs.h:560
char * remote_uri
The remove URI.
Definition tbs.h:562
Struct to hold the Telephone Bearer Service client callbacks.
Definition tbs.h:680
bt_tbs_client_read_value_cb signal_interval
Bearer signal interval has been read.
Definition tbs.h:737
bt_tbs_client_cp_cb originate_call
Originate call has completed.
Definition tbs.h:685
bt_tbs_client_current_calls_cb current_calls
Bearer current calls has been read.
Definition tbs.h:741
bt_tbs_client_read_string_cb bearer_uci
Bearer UCI has been read.
Definition tbs.h:713
bt_tbs_client_cp_cb retrieve_call
Retrieve call has completed.
Definition tbs.h:701
bt_tbs_client_cp_cb join_calls
Join calls has completed.
Definition tbs.h:705
bt_tbs_client_cp_cb hold_call
Hold call has completed.
Definition tbs.h:693
bt_tbs_client_read_string_cb remote_uri
Bearer remote URI has been read.
Definition tbs.h:765
bt_tbs_client_read_string_cb bearer_provider_name
Bearer provider name has been read.
Definition tbs.h:709
bt_tbs_client_cp_cb accept_call
Accept call has completed.
Definition tbs.h:697
void(* technology)(struct bt_conn *conn, int err, uint8_t inst_index, enum bt_bearer_tech tech)
Bearer technology has been read.
Definition tbs.h:724
bt_tbs_client_read_string_cb uri_list
Bearer URI list has been read.
Definition tbs.h:729
bt_tbs_client_call_states_cb call_state
Bearer call states has been read.
Definition tbs.h:756
bt_tbs_client_read_value_cb ccid
Bearer CCID has been read.
Definition tbs.h:745
bt_tbs_client_read_value_cb optional_opcodes
Bearer optional opcodes has been read.
Definition tbs.h:759
bt_tbs_client_read_value_cb status_flags
Bearer status flags has been read.
Definition tbs.h:753
bt_tbs_client_read_value_cb signal_strength
Bearer signal strength has been read.
Definition tbs.h:733
bt_tbs_client_cp_cb terminate_call
Terminate call has completed.
Definition tbs.h:689
bt_tbs_client_discover_cb discover
Discovery has completed.
Definition tbs.h:682
bt_tbs_client_read_string_cb friendly_name
Bearer friendly name has been read.
Definition tbs.h:769
bt_tbs_client_termination_reason_cb termination_reason
Bearer terminate reason has been read.
Definition tbs.h:762
bt_tbs_client_read_string_cb call_uri
Bearer call URI has been read.
Definition tbs.h:749
Opaque Telephone Bearer Service instance.
Parameters for registering a Telephone Bearer Service.
Definition tbs.h:456
uint8_t supported_features
The optional supported features of the bearer.
Definition tbs.h:498
char * uri_schemes_supported
The Uniform Resource Identifiers schemes supported by this bearer as an UTF-8 string.
Definition tbs.h:473
enum bt_bearer_tech technology
The technology of the bearer.
Definition tbs.h:476
char * provider_name
The name of the provider, for example a cellular service provider.
Definition tbs.h:458
bool gtbs
Whether this bearer shall be registered as a Generic Telephone Bearer server.
Definition tbs.h:484
char * uci
The Uniform Caller Identifier of the bearer.
Definition tbs.h:465
bool authorization_required
Whether the application will need to authorize changes to calls.
Definition tbs.h:491