I want to completely reduce the volume in iPhone to 0. And also I want to know is there a way to programmatically turn iPhone to vibrating mode. I did some work and in that I'm not completely able to make volume to 0. I make volume to 1 when call [self setSystemVolumeLevelTo:0]. Help Me guys ...
- (void) setSystemVolumeLevelTo:(float)newVolumeLevel
{
 Class avSystemControllerClass = NSClassFromString(@"AVSystemController");
    id avSystemControllerInstance = [avSystemControllerClass performSelector:@selector(sharedAVSystemController)];
    NSString *soundCategory = @"Ringtone";
    NSInvocation *volumeInvocation = [NSInvocation invocationWithMethodSignature:[avSystemControllerClass instanceMethodSignatureForSelector:@selector(setVolumeTo:forCategory:)]];
    [volumeInvocation setTarget:avSystemControllerInstance];
    [volumeInvocation setSelector:@selector(setVolumeTo:forCategory:)];
    [volumeInvocation setArgument:&newVolumeLevel atIndex:2];
    [volumeInvocation setArgument:&soundCategory atIndex:3];
    [volumeInvocation invoke];    
}