IOS – Dial long USSD code on iPhone

iosiphone

I am trying to dial a USSD code like this:

*222*88*56167828873588501034*123*344*6842371612#

But when I press the call button nothing happens, however if I delete the # character at the end, the iPhone tries to call by an instant and then the call ends.

Some shorter USSD codes can be dialed, for example:

*222*88*8202117*04450*234567#

I need suggestions to force long USSD code to be dialed and to know if there is any way to program it in Swift, in that case I could make an app that forces the iphone to dial the codes.

Best Answer

Unstructured service data requests are touchy in my experience.

I usually verify my iOS settings are up to date, then check for a carrier settings update and then go straight to my cellular carrier for help when I can’t use one. They often find a problem with the cell tower or can tell me they flat out don’t support the request I’m making.

You’re not hitting the common limit of 182 alphanumeric characters but I’m not familiar with 222 request. Since this brings up a bidirectional channel between your phone and the carrier equipment they should be able to diagnose precisely what’s happening on the tower side. I do my updates so they don’t say “talk to apple” or “restart your device” since it’s really on them to validate that the precise string you sent got encoded and received and look at their logs to see why your request crashed their stack to respond to the request. You know your device is sending and you know your device can send messages millions of times longer - just open Safari and listen or watch to 10 seconds of content. The problem almost certainly isn’t your radio, device, OS.