Zephyr API 3.6.99
Loading...
Searching...
No Matches
Telephone Bearer Service (TBS)

Telephone Bearer Service (TBS) More...

Data Structures

struct  bt_tbs_cb
 Struct to hold the Telephone Bearer Service callbacks. More...
 
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.
 
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.
 

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.
 

Detailed Description

Telephone Bearer Service (TBS)

Since
3.0
Version
0.8.0

The Telephone Bearer Service (TBS) provide procedures to discover telephone bearers and control calls.

Macro Definition Documentation

◆ BT_TBS_CALL_FLAG_OUTGOING

#define BT_TBS_CALL_FLAG_OUTGOING   BIT(0)

#include <zephyr/bluetooth/audio/tbs.h>

If set, call is outgoing else incoming.

◆ BT_TBS_CALL_FLAG_WITHHELD

#define BT_TBS_CALL_FLAG_WITHHELD   BIT(1)

#include <zephyr/bluetooth/audio/tbs.h>

If set call is withheld, else not withheld.

◆ BT_TBS_CALL_FLAG_WITHHELD_BY_NETWORK

#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.

◆ BT_TBS_CALL_STATE_ACTIVE

#define BT_TBS_CALL_STATE_ACTIVE   0x03

#include <zephyr/bluetooth/audio/tbs.h>

The call is in an active conversation.

◆ BT_TBS_CALL_STATE_ALERTING

#define BT_TBS_CALL_STATE_ALERTING   0x02

#include <zephyr/bluetooth/audio/tbs.h>

A remote party is being alerted (outgoing call).

◆ BT_TBS_CALL_STATE_DIALING

#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).

◆ BT_TBS_CALL_STATE_INCOMING

#define BT_TBS_CALL_STATE_INCOMING   0x00

#include <zephyr/bluetooth/audio/tbs.h>

A remote party is calling (incoming call).

◆ BT_TBS_CALL_STATE_LOCALLY_AND_REMOTELY_HELD

#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.

◆ BT_TBS_CALL_STATE_LOCALLY_HELD

#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.

◆ BT_TBS_CALL_STATE_REMOTELY_HELD

#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.

◆ BT_TBS_FEATURE_HOLD

#define BT_TBS_FEATURE_HOLD   BIT(0)

#include <zephyr/bluetooth/audio/tbs.h>

Local Hold and Local Retrieve Call Control Point Opcodes supported.

◆ BT_TBS_FEATURE_JOIN

#define BT_TBS_FEATURE_JOIN   BIT(1)

#include <zephyr/bluetooth/audio/tbs.h>

Join Call Control Point Opcode supported.

◆ BT_TBS_GTBS_INDEX

#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.

◆ BT_TBS_REASON_BAD_REMOTE_URI

#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.

◆ BT_TBS_REASON_CALL_FAILED

#define BT_TBS_REASON_CALL_FAILED   0x01

#include <zephyr/bluetooth/audio/tbs.h>

The call failed.

◆ BT_TBS_REASON_CLIENT_TERMINATED

#define BT_TBS_REASON_CLIENT_TERMINATED   0x06

#include <zephyr/bluetooth/audio/tbs.h>

The client terminated the call.

◆ BT_TBS_REASON_LINE_BUSY

#define BT_TBS_REASON_LINE_BUSY   0x04

#include <zephyr/bluetooth/audio/tbs.h>

The line was busy.

◆ BT_TBS_REASON_NETWORK_CONGESTED

#define BT_TBS_REASON_NETWORK_CONGESTED   0x05

#include <zephyr/bluetooth/audio/tbs.h>

Network congestion.

◆ BT_TBS_REASON_NO_ANSWER

#define BT_TBS_REASON_NO_ANSWER   0x08

#include <zephyr/bluetooth/audio/tbs.h>

No answer.

◆ BT_TBS_REASON_NO_SERVICE

#define BT_TBS_REASON_NO_SERVICE   0x07

#include <zephyr/bluetooth/audio/tbs.h>

No service.

◆ BT_TBS_REASON_REMOTE_ENDED_CALL

#define BT_TBS_REASON_REMOTE_ENDED_CALL   0x02

#include <zephyr/bluetooth/audio/tbs.h>

The remote party ended the call.

◆ BT_TBS_REASON_SERVER_ENDED_CALL

#define BT_TBS_REASON_SERVER_ENDED_CALL   0x03

#include <zephyr/bluetooth/audio/tbs.h>

The call ended from the server.

◆ BT_TBS_REASON_UNSPECIFIED

#define BT_TBS_REASON_UNSPECIFIED   0x09

#include <zephyr/bluetooth/audio/tbs.h>

Unspecified.

◆ BT_TBS_RESULT_CODE_INVALID_CALL_INDEX

#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.

◆ BT_TBS_RESULT_CODE_INVALID_URI

#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.

◆ BT_TBS_RESULT_CODE_OPCODE_NOT_SUPPORTED

#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.

◆ BT_TBS_RESULT_CODE_OPERATION_NOT_POSSIBLE

#define BT_TBS_RESULT_CODE_OPERATION_NOT_POSSIBLE   0x02

#include <zephyr/bluetooth/audio/tbs.h>

The requested operation cannot be completed.

◆ BT_TBS_RESULT_CODE_OUT_OF_RESOURCES

#define BT_TBS_RESULT_CODE_OUT_OF_RESOURCES   0x05

#include <zephyr/bluetooth/audio/tbs.h>

Lack of internal resources to complete the requested action.

◆ BT_TBS_RESULT_CODE_STATE_MISMATCH

#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.

◆ BT_TBS_RESULT_CODE_SUCCESS

#define BT_TBS_RESULT_CODE_SUCCESS   0x00

#include <zephyr/bluetooth/audio/tbs.h>

The opcode write was successful.

◆ BT_TBS_SIGNAL_STRENGTH_MAX

#define BT_TBS_SIGNAL_STRENGTH_MAX   100

#include <zephyr/bluetooth/audio/tbs.h>

Maximum signal strength.

◆ BT_TBS_SIGNAL_STRENGTH_NO_SERVICE

#define BT_TBS_SIGNAL_STRENGTH_NO_SERVICE   0

#include <zephyr/bluetooth/audio/tbs.h>

No service.

◆ BT_TBS_SIGNAL_STRENGTH_UNKNOWN

#define BT_TBS_SIGNAL_STRENGTH_UNKNOWN   255

#include <zephyr/bluetooth/audio/tbs.h>

Signal strength is unknown

◆ BT_TBS_STATUS_FLAG_INBAND_RINGTONE

#define BT_TBS_STATUS_FLAG_INBAND_RINGTONE   BIT(0)

#include <zephyr/bluetooth/audio/tbs.h>

Inband ringtone enabled.

◆ BT_TBS_STATUS_FLAG_SILENT_MOD

#define BT_TBS_STATUS_FLAG_SILENT_MOD   BIT(1)

#include <zephyr/bluetooth/audio/tbs.h>

Server is in silent mod.

◆ BT_TBS_TECHNOLOGY_2G

#define BT_TBS_TECHNOLOGY_2G   0x08

◆ BT_TBS_TECHNOLOGY_3G

#define BT_TBS_TECHNOLOGY_3G   0x01

◆ BT_TBS_TECHNOLOGY_4G

#define BT_TBS_TECHNOLOGY_4G   0x02

◆ BT_TBS_TECHNOLOGY_5G

#define BT_TBS_TECHNOLOGY_5G   0x05

◆ BT_TBS_TECHNOLOGY_CDMA

#define BT_TBS_TECHNOLOGY_CDMA   0x07

#include <zephyr/bluetooth/audio/tbs.h>

Code-Division Multiple Access (CDMA)

◆ BT_TBS_TECHNOLOGY_GSM

#define BT_TBS_TECHNOLOGY_GSM   0x06

#include <zephyr/bluetooth/audio/tbs.h>

Global System for Mobile Communications (GSM)

◆ BT_TBS_TECHNOLOGY_LTE

#define BT_TBS_TECHNOLOGY_LTE   0x03

#include <zephyr/bluetooth/audio/tbs.h>

Long-term evolution (LTE)

◆ BT_TBS_TECHNOLOGY_WCDMA

#define BT_TBS_TECHNOLOGY_WCDMA   0x09

#include <zephyr/bluetooth/audio/tbs.h>

Wideband Code-Division Multiple Access (WCDMA)

◆ BT_TBS_TECHNOLOGY_WIFI

#define BT_TBS_TECHNOLOGY_WIFI   0x04

#include <zephyr/bluetooth/audio/tbs.h>

Wifi.

Typedef Documentation

◆ bt_tbs_authorize_cb

typedef bool(* bt_tbs_authorize_cb) (struct bt_conn *conn)

#include <zephyr/bluetooth/audio/tbs.h>

Callback function for authorizing a client.

Only used if BT_TBS_AUTHORIZATION is enabled.

Parameters
connThe connection used.
Returns
true if authorized, false otherwise

◆ bt_tbs_call_change_cb

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.

Parameters
connThe connection used.
call_indexThe call index.

◆ bt_tbs_client_call_states_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.
call_countNumber of call states read.
call_statesArray of call states. The array is not kept by the client, so must be copied to be saved.

◆ bt_tbs_client_cp_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.
call_indexThe call index. For bt_tbs_client_originate_call this will always be 0, and does not reflect the actual call index.

◆ bt_tbs_client_current_calls_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.
call_countNumber of calls read.
callsArray of calls. The array is not kept by the client, so must be copied to be saved.

◆ bt_tbs_client_discover_cb

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.

Parameters
connThe connection that was used to discover CCP for a device.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
tbs_countNumber of TBS instances on peer device.
gtbs_foundWhether or not the server has a Generic TBS instance.

◆ bt_tbs_client_read_string_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.
valueThe Null-terminated string value. The value is not kept by the client, so must be copied to be saved.

◆ bt_tbs_client_read_value_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.
valueThe integer value.

◆ bt_tbs_client_termination_reason_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.
call_indexThe call index.
reasonThe termination reason.

◆ bt_tbs_client_write_value_cb

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.

Parameters
connThe connection used in the function.
errError value. BT_TBS_CLIENT_RESULT_CODE_*, GATT error or errno value.
inst_indexThe index of the TBS instance that was updated.

◆ bt_tbs_join_calls_cb

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.

Parameters
connThe connection used.
call_index_countThe number of call indexes to join.
call_indexesThe call indexes.

◆ bt_tbs_originate_call_cb

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.

Parameters
connThe connection used.
call_indexThe call index.
uriThe URI. The value may change, so should be copied if persistence is wanted.
Returns
true if the call request was accepted and remote party is alerted.

◆ bt_tbs_terminate_call_cb

typedef void(* bt_tbs_terminate_call_cb) (struct bt_conn *conn, uint8_t call_index, uint8_t reason)

#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.

Parameters
connThe connection used.
call_indexThe call index.
reasonThe termination BT_TBS_REASON_* reason.

Function Documentation

◆ bt_tbs_accept()

int bt_tbs_accept ( uint8_t call_index)

#include <zephyr/bluetooth/audio/tbs.h>

Accept an alerting call.

Parameters
call_indexThe index of the call that will be accepted.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_client_accept_call()

int bt_tbs_client_accept_call ( struct bt_conn * conn,
uint8_t inst_index,
uint8_t call_index )

#include <zephyr/bluetooth/audio/tbs.h>

Accept an incoming call.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
call_indexThe call index to accept.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_ACCEPT_CALL 
must be set for this function to be effective.

◆ bt_tbs_client_discover()

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.

Parameters
connThe connection to discover TBS for.
Returns
int 0 on success, GATT error value on fail.

◆ bt_tbs_client_get_by_ccid()

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.

Parameters
connThe connection to the TBS server.
ccidThe CCID to lookup a service instance for.
Returns
Pointer to a Telephone Bearer Service instance if found else NULL.
Note
CONFIG_BT_TBS_CLIENT_CCID 
must be set for this function to be effective.

◆ bt_tbs_client_hold_call()

int bt_tbs_client_hold_call ( struct bt_conn * conn,
uint8_t inst_index,
uint8_t call_index )

#include <zephyr/bluetooth/audio/tbs.h>

Request to hold a call.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
call_indexThe call index to place on hold.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_HOLD_CALL 
must be set for this function to be effective.

◆ bt_tbs_client_join_calls()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
call_indexesArray of call indexes.
countNumber of call indexes in the call_indexes array.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_JOIN_CALLS 
must be set for this function to be effective.

◆ bt_tbs_client_originate_call()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
uriThe URI of the callee.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_ORIGINATE_CALL 
must be set for this function to be effective.

◆ bt_tbs_client_read_bearer_provider_name()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_BEARER_PROVIDER_NAME 
must be set for this function to be effective.

◆ bt_tbs_client_read_bearer_uci()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_BEARER_UCI 
must be set for this function to be effective.

◆ bt_tbs_client_read_call_state()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.

◆ bt_tbs_client_read_call_uri()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_INCOMING_URI 
must be set for this function to be effective.

◆ bt_tbs_client_read_ccid()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_CCID 
must be set for this function to be effective.

◆ bt_tbs_client_read_current_calls()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_BEARER_LIST_CURRENT_CALLS 
must be set for this function to be effective.

◆ bt_tbs_client_read_friendly_name()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_CALL_FRIENDLY_NAME 
must be set for this function to be effective.

◆ bt_tbs_client_read_optional_opcodes()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_OPTIONAL_OPCODES 
must be set for this function to be effective.

◆ bt_tbs_client_read_remote_uri()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_INCOMING_CALL 
must be set for this function to be effective.

◆ bt_tbs_client_read_signal_interval()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_READ_BEARER_SIGNAL_INTERVAL 
must be set for this function to be effective.

◆ bt_tbs_client_read_signal_strength()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_BEARER_SIGNAL_STRENGTH 
must be set for this function to be effective.

◆ bt_tbs_client_read_status_flags()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_STATUS_FLAGS 
must be set for this function to be effective.

◆ bt_tbs_client_read_technology()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_BEARER_TECHNOLOGY 
must be set for this function to be effective.

◆ bt_tbs_client_read_uri_list()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_BEARER_URI_SCHEMES_SUPPORTED_LIST 
must be set for this function to be effective.

◆ bt_tbs_client_register_cb()

int bt_tbs_client_register_cb ( struct bt_tbs_client_cb * cbs)

#include <zephyr/bluetooth/audio/tbs.h>

Register the callbacks for CCP.

Parameters
cbsPointer to the callback structure.
Return values
0Success
-EINVALcbs is NULL
-EEXISTcbs is already registered

◆ bt_tbs_client_retrieve_call()

int bt_tbs_client_retrieve_call ( struct bt_conn * conn,
uint8_t inst_index,
uint8_t call_index )

#include <zephyr/bluetooth/audio/tbs.h>

Retrieve call from (local) hold.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
call_indexThe call index to retrieve.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_RETRIEVE_CALL 
must be set for this function to be effective.

◆ bt_tbs_client_set_outgoing_uri()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
uriThe Null-terminated URI string.
Returns
int 0 on success, errno value on fail.

◆ bt_tbs_client_set_signal_strength_interval()

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.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
intervalThe interval to write (0-255 seconds).
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_SET_BEARER_SIGNAL_INTERVAL 
must be set for this function to be effective.

◆ bt_tbs_client_terminate_call()

int bt_tbs_client_terminate_call ( struct bt_conn * conn,
uint8_t inst_index,
uint8_t call_index )

#include <zephyr/bluetooth/audio/tbs.h>

Request to terminate a call.

Parameters
connThe connection to the TBS server.
inst_indexThe index of the TBS instance.
call_indexThe call index to terminate.
Returns
int 0 on success, errno value on fail.
Note
CONFIG_BT_TBS_CLIENT_TERMINATE_CALL 
must be set for this function to be effective.

◆ bt_tbs_dbg_print_calls()

void bt_tbs_dbg_print_calls ( void )

#include <zephyr/bluetooth/audio/tbs.h>

Prints all calls of all services to the debug log.

◆ bt_tbs_hold()

int bt_tbs_hold ( uint8_t call_index)

#include <zephyr/bluetooth/audio/tbs.h>

Hold a call.

Parameters
call_indexThe index of the call that will be held.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_join()

int bt_tbs_join ( uint8_t call_index_cnt,
uint8_t * call_indexes )

#include <zephyr/bluetooth/audio/tbs.h>

Join calls.

Parameters
call_index_cntThe number of call indexes to join
call_indexesArray of call indexes to join.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_originate()

int bt_tbs_originate ( uint8_t bearer_index,
char * uri,
uint8_t * call_index )

#include <zephyr/bluetooth/audio/tbs.h>

Originate a call.

Parameters
[in]bearer_indexThe index of the Telephone Bearer.
[in]uriThe remote URI.
[out]call_indexPointer to a value where the new call_index will be stored.
Returns
int A call index on success (positive value), errno value on fail.

◆ bt_tbs_register_cb()

void bt_tbs_register_cb ( struct bt_tbs_cb * cbs)

#include <zephyr/bluetooth/audio/tbs.h>

Register the callbacks for TBS.

Parameters
cbsPointer to the callback structure.

◆ bt_tbs_remote_answer()

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.

Parameters
call_indexThe index of the call that was answered.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_remote_hold()

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.

Parameters
call_indexThe index of the call that was held.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_remote_incoming()

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.

Parameters
bearer_indexThe index of the Telephone Bearer.
toThe URI that is receiving the call.
fromThe URI of the remote caller.
friendly_nameThe friendly name of the remote caller.
Returns
int New call index if positive or 0, errno value if negative.

◆ bt_tbs_remote_retrieve()

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.

Parameters
call_indexThe index of the call that was retrieved.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_remote_terminate()

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.

Parameters
call_indexThe index of the call that was terminated.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_retrieve()

int bt_tbs_retrieve ( uint8_t call_index)

#include <zephyr/bluetooth/audio/tbs.h>

Retrieve a call.

Parameters
call_indexThe index of the call that will be retrieved.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_set_bearer_provider_name()

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.

Parameters
bearer_indexThe index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS.
nameThe new bearer provider name.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_set_bearer_technology()

int bt_tbs_set_bearer_technology ( uint8_t bearer_index,
uint8_t new_technology )

#include <zephyr/bluetooth/audio/tbs.h>

Set a new bearer technology.

Parameters
bearer_indexThe index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS.
new_technologyThe new bearer technology.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_set_signal_strength()

int bt_tbs_set_signal_strength ( uint8_t bearer_index,
uint8_t new_signal_strength )

#include <zephyr/bluetooth/audio/tbs.h>

Update the signal strength reported by the server.

Parameters
bearer_indexThe index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS.
new_signal_strengthThe new signal strength.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_set_status_flags()

int bt_tbs_set_status_flags ( uint8_t bearer_index,
uint16_t status_flags )

#include <zephyr/bluetooth/audio/tbs.h>

Sets the feature and status value.

Parameters
bearer_indexThe index of the Telephone Bearer or BT_TBS_GTBS_INDEX for GTBS.
status_flagsThe new feature and status value.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_set_uri_scheme_list()

int bt_tbs_set_uri_scheme_list ( uint8_t bearer_index,
const char ** uri_list,
uint8_t uri_count )

#include <zephyr/bluetooth/audio/tbs.h>

Sets the URI scheme list of a bearer.

Parameters
bearer_indexThe index of the Telephone Bearer.
uri_listList of URI prefixes (e.g. {"skype", "tel"}).
uri_countNumber of URI prefixies in uri_list.
Returns
BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.

◆ bt_tbs_terminate()

int bt_tbs_terminate ( uint8_t call_index)

#include <zephyr/bluetooth/audio/tbs.h>

Terminate a call.

Parameters
call_indexThe index of the call that will be terminated.
Returns
int BT_TBS_RESULT_CODE_* if positive or 0, errno value if negative.