It might be the case that you are are trying to use SIP client over 3G and It registers and call can be initiated from the client but it can’t receive call; cause asterisk sever marks it as unreachable immediately after registration. Even more, the above works well when you turn off 3g and switch over to wifi.
I recommend you to set “qualify=no”, also check if your asterisk sip server Is available with ports on the public ip that your phone is trying to register from 3G network.
Other issue might be SIP retransmision (no reply to our critical packet). You might notice that this issue occurs when dialing a call out from a remote wifi network (office wifi, for example), its auto disconnected within 10s with SIP Retransmissions notice / warning message. However if a call is initiated from home local network ( ipad ) to the phone (registered with asterisk over office wifi)… all works well !
Take a look at your externhost/externip and localnet settings Set it properly, so asterisk can make SIP responses according to your WAN or LAN connection.