The TCP session should be built on the exact same ip address and port that is in the
H225 call signaling section. NAT device shoud properly replace ip address and port info in higher layer protocoll as well.
As the below screenshot shows the 1XA L3 IP address is set as: 100.64.100.2 which is its NAT translated address whereas the call signaling IP address in H.225 (app layer) is set as 100.64.90.132 which is its NATIVE address.
1XA attempts to open TCP socket at 100.64.100.2:45512 but CM will send FIN,ACK eventually. This is caused by the fact that in the RRQ (registration request) the call signaling info the station advertises is: 100.64.90.132:45512 aka its NATIVE address thus CM expects the station open the TCP session using this NATIVE address, however, in fact, the set tries to register from 100.64.100.2:45512 aka its NAT-ed address which CM will reject hence closing the TCP session.

Another example from MST trace shows that the station uses its NAT address (100.64.64.40:45631) as source in the Registration Request but advertises its NATIVE address (100.64.110.33:41745) in call signaling section of the H.225 (output is clipped for the relevant parts):
259 13:43:19.680 80 ==> Dolan RAS In
From IPAdr: 100.64.64.40 From Port:45631 <<<<<<< source: NAT translated address, the station will also use this to initiate TCP session, which thus will fail.
To IPAdr: 10.250.96.3 To Port:1719 UID: 0x9f96
RasMessage CHOICE [index = 3]
registrationRequest RegistrationRequest SEQUENCE [root fieldcount (not encoded) = 9]
requestSeqNum RequestSeqNum INTEGER [length (not encoded) = 2.0]
112
protocolIdentifier ProtocolIdentifier OBJECT IDENTIFIER [length = 6.0]
{ 0 0 8 2250 0 5 }
nonStandardData NonStandardParameter SEQUENCE [fieldcount (not encoded) = 2]
nonStandardIdentifier NonStandardIdentifier CHOICE [index = 0]
object ObjectIdentifier OBJECT IDENTIFIER [length = 10.0]
{ 2 16 840 1 113778 4 2 1 }
data OctetString OCTET STRING [length = 31.0]
0x09810100241e89000120010006f0761cd573a0010005c0ffffffff01800100
discoveryComplete BOOLEAN [length (not encoded) = 0.1]
TRUE
callSignalAddress SeqOfTransportAddress SEQUENCE OF [count = 1]
TransportAddress CHOICE [index = 0]
ipAddress SEQUENCE [fieldcount (not encoded) = 2]
ip IP OCTET STRING [length (not encoded) = 4.0]
0x64406e21 <<<<<<<<<< this is hex format of 100.64.110.33 <<<<<< NATIVE/ORIGINAL address. NAT device should replace this with the NAT'd address
port INTEGER [length (not encoded) = 2.0]
41745 <<<<<<<< NATIVE/ORIGINAL port info. NAT device should replace this with the NAT'd poprt.
rasAddress SeqOfTransportAddress SEQUENCE OF [count = 1]
TransportAddress CHOICE [index = 0]
ipAddress SEQUENCE [fieldcount (not encoded) = 2]
ip IP OCTET STRING [length (not encoded) = 4.0]
0x64404028 <<<<<<<<<< this is hex format of 100.64.64.40 <<<<< NAT translated address
port INTEGER [length (not encoded) = 2.0]
45631 <<<<<<< NAT translated port
terminalType EndpointType SEQUENCE [root fieldcount (not encoded) = 3]
terminal TerminalInfo SEQUENCE [fieldcount (not encoded) = 0]
mc BOOLEAN [length (not encoded) = 0.1]
FALSE
undefinedNode BOOLEAN [length (not encoded) = 0.1]
FALSE
terminalAlias SeqOfAliasAddress SEQUENCE OF [count = 1]
AliasAddress CHOICE [index = 0]
e164 IA5String [length = 4.0]
"6601"