-- -- Copyright (c) 1999-2003 Aqua Project Group -- ASN.1 Gatekeeper monitor protocol version 1.00 -- MonitorProto DEFINITIONS AUTOMATIC TAGS ::= BEGIN ------------------------------------------------------------------------------- -- Base types ------------------------------------------------------------------------------- IpAddress ::= SEQUENCE { ip OCTET STRING( SIZE( 4 ) ), port INTEGER( 0..65535 ) } Date ::= SEQUENCE { year INTEGER, month INTEGER( 1..12 ), day INTEGER( 1..31 ) } Time ::= SEQUENCE { hour INTEGER( 0..23 ), minute INTEGER( 0..59 ), second INTEGER( 0..59 ) } DateTime ::= SEQUENCE { date Date, time Time } MessageIdentifier ::= INTEGER( 0..65535 ) GatekeeperIdentifier ::= BMPString( SIZE( 1..128 ) ) EndpointIdentifier ::= BMPString( SIZE( 1..128 ) ) ZoneIdentifier ::= OCTET STRING( SIZE( 1..128 ) ) ConferenceIdentifier ::= OCTET STRING( SIZE( 16 ) ) Bandwidth ::= INTEGER( 0..4294967295 ) -- in 100s of bits CallReferenceValue ::= INTEGER( 0..65535 ) SegmentType ::= ENUMERATED { comprehensive, initial, intermediate, final } CompletionCode ::= SEQUENCE { errorText OCTET STRING OPTIONAL } EndpointType ::= CHOICE { gatekeeper NULL, gateway NULL, mcu NULL, terminal NULL } ProxyLevel ::= CHOICE { none NULL, signalling NULL, full NULL } ChallengeValue ::= OCTET STRING( SIZE( 8 ) ) ChallengeResponse ::= OCTET STRING( SIZE( 16 ) ) Challenge ::= SEQUENCE { value ChallengeValue OPTIONAL } RequestDataClass ::= ENUMERATED { gatekeeper, zone, endpoint, connection, configuration, log, ... } RequestData ::= SEQUENCE { dataClass RequestDataClass, fetchCurrentData BOOLEAN, notifyChanges BOOLEAN, ... } RequestResultError ::= SEQUENCE { code INTEGER( 0..127,... ), text OCTET STRING OPTIONAL } RequestResult ::= CHOICE { ok NULL, okDataFollowOn NULL, error RequestResultError } ------------------------------------------------------------------------------- -- Gatekeeper ------------------------------------------------------------------------------- GatekeeperInfo ::= SEQUENCE { identifier GatekeeperIdentifier, version OCTET STRING, osInfo OCTET STRING, rasAddress IpAddress OPTIONAL, csAddress IpAddress OPTIONAL, ... } ------------------------------------------------------------------------------- -- Zone ------------------------------------------------------------------------------- Zone ::= SEQUENCE { identifier ZoneIdentifier, bandwidth Bandwidth, occupiedBandwidth Bandwidth, connections INTEGER, occupiedConnections INTEGER, links SEQUENCE OF ZoneIdentifier, ... } ------------------------------------------------------------------------------- -- Endpoints ------------------------------------------------------------------------------- Endpoint ::= SEQUENCE { identifier EndpointIdentifier, userName OCTET STRING, loginAliases SEQUENCE OF BMPString( SIZE( 1..256 ) ), aliases SEQUENCE OF BMPString( SIZE( 1..256 ) ), rasAddress IpAddress OPTIONAL, csAddress IpAddress, endpointType EndpointType, zone ZoneIdentifier OPTIONAL, static BOOLEAN, ... } ------------------------------------------------------------------------------- -- Connections ------------------------------------------------------------------------------- Connection ::= SEQUENCE { identifier ConferenceIdentifier, callerIdentifier EndpointIdentifier OPTIONAL, callerCSAddress IpAddress OPTIONAL, calleeIdentifier EndpointIdentifier OPTIONAL, calleeCSAddress IpAddress OPTIONAL, occupiedBandwidth Bandwidth, conversationStart DateTime OPTIONAL, conversationStop DateTime OPTIONAL, zones SEQUENCE OF ZoneIdentifier OPTIONAL, callerAliases SEQUENCE OF OCTET STRING OPTIONAL, calleeAliases SEQUENCE OF OCTET STRING OPTIONAL, callerDisplay OCTET STRING OPTIONAL, calleeDisplay OCTET STRING OPTIONAL, proxyLevel ProxyLevel, ... } ------------------------------------------------------------------------------- -- Main ------------------------------------------------------------------------------- ServerRequest ::= SEQUENCE { identifier MessageIdentifier, body CHOICE { challenge Challenge, ... } } ServerResponse ::= SEQUENCE { identifier MessageIdentifier, segmentType SegmentType DEFAULT comprehensive, body CHOICE { requestResult RequestResult, gatekeeperInfo GatekeeperInfo, configurationData OCTET STRING, logData OCTET STRING, zones SEQUENCE OF Zone, endpoints SEQUENCE OF Endpoint, connections SEQUENCE OF Connection, ... } } ServerNotification ::= CHOICE { gatekeeperInfo GatekeeperInfo, logData OCTET STRING, zonesAdded SEQUENCE OF Zone, zonesChanged SEQUENCE OF Zone, zonesRemoved SEQUENCE OF ZoneIdentifier, endpointsAdded SEQUENCE OF Endpoint, endpointsChanged SEQUENCE OF Endpoint, endpointsRemoved SEQUENCE OF EndpointIdentifier, connectionsAdded SEQUENCE OF Connection, connectionsChanged SEQUENCE OF Connection, connectionsRemoved SEQUENCE OF ConferenceIdentifier } MonitorServerMessage ::= CHOICE { request ServerRequest, response ServerResponse, notification ServerNotification } ClientRequest ::= SEQUENCE { identifier MessageIdentifier, segmentType SegmentType DEFAULT comprehensive, body CHOICE { requestData RequestData, setConfigData OCTET STRING, restart BMPString( SIZE( 1..25 ) ), -- Place "Yes, please!" here. reloadConfiguration BMPString( SIZE( 1..25 ) ), -- Place "Yes, please!" here. removeEndpoints SEQUENCE OF EndpointIdentifier, removeConnections SEQUENCE OF ConferenceIdentifier, ... } } ClientResponse ::= SEQUENCE { identifier MessageIdentifier, body CHOICE { challengeResponse ChallengeResponse, ... } } MonitorClientMessage ::= CHOICE { request ClientRequest, response ClientResponse, ... } END -- of ASN