Include "Call Identifier IE" in AoIP voice channels
TS 48.008 introduced the concept of a "Call Identifier IE" when 3GPP AoIP was added. For some strange reason, it marks this IE as "optional" in the description of the BSSMAP ASSIGNMENT CMD message, but reading through the spec as a whole, it seems like they actually may have wanted to make it conditional on the use of AoIP. It is conditional in HANDOVER REQUEST, INTERNAL HANDOVER COMMAND and some other messages.
The reason is relatively simple: There's also a "RESET IP RESOURCE" procedure (188.8.131.52) which can be triggered by either the BSC or the MSC, and which contains up to 62 Call Identifiers that are to be terminated. How would that procedure every work for calls that had no Call Identifier? This procedure likely is the AoIP successor of the RESET CIRCUIT procedure for classic TDM links.
Given that it's a 32bit integer, we might actually use that same CallID that we already use in the MGCP traffic for the call, allowing correlation of BSSMAP with MGCP based on this identifier.
That part is of course not required, but I would like to see it, if it is possible.
In short, every BSSMAP ASSIGNMENT command for a channel in mode != signalling and which has AoIP (IP transport endpoint) capability should be extended with this IE. Likewise, any HANDOVER REQUEST message for non-signalling AoIP also must include it.
#1 Updated by dexter about 1 month ago
- Status changed from New to In Progress
- % Done changed from 0 to 70
There is now a patch in review that adds the Call identifier to the ASSIGNMENT REQUEST:
https://gerrit.osmocom.org/c/osmo-msc/+/18692 msc_a: add callref as call id to ASSIGNMENT REQ.
However, I still see that the encoding of the call identifier is not right yet, I will fix that too.
#3 Updated by dexter about 1 month ago
There is now an additional patch in gerrit that also adds the call_id to the HANDOVER REQUEST:
https://gerrit.osmocom.org/c/osmo-msc/+/18740 msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST
To me it looks as if the call_id should be present in the HANDOVER REQUEST message long time ago but it was not properly added. The generator function did access the struct member but did not set the present flag. in msc_ho.c the call_id member was not populated at all.
I also had a look at the spec, the following messages have a Call Identifier IE:
ASSIGNMENT REQUEST *
HANDOVER REQUEST *
VGCS/VBS ASSIGNMENT REQUEST
VGCS/VBS ASSIGNMENT RESULT
INTERNAL HANDOVER COMMAND
I have marked the ones with * that are now fixed. The remaining ones are not used by us as far as I can see.