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.