You appear to be behind NAT, have you set your ext-sip-ip and ext-rtp-ip to be the public address you are presenting from?
A 30 second termination means a packet is not being ACK'd and FreeSWITCH tears down a call after 30 seconds believing it to be invalid. You should be able to see this behaviour in sngrep in the terminal, FreeSWITCH probably sends out a packet that never gets replied to as the return traffic is routing to the wrong place.