People, I got TM VoIP working on Android phone again.
This is despite they closed the loophole by simply disabling VLAN 400 from being forwarded to LAN 1.
The technique is simple, and works even better than last time because we no longer need to dstnat to the Android phone.
The reason is because it was double NAT. Once on the Mikrotik, the second time on the ONU. Yes, the ONU actually perform NAT on the VoIP VLAN.
First add 2 static route in the ONU. Assuming:
192.168.88.0/24 = Your daily usage network
192.168.1.1 = ONU IP Address
192.168.1.10 = Router IP Address
If your setup is different, adjust accordingly. Here is the screenshot of the ONU static routing

After you are done, add a static route to your router. It will work on any router this time since no NAT is required.

Android phone configuration unchanged. Just make call.
it is even better now. If you can VPN home, you can make call via TM number. Previously this cannot be done due to the need for dstnat.
If I add a static route coming from the ONU to MikroTik don't I have to allow the address of the ONU in the firewall since all packets not coming from WAN is dropped unless specified?
I'm trying to set up a FreePBX trunk with the VOIP.. so far I tried to forward the VLAN400 to my FreePBX instance but that obviously did not work
Add a NAT rule. Chain=srcnat. Out Interface=voip. Action=masquerade