lchan_fsm: make rsl mode-modify working again

osmo-nitb supports the modification of an lchan if the lchan is
compatible but in the wrong mode. This feature was dropped in the
transition to AoIP/bsc-split. However, osmo-bsc still has code to
generate and parse the messeages, but the FSMs do not support a mode
modify yetm

Lets add handling for mode-modify to the lchan_fsm and assignment_fsm in
order to support mode modify again

Change-Id: I2c5a283b1ee33745cc1fcfcc09a0f9382224e2eb
Related: OS#4549
diff --git a/doc/lchan.msc b/doc/lchan.msc
index e2caa48..b0e32d6 100644
--- a/doc/lchan.msc
+++ b/doc/lchan.msc
@@ -129,6 +129,26 @@
 	...;
 	...;
 
+	ms rbox mgwep [label="On Mode Modify (e.g. change a TCH lchan from signalling to voice)"];
+	lchan abox lchan [label="LCHAN_ST_\nWAIT_RR_CHAN_\nMODE_MODIFY_ACK"];
+	ms <= lchan [label="RR Chan Mode Modif"];
+	...;
+	ms => lchan [label="RR Chan Mode Modif Ack"];
+	lchan abox lchan [label="LCHAN_ST_\nWAIT_RSL_CHAN_\nMODE_MODIFY_ACK"];
+	ms <= lchan [label="RSL MT Mode Modify Req"];
+	...;
+	ms => lchan [label="RSL MT Mode Modify Ack"];
+	--- [label="IF adding RTP stream"];
+	lchan abox lchan [label="LCHAN_ST_WAIT_\nRLL_RTP_ESTABLISH\nT3101"];
+	lchan rbox rtp [label="See above at 'LCHAN_RTP_EV_LCHAN_READY'"];
+	--- [label="IF not adding RTP stream"];
+	lchan abox lchan [label="LCHAN_ST_\nESTABLISHED"];
+	--- [label="END: whether adding voice stream"];
+
+	...;
+	...;
+	...;
+
 	ms rbox mgwep [label="When the MS or BTS release the lchan"];
 	lchan abox lchan [label="LCHAN_ST_\nESTABLISHED"];
 	ms -> lchan [label="RLL Release Ind for SAPI=0"];