aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-03-22 15:41:40 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-03-22 15:41:40 +0000
commitd1e004b8d27e38d3b25e31386e8e01f26ac8cab6 (patch)
tree55bc8efaf1bf9df08e3e20436289f4bfc55aa1e3
parenta17d3c60ba3a1626091cdf16db00cab06d603bc1 (diff)
Initial checkin of a camel dissector.
svn path=/trunk/; revision=13864
-rw-r--r--asn1/camel/Makefile16
-rw-r--r--asn1/camel/Makefile.nmake41
-rw-r--r--asn1/camel/camel.asn2469
-rw-r--r--asn1/camel/camel.cnf20
-rw-r--r--asn1/camel/packet-camel-template.c657
-rw-r--r--asn1/camel/packet-camel-template.h43
6 files changed, 3246 insertions, 0 deletions
diff --git a/asn1/camel/Makefile b/asn1/camel/Makefile
new file mode 100644
index 0000000000..084f33c696
--- /dev/null
+++ b/asn1/camel/Makefile
@@ -0,0 +1,16 @@
+# $Id: Makefile 13071 2005-01-16 10:19:21Z guy $
+
+DISSECTOR_FILES=packet-camel.c packet-camel.h
+
+all: generate_dissector
+
+generate_dissector: $(DISSECTOR_FILES)
+
+$(DISSECTOR_FILES): ../../tools/asn2eth.py camel.asn packet-camel-template.c packet-camel-template.h camel.cnf
+ python ../../tools/asn2eth.py -X -b -e -p camel -c camel.cnf -s packet-camel-template camel.asn
+
+clean:
+ rm -f parsetab.py $(DISSECTOR_FILES)
+
+copy_files: generate_dissector
+ cp $(DISSECTOR_FILES) ../../epan/dissectors
diff --git a/asn1/camel/Makefile.nmake b/asn1/camel/Makefile.nmake
new file mode 100644
index 0000000000..edcceffe16
--- /dev/null
+++ b/asn1/camel/Makefile.nmake
@@ -0,0 +1,41 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# $Id: Makefile.nmake 13077 2005-01-16 23:26:02Z lroland $
+
+include ../../config.nmake
+
+UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
+
+PROTOCOL_NAME=camel
+DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
+
+all: generate_dissector
+
+generate_dissector: $(DISSECTOR_FILES)
+
+$(DISSECTOR_FILES): ../../tools/asn2eth.py camel.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h camel.cnf
+!IFDEF PYTHON
+ $(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c camel.cnf -s packet-$(PROTOCOL_NAME)-template camel.asn
+!ELSE
+ @echo Error: You need Python to use asn2eth.py
+ @exit 1
+!ENDIF
+
+clean:
+ del /f parsetab.py $(DISSECTOR_FILES)
+
+# Fix EOL in generated dissectors. Cygwin's python generates files with
+# mixed EOL styles, which can't be commited to the SVN repository.
+# Stuff included from template and "cnf" files has "\r\n" on windows, while
+# the generated stuff has "\n".
+
+fix_eol: generate_dissector
+ move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
+ move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
+ $(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
+ $(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
+ del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
+
+copy_files: generate_dissector fix_eol
+ xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
+ xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y
diff --git a/asn1/camel/camel.asn b/asn1/camel/camel.asn
new file mode 100644
index 0000000000..36c5266f8a
--- /dev/null
+++ b/asn1/camel/camel.asn
@@ -0,0 +1,2469 @@
+--***********************************************
+-- ASN.1+ version of CAMEL3 message set.
+--
+-- Ref : CAMEL Application Part (CAP) specification
+-- (3GPP TS 29.078 version 3.5.0 Release 1999)
+-- ETSI TS 129 078 V3.5.0 (2000-09)
+--
+--***********************************************
+
+
+
+--*************************************
+-- MsgSetIdentification
+--*************************************
+
+-- XXX MsgSetIdentification DEFINITIONS ::=
+-- XXX BEGIN
+-- XXX END
+
+--********************************************
+-- PackBin Fix
+--********************************************
+
+PackedBinCAMEL3Fix DEFINITIONS ::=
+BEGIN
+
+PBSGSNCapabilities ::= SEQUENCE
+{
+ reserved INTEGER,
+ aoc INTEGER
+}
+
+
+END
+
+
+--********************************************
+-- PackBin Variable
+--********************************************
+
+PackedBinCAMEL3Variable DEFINITIONS ::=
+BEGIN
+
+PBIPSSPCapabilities ::= SEQUENCE {
+ standardPartEnd INTEGER,
+ reserved INTEGER,
+ genOfVoiceAnn INTEGER,
+ voiceInfo2 INTEGER,
+ voiceInfo1 INTEGER,
+ voiceBack INTEGER,
+ iPRoutAdd INTEGER,
+ bilateralPart OCTET STRING (SIZE(0..3))
+}
+
+END
+
+
+PacBinMap2Pac DEFINITIONS ::=
+BEGIN
+
+-- maxAddressLength INTEGER ::= 20
+PBAddressString ::= SEQUENCE {
+ extension INTEGER(1),
+ natureOfAddressIndicator INTEGER,
+ numberingPlanInd INTEGER,
+ digits
+
+ OCTET STRING (SIZE(0..19))
+}
+
+PBISDNAddressString ::= SEQUENCE {
+ extension INTEGER(1),
+ natureOfAddressIndicator INTEGER,
+ numberingPlanInd INTEGER,
+ digits
+
+ OCTET STRING (SIZE(0..8))
+}
+
+PBGeographicalInformation ::= SEQUENCE {
+ typeOfShape INTEGER,
+ spare INTEGER,
+ degreesOfLatitude OCTET STRING (SIZE(3)),
+ degreesOfLongitude OCTET STRING (SIZE(3)),
+ uncertaintyCode OCTET STRING (SIZE(1))
+}
+-- Refers to geographical Information defined in 3GPP TS 23.032.
+-- Only the description of an ellipsoid point with uncertainty circle
+-- as specified in 3GPP TS 23.032 is allowed to be used
+-- The internal structure according to 3GPP TS 23.032 is as follows:
+-- Type of shape (ellipsoid point with uncertainty circle) 1 octet
+-- Degrees of Latitude 3 octets
+-- Degrees of Longitude 3 octets
+-- Uncertainty code 1 octet
+
+PBGSNAddress ::= SEQUENCE {
+ typeOfAddress INTEGER,
+ addressLength INTEGER(4..16),
+ address OCTET STRING (SIZE(4..16))
+}
+-- Address Type 0 and Address Length 4 are used when Address is an IPv4 address.
+-- Address Type 1 and Address Length 16 are used when Address is an IPv6 address.
+
+END
+
+PacBinInapFix DEFINITIONS ::=
+BEGIN
+
+PBRedirectionInformation ::= SEQUENCE {
+ originalReasons INTEGER,
+ spare INTEGER(0),
+ indicator INTEGER,
+ reason INTEGER,
+ spare2 INTEGER(0),
+ counter INTEGER
+ }
+
+END
+
+
+--********************************************
+-- PackBin Digits
+--********************************************
+--
+
+PacBinInapDigits DEFINITIONS ::=
+BEGIN
+
+PBCalledPartyNumber ::= SEQUENCE {
+ oddEven INTEGER,
+ natureOfAddressIndicator INTEGER,
+ innInd INTEGER,
+ numberingPlanInd INTEGER,
+ spare INTEGER(0),
+ -- 2-32 bcdDigits
+ digits
+ OCTET STRING (SIZE(0..16))
+ }
+-- the Destination Address Field is not present if the destination address length is set to zero.
+-- This is the case e.g. when the ANSI ISUP Nature Of Address indicator indicates no number present,
+-- operator requested (1110100) or no number present, cut-through call to carrier (1110101).
+-- See also see 3GPP TS 23.078 [42].
+
+PBCallingPartyNumber ::= SEQUENCE {
+ oddEven INTEGER,
+ natureOfAddressIndicator INTEGER,
+ niInd INTEGER,
+ numberingPlanInd INTEGER,
+ presentInd INTEGER,
+ screening INTEGER,
+ -- 0-16 bcdDigits
+ digits
+ OCTET STRING (SIZE(0..8))
+ }
+
+PBRedirectingNumber ::= SEQUENCE {
+ oddEven INTEGER,
+ natureOfAddressIndicator INTEGER,
+ innInd INTEGER,
+ numberingPlanInd INTEGER,
+ spare INTEGER(0),
+ -- 2-20 bcdDigits
+ digits
+ OCTET STRING (SIZE(1..10))
+ }
+
+
+PBCause ::= SEQUENCE {
+ o1ext INTEGER(1),
+ codingStandard INTEGER,
+ spare INTEGER(0),
+ location INTEGER,
+ o2ext INTEGER(1),
+ causeValue INTEGER,
+ diagnostics OCTET STRING (SIZE(0..30))
+ -- add 1 octet for diagnostics field
+ }
+
+PBGenericNumber ::= SEQUENCE {
+ numberQualifierIndicator INTEGER,
+ oddEven INTEGER,
+ natureOfAddressIndicator INTEGER,
+ niInd INTEGER,
+ numberingPlanInd INTEGER,
+ presentInd INTEGER,
+ screening INTEGER,
+ digits
+ OCTET STRING (SIZE(0..8))
+ }
+
+
+PBLocationNumber ::= SEQUENCE {
+ oddEven INTEGER,
+ natureOfAddressIndicator INTEGER,
+ innInd INTEGER,
+ numberingPlanInd INTEGER,
+ presentInd INTEGER,
+ screening INTEGER,
+ digits
+ OCTET STRING (SIZE(0..8))
+ }
+
+END
+
+
+PacBinCamel2Var DEFINITIONS ::=
+BEGIN
+
+-- See 3GPP TS 29.078
+-- and 3GPP TS 24.008, section 10.5.4.7
+PBCalledPartyBCDNumber ::= SEQUENCE {
+ ext INTEGER,
+ typeOfNumber ENUMERATED {
+ unknown (0),
+ international (1),
+ national (2),
+ networkSpecific (3),
+ dedicatedAccess (4),
+ reserved5 (5),
+ reserved6 (6),
+ reservedExt (7)
+ },
+ numberingPlanInd INTEGER,
+ digits
+
+ OCTET STRING (SIZE(0..40))
+}
+
+END
+
+--*********************************************
+-- Core-INAP-CS1-Operations DEFINITIONS
+--*********************************************
+
+CAP-datatypes --{ ccitt (0) identified-organization (4) etsi (0) mobileDomain (0) umts-network (1) modules (3) cap-datatypes (52) version3 (2) }
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+
+
+-- exports everything
+
+
+
+-- imports nothing
+
+
+
+-- ================================
+-- MACRO OPERATION
+-- ================================
+
+
+
+
+-- AccessPointName notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+AccessPointName ::=
+
+OCTET STRING (SIZE (1..100))
+
+-- AChBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AChBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (5..177))
+
+-- AlertingPattern notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AlertingPattern ::=
+
+OCTET STRING (SIZE (3))
+
+-- AppendFreeFormatData notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+AppendFreeFormatData ::= ENUMERATED
+{
+ overwrite (0),
+ append (1)
+}
+
+-- ApplicationTimer notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ApplicationTimer ::= INTEGER (0..2047)
+
+-- CalledPartyBCDNumber notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+-- See 3GPP TS 29.078
+-- and 3GPP TS 24.008, section 10.5.4.7
+CalledPartyBCDNumber ::=
+
+
+OCTET STRING (SIZE (1..41))
+
+-- CalledPartyNumber notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+CalledPartyNumber ::=
+
+
+ OCTET STRING (SIZE (2..18))
+
+-- CallingPartyNumber notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+CallingPartyNumber ::=
+
+
+ OCTET STRING (SIZE (2..10))
+
+-- CallResult notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+CallResult ::=
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminCallResultLength..cAPSpecificBoundSetmaxCallResultLength))
+-- shall be the result of the BER-encoded value of type
+-- CamelCallResult
+
+
+CAPGPRSReferenceNumber ::= SEQUENCE {
+ destinationReference [0] EXPLICIT Integer4 OPTIONAL,
+ originationReference [1] EXPLICIT Integer4 OPTIONAL
+ }
+
+
+-- Carrier notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+Carrier ::=
+
+OCTET STRING (SIZE (4..4))
+
+-- Cause notes: not recursive, exported,
+-- locally refd 10 times, import refd 0 times
+Cause ::=
+
+
+ OCTET STRING (SIZE (minCauseLength..32))
+
+-- CGEncountered notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CGEncountered ::= ENUMERATED
+{
+ noCGencountered (0),
+ manualCGencountered (1),
+ scpOverload (2)
+}
+
+-- ConnectedNumberTreatmentInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectedNumberTreatmentInd ::= ENUMERATED
+{
+ noINImpact (0),
+ presentationRestricted (1),
+ presentCalledINNumber (2),
+ presentCallINNumberRestricted (3)
+}
+
+-- ControlType notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ControlType ::= ENUMERATED
+{
+ sCPOverloaded (0),
+ manuallyInitiated (1)
+}
+
+
+ChargingRollOver ::= CHOICE {
+ transferredVolumeRollOver [0] TransferredVolumeRollOver,
+ elapsedTimeRollOver [1] ElapsedTimeRollOver
+}
+
+-- DateAndTime notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+DateAndTime ::=
+ OCTET STRING (SIZE (7))
+
+-- Digits notes: not recursive, exported,
+-- locally refd 9 times, import refd 0 times
+Digits ::=
+
+OCTET STRING (SIZE (2..16))
+
+-- ErrorTreatment notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ErrorTreatment ::= ENUMERATED
+{
+ stdErrorAndInfo (0),
+ help (1),
+ repeatPrompt (2)
+}
+
+-- EventTypeBCSM notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+EventTypeBCSM ::= ENUMERATED
+{
+ collectedInfo (2),
+ analyzedInformation (3),
+ routeSelectFailure (4),
+ oCalledPartyBusy (5),
+ oNoAnswer (6),
+ oAnswer (7),
+ oDisconnect (9),
+ oAbandon (10),
+ termAttemptAuthorized (12),
+ tBusy (13),
+ tNoAnswer (14),
+ tAnswer (15),
+ tDisconnect (17),
+ tAbandon (18)
+}
+
+-- EventTypeSMS notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+EventTypeSMS ::= ENUMERATED
+{
+ sms-CollectedInfo (1),
+ o-smsFailure (2),
+ o-smsSubmitted (3)
+}
+
+-- CriticalityType notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+CriticalityType ::= ENUMERATED
+{
+ ignore (0),
+ abort (1)
+}
+
+-- FCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+FCIBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (5..225))
+
+-- FCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+FCIGPRSBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (5..225))
+-- shall be the result of the BER-encoded value of type
+-- CamelFCIGPRSBillingChargingCharacteristics
+
+-- FCISMSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+FCISMSBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (5..225))
+
+-- GenericNumber notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GenericNumber ::=
+
+
+ OCTET STRING (SIZE (3..11))
+
+-- GPRSCause notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRSCause ::=
+
+ OCTET STRING (SIZE (1))
+
+-- GPRSChargingID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRSChargingID ::=
+
+ OCTET STRING (SIZE (4))
+
+-- PDPInitiationType notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+PDPInitiationType ::= ENUMERATED
+{
+ mSInitiated (0),
+ networkInitiated (1)
+}
+
+-- GPRSEventType notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRSEventType ::= ENUMERATED
+{
+ attach (1),
+ attachChangeOfPosition (2),
+ detached (3),
+ pdp-ContextEstablishment (11),
+ pdp-ContextEstablishmentAcknowledgement (12),
+ disonnect (13),
+ pdp-ContextChangeOfPosition (14)
+}
+
+-- InitiatingEntity notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+InitiatingEntity ::= ENUMERATED
+{
+ ms (0),
+ sgsn (1),
+ hlr (2),
+ ggsn (3)
+}
+
+-- IPSSPCapabilities notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+IPSSPCapabilities ::=
+
+
+OCTET STRING (SIZE (1..4))
+
+-- LegType notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+LegType ::=
+
+OCTET STRING (SIZE (1))
+
+-- LocationNumber notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+LocationNumber ::=
+
+
+ OCTET STRING (SIZE (2..10))
+
+-- MonitorMode notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+MonitorMode ::= ENUMERATED
+{
+ interrupted (0),
+ notifyAndContinue (1),
+ transparent (2)
+}
+
+-- MSNetworkCapability notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MSNetworkCapability ::=
+
+OCTET STRING (SIZE (1..8))
+-- MS Network Capability describes the GPRS terminal capabilites related to the network, i.e. SMS
+-- point to point service over packet data channels. For encoding refer to 3GPP TS 24.008 [12].
+-- It shall contain the value part defined in 3GPP TS 24.008 only. I.e. the 3GPP TS 24.008 IEI
+-- and 3GPP TS 24.008 octet length indicator shall not be included.
+
+
+-- MSRadioAccessCapability notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MSRadioAccessCapability ::=
+
+OCTET STRING (SIZE (1..50))
+-- MS Radio Access Capability describes the terminal capabilites relevant for the radio network,
+-- which may affect the way the network handles the mobile.
+-- For encoding refer to 3GPP TS 24.008 [12].
+-- It shall contain the value part defined in 3GPP TS 24.008 only. I.e. the 3GPP TS 24.008 IEI
+-- and 3GPP TS 24.008 octet length indicator shall not be included.
+
+
+-- NAOliInfo notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+NAOliInfo ::=
+
+OCTET STRING (SIZE (1))
+
+-- OriginalCalledPartyID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+OriginalCalledPartyID ::=
+
+OCTET STRING (SIZE (2..10))
+
+-- OCSIApplicable notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+OCSIApplicable ::= NULL
+
+-- PDPId notes: not recursive, exported,
+-- locally refd 11 times, import refd 0 times
+PDPId ::=
+
+OCTET STRING (SIZE (1))
+
+-- RAIdentity notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RAIdentity ::=
+
+OCTET STRING (SIZE (6..7))
+-- Routing Area Identity coded according to 3GPP TS 29.060 [43].
+-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060
+-- type identifier octet shall not be included.
+
+-- RedirectingPartyID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+RedirectingPartyID ::=
+
+OCTET STRING (SIZE (2..10))
+
+-- RequestedInformationType notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformationType ::= ENUMERATED
+{
+ callAttemptElapsedTime (0),
+ callStopTime (1),
+ callConnectedElapsedTime (2),
+ releaseCause (30)
+}
+
+-- RPCause notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RPCause ::=
+
+OCTET STRING (SIZE (1))
+
+-- ScfID notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+ScfID ::=
+
+OCTET STRING (SIZE (2..10))
+
+-- SCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+SCIBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (4..124))
+
+-- SCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+SCIGPRSBillingChargingCharacteristics ::=
+
+OCTET STRING (SIZE (4..69))
+
+-- SGSNCapabilities notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SGSNCapabilities ::=
+
+
+OCTET STRING (SIZE (1))
+
+-- SMSCause notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SMSCause ::= ENUMERATED
+{
+ systemFailureEnum (0),
+ unexpectedDataValueEnum (1),
+ facilityNotSupported (2),
+ sM-DeliveryFailure (3),
+ releaseFromRadioInterface (4)
+}
+
+-- TimeIfNoTariffSwitch notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TimeIfNoTariffSwitch ::= INTEGER (0..864000)
+
+-- TimerID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+TimerID ::= ENUMERATED
+{
+ tssf (0)
+}
+
+-- TimeAndTimezone notes: not recursive, exported,
+-- locally refd 7 times, import refd 0 times
+TimeAndTimezone ::=
+ OCTET STRING (SIZE (8..8))
+
+-- TPDataCodingScheme notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPDataCodingScheme ::=
+
+OCTET STRING (SIZE (1))
+
+-- TPProtocolIdentifier notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPProtocolIdentifier ::=
+
+OCTET STRING (SIZE (1))
+
+-- TPShortMessageSubmissionInfo notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPShortMessageSubmissionInfo ::=
+
+OCTET STRING (SIZE (1))
+
+-- TPValidityPeriod notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TPValidityPeriod ::=
+
+OCTET STRING (SIZE (1..7))
+
+-- UnavailableNetworkResource notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+UnavailableNetworkResource ::= ENUMERATED
+{
+ unavailableResources (0),
+ componentFailure (1),
+ basicCallProcessingException (2),
+ resourceStatusFailure (3),
+ endUserFailure (4)
+}
+
+-- SpecializedResourceReportArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+SpecializedResourceReportArg ::= NULL
+
+-- Priority notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+Priority ::= INTEGER (0..2147483647)
+
+-- CUG-Interlock notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CUG-Interlock ::=
+
+OCTET STRING (SIZE (4))
+
+-- CUG-Index notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CUG-Index ::= INTEGER (0..32767)
+
+-- CallReferenceNumber notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallReferenceNumber ::=
+
+OCTET STRING (SIZE (1..8))
+
+-- SuppressionOfAnnouncement notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+SuppressionOfAnnouncement ::= NULL
+
+-- NotReachableReason notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+NotReachableReason ::= ENUMERATED
+{
+ msPurged (0),
+ imsiDetached (1),
+ restrictedArea (2),
+ notRegistred (3)
+}
+
+-- AgeOfLocationInformation notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AgeOfLocationInformation ::= INTEGER (0..32767)
+
+-- GeographicalInformation notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GeographicalInformation ::=
+
+
+OCTET STRING (SIZE (8))
+
+-- AddressString notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AddressString ::=
+
+
+ OCTET STRING (SIZE(1..maxAddressLength))
+
+-- CellIdFixedLength notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CellIdFixedLength ::=
+
+
+ OCTET STRING (SIZE (7))
+ -- Refers to Cell Global Identification defined in TS GSM 03.03.
+ -- Octets ares encoded according to TS GSM 04.08.
+ -- The internal structure is defined as follows:
+ -- Mobile Country Code: 3 digits according to CCITT Rec E.212.
+ -- 1 digits filler (1111)
+ -- Mobile Network Code: 2 digits according to CCITT Rec E.212.
+ -- Location Area Code: 2 octets according to TS GSM 04.08.
+ -- Cell Identify: 2 octets (CI) according to TS GSM 04.08.
+
+
+-- LAIFixedLength notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+LAIFixedLength ::=
+
+
+ OCTET STRING (SIZE (5))
+ -- Refers to Location Area Identification defined in TS GSM 03.03.
+ -- Octets ares encoded according to TS GSM 04.08.
+ -- The internal structure is defined as follows:
+ -- Mobile Country Code: 3 digits according to CCITT Rec E.212.
+ -- 1 digits filler (1111)
+ -- Mobile Network Code: 2 digits according to CCITT Rec E.212.
+ -- Location Area Code: 2 octets according to TS GSM 04.08.
+
+
+-- ServiceKey notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+ServiceKey ::= INTEGER (0..2147483647)
+
+-- Ext-TeleserviceCode notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Ext-TeleserviceCode ::=
+
+OCTET STRING (SIZE (1..5))
+
+-- Ext-BearerServiceCode notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Ext-BearerServiceCode ::=
+
+OCTET STRING (SIZE (1..5))
+
+-- Imsi notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+Imsi ::=
+
+
+OCTET STRING (SIZE (3..8))
+ -- International Mobile Subscriber Indentity
+ -- digits of MCC, MNC, MSIN are concatenated in this order.
+
+
+-- Duration notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Duration ::= INTEGER (-2..86400)
+
+-- Integer4 notes: not recursive, exported,
+-- locally refd 8 times, import refd 0 times
+Integer4 ::= INTEGER (0..2147483647)
+
+-- Interval notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Interval ::= INTEGER (-1..60000)
+
+-- CallingPartysCategory notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CallingPartysCategory ::=
+
+OCTET STRING (SIZE (1))
+
+-- RedirectionInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RedirectionInformation ::=
+
+ OCTET STRING (SIZE (2))
+
+-- HighLayerCompatibility notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+HighLayerCompatibility ::=
+
+OCTET STRING (SIZE (highLayerCompatibilityLength))
+
+-- BothwayThroughConnectionInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+BothwayThroughConnectionInd ::= ENUMERATED
+{
+ bothwayPathRequired (0),
+ bothwayPathNotRequired (1)
+}
+
+-- LSAIdentity notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+LSAIdentity ::=
+
+OCTET STRING (SIZE (3))
+
+-- QoS-Subscribed notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+QoS-Subscribed ::=
+
+OCTET STRING (SIZE (3))
+
+-- Ext-QoS-Subscribed notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Ext-QoS-Subscribed ::=
+
+OCTET STRING (SIZE (1..9))
+
+-- TCInvokeIdSet notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TCInvokeIdSet ::= INTEGER (-128..127)
+
+-- ExtensionSetExtensionType notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+-- FIXME: add to decode this: ExtensionSetExtensionType ::= ANY
+
+
+-- ExtensionSetextensionId notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ExtensionSetextensionId ::= OBJECT IDENTIFIER
+
+
+-- BackwardServiceInteractionInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+BackwardServiceInteractionInd ::= SEQUENCE
+{
+ conferenceTreatmentIndicator [1]
+
+OCTET STRING (SIZE (1)) OPTIONAL,
+ callCompletionTreatmentIndicator [2]
+
+OCTET STRING (SIZE (1)) OPTIONAL
+}
+
+
+
+-- BearerCapability notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+BearerCapability ::= CHOICE
+{
+ bearerCap [0]
+
+OCTET STRING (SIZE (2..11))
+}
+
+-- CAI-Gsm0224 notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CAI-Gsm0224 ::= SEQUENCE
+{
+ e1 [0] INTEGER (0..8191) OPTIONAL,
+ e2 [1] INTEGER (0..8191) OPTIONAL,
+ e3 [2] INTEGER (0..8191) OPTIONAL,
+ e4 [3] INTEGER (0..8191) OPTIONAL,
+ e5 [4] INTEGER (0..8191) OPTIONAL,
+ e6 [5] INTEGER (0..8191) OPTIONAL,
+ e7 [6] INTEGER (0..8191) OPTIONAL
+}
+
+-- ChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ChargingCharacteristics ::= CHOICE
+{
+ maxTransferredVolume [0] INTEGER (1..2147483647),
+ maxElapsedTime [1] INTEGER (1..86400)
+}
+
+-- ElapsedTime notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ElapsedTime ::= CHOICE
+{
+ timeGPRSIfNoTariffSwitch [0] INTEGER (0..86400),
+ timeGPRSIfTariffSwitch [1] SEQUENCE
+ {
+ timeGPRSSinceLastTariffSwitch [0] INTEGER (0..86400),
+ timeGPRSTariffSwitchInterval [1] INTEGER (0..86400) OPTIONAL
+ }
+}
+
+
+ElapsedTimeRollOver ::= CHOICE {
+ rOTimeGPRSIfNoTariffSwitch [0] INTEGER (0..255),
+ rOTimeGPRSIfTariffSwitch [1] SEQUENCE {
+ rOTimeGPRSSinceLastTariffSwitch [0] INTEGER (0..255) OPTIONAL,
+ rOTimeGPRSTariffSwitchInterval [1] INTEGER (0..255) OPTIONAL
+ }
+}
+
+GSNAddress ::=
+
+
+OCTET STRING (SIZE (5..17))
+
+-- ForwardServiceInteractionInd notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ForwardServiceInteractionInd ::= SEQUENCE
+{
+ conferenceTreatmentIndicator [1]
+
+ OCTET STRING (SIZE (1)) OPTIONAL,
+ callDiversionTreatmentIndicator [2]
+
+ OCTET STRING (SIZE (1)) OPTIONAL,
+ callingPartyRestrictionIndicator [4]
+
+ OCTET STRING (SIZE (1)) OPTIONAL
+}
+
+
+
+-- PDPType notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+-- Equivalent to EndUserAddress
+PDPType ::= SEQUENCE
+{
+ pDPTypeOrganization [0]
+
+ OCTET STRING (SIZE (1)),
+ pDPTypeNumber [1]
+
+ OCTET STRING (SIZE (1)),
+ pDPAddress [2]
+
+ OCTET STRING (SIZE (1..63)) OPTIONAL
+}
+
+-- TimeIfTariffSwitch notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TimeIfTariffSwitch ::= SEQUENCE
+{
+ timeSinceTariffSwitch [0] INTEGER (0..864000),
+ tariffSwitchInterval [1] INTEGER (1..864000) OPTIONAL
+}
+
+-- TransferredVolume notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TransferredVolume ::= CHOICE
+{
+ volumeIfNoTariffSwitch [0] INTEGER (0..2147483647),
+ volumeIfTariffSwitch [1] SEQUENCE
+ {
+ volumeSinceLastTariffSwitch [0] INTEGER (0..2147483647),
+ volumeTariffSwitchInterval [1] INTEGER (0..2147483647) OPTIONAL
+ }
+}
+
+TransferredVolumeRollOver ::= CHOICE {
+ rOVolumeIfNoTariffSwitch [0] INTEGER (0.. 255),
+ rOVolumeIfTariffSwitch [1] SEQUENCE {
+ rOVolumeSinceLastTariffSwitch [0] INTEGER (0.. 255) OPTIONAL,
+ rOVolumeTariffSwitchInterval [1] INTEGER (0.. 255) OPTIONAL
+ }
+}
+
+
+-- Code notes: not recursive, exported,
+-- locally refd 63 times, import refd 0 times
+Code ::= CHOICE
+{
+ local INTEGER,
+ global OBJECT IDENTIFIER
+}
+
+-- PCS-Extensions notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PCS-Extensions ::= SEQUENCE
+{
+ foo INTEGER (0) OPTIONAL
+}
+
+
+
+-- MiscCallInfo notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+MiscCallInfo ::= SEQUENCE
+{
+ messageType [0] ENUMERATED
+ {
+ request (0),
+ notification (1)
+ }
+}
+
+-- SupportedExtensionsExtensionType notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SupportedExtensionsExtensionType ::= CHOICE
+{
+ firstExtensionExtensionType NULL --,
+ -- secondExtensionExtensionType NULL
+}
+
+-- PrivateExtension notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PrivateExtension ::= SEQUENCE
+{
+ extId ExtensionSetextensionId
+ -- FIXME: add to decode this: extType ExtensionSetExtensionType OPTIONAL
+}
+
+-- AdditionalCallingPartyNumber notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AdditionalCallingPartyNumber ::= Digits
+
+-- AOCSubsequent notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+AOCSubsequent ::= SEQUENCE
+{
+ cAI-GSM0224 [0] CAI-Gsm0224,
+ tariffSwitchInterval [1] INTEGER (1..86400) OPTIONAL
+}
+
+-- AssistingSSPIPRoutingAddress notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+AssistingSSPIPRoutingAddress ::= Digits
+
+-- CAMEL-FCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CamelFCIGPRSBillingChargingCharacteristics ::=
+
+SEQUENCE
+{
+ fCIBCCCAMELsequence1 [0] SEQUENCE
+ {
+ freeFormatData [0] FreeFormatData,
+ pDPID [1] PDPId OPTIONAL,
+ appendFreeFormatData [2] AppendFreeFormatData DEFAULT overwrite
+ }
+}
+
+FreeFormatData ::=
+
+OCTET STRING (SIZE (1..160))
+
+
+-- CAMEL-FCISMSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CamelFCISMSBillingChargingCharacteristics ::= CHOICE
+{
+ fCIBCCCAMELsequence1 [0] SEQUENCE
+ {
+ freeFormatData [0] FreeFormatData,
+ appendFreeFormatData [1] AppendFreeFormatData DEFAULT overwrite
+ }
+}
+
+-- ChargeNumber notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+ChargeNumber ::= LocationNumber
+
+-- ChargingResult notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ChargingResult ::= CHOICE
+{
+ transferredVolume [0] TransferredVolume,
+ elapsedTime [1] ElapsedTime
+}
+
+-- CollectedDigits notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CollectedDigits ::= SEQUENCE
+{
+ minimumNbOfDigits [0] INTEGER (1..30) DEFAULT 1,
+ maximumNbOfDigits [1] INTEGER (1..30),
+ endOfReplyDigit [2]
+ OCTET STRING (SIZE (1..2)) OPTIONAL,
+ cancelDigit [3]
+ OCTET STRING (SIZE (1..2)) OPTIONAL,
+ startDigit [4]
+ OCTET STRING (SIZE (1..2)) OPTIONAL,
+ firstDigitTimeOut [5] INTEGER (1..127) OPTIONAL,
+ interDigitTimeOut [6] INTEGER (1..127) OPTIONAL,
+ errorTreatment [7] ErrorTreatment DEFAULT stdErrorAndInfo,
+ interruptableAnnInd [8] BOOLEAN DEFAULT TRUE,
+ voiceInformation [9] BOOLEAN DEFAULT FALSE,
+ voiceBack [10] BOOLEAN DEFAULT FALSE
+}
+-- The endOfReplyDigit, cancelDigit, and startDigit parameters have been
+-- designated as OCTET STRING, and are to be encoded as BCD, one digit per octet
+-- only, contained in the four least significant bits of each OCTET. The following encoding shall
+-- be applied for the non-decimal characters:
+-- 1011 (*), 1100 (#).
+
+-- CollectedInfo notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CollectedInfo ::= CHOICE
+{
+ collectedDigits [0] CollectedDigits
+}
+
+-- CorrelationID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+CorrelationID ::= Digits
+
+-- DestinationRoutingAddress notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+DestinationRoutingAddress ::=
+
+SEQUENCE SIZE (1) OF CalledPartyNumber
+
+-- DpSpecificCriteria notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+DpSpecificCriteria ::= CHOICE
+{
+ applicationTimer [1] ApplicationTimer
+}
+
+-- EventSpecificInformationBCSM notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+EventSpecificInformationBCSM ::= CHOICE
+{
+ routeSelectFailureSpecificInfo [2] SEQUENCE
+ {
+ failureCause [0] Cause OPTIONAL
+ },
+ oCalledPartyBusySpecificInfo [3] SEQUENCE
+ {
+ busyCause [0] Cause OPTIONAL
+ },
+ oNoAnswerSpecificInfo [4] SEQUENCE
+ {
+ foo INTEGER(0) OPTIONAL
+ },
+ oAnswerSpecificInfo [5] SEQUENCE
+ {
+ destinationAddress [50] CalledPartyNumber OPTIONAL,
+ or-Call [51] NULL OPTIONAL,
+ forwardedCall [52] NULL OPTIONAL
+ },
+ oDisconnectSpecificInfo [7] SEQUENCE
+ {
+ releaseCause [0] Cause OPTIONAL
+ },
+ tBusySpecificInfo [8] SEQUENCE
+ {
+ busyCause [0] Cause OPTIONAL,
+ callForwarded [50] NULL OPTIONAL,
+ routeNotPermitted [51] NULL OPTIONAL
+ },
+ tNoAnswerSpecificInfo [9] SEQUENCE
+ {
+ callForwarded [50] NULL OPTIONAL
+ },
+ tAnswerSpecificInfo [10] SEQUENCE
+ {
+ destinationAddress [50] CalledPartyNumber OPTIONAL,
+ or-Call [51] NULL OPTIONAL,
+ forwardedCall [52] NULL OPTIONAL
+ },
+ tDisconnectSpecificInfo [12] SEQUENCE
+ {
+ releaseCause [0] Cause OPTIONAL
+ }
+}
+
+-- EventSpecificInformationSMS notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventSpecificInformationSMS ::= CHOICE
+{
+ o-smsFailureSpecificInfo [0] SEQUENCE
+ {
+ failureCause [0] SMSCause OPTIONAL
+ },
+ o-smsSubmittedSpecificInfo [1] SEQUENCE
+ {
+ foo INTEGER(0) OPTIONAL
+ }
+}
+
+-- GapIndicators notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GapIndicators ::= SEQUENCE
+{
+ duration [0] Duration,
+ gapInterval [1] Interval
+}
+
+
+
+-- GapOnService notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GapOnService ::= SEQUENCE
+{
+ serviceKey [0] ServiceKey
+}
+
+
+
+-- GenericNumbers notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GenericNumbers ::=
+
+SET SIZE (1..5) OF GenericNumber
+
+-- GPRS-QoS notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+GPRS-QoS ::= CHOICE
+{
+ short-QoS-format [0] QoS-Subscribed,
+ long-QoS-format [1] Ext-QoS-Subscribed
+}
+
+-- GPRSEvent notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GPRSEvent ::= SEQUENCE
+{
+ gPRSEventType [0] GPRSEventType,
+ monitorMode [1] MonitorMode
+}
+
+-- GPRSMSClass notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+GPRSMSClass ::= SEQUENCE
+{
+ mSNetworkCapability [0] MSNetworkCapability,
+ mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL
+}
+
+-- InvokeID notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InvokeID ::= TCInvokeIdSet
+
+-- IPRoutingAddress notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+IPRoutingAddress ::= CalledPartyNumber
+
+-- QualityOfService notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+QualityOfService ::=
+ SEQUENCE
+{
+ requested-QoS [0] GPRS-QoS OPTIONAL,
+ subscribed-QoS [1] GPRS-QoS OPTIONAL,
+ negotiated-QoS [2] GPRS-QoS OPTIONAL
+}
+
+-- ReceivingSideID notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+ReceivingSideID ::= CHOICE
+{
+ receivingSideID [1] LegType
+}
+
+-- RequestedInformationTypeList notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformationTypeList ::=
+
+SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType
+
+-- RequestedInformationValue notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestedInformationValue ::= CHOICE
+{
+ callAttemptElapsedTimeValue [0] INTEGER (0..255),
+ callStopTimeValue [1] DateAndTime,
+ callConnectedElapsedTimeValue [2] Integer4,
+ releaseCauseValue [30] Cause
+}
+
+-- SendingSideID notes: not recursive, exported,
+-- locally refd 4 times, import refd 0 times
+SendingSideID ::= CHOICE
+{
+ sendingSideID [0] LegType
+}
+
+-- ServiceInteractionIndicatorsTwo notes: not recursive, exported,
+-- locally refd 5 times, import refd 0 times
+ServiceInteractionIndicatorsTwo ::= SEQUENCE
+{
+ forwardServiceInteractionInd [0] ForwardServiceInteractionInd OPTIONAL,
+ backwardServiceInteractionInd [1] BackwardServiceInteractionInd OPTIONAL,
+ bothwayThroughConnectionInd [2] BothwayThroughConnectionInd OPTIONAL,
+ connectedNumberTreatmentInd [4] ConnectedNumberTreatmentInd OPTIONAL,
+ nonCUGCall [13] NULL OPTIONAL,
+ holdTreatmentIndicator [50]
+
+ OCTET STRING (SIZE (1)) OPTIONAL,
+ cwTreatmentIndicator [51]
+
+ OCTET STRING (SIZE (1)) OPTIONAL,
+ ectTreatmentIndicator [52]
+
+ OCTET STRING (SIZE (1)) OPTIONAL
+}
+
+
+
+-- SMSEvent notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SMSEvent ::= SEQUENCE
+{
+ eventTypeSMS [0] EventTypeSMS,
+ monitorMode [1] MonitorMode
+}
+
+-- TimeInformation notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+TimeInformation ::= CHOICE
+{
+ timeIfNoTariffSwitch [0] TimeIfNoTariffSwitch,
+ timeIfTariffSwitch [1] TimeIfTariffSwitch
+}
+
+-- TimerValue notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+TimerValue ::= Integer4
+
+-- Tone notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Tone ::= SEQUENCE
+{
+ toneID [0] Integer4,
+ duration [1] Integer4 OPTIONAL
+}
+
+
+
+-- VariablePart notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+VariablePart ::= CHOICE
+{
+ integer [0] Integer4,
+ number [1] Digits,
+ time [2]
+ OCTET STRING (SIZE (2)),
+ date [3]
+ OCTET STRING (SIZE (4)),
+ price [4]
+ OCTET STRING (SIZE (4))
+}
+
+-- ApplyChargingReportArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ApplyChargingReportArg ::=
+
+
+OCTET STRING (SIZE (cAPSpecificBoundSetminCallResultLength..cAPSpecificBoundSetmaxCallResultLength))
+-- CallResult type
+
+
+-- CancelArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CancelArg ::=
+
+CHOICE
+{
+ invokeID [0] InvokeID,
+ allRequests [1] NULL
+}
+
+-- FurnishChargingInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+FurnishChargingInformationArg ::=
+
+
+OCTET STRING (SIZE (5..225))
+-- FCIBillingChargingCharacteristics type.
+
+-- ReleaseCallArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ReleaseCallArg ::=
+OCTET STRING (SIZE (minCauseLength..32))
+
+-- ReceivedInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ReceivedInformationArg ::=
+
+CHOICE
+{
+ digitsResponse [0] Digits
+}
+
+-- FurnishChargingInformationSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+FurnishChargingInformationSMSArg ::=
+
+
+OCTET STRING (SIZE (5..225))
+-- FCISMSBillingChargingCharacteristics type.
+
+
+-- ConnectGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectGPRSArg ::=
+
+ SEQUENCE
+{
+ accessPointName [0] AccessPointName,
+ pdpID [1] PDPId OPTIONAL
+}
+
+
+
+-- EntityReleasedGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EntityReleasedGPRSArg ::=
+
+ SEQUENCE
+{
+ gPRSCause [0] GPRSCause,
+ pDPID [1] PDPId OPTIONAL
+}
+
+-- FurnishChargingInformationGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+FurnishChargingInformationGPRSArg ::=
+
+
+OCTET STRING (SIZE (5..225))
+-- FCIGPRSBillingChargingCharacteristics type.
+-- Shall be the result of the BER-encoded value of type
+-- CamelFCIGPRSBillingChargingCharacteristics
+
+
+-- ReleaseGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ReleaseGPRSArg ::=
+
+ SEQUENCE
+{
+ gprsCause [0] GPRSCause,
+ pDPID [1] PDPId OPTIONAL
+}
+
+-- RequestReportGPRSEventArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestReportGPRSEventArg ::=
+
+ SEQUENCE
+{
+ gPRSEvent [0] GPRSEventArray,
+ pDPID [1] PDPId OPTIONAL
+}
+
+GPRSEventArray ::=
+ SEQUENCE SIZE (1..10) OF GPRSEvent
+
+-- SendChargingInformationGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SendChargingInformationGPRSArg ::=
+
+ SEQUENCE
+{
+ sCIGPRSBillingChargingCharacteristics [0] SCIGPRSBillingChargingCharacteristics
+}
+
+
+
+-- SubscriberState notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SubscriberState ::=
+CHOICE
+{
+ assumedIdle [0] NULL,
+ camelBusy [1] NULL,
+ netDetNotReachable NotReachableReason,
+ notProvidedFromVLR [2] NULL
+}
+
+-- PrivateExtensionList notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PrivateExtensionList ::=
+
+SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF PrivateExtension
+
+-- ISDN-AddressString notes: not recursive, exported,
+-- locally refd 9 times, import refd 0 times
+ISDN-AddressString ::=
+
+
+ OCTET STRING (SIZE(1..maxISDN-AddressLength))
+
+-- CellIdOrLAI notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CellIdOrLAI ::= CHOICE
+{
+ cellIdFixedLength [0] CellIdFixedLength,
+ laiFixedLength [1] LAIFixedLength
+}
+
+-- Ext-BasicServiceCode notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+Ext-BasicServiceCode ::= CHOICE
+{
+ ext-BearerService [2] Ext-BearerServiceCode,
+ ext-Teleservice [3] Ext-TeleserviceCode
+}
+
+-- LegID notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+LegID ::= CHOICE
+{
+ sendingSideID [0] LegType,
+ receivingSideID [1] LegType
+}
+
+-- AOCBeforeAnswer notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AOCBeforeAnswer ::= SEQUENCE
+{
+ aOCInitial [0] CAI-Gsm0224,
+ aOCSubsequent [1] AOCSubsequent OPTIONAL
+}
+
+-- AOCGprs notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AOCGprs ::= SEQUENCE
+{
+ aOCInitial [0] CAI-Gsm0224,
+ aOCSubsequent [1] AOCSubsequent OPTIONAL
+}
+
+-- BasicGapCriteria notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+BasicGapCriteria ::= CHOICE
+{
+ calledAddressValue [0] Digits,
+ gapOnService [2] GapOnService,
+ calledAddressAndService [29] SEQUENCE
+ {
+ calledAddressValue [0] Digits,
+ serviceKey [1] ServiceKey
+ },
+ callingAddressAndService [30] SEQUENCE
+ {
+ callingAddressValue [0] Digits,
+ serviceKey [1] ServiceKey
+ }
+}
+
+-- BCSMEvent notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+BCSMEvent ::= SEQUENCE
+{
+ eventTypeBCSM [0] EventTypeBCSM,
+ monitorMode [1] MonitorMode,
+ legID [2] LegID OPTIONAL,
+ dpSpecificCriteria [30] DpSpecificCriteria OPTIONAL
+}
+
+-- CAMEL-FCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CamelFCIBillingChargingCharacteristics ::= CHOICE
+{
+ fCIBCCCAMELsequence1 [0] SEQUENCE
+ {
+ freeFormatData [0] FreeFormatData,
+ partyToCharge [1] SendingSideID DEFAULT '01'H,
+ appendFreeFormatData [2] AppendFreeFormatData DEFAULT overwrite
+ }
+}
+
+-- CompoundCriteria notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CompoundCriteria ::= SEQUENCE
+{
+ basicGapCriteria [0] BasicGapCriteria,
+ scfID [1] ScfID OPTIONAL
+}
+
+-- GapCriteria notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GapCriteria ::= CHOICE
+{
+ basicGapCriteria BasicGapCriteria,
+ compoundGapCriteria CompoundCriteria
+}
+
+-- MessageID notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+MessageID ::= CHOICE
+{
+ elementaryMessageID [0] Integer4,
+ text [1] SEQUENCE
+ {
+ messageContent [0]
+
+ IA5String (SIZE (1..127)),
+ attributes [1]
+
+ OCTET STRING (SIZE (2..10)) OPTIONAL
+ },
+ elementaryMessageIDs [29]
+
+ SEQUENCE SIZE (1..16) OF Integer4,
+ variableMessage [30] SEQUENCE
+ {
+ elementaryMessageID [0] Integer4,
+ variableParts [1] VariablePartsArray
+ }
+}
+
+VariablePartsArray ::=
+ SEQUENCE SIZE (1..5) OF VariablePart
+
+-- RequestedInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformation ::= SEQUENCE
+{
+ requestedInformationType [0] RequestedInformationType,
+ requestedInformationValue [1] RequestedInformationValue
+}
+
+
+
+-- InitialDPArgExtension notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPArgExtension ::= SEQUENCE
+{
+ gmscAddress [0] ISDN-AddressString OPTIONAL
+}
+
+
+
+-- InbandInfo notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InbandInfo ::= SEQUENCE
+{
+ messageID [0] MessageID,
+ numberOfRepetitions [1] INTEGER (1..127) OPTIONAL,
+ duration [2] INTEGER (0..32767) OPTIONAL,
+ interval [3] INTEGER (0..32767) OPTIONAL
+}
+
+
+
+-- InformationToSend notes: not recursive, exported,
+-- locally refd 3 times, import refd 0 times
+InformationToSend ::= CHOICE
+{
+ inbandInfo [0] InbandInfo,
+ tone [1] Tone
+}
+
+-- LocationInformationGPRS notes: not recursive, exported,
+-- locally refd 6 times, import refd 0 times
+LocationInformationGPRS ::= SEQUENCE
+{
+ cellGlobalIdOrServiceAreaIdOrLAI [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ routeingAreaIdentity [1] RAIdentity OPTIONAL,
+ geographicalInformation [2] GeographicalInformation OPTIONAL,
+ sgsn-Number [3] ISDN-AddressString OPTIONAL,
+ selectedLSAIdentity [4] LSAIdentity OPTIONAL,
+ extensionContainer [5] ExtensionContainer OPTIONAL,
+ saiPresent [6] NULL OPTIONAL
+}
+
+CellGlobalIdOrServiceAreaIdOrLAI ::=
+
+OCTET STRING (SIZE (5..7))
+-- The 3GPP TS 29.078 standard, about cellGlobalIdOrServiceAreaIdOrLAI:
+-- "CellGlobalIdOrServiceAreaIdOrLAI and LSAIdentity are coded in accordance with
+-- 3GPP TS 29.002 [13].
+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
+-- a Service Area Identity."
+
+-- 3GPP TS 29.002 [13] gives the folowing coding for CellGlobalIdOrServiceAreaIdOrLAI:
+-- CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
+-- cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
+-- laiFixedLength [1] LAIFixedLength
+-- }
+--
+-- CellGlobalIdOrServiceAreaIdFixedLength ::=
+-- implement size < 8 --
+-- OCTET STRING (SIZE (7))
+-- This coding would disrupt the backward compatibillity, so the cellGlobalIdOrServiceAreaIdOrLAI
+-- parameter is set as an OCTET STRING, as it was in previous implementations.
+
+
+-- RequestedInformationList notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+RequestedInformationList ::=
+
+SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation
+
+-- LocationInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+LocationInformation ::= SEQUENCE
+{
+ ageOfLocationInformation AgeOfLocationInformation OPTIONAL,
+ geographicalInformation [0] GeographicalInformation OPTIONAL,
+ vlr-number [1] ISDN-AddressString OPTIONAL,
+ locationNumber [2] LocationNumber OPTIONAL,
+ cellIdOrLAI [3] CellIdOrLAI OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ selectedLSA-Id [5] LSAIdentity OPTIONAL,
+ msc-number [6] ISDN-AddressString OPTIONAL,
+ geodeticInformation [7] GeodeticInformation OPTIONAL,
+ currentLocationRetrieved [8] NULL OPTIONAL,
+ saiPresent [9] NULL OPTIONAL
+}
+
+
+GeodeticInformation ::=
+
+OCTET STRING (SIZE(10))
+
+
+-- GapTreatment notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GapTreatment ::= CHOICE
+{
+ informationToSend [0] InformationToSend,
+ releaseCause [1] Cause
+}
+
+-- GPRSEventSpecificInformation notes: not recursive, exported,
+-- locally refd 2 times, import refd 0 times
+GPRSEventSpecificInformation ::= CHOICE
+{
+ attachChangeOfPositionSpecificInformation [0] SEQUENCE
+ {
+ locationInformationGPRS [0] LocationInformationGPRS OPTIONAL
+ },
+ pdp-ContextchangeOfPositionSpecificInformation [1] SEQUENCE
+ {
+ accessPointName [0] AccessPointName OPTIONAL,
+ chargingID [1] GPRSChargingID OPTIONAL,
+ locationInformationGPRS [2] LocationInformationGPRS OPTIONAL,
+ pDPType [3] PDPType OPTIONAL,
+ qualityOfService [4] QualityOfService OPTIONAL,
+ timeAndTimeZone [5] TimeAndTimezone OPTIONAL,
+ gGSNAddress [6] GSNAddress OPTIONAL
+ },
+ detachSpecificInformation [2] SEQUENCE
+ {
+ inititatingEntity [0] InitiatingEntity OPTIONAL,
+ routeingAreaUpdate [1] NULL OPTIONAL
+ },
+ disconnectSpecificInformation [3] SEQUENCE
+ {
+ inititatingEntity [0] InitiatingEntity OPTIONAL,
+ routeingAreaUpdate [1] NULL OPTIONAL
+ },
+ pDPContextEstablishmentSpecificInformation [4] SEQUENCE
+ {
+ accessPointName [0] AccessPointName OPTIONAL,
+ pDPType [1] PDPType OPTIONAL,
+ qualityOfService [2] QualityOfService OPTIONAL,
+ locationInformationGPRS [3] LocationInformationGPRS OPTIONAL,
+ timeAndTimeZone [4] TimeAndTimezone OPTIONAL,
+ pDPInitiationType [5] PDPInitiationType OPTIONAL,
+ secondaryPDPContext [6] NULL OPTIONAL
+ },
+ pDPContextEstablishmentAcknowledgementSpecificInformation [5] SEQUENCE
+ {
+ accessPointName [0] AccessPointName OPTIONAL,
+ chargingID [1] GPRSChargingID OPTIONAL,
+ pDPType [2] PDPType OPTIONAL,
+ qualityOfService [3] QualityOfService OPTIONAL,
+ locationInformationGPRS [4] LocationInformationGPRS OPTIONAL,
+ timeAndTimeZone [5] TimeAndTimezone OPTIONAL,
+ gGSNAddress [6] GSNAddress OPTIONAL
+ }
+}
+
+-- EventReportGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventReportGPRSArg ::=
+
+ SEQUENCE
+{
+ gPRSEventType [0] GPRSEventType,
+ miscGPRSInfo [1] MiscCallInfo OPTIONAL,
+ gPRSEventSpecificInformation [2] GPRSEventSpecificInformation OPTIONAL,
+ pDPID [3] PDPId OPTIONAL
+}
+
+-- SupportedExtensionsid notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SupportedExtensionsid ::= Code
+-- Creation d'un nouveau type : NomObjetClasse-NomChampsClasse --
+
+
+-- ExtensionField notes: not recursive, exported,
+-- locally refd 24 times, import refd 0 times
+ExtensionField ::= SEQUENCE
+{
+ type SupportedExtensionsid,
+ criticality CriticalityType DEFAULT ignore,
+ value [1] SupportedExtensionsExtensionType
+}
+
+
+
+-- ApplyChargingArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ApplyChargingArg ::=
+
+ SEQUENCE
+{
+ aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics,
+ partyToCharge [2] SendingSideID DEFAULT '01'H,
+ extensions [3] ExtensionsArray OPTIONAL
+}
+
+ExtensionsArray ::=
+ SEQUENCE SIZE (1..10) OF ExtensionField
+
+
+
+-- AssistRequestInstructionsArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+AssistRequestInstructionsArg ::=
+
+ SEQUENCE
+{
+ correlationID [0] CorrelationID,
+ iPSSPCapabilities [2] IPSSPCapabilities,
+ extensions [3] ExtensionsArray OPTIONAL
+}
+
+
+
+-- CallInformationRequestArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallInformationRequestArg ::=
+
+ SEQUENCE
+{
+ requestedInformationTypeList [0] RequestedInformationTypeList,
+ extensions [2] ExtensionsArray OPTIONAL,
+ legID [3] SendingSideID OPTIONAL
+}
+
+
+
+-- ConnectArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectArg ::=
+
+ SEQUENCE
+{
+ destinationRoutingAddress [0] DestinationRoutingAddress,
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL,
+ extensions [10] ExtensionsArray OPTIONAL,
+ carrier [11] Carrier OPTIONAL,
+ callingPartysCategory [28] CallingPartysCategory OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ genericNumbers [14] GenericNumbers OPTIONAL,
+ serviceInteractionIndicatorsTwo [15] ServiceInteractionIndicatorsTwo OPTIONAL,
+ chargeNumber [19] ChargeNumber OPTIONAL,
+ cug-Interlock [31] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [32] NULL OPTIONAL,
+ suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
+ oCSIApplicable [56] OCSIApplicable OPTIONAL,
+ naOliInfo [57] NAOliInfo OPTIONAL
+}
+
+
+
+-- ConnectToResourceArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectToResourceArg ::=
+
+ SEQUENCE
+{
+ resourceAddress CHOICE
+ {
+ ipRoutingAddress [0] IPRoutingAddress,
+ none [3] NULL
+ },
+ extensions [4] ExtensionsArray OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL
+}
+
+
+
+-- ContinueWithArgumentArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ContinueWithArgumentArg ::=
+
+ SEQUENCE
+{
+ alertingPattern [1] AlertingPattern OPTIONAL,
+ extensions [6] ExtensionsArray OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ callingPartysCategory [12] CallingPartysCategory OPTIONAL,
+ genericNumbers [16] GenericNumbers OPTIONAL,
+ cug-Interlock [17] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [18] NULL OPTIONAL,
+ chargeNumber [50] ChargeNumber OPTIONAL,
+ carrier [52] Carrier OPTIONAL,
+ suppressionOfAnnouncement [55] SuppressionOfAnnouncement OPTIONAL,
+ naOliInfo [56] NAOliInfo OPTIONAL
+}
+
+
+
+-- EstablishTemporaryConnectionArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EstablishTemporaryConnectionArg ::=
+
+ SEQUENCE
+{
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions [4] ExtensionsArray OPTIONAL,
+ carrier [5] Carrier OPTIONAL,
+ serviceInteractionIndicatorsTwo [6] ServiceInteractionIndicatorsTwo OPTIONAL,
+ naOliInfo [50] NAOliInfo OPTIONAL,
+ chargeNumber [51] ChargeNumber OPTIONAL
+}
+
+
+
+-- EventReportBCSMArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventReportBCSMArg ::=
+
+ SEQUENCE
+{
+ eventTypeBCSM [0] EventTypeBCSM,
+ eventSpecificInformationBCSM [2] EventSpecificInformationBCSM OPTIONAL,
+ legID [3] ReceivingSideID OPTIONAL,
+ miscCallInfo [4] MiscCallInfo OPTIONAL,
+ extensions [5] ExtensionsArray OPTIONAL
+}
+
+
+
+-- ResetTimerArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ResetTimerArg ::=
+
+ SEQUENCE
+{
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] ExtensionsArray OPTIONAL
+}
+
+
+
+-- SendChargingInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+SendChargingInformationArg ::=
+
+ SEQUENCE
+{
+ sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics,
+ partyToCharge [1] SendingSideID,
+ extensions [2] ExtensionsArray OPTIONAL
+}
+
+
+
+-- EventReportSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+EventReportSMSArg ::=
+
+ SEQUENCE
+{
+ eventTypeSMS [0] EventTypeSMS,
+ eventSpecificInformationSMS [1] EventSpecificInformationSMS OPTIONAL,
+ miscCallInfo [2] MiscCallInfo OPTIONAL,
+ extensions [10] ExtensionsArray OPTIONAL
+}
+
+
+
+-- RequestReportSMSEventArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestReportSMSEventArg ::=
+
+ SEQUENCE
+{
+ sMSEvents [0] SMSEventArray,
+ extensions [10] ExtensionsArray OPTIONAL
+}
+
+SMSEventArray ::=
+ SEQUENCE SIZE (1..10) OF SMSEvent
+
+
+
+-- ResetTimerSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ResetTimerSMSArg ::=
+
+ SEQUENCE
+{
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue,
+ extensions [2] ExtensionsArray OPTIONAL
+}
+
+
+
+-- CAMEL-AChBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CamelAChBillingChargingCharacteristics ::= CHOICE
+{
+ timeDurationCharging [0] SEQUENCE
+ {
+ maxCallPeriodDuration [0] INTEGER (1..864000),
+ releaseIfdurationExceeded [1] BOOLEAN DEFAULT FALSE,
+ tariffSwitchInterval [2] INTEGER (1..86400) OPTIONAL,
+ tone [3] BOOLEAN DEFAULT FALSE,
+ extensions [4] ExtensionsArray OPTIONAL
+ }
+}
+
+-- CAMEL-CallResult notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CamelCallResult ::= CHOICE
+{
+ timeDurationChargingResult [0] SEQUENCE
+ {
+ partyToCharge [0] ReceivingSideID,
+ timeInformation [1] TimeInformation,
+ callActive [2] BOOLEAN DEFAULT TRUE,
+ callReleasedAtTcpExpiry [3] NULL OPTIONAL,
+ extensions [4] ExtensionsArray OPTIONAL
+ }
+}
+
+-- RequestReportBCSMEventArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+RequestReportBCSMEventArg ::=
+
+ SEQUENCE
+{
+ bcsmEvents [0] BCSMEventArray,
+ extensions [2] ExtensionsArray OPTIONAL
+}
+
+BCSMEventArray ::=
+ SEQUENCE SIZE (1..10) OF BCSMEvent
+
+
+
+-- ConnectSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+ConnectSMSArg ::=
+
+ SEQUENCE
+{
+ callingPartysNumber [0] ISDN-AddressString OPTIONAL,
+ destinationSubscriberNumber [1] CalledPartyBCDNumber OPTIONAL,
+ sMSCAddress [2] ISDN-AddressString OPTIONAL,
+ extensions [10] ExtensionsArray OPTIONAL
+}
+
+
+-- CallInformationReportArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallInformationReportArg ::=
+
+ SEQUENCE
+{
+ requestedInformationList [0] RequestedInformationList,
+ extensions [2] ExtensionsArray OPTIONAL,
+ legID [3] ReceivingSideID OPTIONAL
+}
+
+
+
+-- PlayAnnouncementArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PlayAnnouncementArg ::=
+
+ SEQUENCE
+{
+ informationToSend [0] InformationToSend,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE,
+ extensions [3] ExtensionsArray OPTIONAL
+}
+
+
+
+-- PromptAndCollectUserInformationArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+PromptAndCollectUserInformationArg ::=
+
+ SEQUENCE
+{
+ collectedInfo [0] CollectedInfo,
+ disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE,
+ informationToSend [2] InformationToSend OPTIONAL,
+ extensions [3] ExtensionsArray OPTIONAL
+}
+
+
+
+-- InitialDPGPRSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPGPRSArg ::=
+
+ SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ gPRSEventType [1] GPRSEventType,
+ mSISDN [2] ISDN-AddressString,
+ iMSI [3] Imsi,
+ timeAndTimeZone [4] TimeAndTimezone,
+ gPRSMSClass [5] GPRSMSClass OPTIONAL,
+ pDPType [6] PDPType OPTIONAL,
+ qualityOfService [7] QualityOfService OPTIONAL,
+ accessPointName [8] AccessPointName OPTIONAL,
+ routeingAreaIdentity [9] RAIdentity OPTIONAL,
+ chargingID [10] GPRSChargingID OPTIONAL,
+ sGSNCapabilities [11] SGSNCapabilities OPTIONAL,
+ locationInformationGPRS [12] LocationInformationGPRS OPTIONAL,
+ pDPInitiationType [13] PDPInitiationType OPTIONAL,
+ extensions [14] ExtensionsArray OPTIONAL,
+ gGSNAddress [15] GSNAddress OPTIONAL,
+ secondaryPDPContext [16] NULL OPTIONAL
+}
+
+
+
+-- CallGapArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+CallGapArg ::=
+
+ SEQUENCE
+{
+ gapCriteria [0] GapCriteria,
+ gapIndicators [1] GapIndicators,
+ controlType [2] ControlType OPTIONAL,
+ gapTreatment [3] GapTreatment OPTIONAL,
+ extensions [4] ExtensionsArray OPTIONAL
+}
+
+
+
+-- InitialDPArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPArg ::=
+
+ SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ calledPartyNumber [2] CalledPartyNumber OPTIONAL,
+ callingPartyNumber [3] CallingPartyNumber OPTIONAL,
+ callingPartysCategory [5] CallingPartysCategory OPTIONAL,
+ cGEncountered [7] CGEncountered OPTIONAL,
+ iPSSPCapabilities [8] IPSSPCapabilities OPTIONAL,
+ locationNumber [10] LocationNumber OPTIONAL,
+ originalCalledPartyID [12] OriginalCalledPartyID OPTIONAL,
+ extensions [15] ExtensionsArray OPTIONAL,
+ highLayerCompatibility [23] HighLayerCompatibility OPTIONAL,
+ additionalCallingPartyNumber [25] AdditionalCallingPartyNumber OPTIONAL,
+ bearerCapability [27] BearerCapability OPTIONAL,
+ eventTypeBCSM [28] EventTypeBCSM OPTIONAL,
+ redirectingPartyID [29] RedirectingPartyID OPTIONAL,
+ redirectionInformation [30] RedirectionInformation OPTIONAL,
+ cause [17] Cause OPTIONAL,
+ serviceInteractionIndicatorsTwo [32] ServiceInteractionIndicatorsTwo OPTIONAL,
+ carrier [37] Carrier OPTIONAL,
+ cug-Index [45] CUG-Index OPTIONAL,
+ cug-Interlock [46] CUG-Interlock OPTIONAL,
+ cug-OutgoingAccess [47] NULL OPTIONAL,
+ iMSI [50] Imsi OPTIONAL,
+ subscriberState [51] SubscriberState OPTIONAL,
+ locationInformation [52] LocationInformation OPTIONAL,
+ ext-basicServiceCode [53] Ext-BasicServiceCode OPTIONAL,
+ callReferenceNumber [54] CallReferenceNumber OPTIONAL,
+ mscAddress [55] ISDN-AddressString OPTIONAL,
+ calledPartyBCDNumber [56] CalledPartyBCDNumber OPTIONAL,
+ timeAndTimezone [57] TimeAndTimezone OPTIONAL,
+ gsm-ForwardingPending [58] NULL OPTIONAL,
+ initialDPArgExtension [59] InitialDPArgExtension OPTIONAL
+}
+
+
+
+-- InitialDPSMSArg notes: not recursive, exported,
+-- locally refd 1 times, import refd 0 times
+InitialDPSMSArg ::=
+
+ SEQUENCE
+{
+ serviceKey [0] ServiceKey,
+ destinationSubscriberNumber [1] CalledPartyBCDNumber OPTIONAL,
+ callingPartyNumber [2] ISDN-AddressString OPTIONAL,
+ eventTypeSMS [3] EventTypeSMS OPTIONAL,
+ iMSI [4] Imsi OPTIONAL,
+ locationInformationMSC [5] LocationInformation OPTIONAL,
+ locationInformationGPRS [6] LocationInformationGPRS OPTIONAL,
+ sMSCAddress [7] ISDN-AddressString OPTIONAL,
+ timeAndTimezone [8] TimeAndTimezone OPTIONAL,
+ tPShortMessageSubmissionSpecificInfo [9] TPShortMessageSubmissionInfo OPTIONAL,
+ tPProtocolIdentifier [10] TPProtocolIdentifier OPTIONAL,
+ tPDataCodingScheme [11] TPDataCodingScheme OPTIONAL,
+ tPValidityPeriod [12] TPValidityPeriod OPTIONAL,
+ extensions [13] ExtensionsArray OPTIONAL,
+ smsReferenceNumber [14] CallReferenceNumber OPTIONAL,
+ mscAddress [15] ISDN-AddressString OPTIONAL,
+ sgsnNumber [16] ISDN-AddressString OPTIONAL
+}
+
+
+
+-- ExtensionContainer notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ExtensionContainer ::= SEQUENCE
+{
+ privateExtensionList [0] PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1] PCS-Extensions OPTIONAL
+}
+
+
+
+-- CAMEL-SCIBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+CamelSCIBillingChargingCharacteristics ::= CHOICE
+{
+ aOCBeforeAnswer [0] AOCBeforeAnswer,
+ aOCAfterAnswer [1] AOCSubsequent
+}
+
+-- CAMEL-SCIGPRSBillingChargingCharacteristics notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+CamelSCIGPRSBillingChargingCharacteristics ::=
+
+ SEQUENCE
+{
+ aOCGPRS [0] AOCGprs,
+ pDPID [1] PDPId OPTIONAL
+}
+
+-- ReleaseSMSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ReleaseSMSArg ::=
+
+
+OCTET STRING (SIZE (1))
+
+-- ApplyChargingGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ApplyChargingGPRSArg ::=
+
+
+SEQUENCE
+{
+ chargingCharacteristics [0] ChargingCharacteristics,
+ tariffSwitchInterval [1] INTEGER (1..86400) OPTIONAL,
+ pDPID [2] PDPId OPTIONAL
+}
+
+-- ApplyChargingReportGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ApplyChargingReportGPRSArg ::=
+
+ SEQUENCE
+{
+ chargingResult [0] ChargingResult,
+ qualityOfService [1] QualityOfService OPTIONAL,
+ active [2] BOOLEAN DEFAULT TRUE,
+ pDPID [3] PDPId OPTIONAL,
+ chargingRollOver [4] ChargingRollOver OPTIONAL
+}
+
+-- CancelGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+CancelGPRSArg ::=
+
+ SEQUENCE
+{
+ pDPID [0] PDPId OPTIONAL
+}
+
+-- ContinueGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ContinueGPRSArg ::=
+
+ SEQUENCE
+{
+ pDPID [0] PDPId OPTIONAL
+}
+
+-- ResetTimerGPRSArg notes: not recursive, exported,
+-- locally refd 0 times, import refd 0 times
+ResetTimerGPRSArg ::=
+
+ SEQUENCE
+{
+ timerID [0] TimerID DEFAULT tssf,
+ timervalue [1] TimerValue
+}
+
+
+-- #############################
+-- Definition of range constants
+-- #############################
+
+leg1 LegType ::= '01'H
+leg2 LegType ::= '02'H
+
+minCauseLength INTEGER ::= 2
+numOfInfoItems INTEGER ::= 4
+
+opcode-initialDP Code ::= 0
+opcode-assistRequestInstructions Code ::= 16
+opcode-establishTemporaryConnection Code ::= 17
+opcode-disconnectForwardConnection Code ::= 18
+opcode-connectToResource Code ::= 19
+opcode-connect Code ::= 20
+opcode-releaseCall Code ::= 22
+opcode-requestReportBCSMEvent Code ::= 23
+opcode-eventReportBCSM Code ::= 24
+opcode-continue Code ::= 31
+opcode-continueWithArgument Code ::= 56
+opcode-resetTimer Code ::= 33
+opcode-furnishChargingInformation Code ::= 34
+opcode-applyCharging Code ::= 35
+opcode-applyChargingReport Code ::= 36
+opcode-callGap Code ::= 41
+opcode-callInformationReport Code ::= 44
+opcode-callInformationRequest Code ::= 45
+opcode-sendChargingInformation Code ::= 46
+opcode-playAnnouncement Code ::= 47
+opcode-promptAndCollectUserInformation Code ::= 48
+opcode-specializedResourceReport Code ::= 49
+opcode-cancel Code ::= 53
+opcode-activityTest Code ::= 55
+opcode-initialDPSMS Code ::= 60
+opcode-furnishChargingInformationSMS Code ::= 61
+opcode-connectSMS Code ::= 62
+opcode-requestReportSMSEvent Code ::= 63
+opcode-eventReportSMS Code ::= 64
+opcode-continueSMS Code ::= 65
+opcode-releaseSMS Code ::= 66
+opcode-resetTimerSMS Code ::= 67
+opcode-activityTestGPRS Code ::= 70
+opcode-applyChargingGPRS Code ::= 71
+opcode-applyChargingReportGPRS Code ::= 72
+opcode-cancelGPRS Code ::= 73
+opcode-connectGPRS Code ::= 74
+opcode-continueGPRS Code ::= 75
+opcode-entityReleasedGPRS Code ::= 76
+opcode-furnishChargingInformationGPRS Code ::= 77
+opcode-initialDPGPRS Code ::= 78
+opcode-releaseGPRS Code ::= 79
+opcode-eventReportGPRS Code ::= 80
+opcode-requestReportGPRSEvent Code ::= 81
+opcode-resetTimerGPRS Code ::= 82
+opcode-sendChargingInformationGPRS Code ::= 83
+
+errcode-canceled Code ::= 0
+errcode-cancelFailed Code ::= 1
+errcode-eTCFailed Code ::= 3
+errcode-improperCallerResponse Code ::= 4
+errcode-missingCustomerRecord Code ::= 6
+errcode-missingParameter Code ::= 7
+errcode-parameterOutOfRange Code ::= 8
+errcode-requestedInfoError Code ::= 10
+errcode-systemFailure Code ::= 11
+errcode-taskRefused Code ::= 12
+errcode-unavailableResource Code ::= 13
+errcode-unexpectedComponentSequence Code ::= 14
+errcode-unexpectedDataValue Code ::= 15
+errcode-unexpectedParameter Code ::= 16
+errcode-unknownLegID Code ::= 17
+errcode-unknownPDPId Code ::= 50
+
+maxNumOfPrivateExtensions INTEGER ::= 10
+maxISDN-AddressLength INTEGER ::= 9
+maxAddressLength INTEGER ::= 20
+highLayerCompatibilityLength INTEGER ::= 2
+cAPSpecificBoundSetminAccessPointNameLength INTEGER ::= 1
+cAPSpecificBoundSetmaxAccessPointNameLength INTEGER ::= 100
+cAPSpecificBoundSetminAChBillingChargingLength INTEGER ::= 5
+cAPSpecificBoundSetmaxAChBillingChargingLength INTEGER ::= 177
+cAPSpecificBoundSetminAttributesLength INTEGER ::= 2
+cAPSpecificBoundSetmaxAttributesLength INTEGER ::= 10
+cAPSpecificBoundSetmaxBearerCapabilityLength INTEGER ::= 11
+cAPSpecificBoundSetminCalledPartyBCDNumberLength INTEGER ::= 1
+cAPSpecificBoundSetmaxCalledPartyBCDNumberLength INTEGER ::= 41
+cAPSpecificBoundSetminCalledPartyNumberLength INTEGER ::= 2
+cAPSpecificBoundSetmaxCalledPartyNumberLength INTEGER ::= 18
+cAPSpecificBoundSetminCallingPartyNumberLength INTEGER ::= 2
+cAPSpecificBoundSetmaxCallingPartyNumberLength INTEGER ::= 10
+cAPSpecificBoundSetminCallResultLength INTEGER ::= 12
+cAPSpecificBoundSetmaxCallResultLength INTEGER ::= 186
+cAPSpecificBoundSetminCarrierLength INTEGER ::= 4
+cAPSpecificBoundSetmaxCarrierLength INTEGER ::= 4
+cAPSpecificBoundSetmaxCauseLength INTEGER ::= 32
+cAPSpecificBoundSetminDigitsLength INTEGER ::= 2
+cAPSpecificBoundSetmaxDigitsLength INTEGER ::= 16
+cAPSpecificBoundSetminFCIBillingChargingDataLength INTEGER ::= 1
+cAPSpecificBoundSetmaxFCIBillingChargingDataLength INTEGER ::= 160
+cAPSpecificBoundSetminFCIBillingChargingLength INTEGER ::= 5
+cAPSpecificBoundSetmaxFCIBillingChargingLength INTEGER ::= 225
+cAPSpecificBoundSetminGenericNumberLength INTEGER ::= 3
+cAPSpecificBoundSetmaxGenericNumberLength INTEGER ::= 11
+cAPSpecificBoundSetminIPSSPCapabilitiesLength INTEGER ::= 1
+cAPSpecificBoundSetmaxIPSSPCapabilitiesLength INTEGER ::= 4
+cAPSpecificBoundSetminLocationNumberLength INTEGER ::= 2
+cAPSpecificBoundSetmaxLocationNumberLength INTEGER ::= 10
+cAPSpecificBoundSetminMessageContentLength INTEGER ::= 1
+cAPSpecificBoundSetmaxMessageContentLength INTEGER ::= 127
+cAPSpecificBoundSetminOriginalCalledPartyIDLength INTEGER ::= 2
+cAPSpecificBoundSetmaxOriginalCalledPartyIDLength INTEGER ::= 10
+cAPSpecificBoundSetminpDPAddressLength INTEGER ::= 1
+cAPSpecificBoundSetmaxpDPAddressLength INTEGER ::= 63
+cAPSpecificBoundSetminRedirectingPartyIDLength INTEGER ::= 2
+cAPSpecificBoundSetmaxRedirectingPartyIDLength INTEGER ::= 10
+cAPSpecificBoundSetminScfIDLength INTEGER ::= 2
+cAPSpecificBoundSetmaxScfIDLength INTEGER ::= 10
+cAPSpecificBoundSetminSCIBillingChargingLength INTEGER ::= 4
+cAPSpecificBoundSetmaxSCIBillingChargingLength INTEGER ::= 124
+cAPSpecificBoundSetminTimeAndTimezoneLength INTEGER ::= 8
+cAPSpecificBoundSetmaxTimeAndTimezoneLength INTEGER ::= 8
+cAPSpecificBoundSetnumOfBCSMEvents INTEGER ::= 10
+cAPSpecificBoundSetnumOfSMSEvents INTEGER ::= 10
+cAPSpecificBoundSetnumOfGPRSEvents INTEGER ::= 10
+cAPSpecificBoundSetnumOfExtensions INTEGER ::= 10
+cAPSpecificBoundSetnumOfGenericNumbers INTEGER ::= 5
+cAPSpecificBoundSetnumOfMessageIDs INTEGER ::= 16
+
+
+END
+
+
diff --git a/asn1/camel/camel.cnf b/asn1/camel/camel.cnf
new file mode 100644
index 0000000000..0027e1b8bb
--- /dev/null
+++ b/asn1/camel/camel.cnf
@@ -0,0 +1,20 @@
+# inap.cnf
+# inap conformation file
+
+# $Id$
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+
+#.PDU
+
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+
diff --git a/asn1/camel/packet-camel-template.c b/asn1/camel/packet-camel-template.c
new file mode 100644
index 0000000000..2eeebf9038
--- /dev/null
+++ b/asn1/camel/packet-camel-template.c
@@ -0,0 +1,657 @@
+/* packet-camel-template.c
+ * Routines for Camel
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
+ * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * References: ETSI 300 374
+ */
+/*
+ * Indentation logic: this file is indented with 2 spaces indentation.
+ * there are no tabs.
+ */
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/conversation.h>
+#include <epan/tap.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-ber.h"
+#include "packet-camel.h"
+#include "packet-q931.h"
+#include "packet-e164.h"
+#include "packet-isup.h"
+
+#define PNAME "Camel"
+#define PSNAME "CAMEL"
+#define PFNAME "camel"
+
+/* Initialize the protocol and registered fields */
+int proto_camel = -1;
+static int hf_camel_invokeCmd = -1; /* Opcode */
+static int hf_camel_invokeid = -1; /* INTEGER */
+static int hf_camel_absent = -1; /* NULL */
+static int hf_camel_invokeId = -1; /* InvokeId */
+static int hf_camel_invoke = -1; /* InvokePDU */
+static int hf_camel_returnResult = -1; /* InvokePDU */
+static int hf_camel_returnResult_result = -1;
+static int hf_camel_getPassword = -1;
+static int hf_camel_currentPassword = -1;
+#include "packet-camel-hf.c"
+static guint global_tcap_itu_ssn = 0;
+
+/* Initialize the subtree pointers */
+static gint ett_camel = -1;
+static gint ett_camel_InvokeId = -1;
+static gint ett_camel_InvokePDU = -1;
+static gint ett_camel_ReturnResultPDU = -1;
+static gint ett_camel_ReturnResult_result = -1;
+static gint ett_camel_camelPDU = -1;
+static gint ett_camelisup_parameter = -1;
+#include "packet-camel-ett.c"
+
+static int hf_camel_nature_of_number = -1;
+static int hf_camel_number_plan = -1;
+static int hf_camel_cause_indicator = -1;
+
+/* Preference settings default */
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+static range_t *ssn_range;
+dissector_handle_t camel_handle;
+
+/* Global variables */
+
+int application_context_version;
+
+static int dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
+
+static char*
+unpack_digits(tvbuff_t *tvb, int offset){
+
+ int length;
+ guint8 octet;
+ int i=0;
+ char *digit_str;
+
+ length = tvb_length(tvb);
+ length = length - offset;
+ digit_str = g_malloc(length+1);
+
+ while ( offset < length ){
+ octet = tvb_get_guint8(tvb,offset);
+ digit_str[i] = ((octet & 0x0f) + 0x30);
+ i++;
+
+ /*
+ * unpack second value in byte
+ */
+ octet = octet >> 4;
+
+ if (octet == 0x0f) /* odd number bytes - hit filler */
+ break;
+
+ digit_str[i] = ((octet & 0x0f) + 0x30);
+ i++;
+ offset++;
+
+ }
+ digit_str[i]= '\0';
+ return digit_str;
+}
+
+static const true_false_string camel_extension_value = {
+ "No Extension",
+ "Extension"
+};
+static const value_string camel_nature_of_number_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "International Number" },
+ { 0x02, "National Significant Number" },
+ { 0x03, "Network Specific Number" },
+ { 0x04, "Subscriber Number" },
+ { 0x05, "Reserved" },
+ { 0x06, "Abbreviated Number" },
+ { 0x07, "Reserved for extension" },
+ { 0, NULL }
+};
+static const value_string camel_number_plan_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
+ { 0x02, "spare" },
+ { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
+ { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
+ { 0x05, "spare" },
+ { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
+ { 0x07, "spare" },
+ { 0x08, "National Numbering" },
+ { 0x09, "Private Numbering" },
+ { 0x0f, "Reserved for extension" },
+ { 0, NULL }
+};
+
+/* End includes from old" packet-camel.c */
+
+#include "packet-camel-fn.c"
+
+const value_string camel_opr_code_strings[] = {
+
+ {0, "InitialDP"},
+ {16, "AssistRequestInstructions"},
+ {17, "EstablishTemporaryConnection"},
+ {18, "DisconnectForwardConnection"},
+ {19, "ConnectToResource"},
+ {20, "Connect"},
+ {22, "ReleaseCall"},
+ {23, "RequestReportBCSMEvent"},
+ {24, "EventReportBCSM"},
+ {31, "Continue"},
+ {33, "ResetTimer"},
+ {34, "FurnishChargingInformation"},
+ {35, "ApplyCharging"},
+ {36, "ApplyChargingReport"},
+ {41, "CallGap"},
+ {44, "CallInformationReport"},
+ {45, "CallInformationRequest"},
+ {46, "SendChargingInformation"},
+ {47, "PlayAnnouncement"},
+ {48, "PromptAndCollectUserInformation"},
+ {49, "SpecializedResourceReport"},
+ {53, "Cancel"},
+ {55, "ActivityTest"},
+ {56, "ContinueWithArgument"},
+ {60, "InitialDPSMS"},
+ {61, "FurnishChargingInformationSMS"},
+ {62, "ConnectSMS"},
+ {63, "RequestReportSMSEvent"},
+ {64, "EventReportSMS"},
+ {65, "ContinueSMS"},
+ {66, "ReleaseSMS"},
+ {67, "ResetTimerSMS"},
+ {70, "ActivityTestGPRS"},
+ {71, "ApplyChargingGPRS"},
+ {72, "ApplyChargingReportGPRS"},
+ {73, "CancelGPRS"},
+ {74, "ConnectGPRS"},
+ {75, "ContinueGPRS"},
+ {76, "EntityReleasedGPRS"},
+ {77, "FurnishChargingInformationGPRS"},
+ {78, "InitialDPGPRS"},
+ {79, "ReleaseGPRS"},
+ {80, "EventReportGPRS"},
+ {81, "RequestReportGPRSEvent"},
+ {82, "ResetTimerGPRS"},
+ {83, "SendChargingInformationGPRS"}
+};
+
+
+static guint32 opcode=0;
+
+static int
+dissect_camel_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ /* Add Camel Opcode to INFO column */
+ col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, camel_opr_code_strings, "Unknown Camel (%u)"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, " ");
+ }
+ return offset;
+}
+
+static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ switch(opcode){
+ case 0: /*InitialDP*/
+ offset=dissect_camel_InitialDPArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 16: /*AssistRequestInstructions*/
+ offset=dissect_camel_AssistRequestInstructionsArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 17: /*EstablishTemporaryConnection*/
+ offset=dissect_camel_EstablishTemporaryConnectionArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 18: /*DisconnectForwardConnections*/
+ proto_tree_add_text(tree, tvb, offset, -1, "Disconnect Forward Connection");
+ break;
+ case 19: /*ConnectToResource*/
+ offset=dissect_camel_ConnectToResourceArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 20: /*Connect*/
+ offset=dissect_camel_ConnectArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 22: /*releaseCall*/
+ offset=dissect_camel_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 23: /*RequestReportBCSMEvent*/
+ offset=dissect_camel_RequestReportBCSMEventArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 24: /*EventReportBCSM*/
+ offset=dissect_camel_EventReportBCSMArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 31: /*Continue*/
+ /* Continue: no arguments - do nothing */
+ break;
+ case 33: /*ResetTimer*/
+ offset=dissect_camel_ResetTimerArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 34: /*FurnishChargingInformation*/
+ offset=dissect_camel_FurnishChargingInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 35: /*ApplyCharging*/
+ offset=dissect_camel_ApplyChargingArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 36: /*ApplyChargingReport*/
+ offset=dissect_camel_ApplyChargingReportArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 41: /*CallGap*/
+ offset=dissect_camel_CallGapArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 44: /*CallInformationReport*/
+ offset=dissect_camel_CallInformationReportArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 45: /*CallInformationRequest*/
+ offset=dissect_camel_CallInformationRequestArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 46: /*SendChargingInformation*/
+ offset=dissect_camel_SendChargingInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 47: /*PlayAnnouncement*/
+ offset=dissect_camel_PlayAnnouncementArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 48: /*PromptAndCollectUserInformation*/
+ offset=dissect_camel_PromptAndCollectUserInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 49: /*SpecializedResourceReport*/
+ offset=dissect_camel_SpecializedResourceReportArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 53: /*Cancel*/
+ offset=dissect_camel_CancelArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 56: /*ContinueWithArgument*/
+ offset=dissect_camel_ContinueWithArgumentArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 60: /*InitialDPSMS*/
+ offset=dissect_camel_InitialDPSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 61: /*FurnishChargingInformationSMS*/
+ offset=dissect_camel_FurnishChargingInformationSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 62: /*ConnectSMS*/
+ offset=dissect_camel_ConnectSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 63: /*RequestReportSMSEvent*/
+ offset=dissect_camel_RequestReportSMSEventArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 64: /*EventReportSMS*/
+ offset=dissect_camel_EventReportSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 65: /*ContinueSMS*/
+ /* ContinueSMS: no arguments - do nothing */
+ break;
+ case 66: /*ReleaseSMS*/
+ offset=dissect_camel_ReleaseSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 67: /*ResetTimerSMS*/
+ offset=dissect_camel_ResetTimerSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 71: /*ApplyChargingGPRS*/
+ offset=dissect_camel_ApplyChargingGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 73: /*CancelGPRS*/
+ offset=dissect_camel_CancelGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 74: /*ConnectGPRS*/
+ offset=dissect_camel_ConnectGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 75: /*ContinueGPRS*/
+ offset=dissect_camel_ContinueGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 77: /*FurnishChargingInformationGPRS*/
+ offset=dissect_camel_FurnishChargingInformationGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 78: /*InitialDPGPRS*/
+ offset=dissect_camel_InitialDPGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 79: /*ReleaseGPRS*/
+ offset=dissect_camel_ReleaseGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 81: /*RequestReportGPRSEvent*/
+ offset=dissect_camel_RequestReportGPRSEventArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 82: /*ResetTimerGPRS*/
+ offset=dissect_camel_ResetTimerGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 83: /*SendChargingInformationGPRS*/
+ offset=dissect_camel_SendChargingInformationGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
+ /* todo call the asn.1 dissector */
+ }
+ return offset;
+}
+
+
+static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ switch(opcode){
+ case 48: /*PromptAndCollectUserInformation*/
+ offset=dissect_camel_ReceivedInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 55: /*ActivityTest*/
+ /* ActivityTest: no arguments - do nothing */
+ break;
+ case 70: /*ActivityTestGPRS*/
+ /* ActivityTestGPRS: no arguments - do nothing */
+ break;
+ case 72: /*ApplyChargingReportGPRS*/
+ offset=dissect_camel_ApplyChargingReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 76: /*EntityReleasedGPRS*/
+ offset=dissect_camel_EntityReleasedGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 80: /*EventReportGPRS*/
+ offset=dissect_camel_EventReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
+ }
+ return offset;
+}
+
+static int
+dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_camel_Opcode(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeCmd);
+}
+
+static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_camel_invokeid, NULL);
+}
+
+
+static const value_string InvokeId_vals[] = {
+ { 0, "invokeid" },
+ { 1, "absent" },
+ { 0, NULL }
+};
+
+static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_camel_NULL(FALSE, tvb, offset, pinfo, tree, hf_camel_absent);
+}
+
+static const ber_choice_t InvokeId_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_camel_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ InvokeId_choice, hf_index, ett_camel_InvokeId);
+
+ return offset;
+}
+static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_camel_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeId);
+}
+
+static const ber_sequence_t InvokePDU_sequence[] = {
+ { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
+ { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_camel_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ InvokePDU_sequence, hf_index, ett_camel_InvokePDU);
+
+ return offset;
+}
+static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_camel_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_camel_invoke);
+}
+
+static const ber_sequence_t ReturnResult_result_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
+ { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
+ { 0, 0, 0, NULL }
+};
+static int
+dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
+ ReturnResult_result_sequence, hf_camel_returnResult_result, ett_camel_ReturnResult_result);
+
+ return offset;
+}
+
+static const ber_sequence_t ReturnResultPDU_sequence[] = {
+ { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_camel_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ ReturnResultPDU_sequence, hf_index, ett_camel_ReturnResultPDU);
+
+ return offset;
+}
+static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_camel_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_camel_returnResult);
+}
+
+static const value_string camelPDU_vals[] = {
+ { 1, "Invoke " },
+ { 2, "ReturnResult " },
+ { 3, "ReturnError " },
+ { 4, "Reject " },
+ { 0, NULL }
+};
+
+static const ber_choice_t camelPDU_choice[] = {
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
+#ifdef REMOVED
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
+#endif
+ { 0, 0, 0, 0, NULL }
+};
+
+static guint8 camel_pdu_type = 0;
+static guint8 camel_pdu_size = 0;
+
+static int
+dissect_camel_camelPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+
+ char *version_ptr, *version_str;
+
+ opcode = 0;
+ application_context_version = 0;
+ if (pinfo->private_data != NULL){
+ version_ptr = strrchr(pinfo->private_data,'.');
+ version_str = g_strdup(version_ptr+1);
+ application_context_version = atoi(version_str);
+ }
+
+ camel_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+ /* Get the length and add 2 */
+ camel_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ /* Populate the info column with PDU type*/
+ col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(camel_pdu_type, camelPDU_vals, "Unknown Camel (%u)"));
+ }
+
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ camelPDU_choice, hf_index, ett_camel_camelPDU);
+
+ return offset;
+}
+
+static void
+dissect_camel(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ gint op_idx;
+ gchar *str = NULL;
+
+ if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel");
+ }
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, FALSE);
+ tree = proto_item_add_subtree(item, ett_camel);
+ }
+
+ dissect_camel_camelPDU(FALSE, tvb, 0, pinfo, tree, -1);
+
+}
+
+/*--- proto_reg_handoff_camel ---------------------------------------*/
+static void range_delete_callback(guint32 ssn)
+{
+ if (ssn) {
+ dissector_delete("tcap.itu_ssn", ssn, camel_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn) {
+ dissector_add("tcap.itu_ssn", ssn, camel_handle);
+ }
+}
+
+void proto_reg_handoff_camel(void) {
+
+ static int camel_prefs_initialized = FALSE;
+
+ if (!camel_prefs_initialized) {
+ camel_prefs_initialized = TRUE;
+ camel_handle = create_dissector_handle(dissect_camel, proto_camel);
+ } else {
+ range_foreach(ssn_range, range_delete_callback);
+ }
+
+ g_free(ssn_range);
+ ssn_range = range_copy(global_ssn_range);
+
+ range_foreach(ssn_range, range_add_callback);
+
+}
+
+void proto_register_camel(void) {
+ module_t *camel_module;
+ /* List of fields */
+ static hf_register_info hf[] = {
+ { &hf_camel_cause_indicator, /* Currently not enabled */
+ { "Cause indicator", "camel.cause_indicator",
+ FT_UINT8, BASE_DEC, VALS(q850_cause_code_vals), 0x7f,
+ "", HFILL }},
+ { &hf_camel_invokeCmd,
+ { "invokeCmd", "camel.invokeCmd",
+ FT_UINT32, BASE_DEC, VALS(camel_opr_code_strings), 0,
+ "InvokePDU/invokeCmd", HFILL }},
+ { &hf_camel_invokeid,
+ { "invokeid", "camel.invokeid",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "InvokeId/invokeid", HFILL }},
+ { &hf_camel_absent,
+ { "absent", "camel.absent",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InvokeId/absent", HFILL }},
+ { &hf_camel_invokeId,
+ { "invokeId", "camel.invokeId",
+ FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
+ "InvokePDU/invokeId", HFILL }},
+ { &hf_camel_invoke,
+ { "invoke", "camel.invoke",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "camelPDU/invoke", HFILL }},
+ { &hf_camel_returnResult,
+ { "returnResult", "camel.returnResult",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "camelPDU/returnResult", HFILL }},
+#ifdef REMOVED
+ { &hf_camel_extension,
+ { "Extension", "camel.extension",
+ FT_BOOLEAN, 8, TFS(&camel_extension_value), 0x80,
+ "Extension", HFILL }},
+ { &hf_camel_nature_of_number,
+ { "Nature of number", "gsm_map.nature_of_number",
+ FT_UINT8, BASE_HEX, VALS(camel_nature_of_number_values), 0x70,
+ "Nature of number", HFILL }},
+ { &hf_camel_number_plan,
+ { "Number plan", "camel.number_plan",
+ FT_UINT8, BASE_HEX, VALS(camel_number_plan_values), 0x0f,
+ "Number plan", HFILL }},
+ { &hf_camel_digits,
+ { "Address digits", "camel.address_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Address digits", HFILL }},
+#endif
+#include "packet-camel-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_camel,
+ &ett_camel_InvokeId,
+ &ett_camel_InvokePDU,
+ &ett_camel_ReturnResultPDU,
+ &ett_camel_ReturnResult_result,
+ &ett_camel_camelPDU,
+ &ett_camelisup_parameter,
+#include "packet-camel-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_camel = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ proto_register_field_array(proto_camel, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ /* Register our configuration options, particularly our ssn:s */
+ /* Set default SSNs */
+ range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
+ ssn_range = range_empty();
+
+ camel_module = prefs_register_protocol(proto_camel, proto_reg_handoff_camel);
+
+ prefs_register_range_preference(camel_module, "tcap.ssn",
+ "TCAP SSNs",
+ "TCAP Subsystem numbers used for Camel",
+ &global_ssn_range, MAX_SSN);
+}
+
diff --git a/asn1/camel/packet-camel-template.h b/asn1/camel/packet-camel-template.h
new file mode 100644
index 0000000000..3e37f640f4
--- /dev/null
+++ b/asn1/camel/packet-camel-template.h
@@ -0,0 +1,43 @@
+/* packet-camel-template.h
+ * Routines for Camel
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
+ * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * References: ETSI 300 374
+ */
+/*
+ * Indentation logic: this file is indented with 2 spaces indentation.
+ * there are no tabs.
+ */
+
+
+#ifndef PACKET_camel_H
+#define PACKET_camel_H
+
+/* Defines for the camel taps */
+#define camel_MAX_NUM_OPR_CODES 256
+
+
+ETH_VAR_IMPORT const value_string camel_opr_code_strings[];
+static int dissect_camel_DestinationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_);
+/* #include "packet-camel-exp.h"*/
+
+#endif /* PACKET_camel_H */ \ No newline at end of file