top of page
< Back

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.

iOS Unified Logs - Audio Output during a Call

Lionel Notari

Week  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:



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.


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


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


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

  2. 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”).

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

© 2023 - 2024 by Lionel Notari - All Rights Reserved

bottom of page