Using the native SIP function of Android 6.0.1 on my Galaxy s6,
I had issues with UDP being able to make phone calls fine, but incoming not ringing the phone. Then with TCP, incoming worked great, but for outgoing, if it wasn't disconnecting the call after dialing, it was hanging up 30 seconds after. By adding the GVGW account twice using the x1 and x2 after my login (GV123456789x1), I was able to configure one account as TCP and one as UDP. Choosing my UDP account as the account to make calls from, the TCP account will pick up the incoming, essentially solving the issue, and making the phone a true VOIP phone.
Hope this helps those who have been experiencing the same issues as I have!