CFStringRef state;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
if(CFStringGetLength(state) == 0)
{
//SILENT
}
else
{
//NOT SILENT
}
Если строка состояния пуста, то телефон отключен - в противном случае у телефона есть аудиовыход
EDIT:
не забудьте добавить каркас AudioToolbox и импортировать. - Томас Клейсон
ответ взят из (http://iphone -dev-tips.alterplay.com / 2009/12 / iphone-silent-mode-treatment.html)