iOS Unified Logs - Audio Output during a Call
Understanding iOS Unified Logs to determine whether a call was routed through the iPhone Built-In, the Speaker or an external Bluetooth device.

Lionel Notari
Week nº 5
Building on my previous publications on unified logs related to phone calls, I would like to share my new findings on identifying which audio output was used during a call (iPhone speaker, external speaker, Bluetooth headset, etc.), since a Bluetooth connection alone is not enough to confirm the output. his series of articles, focusing on phone calls and Bluetooth connections, already includes the following publications:
A detailed article on the "Phone" app, along with another on watchOS.
Two "Logs of the Week" explaining how a call was initiated by the user and the Bluetooth pairing process.
Indeed, an iPhone can be paired with a car via Bluetooth without using the car’s speakers for the call. Therefore, it’s important to analyse not only the Bluetooth connection unified logs but also audio logs to determine precisely the actual output. In this article, I investigated the unified logs generated when I switched between different audio outputs to understand how my iOS device records these events.
Audio output at the beginning of the Call
iOS automatically chooses the audio output at the start of a call based on the devices that are connected, like the phone's speaker or a Bluetooth headset. iOS save this initial selection, before any user intervention, in the following unified logs:
# | Event | Output |
---|---|---|
1.1 | audiomxd: -CMVAEndptMgr- vaemConfigurePVMSettings: PVMSetCurrentState [PhoneCall, Default, ReceiverAndMicrophone, Built-In Receiver, (null), NO] | iPhone Built-In |
1.2 | audiomxd: BTAudioAVNotificationMonitor: Refresh Route Info ReceiverAndMicrophone | iPhone Built-In |
2.1 | audiomxd: -CMVAEndptMgr- vaemConfigurePVMSettings: PVMSetCurrentState [PhoneCall, Default, HeadsetBT, F4:B6:88:0C:87:0E-tsco, wdef, NO] | Bluetooth Headset |
2.2 | audiomxd: BTAudioAVNotificationMonitor: Refresh Route Info HeadsetBT | Bluetooth Headset |
Changing Audio output during the Call
Once the call is active, the user can switch the audio output by tapping the following icon:

This action generates specific logs that allow investigators to determine both the previous and the new audio output as shown by the unified logs below:
iPhone Built-In
# | Event |
---|---|
1 | audiomxd: -CMVAEndptMgr- vaemVADRouteChangeListener: Route changed. New device routes = [ReceiverAndMicrophone~Built-In Receiver~] |
2 | audiomxd: -CMSessionMgr- cmsmActivateEndpointFromRouteDescription: Route picked, Current = Haut-parleur [Speaker], Picked = iPhone [Built-In Receiver], process: com.apple.TelephonyUtilities |
3 | audiomxd: -FigRoutingManager- FigRoutingManagerLogEndpointIDs: The matching endpoints are: [0]. iPhone |
4 | audiomxd: -FigRoutingManager- FigRoutingManagerLogEndpointID: currently activating endpoint: iPhone |
5 | audiomxd: -FigRoutingManager_iOS- FigRoutingManagerPickRouteDescriptorForContext: Context type 'System Audio' picking route: iPhone
|
Speaker (haut-parleur)
# | Event |
---|---|
1 | audiomxd: -CMVAEndptMgr- vaemVADRouteChangeListener: Route changed. New device routes = [SpeakerAndMicrophone~Speaker~] |
2 | audiomxd: -CMSessionMgr- cmsmActivateEndpointFromRouteDescription: Route picked, Current = iPhone [Built-In Receiver], Picked = Haut-parleur [Speaker], process: com.apple.TelephonyUtilities |
3 | audiomxd: -FigRoutingManager- FigRoutingManagerLogEndpointIDs: The matching endpoints are: [0]. Haut-parleur |
4 | audiomxd: -FigRoutingManager- FigRoutingManagerLogEndpointID: currently activating endpoint: Haut-parleur |
5 | audiomxd: -FigRoutingManager_iOS- FigRoutingManagerPickRouteDescriptorForContext: Context type 'System Audio' picking route: Haut-parleur |
Bluetooth Headset
# | Event |
---|---|
1 | audiomxd: -CMVAEndptMgr- vaemVADRouteChangeListener: Route changed. New device routes = [HeadsetBT~F4:B6:88:0C:87:0E-tsco~wdef] |
2 | audiomxd: -CMSessionMgr- cmsmActivateEndpointFromRouteDescription: Route picked, Current = iPhone [Built-In Receiver], Picked = PLT BB PRO 2 [F4:B6:88:0C:87:0E-tsco], process: com.apple.TelephonyUtilities |
3 | audiomxd: -FigRoutingManager- FigRoutingManagerLogEndpointID: currently activating endpoint: PLT BB PRO 2 |
Important Information
The choice of Bluetooth output seems to generate fewer logs than the other two cases presented. However, the few logs recorded are sufficient to show which audio output was used during the call.l.
The logs nº 2 provides information about the previous audio output (value “Current”) as well as the new output selected by the user (value “Picked”).
In Bluetooth logs, it is particularly interesting to note that the logs also provide the name of the chosen device along with its Bluetooth address (e.g., PLT BB PRO2 - F4:B6:88:0C:87:0E).