Folks,
The ASN.1 definition for maximum and current call capacities in H.225.0v4 is as follows:
CallCapacity ::= SEQUENCE { maximumCallCapacity CallCapacityInfo OPTIONAL, currentCallCapacity CallCapacityInfo OPTIONAL, ... }
CallCapacityInfo ::= SEQUENCE { voiceGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h310GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h320GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h321GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h322GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h323GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h324GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, t120OnlyGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, t38FaxAnnexbOnlyGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, terminalCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, mcuCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, ... }
CallsAvailable ::= SEQUENCE { calls INTEGER (0..4294967295), group IA5String (SIZE (1..128)) OPTIONAL, ... }
What this means is that for a given group, to find out the current and max call capacities, we need to traverse two different lists (one for maximumCallCapacity and currentCallCapacity) and get the values. This increses the memory required in implementation and extra processsing.
Instead I would like to propose that the maximum and current CallCapacity fields, with maximum being OPTIONAL inside the Callsavailable structure as follows:
CallCapacity ::= SEQUENCE { voiceGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h310GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h320GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h321GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h322GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h323GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, h324GwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, t120OnlyGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, t38FaxAnnexbOnlyGwCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, terminalCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, mcuCallsAvailable SEQUENCE OF CallsAvailable OPTIONAL, ... }
CallsAvailable ::= SEQUENCE { currentCallCapacity INTEGER (0..4294967295), maximumCallCapacity INTEGER (0..4294967295) OPTIONAL, group IA5String (SIZE (1..128)) OPTIONAL, ... }
That way we need to traverse only one list to get both the maximum and current values.
If there is no objection to this, I recommend this change to be made before the H225.0 v4 publication.
Thanks.
- Logan