Bluetooth® Low Energy audio - Content Control

Revision as of 14:53, 25 June 2024 by Registered User (→‎Call Control Profile Linkup)


1. Introduction

The Bluetooth® LE Audio Content Control section regroups :

  • the Call Control Profile (CCP)
  • the Generic Telephony Bearer Service (GTBS)
  • the Telephony Bearer Service (TBS)
  • the Media Control Profile (MCP)
  • the Generic Media Control Service (GMCS)
  • the Media Control Service (MCS)

These profiles and services are used to either control or provide status information on an audio-related features, the Call feature and the Media feature.

As specified in the in the section 2.2 of the Common Audio Profile[1], the CAP Acceptor or the CAP Commander can operate in the MCP Client role and the CCP Client role, while the CAP Initiator can operate in the CCP Server role and the MCP Server role.


The GTBS, the TBS, the GMCS and the MCS are defined as Content Control services.

2. Call Control Profile

The Call Control profile defines roles and procedures to interact with telephony bearer supported by a remote device.It's specified by the Bluetooth® SIG and the full specification is accessible on their website[2].

2.1. Roles

The CCP introduces 2 roles:

  • Call Control Server: handles calls on one or more telephone call bearers. This role can be used by cell phones or tablets.
  • Call Control Client: makes requests to the server to make, receive, and manage calls. This role can be used by an headset and speaker that have microphones, or devices like a watch that might not have a speaker or microphone but can manage telephony calls.

Within a Call Control Server, there can be zero or multiple instances of Telephone Bearer Service (TBS) and there is a single, mandatory instance of Generic Telephone Bearer Service.
The BLE Audio Stack provides two APIs declared in cap.h header file to register the Telephony Bearer Instance associated to the Telephone Bearer Service and the Generic Telephone Bearer Service(Table 2.1)

Table 2.1 CAP functions dedicated to Telephony Bearer Instance registration
Functions Description Header File
CAP_RegisterGenericTelephonyBearer() Register the Generic Telephone Bearer. cap.h
CAP_RegisterTelephonyBearerInstance() Register the Generic Telephone Instance. cap.h


Each registered Telephony Bearer instance is identified by a unique identifier value named Content Control Identifier (CCID).The CCID value identifies a Content Control service (GTBS or TBS) and is unique for that service instance across all instances of Content Control services on a device.

2.2. Call Control Profile Linkup

The linkup operation of the Call Control Profile could be initialized by the CAP Acceptor or the CAP Commander supporting the Call Control Client role, thanks to the CAP_Linkup() function. This process is described in part 4.1 of the wiki page Bluetooth® Low Energy audio - STM32WBA Architecture and Integration
During linkup of the Call Control Profile, the CCP META Event CCP_CLT_GTBS_INFO_EVT and CCP_CLT_TBS_INFO_EVT are reported in CAP Callback when Generic Telephone Bearer Service and Telephony Bearer Service Instances are discovered in remote CAP Client supporting CCP Server role. Once the Call Control Profile link is up, the CAP_CCP_LINKUP_EVT event is notified.

2.3. Call Control Profile Functions

All the Call Control Profile functions, defined in the header file ccp.h, are used to control the Call features in CCP Server and CCP Client role.

All the structures, types, callback events related to the Call Control feature are defined in the ccp_types.h header file.
== Media Control Profile ==
== Content Control Procedure ==
When an audio stream endpoint indicates that a media content control or a call content control is activated/deactivated through the metadata associated to the audio stream endpoint in ENABLING/STREAMING state, the Bluetooth® Low Energy audio stack reports CAP events listed in the Table 4.12 :

Events Description Header File
CAP_CCP_INST_ACTIVATED_EVT Event notified when a telephone bearer instance of the call control profile is activated and associated to an audio stream. cap_types.h
CAP_CCP_INST_DEACTIVATED_EVT Event notified when a telephone bearer instance of the call control profile is deactivated. cap_types.h
CAP_MCP_INST_ACTIVATED_EVT Event notified when a media player instance of the media control profile is activated and associated to an audio stream. cap_types.h
CAP_MCP_INST_DEACTIVATED_EVT Event notified when a media player instance of the media control profile is deactivated. cap_types.h

Table 4.12 Content control linkup events

The CAP Acceptor could perform Call control operation and Media control operation on active CCP instance or MCP instance thanks to functions declared in ccp.h and mcp.h header files.
The Generic Audio Framework reports call control events (see CCP_NotCode_t in ccp_types.h) and media control events (see MCP_NotCode_t in mcp_types.h) trough dedicated CAP_CCP_META_EVT and CAP_MCP_META_EVT events

3. References


No categories assignedEdit