
GSM 04.08 7.1.7 / 9.1.7		RR CHANNEL RELESE

RSL 08.58 3.4 / ?		RLL Link Release Request

RSL 08.58 4.6 / 8.4.5		DEACTivate SACCH
	* Deactivate SACCH according to Channel Release Proc 04.08
	* to be sent after RR CHANNEL RELEASE is sent to MS

RSL 08.58 4.7 / 8.4.14		RF CHANnel RELease
	* tells the BTS to release a radio channel
	* "when an activated radio channel is no longer needed"
	* BTS responds with RF CHANnel RELease ACKnowledge


GSM 04.08 3.4.13: RR connection release procedure

* network sends RR CHANNEL RELEASE to MS on the DCCH
  * start T3109
  * deactivate SACCH
* MS disconnects main signalling link (by sending DISC)
  * all other data links are disconnected by local end link release
* network receives DISC (BTS sends RLL REL IND to BSC)
  * stop T3109
  * start T3111 
* when T3111 times out, the network can reuse the channls
* if T3109 times out, the network deactivates the channels 
  and can reuse them
  * this probably means simply RF CHANnel RELease


== Implementation in OpenBSC ==

chan_alloc.c:lchan_auto_release()
	* checks if use count still > 0 (abort)
	* calls gsm48_send_rr_release()
		* which calls rsl_deact_sacch()
	* calls rsl_release_request()
		* which sends RLL Link Release request
	
RX of RELease INDication:
	* call rsl_rf_chan_release() (send RF_CHAN_REL)

RX of RELease CONFimem:
	* call rsl_rf_chan_release() (send RF_CHAN_REL)

* RX of RF_CHAN_REL_ACK
	* call lchan_free()
		* subscr_put()
		* delete release_timer


=== Integration with SMS ===

* RX of CP_ERROR or unimplemented MT
	* trigger trans_free() which will lchan_auto_release()

* CP TC1* expired while waiting for CP-ACK
	* trigger trans_free() which will lchan_auto_release()

* RX of RP_ERROR
	* trigger trans_free() which will lchan_auto_release()
	
* TX of CP-ACK in MT DELIVER
	* trigger trans_free() which will lchan_auto_release()

* RX of CP-ACK in MO SUBMIT
	* trigger trans_free() which will lchan_auto_release()
	
* RX of RP-ACK in MT DELIVER (and no more messages)
	* trigger rsl_release_request() for SAPI3

* RX of RP-SMMA in MT DELIVER (and no more messages)
	* trigger rsl_release_request() for SAPI3
