If the BSC decides to handover within the BSS for improved reception, it does
the entire handover procedure on its own, and when that succeeded tells the MSC
about a possible change in LAC and codec.
So apparently osmo-msc so far doesn't care about that.
However I remember that we had patches related to storing the correct LAC in
the VLR, so in that way it may be good to actually decode the HANDOVER
PERFORMED, store the new LAC.
...and forward the LAC change to the HLR? Oh wait, checking GSUP and the HLR,
we apparently do not store the LAC in the HLR at all. Where did I get that
from?
So only update the serving cell in the VLR then, i.e. vlr_subscr->cgi from the
received struct gsm0808_handover_performed->cell_id.
We need a decoder of this message in libosmocore/src/gsm/gsm0808.c, so far we
only have the encoder (gsm0808_create_handover_performed()).
Possibly the BSC could also signal a codec change; theoretically we might need
to tell the MGW or MNCC about that? Could also be that it must be one of the
permitted codecs and only the RTP payload number changes in the RTP stream --
but for that we'd have to put all possible codecs in the MGCP which we don't.
We are still miles away from using that info properly, first step there would
be to merge these long standing osmo-msc codec patches (that code bomb that
negotiates SDP over MNCC and properly overlays all codec limitations from MS,
BSC, CN and remote call leg).