Unable to transfer calls between different SIP trunks

Thank you in advance for your assistance.

I have three SIP trunks

Trunk 1 is SIPSTATION

Trunk 2 is an SIP device connected to PSTN (SPA-3102)

Trunk 3 is an SIP device connected to PSTN (SPA-3102)

A call comes in on trunk 2 then you transfer the call it will go out through trunk 1, when you complete the transfer the caller on trunk 2 is disconnected. (when trunk 3 is in use)

if no trunks are in use you can transfer calls between trunk 2&3, just not 2 or 3 to trunk 1.

You can conference between both trunks and all parties can hear each other but as soon as the phone hangs up it drops all callers, same with transfer - everyone can hear but once the extension hangs up all the callers are hung up on.
This only happens with these trunks.

Any ideas why I cant transfer between the two trunks?

Thanks!!!

Freepbx 2.9.0.7

Trunk 2
username=2-XXXXXXX
type=friend
secret=XXXXXXXX
qualify=yes
port=5061
nat=never
incominglimit=1
host=192.168.1.115
dtmfmode=rfc2833
disallow=all
context=from-pstn-e164-us
canreinvite=no
allow=ulaw&g729

Trunk 1

context=from-pstn-e164-us
type=peer
insecure=very
qualify=yes
sendrpid=yes
trustrpid=yes
dtmfmode=rfc2833
username=XXXXXXXX
secret=XXXXXXX
host=trunk1.phonebooth.net
disallow=all
allow=ulaw&g729

I suspect that you aren’t doing the transfer correctly. Have you read the instructions for your phone/device? Have you been able to do any kind of transfer without dropping the call when you hang-up?

Thats what it would seem like - however it works perfectly when a call is transfered between the SIPSTATION trunks (if the aother two trunks are busy) or if you transfer and the call is routed through the two PSTN trunks, it ONLY fails when a call originated from one of the PSTN trunks to the SIPSTATION.
Strange.