Project

General

Profile

Feature #4582

Include "Call Identifier IE" in AoIP voice channels

Added by laforge about 1 month ago. Updated 20 days ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
A interface (AoIP)
Target version:
-
Start date:
06/04/2020
Due date:
% Done:

100%

Resolution:

Description

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 (3.1.4.3) 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.

History

#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.

#2 Updated by dexter about 1 month ago

  • % Done changed from 70 to 90

I have now fixed the endieness of the call identifier. Now everything looks right:

https://gerrit.osmocom.org/c/libosmocore/+/18694 gsm0808: fix endieness of call identifier

#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.

#4 Updated by dexter 20 days ago

The following two patches for osmo-msc are currently in review, they unconditionally add the Call Identifier IE:

https://gerrit.osmocom.org/c/osmo-msc/+/18740
https://gerrit.osmocom.org/c/osmo-msc/+/18692

#5 Updated by laforge 20 days ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

patches merged.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)