Packetizer

terminalCapabilitySet Is a Delta (Q72)


The information in this article applies to: H.245

There is quite a bit of confusion regarding just what the terminalCapabilitySet message specifies. First understand that an EP’s current capability set is different than the various incoming terminalCapabilitySet messages that it might receive. An incoming terminalCapabilitySet message modifies the current capability set in the receiving EP. The entire set is not necessarily transmitted within every message. This has been true since H.245v1. In fact, H.245 says that one should not transmit unchanged capabilities. One starts out with an empty set of descriptors. Incoming descriptors replace any extant ones with the same descriptor number. If one does not already exist with the same number, this adds a new descriptor; if one does exist, the new one replaces the old one; if the new descriptor does not contain simultaneousCapabilities, this removes any existing descriptor for the given number. (This is the same scheme used to modify the capability table.) Here is an illustrative chronological scenario:

Incoming termCapSet Current capability set
  <empty>
0: {{H.261qcif},{G.711}}
1: {{H.261cif},{G.711}}
0: {{H.261qcif},{G.711}}
1: {{H.261cif},{G.711}}
1: {} 0: {{H.261qcif},{G.711}}
1: {{H.261cif},{G.711}}
2: {{H.263sqcif&qcif&cif},{G.723,G.711}}
0: {{H.261qcif},{G.711}}
1: {{H.261cif},{G.711}}
2: {{H.263sqcif&qcif&cif},{G.723,G.711}}
1: {}
0: {{H.261qcif&cif},{G.723.1,G.711)}
0: {{H.261qcif&cif},{G.723.1,G.711)}
2: {{H.263sqcif&qcif&cif},{G.723,G.711}}