Issues/Recommendations with Mobile SIP Softphones

A couple of thoughts
It sounds like you could have benefited from pattern matching in your dial plans more vs entertering all the various permutations of numbers.

If you can post logs from the asterisk console for a failed call or at least the lines around where the call fails, that would be helpful

Do you have extension routing, or class of service modules active? Did the SIP soft clients get configured to use a specific context? Also, what codecs are the soft clients configured to use? Order matters here. Finally, if you do a sip show peers from the asterisk cli or look in the peers report of the asterisk info report in the GUI, are the soft clients registered successfully with asterisk?