C.3.5 TFO_Protocol Process
28.0623GPPInband Tandem Free Operation (TFO) of speech codecsService descriptionStage 3TS
The TFO_Protocol Process is typically invoked whenever a message is received, either from Rx_TRAU, Rx_TFO, Tx_TFO or the local BSC.
Two key events are due to modifications of the local configuration,
– a modification of the used speech Codec Type (New_Local_Codec);
– or its Configuration Parameters (e.g. the ACS in case of AMR or AMR-WB) (New_Local_Config); and
– a modification of the list of the alternative speech Codec Types (New_Local_Codec_List);
– TFO Enable or TFO Disable;
– Handover Soon.
The New_Local_Codec is extracted from the uplink TRAU Frames and reported by Rx_TRAU.
The other parameters are received from the BSC, via the BTS in Config Frames (AMR and AMR-WB cases only) or in an manufacturer dependent way.
C.3.5.1 Messages from Rx_TRAU or local BSS
Rx == New_Speech_Call (); Rx_TRAU is activated by BTS
(several TRAU Frames).
Rx == New_Local_Codec (); In Call Modification to other Codec Type (several TRAU Frames).
Rx == New_Local_Config (); In call modification (e.g. new ACS, in Config Frame)
Rx == Data_Call; Received from Rx_TRAU: In Call Modification to Data_Call.
Rx == Local_Codec_List; Manufacturer dependent
Rx == TRAU_Idle; Manufacturer dependent, either from Rx_TRAU or BSC.
Rx == TFO_Enable; Received from Rx_TRAU for AMR or AMR-WB: Enable the TFO process
Optionally received from the BSC for GSM_FR, GSM_HR and GSM_EFR.
Rx == TFO_Disable; Received from Rx_TRAU for AMR or AMR-WB: Disable the TFO process
Optionally received from the BSC for GSM_FR, GSM_HR and GSM_EFR.
Rx == TFO_Soon; The sent TFO_Soon is acknowledged by the BTS, especially important and handled as RC_Ack in WAIT_RC State.
Rx == Handover_Soon (); Optional Pre-Handover warning (e.g. in Config_Frame)
C.3.5.2 Messages to Tx_TRAU
Tx_TRAU := Accept_TFO; If TFO Frames are correctly received, they shall be used. Rate Control in Tx_TRAU shall take the distant side into account.
Tx_TRAU := Ignore_TFO; TFO Frames shall be ignored in general. Rate Control in Tx_TRAU shall ignore the distant side..
Tx_TRAU := Set_Max_Rate (); The Rate Control shall be limited to the give maximum rate, e.g. TFO Setup Mode, Handover Mode, Maximum mode of the Common ACS. The new Max_Rate value shall be taken into account in the next possible frames.
Tx_TRAU := Config_Frame (); A Dis_Req frame with all available distant TFO parameters is sent to the BTS (The BTS acknowledges this by UL_Ack).
Tx_TRAU := TFO_Soon; TFO_Soon is sent to the BTS (The BTS stops Time alignment and acknowledges with TFO_Soon => RC_ACK).
Tx_TRAU := TFO_On; TFO_On is sent to the BTS (The BTS may perform round trip delay measurements; the BSC should not alter the configuration during handover).
Tx_TRAU := TFO_Off; TFO_Off is sent to the BTS after no more TFO Frames are received and the normal Tx_TRAU operation has been resumed. The BTS shall resume normal operation, too.
C.3.5.3 Optional Messages to the local BSC
Tx_BSC := TFO (Distant_Used_Codec, Distant_Codec_List, Distant_Configuration, Optimal Codec Type and Configuration, …).
For the AMR, AMR-WB, GSM_FR, GSM_HR and GSM_EFR Codec Types these parameters may be transmitted on a proprietary interface to the BSC to allow the BSC to perform the optional Codec Type and Codec Configuration Mismatch resolution and Optimisation.
In case of AMR and AMR-WB these configuration parameters are transferred in Config_Prot Frames or on a proprietary interface to the BSC to allow the BSC to perform the optional Codec Type and Codec Configuration Mismatch resolution and Optimisation.
C.3.5.4 Messages to Tx_TFO
The symbol () indicates that these Messages contain parameters, see Clause 8.
Tx := TFO_REQ (); main TFO_REQ Message.
Tx := TFO_ACK (); main TFO_ACK Message, response only to TFO_REQ.
Tx := TFO_REQ_L (); used in Mismatch, Operation and Periodic_Retry to inform about alternative Codecs.
Tx := TFO_ACK_L (); response only to TFO_REQ_L.
Tx := TFO_TRANS (); commands IPEs to go transparent.
Tx := TFO_NORMAL; resets IPEs into their normal operation.
Tx := TFO_FILL; mainly to pre-synchronise IPEs.
Tx := TFO_DUP; "I receive TFO Frames in Establishment".
Tx := TFO_SYL; "I lost TFO Frame synchronisation".
Tx := Begin_TFO; Insert TFO Frames from now on.
Tx := Discontinue_TFO; Discontinue inserting TFO Frames.
Tx_TFO := Set_Max_Rate (); The Rate Control shall be limited to the given maximum rate,
e.g. Handover Mode, Maximum mode of the Common ACS.
The new Max_Rate value shall be taken into account in the next possible frames.
Clear Tx_Queue; Clears all remaining commands from Tx_Queue.
Rx == Runout; Reports that the continuous stream of outgoing TFO Messages may be interrupted (from Tx_TFO).
Tx_TFO := Con_Req(); Send a Con_Req config frame.
Tx_TFO := Con_Ack(); Send a Con_Ack config frame.
C.3.5.5 Messages from Rx_TFO
The symbol () indicates that these Messages contain parameters, see Clause 8.
Rx == TFO_REQ ();
Rx == TFO_ACK ();
Rx == TFO_REQ_L ();
Rx == TFO_ACK_L ();
Rx == TFO_TRANS (); may serve as alternative TFO_ACK in some cases!.
Rx == TFO_NORMAL;
Rx == TFO_FILL;
Rx == TFO_DUP;
Rx == TFO_SYL;
Rx == TFO_Frame (); TFO_Frame (Distant_Used_Codec; Number_of_Received_Frames).
Rx == Distant_Config();
Rx == Frame_Sync_Lost (); Frame_Sync_Lost (Number_of_Lost_Frames).
Rx == Mess_Sync_Lost; Message_Sync_Lost.
Rx == PCM_Non_Idle; at the beginning of a period with several samples/frame different from PCM_Idle.
The message "TFO_Frame ()" needs to be sent only at the first five occurrences, either after a not valid TFO Frame, or if the Distant_Used_Codec changed.
The message "Frame_Sync_Lost ()" needs to be sent only at the first five occurrences of errors in TFO Frames or loss of synchronisation, after a correctly received TFO Frame.
The message "Mess_Sync_Lost" is sent, when after a valid TFO Message no following TFO Message is found.