H.323 Signaling
H.323 operates using three main protocols, discussed at length in Chapter 4:
- Registration, Admission, and Status (RAS) for interaction with H.323 gatekeepers
- H.225 for the call signaling phase of a call
- H.245 for the media control phase of a call
RAS Messaging Details
The RAS protocol supported by CallManager includes specific message types and information elements. The RAS message support provided by CallManager is the H.225 version 2 protocol. Tables C-1 through C-7 describe the specific fields. The tables are arranged alphabetically by message type. Table C-1 shows the fields that an H.323 entity uses to discover the gatekeeper. CallManager does not currently support RAS discovery messages, but they are included here for completeness.
Message |
Field Name |
Comments |
---|---|---|
GRQ (Gatekeeper Request) to GK (Gatekeeper) |
requestSeqNumber |
Not used in CallManager 4.1 |
protocolIdentifier |
||
nonStandardData |
||
rasAddress |
||
endpointType |
||
gatekeeperIdentifier |
||
callServices |
||
endpointAlias |
||
alternateEndpoints |
||
tokens |
||
cryptoTokens |
||
authenticationCapability |
||
algorithmsOIDs |
||
integrity |
||
integrityCheckValue |
||
GCF (Gatekeeper Confirmation) from GK |
requestSeqNumber |
Allowed, but ignored when received |
protocolIdentifier |
||
nonStandardData |
||
gatekeeperIdentifier |
||
rasAddress |
||
alternateGatekeeper |
||
authenticationMode |
||
tokens |
||
cryptoTokens |
||
algorithmsOIDs |
||
integrity |
||
integrityCheckValue |
||
GRJ (Gatekeeper Reject) from GK |
requestSeqNumber |
Allowed, but ignored when received |
protocolIdentifier |
||
nonStandardData |
||
gatekeeperIdentifier |
||
rejectReason |
||
altGKInfo |
||
Tokens |
||
cryptoTokens |
||
integrityCheckValue |
CallManager uses registration messages to register with the gatekeeper that the manual or automatic discovery process identifies. CallManager attempts to register with the gatekeeper and, if not successful, retries the registration at configurable intervals.
Table C-2 shows the fields that CallManager uses to register with the gatekeeper.
Message |
Field Name |
Comments |
---|---|---|
RRQ (Registration Request) to GK |
requestSeqNumber |
Unique sequence number that is incremented for each new request |
protocolIdentifier |
Set to v2 |
|
nonStandardData |
Not used |
|
discoveryComplete |
Set to false |
|
callSignalAddress |
Set to the IP and port of the call signaling address |
|
rasAddress |
Set to the IP and port of the RAS signaling address |
|
terminalType |
Set to indicate terminal or gateway device |
|
terminalAlias |
No alias set |
|
gatekeeperIdentifier |
Gatekeeper ID set |
|
alternateEndpoints |
Set to transport addresses of alternate CallManager nodes |
|
timeTolive |
Set to configuration value; defaults to 60 |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
keepAlive |
Set to true if this is a refresh registration |
|
endpointIdentifier |
Endpoint ID set |
|
willSupplyUUIEs |
Defaults to false |
|
RCF (Registration Confirmation) from GK |
requestSeqNumber |
Unique sequence number |
protocolIdentifier |
CallManager does not screen this field |
|
nonStandardData |
Not used |
|
callSignalAddress |
CallManager sends H.225 signaling to this address |
|
terminalAlias |
Not used |
|
gatekeeperIdentifier |
Identifies the H.323 zone |
|
endpointIdentifier |
Endpoint identifier |
|
alternateGatekeeper |
Defines gatekeepers to contact if registering gatekeeper is unavailable |
|
timeTolive |
CallManager periodically reregisters according to this timer |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
willRespondToIRR |
Ignored |
|
pregrantedARQ |
Not used |
|
RRJ (Registration Reject) from GK |
requestSeqNumber |
Unique sequence number |
protocolIdentifier |
Not screened |
|
nonStandardData |
Not used |
|
rejectReason |
Reject reason |
|
gatekeeperIdentifier |
Indicates the zone of the rejecting gatekeeper |
|
altGKInfo |
Indicates an alternate gatekeeper with which to register |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
CallManager uses unregistration messages to unregister from the gatekeeper when a gatekeeper registered device is stopped. Table C-3 shows the fields that CallManager uses to unregister from the gatekeeper.
Message |
Field Name |
Comments |
---|---|---|
URQ (Unregister Request) to GK |
requestSeqNumber |
Unique sequence number that is incremented for each new request |
protocolIdentifier |
Not screened |
|
callSignalAddress |
Set to the IP and port of the call signaling address |
|
endpointAlias |
Not set |
|
nonStandardData |
Not used |
|
endpointIdentifier |
Indicates the identifier of the unregistering request |
|
alternateEndpoints |
Not used |
|
gatekeeperIdentifier |
Not set |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
reason |
CallManager sets no reason and ignores the reason when receiving a URQ |
|
UCF (Unregister Confirm) from GK |
requestSeqNumber |
Allowed, but ignored when received |
nonStandardData |
||
tokens |
||
cryptoTokens |
||
integrityCheckValue |
||
URJ (Unregister Reject) from GK |
requestSeqNumber |
Allowed, but ignored when received |
rejectReason |
||
nonStandardData |
||
altGKInfo |
||
tokens |
||
cryptoTokens |
||
integrityCheckValue |
CallManager uses call admission control to discover routes to other CallManager clusters and gateways and to determine whether enough bandwidth exists for CallManager to place or receive a call.
Table C-4 shows the fields that CallManager uses to exchange call admission control messages with the gatekeeper.
Message |
Field Name |
Comments |
---|---|---|
ARQ (Admission Request) to GK |
requestSeqNumber |
Unique sequence number that is incremented for each new request |
callType |
Set to point to point |
|
callModel |
Not set |
|
endpointIdentifier |
Set to endpoint ID |
|
destinationInfo |
Up to 16 E.164 addresses |
|
destCallSignalAddress |
IP address, if set by CallManager |
|
destExtraCallInfo |
Not set |
|
srcInfo |
If present, a list of up to 16 E.164 addresses |
|
srcCallSignalAddress |
Set to the IP and port of the call signaling address |
|
bandwidth |
Requested bandwidth to be used |
|
callReferenceValue |
Set to call reference value for this call |
|
nonStandardData |
Not used |
|
callServices |
Set to None |
|
conferenceId |
Unique conference identifier |
|
activeMC |
Set to false for no multipoint controller (MC) |
|
answeredCall |
Set to true if call is incoming, false on outgoing |
|
canMapAlias |
Set to true |
|
callIdentifier |
Unique call identifier |
|
srcAlternatives |
Set to None |
|
gatekeeperIdentifier |
Not set |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
transportQOS |
Not supported |
|
willSupplyUUIEs |
Defaults to false |
|
ACF (Admission Confirm) from GK |
requestSeqNumber |
Unique sequence number |
bandWidth |
Not used |
|
callModel |
CallManager always acts as if the response is direct |
|
destCallSignalAddress |
Uses the IP address to specify the call signaling address; used if configured for anonymous device; ignored otherwise |
|
irrFrequency |
Used to specify the Information Request Response (IRR) frequency in seconds while on the call |
|
nonStandardData |
Not used |
|
destinationInfo |
Not used |
|
destExtraCallInfo |
Not used |
|
destinationType |
Not used |
|
remoteExtensionAddress |
Not used |
|
alternateEndpoints |
Transport address of associated H.323 trunks |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
transportQOS |
Not supported |
|
willRespondToIRR |
Not used |
|
uuiesRequested |
Not used |
|
ARJ (Admission Reject) from GK |
requestSeqNumber |
Unique sequence number |
rejectReason |
Used only for ARJ trace display |
|
nonStandardData |
Not used |
|
altGKInfo |
If provided, CallManager contacts the alternate gatekeeper |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
callSignalAddress |
Not used |
|
integrityCheckValue |
Not supported |
CallManager does not use bandwidth control messages by default. Bandwidth control messages are used if you set the service parameter to enable bandwidth control. Table C-5 shows the bandwidth message fields.
Message |
Field Name |
Comments |
---|---|---|
BRQ (Bandwidth Request) from GK |
requestSeqNumber |
CallManager returns a BRJ (Bandwidth Reject) |
endpointIdentifier |
||
conferenceID |
||
callReferenceValue |
||
callType |
||
bandWidth |
||
nonStandardData |
||
callIdentifier |
||
gatekeeperIdentifier |
||
tokens |
||
cryptoTokens |
||
integrityCheckValue |
||
answeredCall |
||
BRQ (Bandwidth Request) to GK |
requestSeqNumber |
Unique sequence number |
endpointIdentifier |
Endpoint identifier |
|
conferenceID |
Unique conference identifier |
|
callReferenceValue |
Call reference value |
|
callType |
Point to point |
|
bandWidth |
New bandwidth |
|
nonStandardData |
Not used |
|
callIdentifier |
Unique call identifier |
|
gatekeeperIdentifier |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
answeredCall |
True on terminating side |
|
BCF (Bandwidth Confirm) from GK |
requestSeqNumber |
Unique sequence number |
bandWidth |
Bandwidth granted |
|
nonStandardData |
Not used |
|
tokens |
Not used |
|
cryptoTokens |
Not used |
|
integrityCheckValue |
Not used |
|
BRJ (Bandwidth Reject) from GK |
requestSeqNumber |
Unique sequence number |
rejectReason |
Reason bandwidth change was disallowed |
|
allowedBandWidth |
Amount of bandwidth allowed |
|
nonStandardData |
Not used |
|
altGKInfo |
ID of alternate gatekeeper |
|
tokens |
Not used |
|
cryptoTokens |
Not used |
|
integrityCheckValue |
Not used |
Gatekeepers use disengage messages to force a call to be dropped. CallManager uses disengage messages to indicate that an endpoint is being dropped.
Table C-6 shows the fields that CallManager uses to exchange disengage messages with the gatekeeper.
Message |
Field Name |
Comments |
---|---|---|
DRQ (Disengage Request) to or from GK |
requestSeqNumber |
Unique sequence number |
endpointIdentifier |
Endpoint identifier |
|
conferenceID |
Unique conference identifier |
|
callReferenceValue |
Call reference value |
|
disengageReason |
If sent, set to reason; if received, used to set the release complete reason |
|
nonStandardData |
Not used |
|
callIdentifier |
Unique call identifier |
|
gatekeeperIdentifier |
Not used |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
answeredCall |
Supported |
|
DCF (Disengage Confirm) to or from GK |
requestSeqNumber |
Unique sequence number |
nonStandardData |
Not used |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
DRJ (Disengage Reject) from GK |
requestSeqNumber |
Unique sequence number |
rejectReason |
CallManager ignores |
|
nonStandardData |
Not used |
|
altGKInfo |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
The gatekeeper sends Information Request (IRQ) messages to request status information. CallManager responds to information request messages from the gatekeeper with Information Request Response (IRR) messages, but CallManager does not send unsolicited IRQ messages to the gatekeeper. IRR messages are sent at the intervals specified by the irrFrequency field in the ACF message.
Table C-7 shows the fields that CallManager uses to exchange information request messages with the gatekeeper.
Message |
Field Name |
Comments |
---|---|---|
IRQ (Information Request) from GK |
requestSeqNumber |
Unique sequence number |
callReferenceValue |
Call reference value |
|
nonStandardData |
Not used |
|
replyAddress |
Not used |
|
callIdentifier |
Not used |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
uuiesRequested |
Not used |
|
IRR (Information Request Response) to GK |
nonStandardData |
Not used |
requestSeqNumber |
Unique sequence number |
|
endpointType |
Set to terminal or gateway |
|
endpointIdentifier |
Endpoint identifier |
|
rasAddress |
Set to the IP address and port of the RAS signaling address |
|
callSignalAddress |
Not present |
|
endpointAlias |
Not present |
|
perCallInfo |
See the following perCall fields |
|
perCallInfo.nonStandardData |
Not used |
|
perCallInfo.callReferenceValue |
Call reference value |
|
perCallInfo.conferenceId |
Unique conference ID |
|
perCallInfo.originator |
Set to false |
|
perCallInfo.audio |
Not set |
|
perCallInfo.video |
Not set |
|
perCallInfo.data |
Not set |
|
IRR (Information Request Response) to GK |
perCallInfo.h245 |
Set to false |
perCallInfo.callSignaling |
Not present |
|
perCallInfo.callType |
Point to point |
|
perCallInfo.bandwidth |
Set to 1280 for a G.711 call; 480 for a G.729 call |
|
perCallInfo.callModel |
Set to direct |
|
perCallInfo.callIdentifier |
Call ID |
|
perCallInfo.tokens |
Not supported |
|
perCallInfo.cryptoTokens |
Not supported |
|
perCallInfo.substituteConfIDs |
Not supported |
|
perCallInfo.pdu |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
integrityCheckValue |
Not supported |
|
needResponse |
Not supported |
|
IACK (Information Request Acknowledgement) from GK |
requestSeqNumber |
Allowed, but ignored when received |
nonStandardData |
||
tokens |
||
cryptoTokens |
||
integrityCheckValue |
||
INAK (Information Request Negative Acknowledgement) from GK |
requestSeqNumber |
Allowed, but ignored when received |
nonStandardData |
||
nakReason |
||
altGKInfo |
||
tokens |
||
cryptoTokens |
||
integrityCheckValue |
H.225 Messaging Details
H.323 messages, including the call signaling messages, follow the ITU-T Q.931 recommendation as specified in H.323. In H.323, the user-user information element (UUIE) conveys the H.323-related information. The H.323 user information protocol data unit (PDU) is ASN.1-encoded. The ASN.1 is encoded using the basic aligned variant of the packed encoding rules as specified in X.691. The ASN.1 structure begins with H323-UserInformation.
H.225 is the call signaling protocol that is supported in the H.323 protocol umbrella. H.225 includes the call signaling messages and the RAS messages. This section covers the specific details of the H.225 call signaling messages.
Table C-8 lists each H.225 message and provides the specific UUIE fields of the H.225 call signaling messages that CallManager exchanges with an H.323 gateway or CallManager H.323 trunk (gateway in table).
Message |
Field Name |
Comments |
---|---|---|
Alerting from gateway |
protocolIdentifier |
Assumes version 2 (v2); only v2 fields are processed |
destinationInfo |
Used |
|
h245Address |
Used if present |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
Alerting to gateway |
protocolIdentifier |
Set to v2 |
destinationInfo |
Endpoint type terminal |
|
h245Address |
If present at alerting, contains the IP address and port of the CallManager H.245 transport address |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
CallProceeding from gateway |
protocolIdentifier |
Assumes v2; only v2 fields are processed |
destinationInfo |
Used |
|
h245Address |
Used if present |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
CallProceeding to gateway |
protocolIdentifier |
Set to v2 |
destinationInfo |
Endpoint type terminal |
|
h245Address |
If present at CallProceeding, contains the IP address and port of the CallManager H.245 transport address |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
Connect from gateway |
protocolDiscriminator |
Assumes v2; only v2 fields are processed |
h245Address |
Used if present; required if not present in previous message |
|
destinationInfo |
Used |
|
conferenceId |
Required |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
Connect to gateway |
protocolDiscriminator |
Set to v2 |
h245Address |
Contains the IP address and port of the CallManager H.245 transport address |
|
destinationInfo |
Endpoint type terminal |
|
conferenceId |
Unique conference identifier |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
Facility from and to gateway |
protocolDiscriminator |
Set to v2 |
alternativeAddress |
Not used |
|
alternativeAliasAddress |
Not used |
|
conferenceID |
Not used |
|
reason |
Used |
|
callIdentifier |
Unique call identifier |
|
destExtraCallInfo |
Not used |
|
remoteExtensionAddress |
Not used |
|
tokens |
Not used |
|
cryptoTokens |
Not used |
|
conferences |
Not used |
|
h245Address |
Not used |
|
UserInformation from gateway |
protocolIdentifier |
Assumes v2; only v2 fields are processed |
callIdentifier |
Not used |
|
UserInformation to gateway |
protocolIdentifier |
Set to v2 |
callIdentifier |
Unique call identifier |
|
Progress from gateway |
protocolIdentifier |
Assumes v2; only v2 fields are processed |
destinationInfo |
Not used |
|
h245Address |
Used if present; required if not present in previous message |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
Progress to gateway |
protocolIdentifier |
Set to v2 |
destinationInfo |
Endpoint type terminal |
|
h245Address |
Contains the IP address and port of the CallManager H.245 transport address |
|
callIdentifier |
Unique call identifier |
|
h245SecurityMode |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
ReleaseComplete from gateway |
protocolIdentifier |
Assumes v2; only v2 fields are processed |
reason |
Reason for disconnect |
|
callIdentifier |
Unique call identifier |
|
ReleaseComplete to gateway |
protocolIdentifier |
Set to v2 |
reason |
Reason for disconnect |
|
callIdentifier |
Unique call identifier |
|
Setup from gateway |
protocolIdentifier |
Assumes v2; only v2 fields are processed |
h245Address |
Contains the IP address and port of the CallManager H.245 transport address |
|
sourceInfo |
Not used |
|
sourceAddress |
Source address if provided |
|
destinationAddress |
Not used; E.164 address is in the Q.931 called party number IE (information element) |
|
destCallSignalAddress |
Not used |
|
destExtraCallInfo |
Not used |
|
destExtraCRV |
Not used |
|
activeMC |
Used |
|
conferenceId |
Unique conference identifier |
|
conferenceGoal |
Used |
|
callServices |
Not used |
|
callType |
Used |
|
sourceCallSignalAddress |
Used |
|
remoteExtensionAddress |
Not used |
|
callIdentifier |
Unique call identifier |
|
h245SecurityCapability |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
mediaWaitForConnect |
Used if present; defaults to false if not present |
|
canOverlapSend |
Not used |
|
Setup to gateway |
protocolIdentifier |
Set to v2 |
h245Address |
Contains the IP address and port of the CallManager H.245 transport address |
|
sourceInfo |
Endpoint type terminal |
|
sourceAddress |
Source address as E.164 address, H.323 alias, or both |
|
destinationIAddress |
E.164 address present here and also included in the Q.931 called party number IE (information element) |
|
destinationCallSignalAdd ress |
Not used |
|
destExtraCallInfo |
Not used |
|
destExtraCRV |
Not used |
|
activeMC |
Used |
|
conferenceId |
Unique conference identifier |
|
conferenceGoal |
Set to create |
|
callServices |
Not used |
|
callType |
Point to point |
|
sourceCallSignalAddress |
Used |
|
remoteExtensionAddress |
Not used |
|
callIdentifier |
Unique call identifier |
|
h245SecurityCapability |
Not supported |
|
tokens |
Not supported |
|
cryptoTokens |
Not supported |
|
fastStart |
Supported |
|
mediaWaitForConnect |
Set to true |
|
canOverlapSend |
Set to false |