For Notification Tones, Audio session category is configured to AVAudioSessionCategoryPlayAndRecord with VoiceChat mode and AllowBluetooth option. Tones play using system audio services without an active audio session. No background audio session activation occurs for notification tones.
Are you talking about using AudioServicesPlayAlertSound()/AudioServicesPlaySystemSound()?
If so, then the answer here is basically "no, you can't change any of the details of how those APIs behave". Both of those APIs work by shifting the actual playback out of process, instead of having "your" app directly play the audio. This allows them to be used in apps that don't have ANY audio configuration at all, as well as in contexts that would otherwise be complex/problematic. For example, it lets apps with arbitrarily complex and configurable audio configuration play alert sounds without having to figure out how to mix and route that alert sound with their own dynamic configuration.
It's true that AudioServicesPlayAlertSound() modifies its behavior based on your session configuration:
"iPhone—plays the specified sound. If the user has configured the Settings application for vibration on ring, also invokes vibration. However, the device does not vibrate if your app’s audio session is configured with the playAndRecord or record audio session category. This ensures that vibration doesn’t interfere with audio recording. For an explanation of audio session categories, see Categories Express Audio Roles."
...but what's actually going on here is that the function is checking your app’s current configuration and then tweaking the IPC message it sends requesting playback. Note that the fact it only plays audio files, as well as all of the other listed restrictions, actually comes from the fact that the playback engine is intentionally quite limited. It's designed to very quickly play alert sounds and nothing else.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware