dial USSD code from iphone programmatically

ios, iphone

Solution

You cannot dial a number containing * or # characters. Apple doesn't allow them in a dial string for security reasons.

Apple Documentation says :

To prevent users from maliciously redirecting phone calls or changing the behavior of a phone or account, the Phone app supports most, but not all, of the special characters in the tel scheme. Specifically, if a URL contains the * or # characters, the Phone app does not attempt to dial the corresponding phone number. If your app receives URL strings from the user or an unknown source, you should also make sure that any special characters that might not be appropriate in a URL are escaped properly. For native apps, use the stringByAddingPercentEscapesUsingEncoding: method of NSString to escape characters, which returns a properly escaped version of your original string.

Problem

How to dial `USSD` code for iphone programmatically? I searched and found that `iOS 7` has already blocked use of `USSD` code for security reason and in iPhones with < iOS7 we can dial a USSD code manualy but not programmatically. Any one have an idea, can we call USSD programmatically like: `[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:\*123* <2334555>#"]]`?

Original source

Related problems