Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
|
Telephone Bearer Service (TBS) More...
Data Structures | |
struct | bt_tbs_cb |
Struct to hold the Telephone Bearer Service callbacks. More... | |
struct | bt_tbs_register_param |
struct | bt_tbs_client_call_state |
Struct to hold a call state. More... | |
struct | bt_tbs_client_call |
Struct to hold a call as the Telephone Bearer Service client. More... | |
struct | bt_tbs_client_cb |
Struct to hold the Telephone Bearer Service client callbacks. More... | |
Macros | |
#define | BT_TBS_GTBS_INDEX 0xFF |
The GTBS index denotes whenever a callback is from a Generic Telephone Bearer Service (GTBS) instance, or whenever the client should perform on action on the GTBS instance of the server, rather than any of the specific Telephone Bearer Service instances. | |
Typedefs | |
typedef bool(* | bt_tbs_originate_call_cb) (struct bt_conn *conn, uint8_t call_index, const char *uri) |
Callback function for client originating a call. | |
typedef void(* | bt_tbs_terminate_call_cb) (struct bt_conn *conn, uint8_t call_index, uint8_t reason) |
Callback function for client terminating a call. | |
typedef 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. | |
typedef void(* | bt_tbs_call_change_cb) (struct bt_conn *conn, uint8_t call_index) |
Callback function for client request call state change. | |
typedef bool(* | bt_tbs_authorize_cb) (struct bt_conn *conn) |
Callback function for authorizing a client. | |
typedef void(* | bt_tbs_client_discover_cb) (struct bt_conn *conn, int err, uint8_t tbs_count, bool gtbs_found) |
Callback function for ccp_discover. | |
typedef 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. | |
typedef 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. | |
typedef 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. | |
typedef 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. | |
typedef 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. | |
typedef 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. | |
typedef 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. | |
Functions | |
int | bt_tbs_accept (uint8_t call_index) |
Accept an alerting call. | |
int | bt_tbs_hold (uint8_t call_index) |
Hold a call. | |
int | bt_tbs_retrieve (uint8_t call_index) |
Retrieve a call. | |
int | bt_tbs_terminate (uint8_t call_index) |
Terminate a call. | |
int | bt_tbs_originate (uint8_t bearer_index, char *uri, uint8_t *call_index) |
Originate a call. | |
int | bt_tbs_join (uint8_t call_index_cnt, uint8_t *call_indexes) |
Join calls. | |
int | bt_tbs_remote_answer (uint8_t call_index) |
Notify the server that the remote party answered the call. | |
int | bt_tbs_remote_hold (uint8_t call_index) |
Notify the server that the remote party held the call. | |
int | bt_tbs_remote_retrieve (uint8_t call_index) |
Notify the server that the remote party retrieved the call. | |
int | bt_tbs_remote_terminate (uint8_t call_index) |
Notify the server that the remote party terminated the call. | |
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. | |
int | bt_tbs_set_bearer_provider_name (uint8_t bearer_index, const char *name) |
Set a new bearer provider. | |
int | bt_tbs_set_bearer_technology (uint8_t bearer_index, uint8_t new_technology) |
Set a new bearer technology. | |
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_set_status_flags (uint8_t bearer_index, uint16_t status_flags) |
Sets the feature and status value. | |
int | bt_tbs_set_uri_scheme_list (uint8_t bearer_index, const char **uri_list, uint8_t uri_count) |
Sets the URI scheme list of a bearer. | |
void | bt_tbs_register_cb (struct bt_tbs_cb *cbs) |
Register the callbacks for TBS. | |
int | bt_tbs_register_bearer (const struct bt_tbs_register_param *param) |
Register a Telephone Bearer. | |
int | bt_tbs_unregister_bearer (uint8_t bearer_index) |
Unregister a Telephone Bearer. | |
void | bt_tbs_dbg_print_calls (void) |
Prints all calls of all services to the debug log. | |
int | bt_tbs_client_discover (struct bt_conn *conn) |
Discover TBS for a connection. | |
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. | |
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. | |
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_client_terminate_call (struct bt_conn *conn, uint8_t inst_index, uint8_t call_index) |
Request to terminate a call. | |
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_accept_call (struct bt_conn *conn, uint8_t inst_index, uint8_t call_index) |
Accept an incoming call. | |
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_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_bearer_provider_name (struct bt_conn *conn, uint8_t inst_index) |
Read the bearer provider name of a TBS instance. | |
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_read_technology (struct bt_conn *conn, uint8_t inst_index) |
Read the technology of a TBS instance. | |
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_client_read_signal_strength (struct bt_conn *conn, uint8_t inst_index) |
Read the current signal strength of a TBS instance. | |
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_read_current_calls (struct bt_conn *conn, uint8_t inst_index) |
Read the list of current calls of a TBS instance. | |
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_client_read_call_uri (struct bt_conn *conn, uint8_t inst_index) |
Read the call target URI of a TBS instance. | |
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_read_call_state (struct bt_conn *conn, uint8_t inst_index) |
Read the states of the current calls of a TBS instance. | |
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_client_read_friendly_name (struct bt_conn *conn, uint8_t inst_index) |
Read the friendly name of a call for a TBS instance. | |
int | bt_tbs_client_read_optional_opcodes (struct bt_conn *conn, uint8_t inst_index) |
Read the supported opcode of a TBS instance. | |
int | bt_tbs_client_register_cb (struct bt_tbs_client_cb *cbs) |
Register the callbacks for CCP. | |
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. | |
Call States | |
#define | BT_TBS_CALL_STATE_INCOMING 0x00 |
A remote party is calling (incoming call). | |
#define | BT_TBS_CALL_STATE_DIALING 0x01 |
The process to call the remote party has started on the server, but the remote party is not being alerted (outgoing call). | |
#define | BT_TBS_CALL_STATE_ALERTING 0x02 |
A remote party is being alerted (outgoing call). | |
#define | BT_TBS_CALL_STATE_ACTIVE 0x03 |
The call is in an active conversation. | |
#define | BT_TBS_CALL_STATE_LOCALLY_HELD 0x04 |
The call is connected but held locally. | |
#define | BT_TBS_CALL_STATE_REMOTELY_HELD 0x05 |
The call is connected but held remotely. | |
#define | BT_TBS_CALL_STATE_LOCALLY_AND_REMOTELY_HELD 0x06 |
The call is connected but held both locally and remotely. | |
Terminate Reason | |
#define | BT_TBS_REASON_BAD_REMOTE_URI 0x00 |
The URI value used to originate a call was formed improperly. | |
#define | BT_TBS_REASON_CALL_FAILED 0x01 |
The call failed. | |
#define | BT_TBS_REASON_REMOTE_ENDED_CALL 0x02 |
The remote party ended the call. | |
#define | BT_TBS_REASON_SERVER_ENDED_CALL 0x03 |
The call ended from the server. | |
#define | BT_TBS_REASON_LINE_BUSY 0x04 |
The line was busy. | |
#define | BT_TBS_REASON_NETWORK_CONGESTED 0x05 |
Network congestion. | |
#define | BT_TBS_REASON_CLIENT_TERMINATED 0x06 |
The client terminated the call. | |
#define | BT_TBS_REASON_NO_SERVICE 0x07 |
No service. | |
#define | BT_TBS_REASON_NO_ANSWER 0x08 |
No answer. | |
#define | BT_TBS_REASON_UNSPECIFIED 0x09 |
Unspecified. | |
Control point error codes | |
#define | BT_TBS_RESULT_CODE_SUCCESS 0x00 |
The opcode write was successful. | |
#define | BT_TBS_RESULT_CODE_OPCODE_NOT_SUPPORTED 0x01 |
An invalid opcode was used for the Call Control Point write. | |
#define | BT_TBS_RESULT_CODE_OPERATION_NOT_POSSIBLE 0x02 |
The requested operation cannot be completed. | |
#define | BT_TBS_RESULT_CODE_INVALID_CALL_INDEX 0x03 |
The Call Index used for the Call Control Point write is invalid. | |
#define | BT_TBS_RESULT_CODE_STATE_MISMATCH 0x04 |
The opcode written to the Call Control Point was received when the current Call State for the Call Index was not in the expected state. | |
#define | BT_TBS_RESULT_CODE_OUT_OF_RESOURCES 0x05 |
Lack of internal resources to complete the requested action. | |
#define | BT_TBS_RESULT_CODE_INVALID_URI 0x06 |
The Outgoing URI is incorrect or invalid when an Originate opcode is sent. | |
Optional feature bits | |
Optional features that can be supported. See bt_tbs_client_read_optional_opcodes() on how to read these from a remote device | |
#define | BT_TBS_FEATURE_HOLD BIT(0) |
Local Hold and Local Retrieve Call Control Point Opcodes supported. | |
#define | BT_TBS_FEATURE_JOIN BIT(1) |
Join Call Control Point Opcode supported. | |
#define | BT_TBS_FEATURE_ALL (BT_TBS_FEATURE_HOLD | BT_TBS_FEATURE_JOIN) |
All Control Point Opcodes supported. | |
Signal strength value limits | |
#define | BT_TBS_SIGNAL_STRENGTH_NO_SERVICE 0 |
No service. | |
#define | BT_TBS_SIGNAL_STRENGTH_MAX 100 |
Maximum signal strength. | |
#define | BT_TBS_SIGNAL_STRENGTH_UNKNOWN 255 |
Signal strength is unknown | |
Bearer Technology | |
#define | BT_TBS_TECHNOLOGY_3G 0x01 |
3G | |
#define | BT_TBS_TECHNOLOGY_4G 0x02 |
4G | |
#define | BT_TBS_TECHNOLOGY_LTE 0x03 |
Long-term evolution (LTE) | |
#define | BT_TBS_TECHNOLOGY_WIFI 0x04 |
Wifi. | |
#define | BT_TBS_TECHNOLOGY_5G 0x05 |
5G | |
#define | BT_TBS_TECHNOLOGY_GSM 0x06 |
Global System for Mobile Communications (GSM) | |
#define | BT_TBS_TECHNOLOGY_CDMA 0x07 |
Code-Division Multiple Access (CDMA) | |
#define | BT_TBS_TECHNOLOGY_2G 0x08 |
2G | |
#define | BT_TBS_TECHNOLOGY_WCDMA 0x09 |
Wideband Code-Division Multiple Access (WCDMA) | |
Call status flags bitfield | |
#define | BT_TBS_STATUS_FLAG_INBAND_RINGTONE BIT(0) |
Inband ringtone enabled. | |
#define | BT_TBS_STATUS_FLAG_SILENT_MOD BIT(1) |
Server is in silent mod. | |
Call flags bitfield | |
#define | BT_TBS_CALL_FLAG_OUTGOING BIT(0) |
If set, call is outgoing else incoming. | |
#define | BT_TBS_CALL_FLAG_WITHHELD BIT(1) |
If set call is withheld, else not withheld. | |
#define | BT_TBS_CALL_FLAG_WITHHELD_BY_NETWORK BIT(2) |
If set call is withheld by network, else provided by network. | |
Telephone Bearer Service (TBS)
The Telephone Bearer Service (TBS) provide procedures to discover telephone bearers and control calls.
#define BT_TBS_CALL_FLAG_OUTGOING BIT(0) |
#include <zephyr/bluetooth/audio/tbs.h>
If set, call is outgoing else incoming.
#define BT_TBS_CALL_FLAG_WITHHELD BIT(1) |
#include <zephyr/bluetooth/audio/tbs.h>
If set call is withheld, else not withheld.
#define BT_TBS_CALL_FLAG_WITHHELD_BY_NETWORK BIT(2) |
#include <zephyr/bluetooth/audio/tbs.h>
If set call is withheld by network, else provided by network.
#define BT_TBS_CALL_STATE_ACTIVE 0x03 |
#include <zephyr/bluetooth/audio/tbs.h>
The call is in an active conversation.
#define BT_TBS_CALL_STATE_ALERTING 0x02 |
#include <zephyr/bluetooth/audio/tbs.h>
A remote party is being alerted (outgoing call).
#define BT_TBS_CALL_STATE_DIALING 0x01 |
#include <zephyr/bluetooth/audio/tbs.h>
The process to call the remote party has started on the server, but the remote party is not being alerted (outgoing call).
#define BT_TBS_CALL_STATE_INCOMING 0x00 |
#include <zephyr/bluetooth/audio/tbs.h>
A remote party is calling (incoming call).
#define BT_TBS_CALL_STATE_LOCALLY_AND_REMOTELY_HELD 0x06 |
#include <zephyr/bluetooth/audio/tbs.h>
The call is connected but held both locally and remotely.
#define BT_TBS_CALL_STATE_LOCALLY_HELD 0x04 |
#include <zephyr/bluetooth/audio/tbs.h>
The call is connected but held locally.
Locally Held implies that either the server or the client can affect the state.
#define BT_TBS_CALL_STATE_REMOTELY_HELD 0x05 |
#include <zephyr/bluetooth/audio/tbs.h>
The call is connected but held remotely.
Remotely Held means that the state is controlled by the remote party of a call.
#define BT_TBS_FEATURE_ALL (BT_TBS_FEATURE_HOLD | BT_TBS_FEATURE_JOIN) |
#include <zephyr/bluetooth/audio/tbs.h>
All Control Point Opcodes supported.
#define BT_TBS_FEATURE_HOLD BIT(0) |
#include <zephyr/bluetooth/audio/tbs.h>
Local Hold and Local Retrieve Call Control Point Opcodes supported.
#define BT_TBS_FEATURE_JOIN BIT(1) |
#include <zephyr/bluetooth/audio/tbs.h>
Join Call Control Point Opcode supported.
#define BT_TBS_GTBS_INDEX 0xFF |
#include <zephyr/bluetooth/audio/tbs.h>
The GTBS index denotes whenever a callback is from a Generic Telephone Bearer Service (GTBS) instance, or whenever the client should perform on action on the GTBS instance of the server, rather than any of the specific Telephone Bearer Service instances.
#define BT_TBS_REASON_BAD_REMOTE_URI 0x00 |
#include <zephyr/bluetooth/audio/tbs.h>
The URI value used to originate a call was formed improperly.
#define BT_TBS_REASON_CALL_FAILED 0x01 |
#include <zephyr/bluetooth/audio/tbs.h>
The call failed.
#define BT_TBS_REASON_CLIENT_TERMINATED 0x06 |
#include <zephyr/bluetooth/audio/tbs.h>
The client terminated the call.
#define BT_TBS_REASON_LINE_BUSY 0x04 |
#include <zephyr/bluetooth/audio/tbs.h>
The line was busy.
#define BT_TBS_REASON_NETWORK_CONGESTED 0x05 |
#include <zephyr/bluetooth/audio/tbs.h>
Network congestion.
#define BT_TBS_REASON_NO_ANSWER 0x08 |
#include <zephyr/bluetooth/audio/tbs.h>
No answer.
#define BT_TBS_REASON_NO_SERVICE 0x07 |
#include <zephyr/bluetooth/audio/tbs.h>
No service.
#define BT_TBS_REASON_REMOTE_ENDED_CALL 0x02 |
#include <zephyr/bluetooth/audio/tbs.h>
The remote party ended the call.
#define BT_TBS_REASON_SERVER_ENDED_CALL 0x03 |
#include <zephyr/bluetooth/audio/tbs.h>
The call ended from the server.
#define BT_TBS_REASON_UNSPECIFIED 0x09 |
#include <zephyr/bluetooth/audio/tbs.h>
Unspecified.
#define BT_TBS_RESULT_CODE_INVALID_CALL_INDEX 0x03 |
#include <zephyr/bluetooth/audio/tbs.h>
The Call Index used for the Call Control Point write is invalid.
#define BT_TBS_RESULT_CODE_INVALID_URI 0x06 |
#include <zephyr/bluetooth/audio/tbs.h>
The Outgoing URI is incorrect or invalid when an Originate opcode is sent.
#define BT_TBS_RESULT_CODE_OPCODE_NOT_SUPPORTED 0x01 |
#include <zephyr/bluetooth/audio/tbs.h>
An invalid opcode was used for the Call Control Point write.
#define BT_TBS_RESULT_CODE_OPERATION_NOT_POSSIBLE 0x02 |
#include <zephyr/bluetooth/audio/tbs.h>
The requested operation cannot be completed.
#define BT_TBS_RESULT_CODE_OUT_OF_RESOURCES 0x05 |
#include <zephyr/bluetooth/audio/tbs.h>
Lack of internal resources to complete the requested action.
#define BT_TBS_RESULT_CODE_STATE_MISMATCH 0x04 |
#include <zephyr/bluetooth/audio/tbs.h>
The opcode written to the Call Control Point was received when the current Call State for the Call Index was not in the expected state.
#define BT_TBS_RESULT_CODE_SUCCESS 0x00 |
#include <zephyr/bluetooth/audio/tbs.h>
The opcode write was successful.
#define BT_TBS_SIGNAL_STRENGTH_MAX 100 |
#include <zephyr/bluetooth/audio/tbs.h>
Maximum signal strength.
#define BT_TBS_SIGNAL_STRENGTH_NO_SERVICE 0 |
#include <zephyr/bluetooth/audio/tbs.h>
No service.
#define BT_TBS_SIGNAL_STRENGTH_UNKNOWN 255 |
#include <zephyr/bluetooth/audio/tbs.h>
Signal strength is unknown
#define BT_TBS_STATUS_FLAG_INBAND_RINGTONE BIT(0) |
#include <zephyr/bluetooth/audio/tbs.h>
Inband ringtone enabled.
#define BT_TBS_STATUS_FLAG_SILENT_MOD BIT(1) |
#include <zephyr/bluetooth/audio/tbs.h>
Server is in silent mod.
#define BT_TBS_TECHNOLOGY_2G 0x08 |
#include <zephyr/bluetooth/audio/tbs.h>
2G
#define BT_TBS_TECHNOLOGY_3G 0x01 |
#include <zephyr/bluetooth/audio/tbs.h>
3G
#define BT_TBS_TECHNOLOGY_4G 0x02 |
#include <zephyr/bluetooth/audio/tbs.h>
4G
#define BT_TBS_TECHNOLOGY_5G 0x05 |
#include <zephyr/bluetooth/audio/tbs.h>
5G
#define BT_TBS_TECHNOLOGY_CDMA 0x07 |
#include <zephyr/bluetooth/audio/tbs.h>
Code-Division Multiple Access (CDMA)
#define BT_TBS_TECHNOLOGY_GSM 0x06 |
#include <zephyr/bluetooth/audio/tbs.h>
Global System for Mobile Communications (GSM)
#define BT_TBS_TECHNOLOGY_LTE 0x03 |
#include <zephyr/bluetooth/audio/tbs.h>
Long-term evolution (LTE)
#define BT_TBS_TECHNOLOGY_WCDMA 0x09 |
#include <zephyr/bluetooth/audio/tbs.h>
Wideband Code-Division Multiple Access (WCDMA)
#define BT_TBS_TECHNOLOGY_WIFI 0x04 |
#include <zephyr/bluetooth/audio/tbs.h>
Wifi.
typedef bool(* bt_tbs_authorize_cb) (struct bt_conn *conn) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for authorizing a client.
conn | The connection used. |
typedef void(* bt_tbs_call_change_cb) (struct bt_conn *conn, uint8_t call_index) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for client request call state change.
conn | The connection used. |
call_index | The call index. |
typedef 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) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for ccp_read_call_state.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
call_count | Number of call states read. |
call_states | Array of call states. The array is not kept by the client, so must be copied to be saved. |
typedef void(* bt_tbs_client_cp_cb) (struct bt_conn *conn, int err, uint8_t inst_index, uint8_t call_index) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for the CCP call control functions.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
call_index | The call index. For bt_tbs_client_originate_call this will always be 0, and does not reflect the actual call index. |
typedef 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) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for ccp_read_current_calls.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
call_count | Number of calls read. |
calls | Array of calls. The array is not kept by the client, so must be copied to be saved. |
typedef void(* bt_tbs_client_discover_cb) (struct bt_conn *conn, int err, uint8_t tbs_count, bool gtbs_found) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for ccp_discover.
conn | The connection that was used to discover CCP for a device. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
tbs_count | Number of TBS instances on peer device. |
gtbs_found | Whether or not the server has a Generic TBS instance. |
typedef void(* bt_tbs_client_read_string_cb) (struct bt_conn *conn, int err, uint8_t inst_index, const char *value) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for functions that read a string value.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
value | The Null-terminated string value. The value is not kept by the client, so must be copied to be saved. |
typedef void(* bt_tbs_client_read_value_cb) (struct bt_conn *conn, int err, uint8_t inst_index, uint32_t value) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for functions that read an integer value.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
value | The integer value. |
typedef void(* bt_tbs_client_termination_reason_cb) (struct bt_conn *conn, int err, uint8_t inst_index, uint8_t call_index, uint8_t reason) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for ccp_read_termination_reason.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
call_index | The call index. |
reason | The termination reason. |
typedef void(* bt_tbs_client_write_value_cb) (struct bt_conn *conn, int err, uint8_t inst_index) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for writing values to peer device.
conn | The connection used in the function. |
err | Error value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value. |
inst_index | The index of the TBS instance that was updated. |
typedef void(* bt_tbs_join_calls_cb) (struct bt_conn *conn, uint8_t call_index_count, const uint8_t *call_indexes) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for client joining calls.
conn | The connection used. |
call_index_count | The number of call indexes to join. |
call_indexes | The call indexes. |
typedef bool(* bt_tbs_originate_call_cb) (struct bt_conn *conn, uint8_t call_index, const char *uri) |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for client originating a call.
conn | The connection used. |
call_index | The call index. |
uri | The URI. The value may change, so should be copied if persistence is wanted. |
#include <zephyr/bluetooth/audio/tbs.h>
Callback function for client terminating a call.
The call may be either terminated by the client or the server.
conn | The connection used. |
call_index | The call index. |
reason | The termination BT_TBS_REASON_* reason. |
int bt_tbs_accept | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Accept an alerting call.
call_index | The index of the call that will be accepted. |
#include <zephyr/bluetooth/audio/tbs.h>
Accept an incoming call.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
call_index | The call index to accept. |
CONFIG_BT_TBS_CLIENT_ACCEPT_CALLmust be set for this function to be effective.
int bt_tbs_client_discover | ( | struct bt_conn * | conn | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Discover TBS for a connection.
This will start a GATT discover and setup handles and subscriptions.
conn | The connection to discover TBS for. |
struct bt_tbs_instance * bt_tbs_client_get_by_ccid | ( | const struct bt_conn * | conn, |
uint8_t | ccid ) |
#include <zephyr/bluetooth/audio/tbs.h>
Look up Telephone Bearer Service instance by CCID.
conn | The connection to the TBS server. |
ccid | The CCID to lookup a service instance for. |
CONFIG_BT_TBS_CLIENT_CCIDmust be set for this function to be effective.
#include <zephyr/bluetooth/audio/tbs.h>
Request to hold a call.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
call_index | The call index to place on hold. |
CONFIG_BT_TBS_CLIENT_HOLD_CALLmust be set for this function to be effective.
int bt_tbs_client_join_calls | ( | struct bt_conn * | conn, |
uint8_t | inst_index, | ||
const uint8_t * | call_indexes, | ||
uint8_t | count ) |
#include <zephyr/bluetooth/audio/tbs.h>
Join multiple calls.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
call_indexes | Array of call indexes. |
count | Number of call indexes in the call_indexes array. |
CONFIG_BT_TBS_CLIENT_JOIN_CALLSmust be set for this function to be effective.
int bt_tbs_client_originate_call | ( | struct bt_conn * | conn, |
uint8_t | inst_index, | ||
const char * | uri ) |
#include <zephyr/bluetooth/audio/tbs.h>
Request to originate a call.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
uri | The URI of the callee. |
CONFIG_BT_TBS_CLIENT_ORIGINATE_CALLmust be set for this function to be effective.
int bt_tbs_client_read_bearer_provider_name | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the bearer provider name of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_BEARER_PROVIDER_NAMEmust be set for this function to be effective.
int bt_tbs_client_read_bearer_uci | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the UCI of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_BEARER_UCImust be set for this function to be effective.
int bt_tbs_client_read_call_state | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the states of the current calls of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
int bt_tbs_client_read_call_uri | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the call target URI of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_INCOMING_URImust be set for this function to be effective.
int bt_tbs_client_read_ccid | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the content ID of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_CCIDmust be set for this function to be effective.
int bt_tbs_client_read_current_calls | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the list of current calls of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_BEARER_LIST_CURRENT_CALLSmust be set for this function to be effective.
int bt_tbs_client_read_friendly_name | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the friendly name of a call for a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_CALL_FRIENDLY_NAMEmust be set for this function to be effective.
int bt_tbs_client_read_optional_opcodes | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the supported opcode of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_OPTIONAL_OPCODESmust be set for this function to be effective.
int bt_tbs_client_read_remote_uri | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the remote URI of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_INCOMING_CALLmust be set for this function to be effective.
int bt_tbs_client_read_signal_interval | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the signal strength reporting interval of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_READ_BEARER_SIGNAL_INTERVALmust be set for this function to be effective.
int bt_tbs_client_read_signal_strength | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the current signal strength of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_BEARER_SIGNAL_STRENGTHmust be set for this function to be effective.
int bt_tbs_client_read_status_flags | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the feature and status value of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_STATUS_FLAGSmust be set for this function to be effective.
int bt_tbs_client_read_technology | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the technology of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_BEARER_TECHNOLOGYmust be set for this function to be effective.
int bt_tbs_client_read_uri_list | ( | struct bt_conn * | conn, |
uint8_t | inst_index ) |
#include <zephyr/bluetooth/audio/tbs.h>
Read the URI schemes list of a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
CONFIG_BT_TBS_CLIENT_BEARER_URI_SCHEMES_SUPPORTED_LISTmust be set for this function to be effective.
int bt_tbs_client_register_cb | ( | struct bt_tbs_client_cb * | cbs | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Register the callbacks for CCP.
cbs | Pointer to the callback structure. |
0 | Success |
-EINVAL | cbs is NULL |
-EEXIST | cbs is already registered |
#include <zephyr/bluetooth/audio/tbs.h>
Retrieve call from (local) hold.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
call_index | The call index to retrieve. |
CONFIG_BT_TBS_CLIENT_RETRIEVE_CALLmust be set for this function to be effective.
int bt_tbs_client_set_outgoing_uri | ( | struct bt_conn * | conn, |
uint8_t | inst_index, | ||
const char * | uri ) |
#include <zephyr/bluetooth/audio/tbs.h>
Set the outgoing URI for a TBS instance on the peer device.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
uri | The Null-terminated URI string. |
int bt_tbs_client_set_signal_strength_interval | ( | struct bt_conn * | conn, |
uint8_t | inst_index, | ||
uint8_t | interval ) |
#include <zephyr/bluetooth/audio/tbs.h>
Set the signal strength reporting interval for a TBS instance.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
interval | The interval to write (0-255 seconds). |
CONFIG_BT_TBS_CLIENT_SET_BEARER_SIGNAL_INTERVALmust be set for this function to be effective.
#include <zephyr/bluetooth/audio/tbs.h>
Request to terminate a call.
conn | The connection to the TBS server. |
inst_index | The index of the TBS instance. |
call_index | The call index to terminate. |
CONFIG_BT_TBS_CLIENT_TERMINATE_CALLmust be set for this function to be effective.
void bt_tbs_dbg_print_calls | ( | void | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Prints all calls of all services to the debug log.
int bt_tbs_hold | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Hold a call.
call_index | The index of the call that will be held. |
#include <zephyr/bluetooth/audio/tbs.h>
Join calls.
call_index_cnt | The number of call indexes to join |
call_indexes | Array of call indexes to join. |
#include <zephyr/bluetooth/audio/tbs.h>
Originate a call.
[in] | bearer_index | The index of the Telephone Bearer. |
[in] | uri | The remote URI. |
[out] | call_index | Pointer to a value where the new call_index will be stored. |
int bt_tbs_register_bearer | ( | const struct bt_tbs_register_param * | param | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Register a Telephone Bearer.
This will register a Telephone Bearer Service (TBS) (or a Generic Telephone Bearer service (GTBS)) with the provided parameters.
As per the TBS specification, the GTBS shall be instantiated for the feature, and as such a GTBS shall always be registered before any TBS can be registered. Similarly, all TBS shall be unregistered before the GTBS can be unregistered with bt_tbs_unregister_bearer().
param | The parameters to initialize the bearer. |
index | The bearer index if return value is >= 0 |
-EINVAL | param contains invalid data |
-EALREADY | param.gtbs is true and GTBS has already been registered |
-EAGAIN | param.gtbs is false and GTBS has not been registered |
-ENOMEM | param.gtbs is false and no more TBS can be registered (see CONFIG_BT_TBS_BEARER_COUNT) |
-ENOEXEC | The service failed to be registered |
void bt_tbs_register_cb | ( | struct bt_tbs_cb * | cbs | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Register the callbacks for TBS.
cbs | Pointer to the callback structure. |
int bt_tbs_remote_answer | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Notify the server that the remote party answered the call.
call_index | The index of the call that was answered. |
int bt_tbs_remote_hold | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Notify the server that the remote party held the call.
call_index | The index of the call that was held. |
int bt_tbs_remote_incoming | ( | uint8_t | bearer_index, |
const char * | to, | ||
const char * | from, | ||
const char * | friendly_name ) |
#include <zephyr/bluetooth/audio/tbs.h>
Notify the server of an incoming call.
bearer_index | The index of the Telephone Bearer. |
to | The URI that is receiving the call. |
from | The URI of the remote caller. |
friendly_name | The friendly name of the remote caller. |
int bt_tbs_remote_retrieve | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Notify the server that the remote party retrieved the call.
call_index | The index of the call that was retrieved. |
int bt_tbs_remote_terminate | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Notify the server that the remote party terminated the call.
call_index | The index of the call that was terminated. |
int bt_tbs_retrieve | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Retrieve a call.
call_index | The index of the call that will be retrieved. |
int bt_tbs_set_bearer_provider_name | ( | uint8_t | bearer_index, |
const char * | name ) |
#include <zephyr/bluetooth/audio/tbs.h>
Set a new bearer provider.
bearer_index | The index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS. |
name | The new bearer provider name. |
#include <zephyr/bluetooth/audio/tbs.h>
Set a new bearer technology.
bearer_index | The index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS. |
new_technology | The new bearer technology. |
#include <zephyr/bluetooth/audio/tbs.h>
Update the signal strength reported by the server.
bearer_index | The index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS. |
new_signal_strength | The new signal strength. |
#include <zephyr/bluetooth/audio/tbs.h>
Sets the feature and status value.
bearer_index | The index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS. |
status_flags | The new feature and status value. |
#include <zephyr/bluetooth/audio/tbs.h>
Sets the URI scheme list of a bearer.
bearer_index | The index of the Telephone Bearer. |
uri_list | List of URI prefixes (e.g. {"skype", "tel"}). |
uri_count | Number of URI prefixies in uri_list . |
int bt_tbs_terminate | ( | uint8_t | call_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Terminate a call.
call_index | The index of the call that will be terminated. |
int bt_tbs_unregister_bearer | ( | uint8_t | bearer_index | ) |
#include <zephyr/bluetooth/audio/tbs.h>
Unregister a Telephone Bearer.
This will unregister a Telephone Bearer Service (TBS) (or a Generic Telephone Bearer service (GTBS)) with the provided parameters. The bearer shall be registered first by bt_tbs_register_bearer() before it can be unregistered.
Similarly, all TBS shall be unregistered before the GTBS can be unregistered with.
bearer_index | The index of the bearer to unregister. |
0 | Success |
-EINVAL | bearer_index is invalid |
-EALREADY | The bearer identified by bearer_index is not registered |
-EAGAIN | The bearer identified by bearer_index is GTBS and there are TBS instances registered. |
-ENOEXEC | The service failed to be unregistered |