Transit and Roaming Function (TRF) is used for roaming VoLTE cases where UE roaming in visited network and SIP signalling is intended to be controlled from Visited network. In a typical roaming case, P-CSCF exists can exist in visited network but S-CSCF exits in home network. But in a case where visited network wants to use his own network for signalling, TRF node is used.
Usually when an INVITE is sent from UE and reaches to P-CSCF, it adds a Feature-Caps header with the trf URI and send the SIP INVITE to S-CSCF of home network. When S-CSCF finds loop back indicator in the received request, it forward the the SIP INVITE to the TRF node of visited network based on the received URI of trf in Feature-Caps header of SIP INVITE message.
I don't think so two trf URIs will be included in SIP INVITE from P-CSCF to S-CSCF. Because receiving two trf URIs, S-CSCF will be get confused to which TRF, SIP INVITE message should forward.
This is my understanding of TRF, please correct me if I am wrong.
Thanks.