aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/qsig
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-07-20 09:54:47 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-07-20 09:54:47 +0000
commit3b5c406f8c7c950fca9bf812c1e0e2dafcf529cb (patch)
treef8c4df9b93883649dc11f2339e7d8fff464faf56 /asn1/qsig
parent5e290061f2690d39bad202179927049601bb4ca5 (diff)
QSIG fully implemented
svn path=/trunk/; revision=22361
Diffstat (limited to 'asn1/qsig')
-rw-r--r--asn1/qsig/Makefile2
-rw-r--r--asn1/qsig/Makefile.nmake4
-rw-r--r--asn1/qsig/QSIG-AOC.asn307
-rw-r--r--asn1/qsig/QSIG-CC.asn177
-rw-r--r--asn1/qsig/QSIG-CF.asn253
-rw-r--r--asn1/qsig/QSIG-CI.asn178
-rw-r--r--asn1/qsig/QSIG-CIDL.asn80
-rw-r--r--asn1/qsig/QSIG-CINT.asn154
-rw-r--r--asn1/qsig/QSIG-CMN.asn145
-rw-r--r--asn1/qsig/QSIG-CO.asn104
-rw-r--r--asn1/qsig/QSIG-CPI.asn69
-rw-r--r--asn1/qsig/QSIG-CT.asn231
-rw-r--r--asn1/qsig/QSIG-DND.asn213
-rw-r--r--asn1/qsig/QSIG-MCM.asn401
-rw-r--r--asn1/qsig/QSIG-MCR.asn171
-rw-r--r--asn1/qsig/QSIG-MID.asn131
-rw-r--r--asn1/qsig/QSIG-NA.asn137
-rw-r--r--asn1/qsig/QSIG-PR.asn171
-rw-r--r--asn1/qsig/QSIG-PUMCH.asn137
-rw-r--r--asn1/qsig/QSIG-PUMR.asn207
-rw-r--r--asn1/qsig/QSIG-RE.asn64
-rw-r--r--asn1/qsig/QSIG-SD.asn91
-rw-r--r--asn1/qsig/QSIG-SMS.asn341
-rw-r--r--asn1/qsig/QSIG-SSCT.asn122
-rw-r--r--asn1/qsig/QSIG-WTMAU.asn156
-rw-r--r--asn1/qsig/QSIG-WTMCH.asn140
-rw-r--r--asn1/qsig/QSIG-WTMLR.asn124
-rw-r--r--asn1/qsig/packet-qsig-template.c351
-rw-r--r--asn1/qsig/qsig-exp.cnf459
-rw-r--r--asn1/qsig/qsig-gf-ade.asn4
-rw-r--r--asn1/qsig/qsig-gf-ext.asn2
-rw-r--r--asn1/qsig/qsig-gf-gp.asn2
-rw-r--r--asn1/qsig/qsig.cnf59
33 files changed, 4924 insertions, 263 deletions
diff --git a/asn1/qsig/Makefile b/asn1/qsig/Makefile
index e3bf97377f..81e1879b46 100644
--- a/asn1/qsig/Makefile
+++ b/asn1/qsig/Makefile
@@ -7,7 +7,7 @@ all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2wrs.py packet-qsig-template.c packet-qsig-template.h qsig.cnf
- python ../../tools/asn2wrs.py -b -T -X -e -p qsig -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn qsig-na.asn qsig-cf.asn
+ python ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
diff --git a/asn1/qsig/Makefile.nmake b/asn1/qsig/Makefile.nmake
index 954ae38801..c6a806f321 100644
--- a/asn1/qsig/Makefile.nmake
+++ b/asn1/qsig/Makefile.nmake
@@ -8,7 +8,7 @@ UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=qsig
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
-QSIG_ASN=qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn qsig-na.asn qsig-cf.asn
+QSIG_ASN=qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
all: generate_dissector
@@ -16,7 +16,7 @@ generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2wrs.py $(QSIG_ASN) packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
- $(PYTHON) "../../tools/asn2wrs.py" -b -T -X -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(QSIG_ASN)
+ $(PYTHON) "../../tools/asn2wrs.py" -e -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(QSIG_ASN)
!ELSE
@echo Error: You need Python to use asn2wrs.py
@exit 1
diff --git a/asn1/qsig/QSIG-AOC.asn b/asn1/qsig/QSIG-AOC.asn
new file mode 100644
index 0000000000..c072884715
--- /dev/null
+++ b/asn1/qsig/QSIG-AOC.asn
@@ -0,0 +1,307 @@
+-- QSIG-AOC.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-212, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-212.htm
+--
+-- $Id$
+--
+
+SS-AOC-Operations-asn1-97
+{iso (1) standard (0) pss1-advice-of-charge (15050) advice-of-charge-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) } ;
+
+AOC-Operations OPERATION ::= { chargeRequest | getFinalCharge | aocFinal | aocInterim | aocRate |
+ aocComplete | aocDivChargeReq }
+
+aocRate OPERATION ::= {
+ ARGUMENT AocRateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 63}
+
+AocRateArg ::= SEQUENCE {
+ aocRate CHOICE {
+ chargeNotAvailable NULL,
+ aocSCurrencyInfoList AOCSCurrencyInfoList
+ },
+ rateArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+aocInterim OPERATION ::= {
+ ARGUMENT AocInterimArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 62}
+
+AocInterimArg ::= SEQUENCE {
+ interimCharge CHOICE {
+ chargeNotAvailable [0] IMPLICIT NULL,
+ freeOfCharge [1] IMPLICIT NULL,
+ specificCurrency SEQUENCE {
+ recordedCurrency [1] IMPLICIT RecordedCurrency,
+ interimBillingId[2] IMPLICIT InterimBillingId OPTIONAL }
+ },
+ interimArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+aocFinal OPERATION ::= {
+ ARGUMENT AocFinalArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 61}
+
+AocFinalArg ::= SEQUENCE {
+ finalCharge CHOICE {
+ chargeNotAvailable [0] IMPLICIT NULL,
+ freeOfCharge [1] IMPLICIT NULL,
+ specificCurrency SEQUENCE {
+ recordedCurrency [1] IMPLICIT RecordedCurrency,
+ finalBillingId[2] IMPLICIT FinalBillingId OPTIONAL }
+ },
+ chargingAssociation ChargingAssociation OPTIONAL,
+ finalArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+AOCSCurrencyInfoList ::= SEQUENCE SIZE(1..10) OF AOCSCurrencyInfo
+
+AOCSCurrencyInfo ::= SEQUENCE {
+ chargedItem ChargedItem,
+ rateType CHOICE {
+ durationCurrency [1] IMPLICIT DurationCurrency,
+ flatRateCurrency [2] IMPLICIT FlatRateCurrency,
+ volumeRateCurrency [3] IMPLICIT VolumeRateCurrency,
+ specialChargingCode SpecialChargingCode,
+ freeOfCharge [4] IMPLICIT NULL,
+ currencyInfoNotAvailable [5] IMPLICIT NULL,
+ freeOfChargefromBeginning [6] IMPLICIT NULL
+ } }
+ChargedItem ::= ENUMERATED {
+ basicCommunication (0),
+ callAttempt (1),
+ callSetup (2),
+ userToUserInfo (3),
+ operationOfSupplementaryServ (4) }
+
+DurationCurrency ::= SEQUENCE {
+ dCurrency [1] IMPLICIT Currency,
+ dAmount [2] IMPLICIT Amount,
+ dChargingType [3] IMPLICIT ChargingType,
+ dTime [4] IMPLICIT Time,
+ dGranularity [5] IMPLICIT Time OPTIONAL }
+
+FlatRateCurrency ::= SEQUENCE {
+ fRCurrency [1] IMPLICIT Currency,
+ fRAmount [2] IMPLICIT Amount }
+
+VolumeRateCurrency ::= SEQUENCE {
+ vRCurrency [1] IMPLICIT Currency,
+ vRAmount [2] IMPLICIT Amount,
+ vRVolumeUnit [3] IMPLICIT VolumeUnit
+ }
+
+SpecialChargingCode ::= INTEGER (1..10)
+
+RecordedCurrency ::= SEQUENCE {
+ rCurrency [1] IMPLICIT Currency,
+ rAmount [2] IMPLICIT Amount }
+
+InterimBillingId ::= ENUMERATED {
+ normalCharging (0),
+ creditCardCharging (2) }
+
+FinalBillingId ::= ENUMERATED {
+ normalCharging (0),
+ creditCardCharging (2),
+ callForwardingUnconditional (3),
+ callForwardingBusy (4),
+ callForwardingNoReply (5),
+ callDeflection (6),
+ callTransfer (7) }
+
+Currency ::= IA5String (SIZE (0..10))
+ -- SIZE(0) shall indicate the default currency of the PISN
+ -- The representation of other currencies is outside the scope of this standard
+
+Amount ::= SEQUENCE {
+ currencyAmount [1] IMPLICIT CurrencyAmount,
+ multiplier [2] IMPLICIT Multiplier }
+
+CurrencyAmount ::= INTEGER (0..16777215)
+Multiplier ::= ENUMERATED {
+ oneThousandth (0),
+ oneHundredth (1),
+ oneTenth (2),
+ one (3),
+ ten (4),
+ hundred (5),
+ thousand (6) }
+
+Time ::= SEQUENCE {
+ lengthOfTimeUnit [1] IMPLICIT LengthOfTimeUnit,
+ scale [2] IMPLICIT Scale }
+
+LengthOfTimeUnit ::= INTEGER (0..16777215)
+
+Scale ::= ENUMERATED {
+ oneHundredthSecond (0),
+ oneTenthSecond (1),
+ oneSecond (2),
+ tenSeconds (3),
+ oneMinute (4),
+ oneHour (5),
+ twentyFourHours (6) }
+
+VolumeUnit ::= ENUMERATED {
+ octet (0),
+ segment (1),
+ message (2) }
+
+ChargingType ::= ENUMERATED {
+ continuousCharging (0),
+ stepFunction (1) }
+
+ChargingAssociation ::= CHOICE {
+ chargeNumber [0] PartyNumber,
+ chargeIdentifier ChargeIdentifier }
+
+ChargeIdentifier ::= INTEGER (-32768..32767)
+
+chargeRequest OPERATION ::= {
+ ARGUMENT ChargeRequestArg
+ RESULT ChargeRequestRes
+ ERRORS {
+ freeOfCharge |
+ supplementaryServiceInteractionNotAllowed |
+ notAvailable | unspecified }
+ CODE local: 59}
+
+getFinalCharge OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 60}
+
+ChargeRequestArg ::= SEQUENCE {
+ adviceModeCombinations SEQUENCE SIZE(0..7) OF
+ AdviceModeCombination,
+ chargeReqArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+ChargeRequestRes ::= SEQUENCE {
+ adviceModeCombination AdviceModeCombination,
+ chargeReqResExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+AdviceModeCombination ::= ENUMERATED { -- advice mode combination
+ rate (0), -- charge rate provision
+ rateInterim (1), -- charge rate and interim charge provision
+ rateFinal (2), -- charge rate and final charge provision
+ interim (3), -- interim charge provision
+ final (4), -- final charge provision
+ interimFinal (5), -- interim charge and final charge provision
+ rateInterimFinal (6)} -- charge rate, interim charge and final
+ -- charge provision
+
+DummyArg ::= CHOICE{
+ none NULL,
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
+ }
+
+
+-- The following OPERATION applies for the interaction with Call Transfer
+
+aocComplete OPERATION ::= {
+ ARGUMENT AocCompleteArg
+ RESULT AocCompleteRes
+ ERRORS {supplementaryServiceInteractionNotAllowed}
+ CODE local: 64}
+
+AocCompleteArg ::= SEQUENCE {
+ chargedUser PartyNumber,
+ chargingAssociation ChargingAssociation OPTIONAL,
+ completeArgExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension{{AOCExtSet}} } OPTIONAL
+ }
+
+AocCompleteRes::= SEQUENCE {
+ chargingOption ChargingOption,
+ completeResExtension CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
+ } OPTIONAL
+ }
+
+ChargingOption ::= ENUMERATED{
+ aocFreeOfCharge (0),
+ aocContinueCharging (1),
+ aocStopCharging (2)
+ }
+
+-- The following OPERATION applies for the interaction with Call Diversion
+
+aocDivChargeReq OPERATION::= {
+ ARGUMENT AocDivChargeReqArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 65}
+
+
+AocDivChargeReqArg ::= SEQUENCE {
+ divertingUser PartyNumber,
+ chargingAssociation ChargingAssociation OPTIONAL,
+ diversionType DiversionType,
+ aocDivChargeReqArgExt CHOICE {
+ extension [1] IMPLICIT Extension{{AOCExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
+ } OPTIONAL
+ }
+
+
+DiversionType ::= ENUMERATED {
+ callForwardingUnconditional (0),
+ callForwardingBusy (1),
+ callForwardingNoReply (2),
+ callDeflection (3) }
+
+AOCExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{AOCExtSet}}
+ CODE local: 1008}
+
+freeOfCharge ERROR ::= { CODE local: 1016}
+
+END -- of SS-AOC-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CC.asn b/asn1/qsig/QSIG-CC.asn
new file mode 100644
index 0000000000..01eeb391a9
--- /dev/null
+++ b/asn1/qsig/QSIG-CC.asn
@@ -0,0 +1,177 @@
+-- QSIG-CC.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-186, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-186.htm
+--
+-- $Id$
+--
+
+SS-CC-Operations-asn1-97 { iso (1) standard (0) pss1-call-completion (13870) operations-asn1-97 (1)}
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+IMPORTS
+ OPERATION,
+ ERROR
+FROM Remote-Operations-Information-Objects
+{ joint-iso-itu-t remote-operations (4) informationObjects(5) version1 (0)}
+
+ EXTENSION, Extension{}
+FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso( 1) standard( 0) pss1-generic-procedures( 11582) msi-class-asn1-97( 11) }
+
+ PSS1InformationElement
+FROM PSS1-generic-parameters-definition-asn1-97
+ { iso standard pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97(17)}
+
+ PartyNumber,
+ PartySubaddress,
+ PresentedNumberUnscreened
+FROM Addressing-Data-Elements-asn1-97
+ {iso standard pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20)}
+
+supplementaryServiceInteractionNotAllowed
+FROM General-Error-List
+ { ccitt (0) recommendation (0) q 950 general-error-list (1) } ;
+
+CC-Operations OPERATION ::= {ccbsRequest | ccnrRequest | ccCancel | ccExecPossible | ccPathReserve |
+ ccRingout | ccSuspend | ccResume }
+
+ ccbsRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS{
+ shortTermRejection |
+ longTermRejection |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed
+ }
+ CODE local: 40
+ }
+
+ ccnrRequest OPERATION ::= {
+ ARGUMENT CcRequestArg
+ RESULT CcRequestRes
+ ERRORS{
+ shortTermRejection |
+ longTermRejection |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed
+ }
+ CODE local: 27
+ }
+
+ ccCancel OPERATION ::= {
+ ARGUMENT CcOptionalArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 28
+ }
+
+ ccExecPossible OPERATION ::= {
+ ARGUMENT CcOptionalArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 29
+ }
+
+ ccPathReserve OPERATION ::= {
+ ARGUMENT CcExtension
+ RESULT CcExtension
+ ERRORS {
+ remoteUserBusyAgain |
+ failureToMatch |
+ failedDueToInterworking |
+ unspecified
+ }
+ CODE local: 30
+ }
+
+ ccRingout OPERATION ::= {
+ ARGUMENT CcExtension
+ RETURN RESULT FALSE
+ ERRORS{
+ remoteUserBusyAgain |
+ failureToMatch |
+ unspecified
+ }
+ ALWAYS RESPONDS FALSE
+ CODE local: 31
+ }
+
+ ccSuspend OPERATION ::= {
+ ARGUMENT CcExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 32
+ }
+
+ ccResume OPERATION ::= {
+ ARGUMENT CcExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 33
+ }
+
+-- TYPE DEFINITIONS FOR CC DATA TYPES FOLLOW
+CcRequestArg ::= SEQUENCE {
+ numberA PresentedNumberUnscreened,
+ numberB PartyNumber,
+ service PSS1InformationElement,
+ -- permitted information elements are:
+ -- Bearer capability; Low layer compatibility; High layer compatibility
+ subaddrA [10] PartySubaddress OPTIONAL,
+ subaddrB [11] PartySubaddress OPTIONAL,
+ can-retain-service [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ retain-sig-connection [13] IMPLICIT BOOLEAN OPTIONAL,
+ -- TRUE: signalling connection to be retained;
+ -- FALSE: signalling connection to be released;
+ -- omission: release or retain signalling connection--
+ extension CcExtension OPTIONAL
+ }
+
+CcRequestRes ::= SEQUENCE{
+ no-path-reservation [0] IMPLICIT BOOLEAN DEFAULT FALSE,
+ retain-service [1] IMPLICIT BOOLEAN DEFAULT FALSE,
+ extension CcExtension OPTIONAL
+ }
+
+CcOptionalArg ::= CHOICE{
+ fullArg [0] IMPLICIT SEQUENCE {
+ numberA PartyNumber,
+ numberB PartyNumber,
+ service PSS1InformationElement,
+ -- permitted information elements are:
+ --Bearer capability;
+ -- Low layer compatibility;
+ -- High layer compatibility.
+ subaddrA [10] PartySubaddress OPTIONAL,
+ subaddrB [11] PartySubaddress OPTIONAL,
+ extension CcExtension OPTIONAL
+ },
+ extArg CcExtension
+ }
+
+CcExtension ::= CHOICE {
+ none NULL,
+ single [14] IMPLICIT Extension{{CCExtSet}},
+ multiple [15] IMPLICIT SEQUENCE OF Extension{{CCExtSet}}
+ }
+
+CCExtSet EXTENSION ::= {...}
+
+-- DEFINITIONS FOR ERRORS FOLLOW
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{CCExtSet}}
+ CODE local: 1008
+ }
+
+shortTermRejection ERROR ::= { CODE local: 1010}
+longTermRejection ERROR ::= { CODE local: 1011}
+remoteUserBusyAgain ERROR ::= { CODE local: 1012}
+failureToMatch ERROR ::= { CODE local: 1013}
+failedDueToInterworking ERROR ::= { CODE local: 1014}
+
+
+END -- of SS-CC-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CF.asn b/asn1/qsig/QSIG-CF.asn
new file mode 100644
index 0000000000..6256978eae
--- /dev/null
+++ b/asn1/qsig/QSIG-CF.asn
@@ -0,0 +1,253 @@
+-- QSIG-CF.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-174, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-174.htm
+--
+-- $Id$
+--
+
+Call-Diversion-Operations-asn1-97
+ { iso (1) standard (0) pss1-call-diversion (13873) call-diversion-operations-asn1-97 (1) }
+
+ DEFINITIONS EXPLICIT TAGS ::=
+
+ BEGIN
+
+ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t remote-operations (4) informationObjects(5) version1(0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97 (17)
+}
+
+ Address, PartyNumber, PartySubaddress, PresentedNumberScreened,
+ PresentedNumberUnscreened, PresentationAllowedIndicator FROM
+ Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20)
+}
+
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1) }
+
+ userNotSubscribed, notAvailable, invalidServedUserNr, basicServiceNotProvided,
+ resourceUnavailable, supplementaryServiceInteractionNotAllowed FROM
+ General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) };
+
+Call-Diversion-Operations OPERATION ::= {activateDiversionQ | deactivateDiversionQ | interrogateDiversionQ |
+checkRestriction | callRerouteing | divertingLegInformation1 | divertingLegInformation2 | divertingLegInformation3 |
+cfnrDivertedLegFailed}
+
+ activateDiversionQ OPERATION ::={
+ -- Sent from the Activating PINX to the Served User PINX
+ ARGUMENT SEQUENCE
+ { procedure Procedure,
+ basicService BasicService,
+ divertedToAddress Address,
+ servedUserNr PartyNumber,
+ activatingUserNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}},
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS { userNotSubscribed | notAvailable | invalidServedUserNr |
+ basicServiceNotProvided | resourceUnavailable | invalidDivertedToNr |
+ specialServiceNr | diversionToServedUserNr | temporarilyUnavailable |
+ notAuthorized | unspecified }
+ CODE local: 15}
+
+ deactivateDiversionQ OPERATION ::={
+ -- Sent from the Deactivating PINX to the Served User PINX
+ ARGUMENT SEQUENCE
+ { procedure Procedure,
+ basicService BasicService,
+ servedUserNr PartyNumber,
+ deactivatingUserNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL }
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS {userNotSubscribed | notAvailable| invalidServedUserNr |
+ temporarilyUnavailable | notAuthorized | unspecified }
+ CODE local: 16}
+
+ interrogateDiversionQ OPERATION ::={
+ -- Sent from the Interrogating PINX to the Served User PINX
+ ARGUMENT SEQUENCE
+ { procedure Procedure,
+ basicService BasicService DEFAULT allServices,
+ servedUserNr PartyNumber,
+ interrogatingUserNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RESULT IntResultList
+ ERRORS {userNotSubscribed | notAvailable | invalidServedUserNr |
+ temporarilyUnavailable | notAuthorized | unspecified }
+ CODE local: 17}
+
+ checkRestriction OPERATION ::={
+ -- Sent from the Served User PINX to the Diverted-to PINX
+ ARGUMENT SEQUENCE
+ { servedUserNr PartyNumber,
+ basicService BasicService,
+ divertedToNr PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL }
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}},
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS {notAvailable | invalidServedUserNr |
+ invalidDivertedToNr | specialServiceNr | unspecified }
+ CODE local: 18}
+
+ callRerouteing OPERATION ::={
+ -- Sent from the Served User PINX to the Rerouteing PINX
+ ARGUMENT SEQUENCE
+ { rerouteingReason DiversionReason,
+ originalRerouteingReason [0] IMPLICIT DiversionReason OPTIONAL,
+ calledAddress Address,
+ diversionCounter INTEGER (1..15),
+ pSS1InfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility, Low
+ -- layer compatibity and Progress indicator can be embedded in the
+ -- pSS1InfoElement in accordance with 6.5.3.1.5.
+
+ lastRerouteingNr [1] PresentedNumberUnscreened,
+ subscriptionOption [2] IMPLICIT SubscriptionOption,
+ callingPartySubaddress [3] PartySubaddress OPTIONAL,
+ callingNumber [4] PresentedNumberScreened,
+ callingName [5] Name OPTIONAL,
+ originalCalledNr [6] PresentedNumberUnscreened OPTIONAL,
+ redirectingName [7] Name OPTIONAL,
+ originalCalledName [8] Name OPTIONAL,
+ extension CHOICE {
+ single [9] IMPLICIT Extension{{DiversionExtensionSet}},
+ multiple[10] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RESULT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ ERRORS {userNotSubscribed | notAvailable | resourceUnavailable |
+ invalidDivertedToNr | specialServiceNr | diversionToServedUserNr |
+ numberOfDiversionsExceeded |
+ supplementaryServiceInteractionNotAllowed | unspecified }
+ -- The error value numberOfDiversionsExceeded applies only in case of partial rerouteing.
+ CODE local: 19}
+
+ divertingLegInformation1 OPERATION ::={
+ -- Sent from the Rerouteing PINX to the Originating PINX
+ ARGUMENT SEQUENCE
+ { diversionReason DiversionReason,
+ subscriptionOption SubscriptionOption,
+ nominatedNr PartyNumber,
+ extension CHOICE {
+ single [9] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 20}
+
+ divertingLegInformation2 OPERATION ::={
+ -- Sent from the Rerouteing PINX to the Diverted-to PINX
+ ARGUMENT SEQUENCE
+ { diversionCounter INTEGER (1..15),
+ diversionReason DiversionReason,
+ originalDiversionReason [0] IMPLICIT DiversionReason OPTIONAL,
+ divertingNr [1] PresentedNumberUnscreened OPTIONAL,
+ originalCalledNr [2] PresentedNumberUnscreened OPTIONAL,
+ redirectingName [3] Name OPTIONAL,
+ originalCalledName [4] Name OPTIONAL,
+ extension CHOICE {
+ single [5] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[6] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL
+}
+ -- The divertingNr element is mandatory except in the case of interworking.
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 21}
+
+ divertingLegInformation3 OPERATION ::={
+ -- Sent from the Diverted-to PINX to the Originating PINX
+ ARGUMENT SEQUENCE
+ { presentationAllowedIndicator PresentationAllowedIndicator,
+ redirectionName [0] Name OPTIONAL,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} } OPTIONAL }
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 22}
+
+ cfnrDivertedLegFailed OPERATION ::={
+ -- Sent from the Rerouteing PINX to the Served User PINX
+ -- This indicates that the diverted-to leg has been cleared during SS-CFNR execution.
+ ARGUMENT CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF Extension{{DiversionExtensionSet}} }
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 23}
+
+-- Definitions of general used data types:
+ DiversionReason ::= ENUMERATED { unknown (0), cfu (1), cfb (2), cfnr (3)}
+ -- The value unknown is only used if received from another network when interworking.
+
+ IntResultList ::= SET SIZE (0..29) OF IntResult
+ IntResult ::= SEQUENCE {
+ servedUserNr PartyNumber,
+ basicService BasicService,
+ procedure Procedure,
+ divertedToAddress Address,
+ remoteEnabled BOOLEAN DEFAULT FALSE,
+ extension CHOICE {
+ single [1] IMPLICIT
+ Extension{{DiversionExtensionSet}} ,
+ multiple[2] IMPLICIT SEQUENCE OF
+ Extension{{DiversionExtensionSet}} }
+ OPTIONAL }
+ Procedure ::= ENUMERATED { cfu (0), cfb (1), cfnr (2) }
+ SubscriptionOption ::= ENUMERATED {
+ noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2) }
+
+ BasicService ::= ENUMERATED {
+ allServices (0),
+ speech (1),
+ unrestrictedDigitalInformation (2),
+ audio3100Hz (3),
+ telephony (32),
+ teletex (33),
+ telefaxGroup4Class1 (34),
+ videotexSyntaxBased (35),
+ videotelephony (36) }
+
+ DiversionExtensionSet EXTENSION ::= {...}
+ invalidDivertedToNr ERROR ::= {CODE local: 12}
+ specialServiceNr ERROR ::= {CODE local: 14}
+ diversionToServedUserNr ERROR ::= {CODE local: 15}
+ numberOfDiversionsExceeded ERROR ::= {CODE local: 24}
+ temporarilyUnavailable ERROR ::= {CODE local: 1000}
+ notAuthorized ERROR ::= {CODE local: 1007}
+ unspecified ERROR ::= {PARAMETER Extension{{DiversionExtensionSet}}
+ CODE local:1008}
+
+ END -- of Call-Diversion-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CI.asn b/asn1/qsig/QSIG-CI.asn
new file mode 100644
index 0000000000..208a051f2d
--- /dev/null
+++ b/asn1/qsig/QSIG-CI.asn
@@ -0,0 +1,178 @@
+-- QSIG-CI.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-203, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-203.htm
+--
+-- $Id$
+--
+
+Call-Intrusion-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-intrusion(14846) call-intrusion-operations-asn1-97 (2) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97(11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)};
+
+Call-Intrusion-Operations OPERATION ::= {pathRetain | serviceAvailable | callIntrusionRequest |
+callIntrusionGetCIPL | callIntrusionIsolate | callIntrusionForcedRelease | callIntrusionWOBRequest |
+callIntrusionCompleted | cfbOverride}
+
+pathRetain OPERATION ::= {
+ ARGUMENT PathRetainArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 41}
+
+serviceAvailable OPERATION ::= {
+ ARGUMENT ServiceAvailableArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 42}
+
+callIntrusionRequest OPERATION ::= {
+ ARGUMENT CIRequestArg
+ RESULT CIRequestRes
+ ERRORS {notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
+ unspecified | supplementaryServiceInteractionNotAllowed}
+ CODE local: 43}
+
+callIntrusionGetCIPL OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT CIGetCIPLRes
+ ALWAYS RESPONDS FALSE
+ CODE local: 44}
+
+callIntrusionForcedRelease OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {notAvailable | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 46}
+
+callIntrusionIsolate OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {notAvailable | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 45}
+
+callIntrusionWOBRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {notAvailable | unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 47}
+
+callIntrusionCompleted OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 48}
+
+PathRetainArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{CIExtSet}}
+ }
+ }
+
+ServiceAvailableArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{CIExtSet}}
+ }
+ }
+
+ServiceList ::= BIT STRING
+ {ci-low(4), ci-medium(5), ci-high(6)} (SIZE(1..32))
+ -- bits other than ci-low, ci-medium, ci-high are reserved
+ -- for other supplementary services
+
+DummyArg ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}}
+
+DummyRes ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}}
+
+CIRequestArg ::= SEQUENCE{
+ ciCapabilityLevel CICapabilityLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}
+ } OPTIONAL}
+
+CIRequestRes ::= SEQUENCE{
+ ciUnwantedUserStatus CIUnwantedUserStatus,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}
+ } OPTIONAL}
+
+CIGetCIPLRes ::= SEQUENCE{
+ ciProtectionLevel CIProtectionLevel,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CIExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{CIExtSet}}
+ } OPTIONAL}
+
+CICapabilityLevel ::= ENUMERATED{
+ intrusionLowProt(1),
+ intrusionMediumProt(2),
+ intrusionHighProt(3)}
+
+CIProtectionLevel ::= ENUMERATED{
+ lowProtection(0),
+ mediumProtection(1),
+ highProtection(2),
+ fullProtection(3)}
+
+CIUnwantedUserStatus ::= ENUMERATED{
+ unwantedUserIntruded(0),
+ unwantedUserIsolated(1)}
+
+cfbOverride OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 49}
+ -- used in the interaction with Call Forwarding Busy
+
+CIExtSet EXTENSION ::= {...}
+
+notBusy ERROR ::= { CODE local: 1009}
+ -- used when an SS-CI request is received in
+ -- a Terminating PINX and the called user is not busy
+
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+ -- used when conditions for invocation of SS-CI
+ -- are momentarily not met
+
+notAuthorized ERROR ::= { CODE local: 1007}
+ --used when a SS-CI request is rejected
+ --because of insufficient CICL
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{CIExtSet}}
+ CODE local: 1008}
+
+END -- of Call-Intrusion-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CIDL.asn b/asn1/qsig/QSIG-CIDL.asn
new file mode 100644
index 0000000000..0c0d302969
--- /dev/null
+++ b/asn1/qsig/QSIG-CIDL.asn
@@ -0,0 +1,80 @@
+-- QSIG-CIDL.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-314, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-314.htm
+--
+-- $Id$
+--
+
+Call-Identification-and-Call-Linkage-Operations-asn1-97
+ {iso(1) standard (0) pss1-call-identification-and-call-linkage (21889)
+ call-identification-and-call-linkage-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+IMPORTS
+ OPERATION
+ FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ EXTENSION, Extension{}
+ FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso standard pss1-generic-procedures (11582) msi-class-asn1-97 (11)};
+
+CallIdentification-Operations OPERATION ::= { callIdentificationAssign | callIdentificationUpdate }
+
+callIdentificationAssign OPERATION ::= {
+ ARGUMENT CallIdentificationAssignArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 105
+ }
+
+callIdentificationUpdate OPERATION ::= {
+ ARGUMENT CallIdentificationUpdateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 106
+ }
+
+CallIdentificationAssignArg ::= SEQUENCE {
+ globalCallID [0] CallIdentificationData,
+ threadID [1] CallIdentificationData OPTIONAL,
+ legID [2] CallIdentificationData OPTIONAL,
+ extension ExtensionType OPTIONAL
+ }
+
+CallIdentificationUpdateArg ::= SEQUENCE {
+ globalCallID [0] CallIdentificationData OPTIONAL,
+ threadID [1] CallIdentificationData OPTIONAL,
+ legID [2] CallIdentificationData OPTIONAL,
+ extension ExtensionType OPTIONAL
+ }
+
+CallIdentificationData ::= SEQUENCE {
+-- this structure is according to ECMA-269, 12.2.5 (see annex D)
+ switchingSubDomainName [0] IMPLICIT SwitchingSubDomainName OPTIONAL,
+ linkageID CHOICE {
+ subDomainID [1] IMPLICIT SubDomainID,
+ globallyUniqueID [2] IMPLICIT GloballyUniqueID},
+ timeStamp [3] IMPLICIT TimeStamp OPTIONAL
+ }
+
+SwitchingSubDomainName ::= IA5String (SIZE(1..64))
+
+GloballyUniqueID ::= OCTET STRING (SIZE(1..16))
+-- the GloballyUniqueID shall be coded according to ITU-T Recommendation H.225, section 7.6 (see annex D)
+
+ExtensionType ::= CHOICE {
+ extension [3] Extension{{ExampleExtSet}},
+ sequenceOfExt [4] IMPLICIT SEQUENCE OF Extension{{ExampleExtSet}}
+ }
+
+ExampleExtSet EXTENSION ::= {...}
+
+SubDomainID ::= OCTET STRING (SIZE(1..8))
+
+TimeStamp ::= GeneralizedTime (SIZE(16..19))
+
+END -- of Call-Identification-and-Call-Linkage-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CINT.asn b/asn1/qsig/QSIG-CINT.asn
new file mode 100644
index 0000000000..43aebc9b68
--- /dev/null
+++ b/asn1/qsig/QSIG-CINT.asn
@@ -0,0 +1,154 @@
+-- QSIG-CINT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-221, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-221.htm
+--
+-- $Id$
+--
+
+Call-Interception-Operations-asn1-97 {iso (1) standard (0) pss1-cint (15054) cint-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1(0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+
+ PartyNumber, PresentedNumberUnscreened, PresentationAllowedIndicator
+ FROM Addressing-Data-Elements-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20)}
+
+ Name FROM Name-Operations-asn1-97
+ {iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1)};
+
+Call-Interception-Operations OPERATION ::= { cintLegInformation1 | cintLegInformation2 | cintCondition |
+cintDisable | cintEnable}
+
+
+cintLegInformation1 OPERATION ::= {
+ -- Sent from the Intercepting PINX to the Originating PINX --
+ ARGUMENT CintInformation1Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 66}
+
+
+cintLegInformation2 OPERATION ::= {
+ -- Sent from the Intercepting PINX to the Intercepted-to PINX --
+ ARGUMENT CintInformation2Arg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 67}
+
+cintCondition OPERATION ::= {
+ -- Sent to a preceding PINX to indicate a condition for possible interception
+ ARGUMENT CintCondArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 68}
+
+cintDisable OPERATION ::= {
+ -- Sent to a Preceding PINX to disable interception delayed --
+ ARGUMENT CintExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 69}
+
+cintEnable OPERATION ::= {
+ -- Sent to a Preceding PINX to reenable interception --
+ ARGUMENT CintExtension
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 70}
+
+CintInformation1Arg ::= SEQUENCE
+ {
+ interceptionCause CintCause,
+ interceptedToNumber PartyNumber,
+ extension CintExtension OPTIONAL
+ }
+
+CintInformation2Arg ::= SEQUENCE
+ {
+ interceptionCause CintCause,
+ calledNumber [1]PresentedNumberUnscreened OPTIONAL,
+ originalCalledNumber [2]PresentedNumberUnscreened OPTIONAL,
+ calledName [3]Name OPTIONAL,
+ originalCalledName [4]Name OPTIONAL,
+ extension CintExtension OPTIONAL
+ }
+
+
+CintCondArg ::= SEQUENCE
+ {
+ interceptionCause Condition,
+ originalCalledNumber [1]PresentedNumberUnscreened OPTIONAL,
+ calledName [2]Name OPTIONAL,
+ originalCalledName [3]Name OPTIONAL,
+ extension CintExtension OPTIONAL
+ }
+
+CintExtension ::= CHOICE
+ {
+ none NULL,
+ single [5] IMPLICIT Extension{{CINTExtSet}},
+ multiple [6] IMPLICIT SEQUENCE OF Extension{{CINTExtSet}}
+ }
+
+CintCause ::= INTEGER {
+ unknown (0),
+ cintBnan (1), -- timeout in waiting on busy condition
+ cintBus (2), -- busy user
+ cintCug (3), -- closed user group rejection
+ cintDnd (4), -- do not disturb activated
+ cintIbd (5), -- incoming barred destination
+ cintInn (6), -- invalid number
+ cintMob1 (7), -- mobile user location not known
+ cintMob2 (8), -- mobile user no longer registered
+ cintMob3 (9), -- mobile terminal not responding
+ cintNcmp (10), -- no compatible destination
+ cintNcong (11), -- network congestion
+ cintNre (12), -- no reply (i.e. timeout during alerting)
+ cintOos (13), -- called user out of service
+ cintRrs (14), -- route restriction (calling user not authorized for
+ -- the route)
+ cintTbnan (15), -- timeout in wait on busy condition after transfer
+ cintTnre (16), -- no reply after transfer (i.e. timeout during alerting
+ -- after transfer
+ cintTrans (17), -- upper limit of transit counter reached
+ cintUpl (18), -- upper limit of number of diversions reached
+ cintInvDiv (19), -- invalid call diversion destination
+ cintHold (20) -- timeout after call hold
+ } (0..127)
+
+
+Condition ::= INTEGER {
+ unknown (0),
+ cintBus (2), -- busy user
+ cintCug (3), -- closed user group rejection
+ cintDnd (4), -- do not disturb activated
+ cintIbd (5), -- incoming barred destination
+ cintInn (6), -- invalid number
+ cintMob1 (7), -- mobile user location not known
+ cintMob2 (8), -- mobile user no longer registered
+ cintMob3 (9), -- mobile terminal not responding
+ cintNcmp (10), -- no compatible destination
+ cintNcong (11), -- network congestion
+ cintOos (13), -- called user out of service
+ cintRrs (14), -- route restriction (calling user not authorized for
+ -- the route
+ cintTrans (17), -- upper limit of transit counter reached
+ cintUpl (18), -- upper limit of number of diversions
+ -- reached
+ cintInvDiv (19) -- invalid call diversion destination
+ } (0..127)
+
+CINTExtSet EXTENSION ::= {...}
+
+END -- of Call-Interception-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CMN.asn b/asn1/qsig/QSIG-CMN.asn
new file mode 100644
index 0000000000..2eebca336f
--- /dev/null
+++ b/asn1/qsig/QSIG-CMN.asn
@@ -0,0 +1,145 @@
+-- QSIG-CMN.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-251, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-251.htm
+--
+-- $Id$
+--
+
+Common-Information-Operations-asn1-97
+ {iso (1) standard (0) pss1-common-information (15772) operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1 (0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)};
+
+CMN-Operations OPERATION ::= {cmnRequest | cmnInform }
+
+cmnRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT CmnArg
+ ALWAYS RESPONDS FALSE
+ CODE local: 84}
+
+cmnInform OPERATION ::= {
+ ARGUMENT CmnArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 85}
+
+CmnArg ::= SEQUENCE {
+ featureIdentifier [2] IMPLICIT FeatureIdList OPTIONAL,
+ ssDNDOprotectionLevel [3] IMPLICIT INTEGER (0..3) OPTIONAL,
+ -- Supplementary Service Do Not Disturb Override Protection level,
+ -- meaningful only in backward direction; inclusion indicates
+ -- support of SS-DNDO as well as the applicable protection level.
+ ssCIprotectionLevel [4] IMPLICIT INTEGER (0..3) OPTIONAL,
+ -- Supplementary Service Call Intrusion Protection level,
+ -- meaningful both in forward & backward direction; inclusion indicates support
+ -- of SS-CI as an Unwanted user PINX (forward direction) or as a Terminating
+ -- PINX (backward direction), as well as the applicable protection level.
+ equipmentIdentity [5] IMPLICIT EquipmentId OPTIONAL,
+ partyCategory [6] IMPLICIT PartyCategory OPTIONAL,
+ extension CHOICE {
+ single [7] IMPLICIT Extension{{CMNExtSet}},
+ multiple [8] IMPLICIT SEQUENCE OF
+ Extension{{CMNExtSet}}
+ } OPTIONAL }
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{CMNExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{CMNExtSet}}
+ }
+
+FeatureIdList ::= BIT STRING { -- bit set to ONE means the corresponding feature
+ -- is available for this call
+ reserved (0), -- this Bit shall be reserved
+ ssCFreRoutingSupported (1), -- Call Forwarding rerouting supported
+ -- meaningful only in forward direction
+ -- during call establishment
+ ssCTreRoutingSupported (2), -- Call Transfer rerouting supported
+ -- meaningful both in forward & backward
+ -- direction during call establishment
+ ssCCBSpossible (3), -- CCBS possible
+ -- meaningful only in backward direction
+ -- before receipt of ALERTING/CONNECT
+ ssCCNRpossible (4), -- CCNR possible
+ -- meaningful only in backward direction
+ -- before receipt of CONNECT
+ ssCOsupported (5), -- Call Offer supported
+ -- meaningful only in backward direction
+ -- during call establishment
+
+ -- Call Intrusion
+ ssCIforcedRelease (6), -- meaningful only in backward direction
+ ssCIisolation (7), -- meaningful only in backward direction
+ ssCIwaitOnBusy (8), -- meaningful only in backward direction
+
+ -- Advice of Charge
+ ssAOCsupportChargeRateProvAtGatewPinx (9), -- meaningful only in
+ -- backward direction
+ ssAOCsupportInterimChargeProvAtGatewPinx (10), -- meaningful only in
+ -- backward direction
+ ssAOCsupportFinalChargeProvAtGatewPinx (11), -- meaningful only in
+ -- backward direction
+
+ anfPRsupportedAtCooperatingPinx (12), -- Path replacement
+ -- meaningful both in forward &
+ -- backward direction
+
+ -- Call Interception
+ anfCINTcanInterceptImmediate (13), -- meaningful only in
+ -- forward direction
+ anfCINTcanInterceptDelayed (14), -- meaningful only in
+ -- forward direction
+
+ anfWTMIreRoutingSupported (15), -- Incoming WTM call
+ -- meaningful only in
+ -- forward direction
+ anfPUMIreRoutingSupported (16), -- Incoming PUM call
+ -- meaningful only in
+ -- forward direction
+ ssSSCTreRoutingSupported (17) -- Single Step Call Transfer rerouting
+ -- supported
+ -- meaningful both in forward and
+ -- backward direction during call
+ -- establishment
+ } (SIZE (1..64))
+
+EquipmentId ::= SEQUENCE {
+ nodeId [1] IMPLICIT IA5String (SIZE (1..10)) OPTIONAL,
+ groupId [2] IMPLICIT IA5String (SIZE (1..10)) OPTIONAL,
+ unitId [3] IMPLICIT IA5String (SIZE (1..10)) OPTIONAL
+ }
+-- NOTE:
+-- The purpose of the Equipment Id is to indicate, to another user or to another PINX, information about a
+-- calling or called party involved in a call.
+-- Assignment of network wide unique Equipment Id values is outside the scope of this Standard.
+
+PartyCategory ::= ENUMERATED {
+ unknown (0),
+ extension (1),
+ pisnAttendant (2),
+ emergExt (3)
+ }
+
+-- NOTE:
+-- The purpose of the Party category is to indicate, to another user or to another PINX, the category of a user
+-- involved in a call. An Originating PINX may include an indication of the calling user's category in the SETUP
+-- message sent across an inter-PINX link. A Terminating PINX may include an indication of the called user's
+-- category in an ALERTING message or CONNECT message sent across an inter-PINX link. A received
+-- Party category information may be used for display at the user's terminal or for PINX internal call handling,
+-- e.g. depending on whether the calling or called party is an extension or a PISN attendant, the PINX internal
+-- call handling may invoke different options of a supplementary service related to that call.
+
+CMNExtSet EXTENSION ::= {...}
+
+
+END -- of Common-Information-Operations-asn1-97 \ No newline at end of file
diff --git a/asn1/qsig/QSIG-CO.asn b/asn1/qsig/QSIG-CO.asn
new file mode 100644
index 0000000000..d488adcf7b
--- /dev/null
+++ b/asn1/qsig/QSIG-CO.asn
@@ -0,0 +1,104 @@
+-- QSIG-CO.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-192, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-192.htm
+--
+-- $Id$
+--
+
+Call-Offer-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-offer(14843) call-offer-operations-asn1-97 (2) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97 (11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)};
+
+Call-Offer-Operations OPERATION ::= { callOfferRequest | pathRetain | serviceAvailable | cfbOverride }
+
+pathRetain OPERATION ::= {
+ ARGUMENT PathRetainArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 41}
+ -- this operation may be used by other supplementary services
+ -- using other values of argument
+
+serviceAvailable OPERATION ::= {
+ ARGUMENT ServiceAvailableArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 42}
+ -- this operation may be used by other supplementary services
+ -- using other values of argument
+
+callOfferRequest OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS {
+ notAvailable |
+ notBusy |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 34}
+
+PathRetainArg ::= CHOICE {serviceList ServiceList,
+ extendedServiceList SEQUENCE{
+ serviceList ServiceList,
+ extension Extension{{COExtSet}}
+ }
+ }
+
+ServiceAvailableArg ::= CHOICE {serviceList ServiceList,
+ extendedServiceList SEQUENCE{
+ serviceList ServiceList,
+ extension Extension{{COExtSet}}
+ }
+ }
+
+ServiceList ::= BIT STRING {callOffer(0)} (SIZE(1..32))
+ -- bits other than callOffer(0) are reserved for
+ -- other supplementary services
+
+DummyArg ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{COExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{COExtSet}}}
+
+DummyRes ::= CHOICE{
+ null NULL,
+ extension [1] IMPLICIT Extension{{COExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{COExtSet}}}
+
+cfbOverride OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 49}
+ -- used in the interaction with Call Forwarding Busy
+COExtSet EXTENSION ::= {...}
+
+notBusy ERROR ::= { CODE local: 1009}
+ -- used when an SS-CO request is received in
+ -- a Terminating PINX and the called user is not busy
+
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+ -- used when conditions for invocation of SS-CO
+ -- are momentarily not met
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{ COExtSet}}
+ CODE local: 1008}
+
+
+END -- of Call-Offer-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CPI.asn b/asn1/qsig/QSIG-CPI.asn
new file mode 100644
index 0000000000..963c4e2217
--- /dev/null
+++ b/asn1/qsig/QSIG-CPI.asn
@@ -0,0 +1,69 @@
+-- QSIG-CPI.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-264, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-264.htm
+--
+-- $Id$
+--
+
+Call-Interruption-Operations-asn1-97
+{iso (1) standard (0) pss1-call-interruption (15992) call-interruption-operations-asn1-97 (2) }
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1 (0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)};
+
+ -- The following operations are defined:
+
+Call-Interruption-Operations OPERATION ::= { callInterruptionRequest | callProtectionRequest }
+
+callInterruptionRequest OPERATION ::= {
+ ARGUMENT CPIRequestArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 87}
+
+callProtectionRequest OPERATION ::= {
+ ARGUMENT CPIPRequestArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 88}
+
+ -- The following arguments are defined:
+
+CPIRequestArg ::= SEQUENCE{
+ cpiCapabilityLevel CPICapabilityLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CPIPExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF
+ Extension{{CPIPExtSet}}} OPTIONAL}
+
+CPIPRequestArg ::= SEQUENCE{
+ cpiProtectionLevel CPIProtectionLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{CPIPExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF
+ Extension{{CPIPExtSet}}} OPTIONAL}
+
+CPICapabilityLevel ::= ENUMERATED{
+ interruptionLowPriority (1),
+ interruptionMediumPriority (2),
+ interruptionHighPriority (3)}
+
+CPIProtectionLevel ::= ENUMERATED{
+ noProtection (0),
+ lowProtection (1),
+ mediumProtection (2),
+ totalProtection (3)}
+
+CPIPExtSet EXTENSION ::= {...}
+
+END -- of Call-Interruption-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-CT.asn b/asn1/qsig/QSIG-CT.asn
new file mode 100644
index 0000000000..ee27a48848
--- /dev/null
+++ b/asn1/qsig/QSIG-CT.asn
@@ -0,0 +1,231 @@
+-- QSIG-CT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-178, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-178.htm
+--
+-- $Id$
+--
+
+Call-Transfer-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-transfer(13869) call-transfer-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+
+IMPORTS
+ OPERATION, ERROR FROM
+Remote-Operations-Information-Objects {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM
+Manufacturer-specific-service-extension-class-asn1-97 {iso(1) standard(0) pss1-generic-procedures (11582)
+msi-class-asn1-97(11)}
+ Name FROM
+Name-Operations-asn1-97 {iso(1) standard(0) pss1-name (13868) name-operations-asn1-97 (1)}
+ supplementaryServiceInteractionNotAllowed,
+ notAvailable,
+ invalidCallState FROM
+General-Error-List {ccitt (0) recommendation (0) q 950 general-error-list (1)}
+ PresentedAddressScreened,
+ PresentedNumberScreened,
+ PartyNumber,
+ PartySubaddress FROM
+Addressing-Data-Elements-asn1-97 {iso(1) standard(0) pss1-generic-procedures (11582)
+addressing-data-elements-asn1-97 (20)}
+ PSS1InformationElement
+FROM PSS1-generic-parameters-definition-asn1-97 { iso(1) standard (0) pss1-generic-procedures (11582)
+ pss1-generic-parameters-asn1-97 (17)};
+
+-- TYPE DEFINITIONS FOR CT OPERATIONS FOLLOW
+
+Call-Transfer-Operations OPERATION ::= {callTransferIdentify | callTransferAbandon | callTransferInitiate |
+callTransferSetup | callTransferActive | callTransferComplete | callTransferUpdate | subaddressTransfer}
+
+callTransferIdentify OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT CTIdentifyRes
+ ERRORS {
+ notAvailable |
+ invalidCallState |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed}
+ CODE local: 7}
+
+callTransferAbandon OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 8}
+
+callTransferInitiate OPERATION ::= {
+ ARGUMENT CTInitiateArg
+ RESULT DummyRes
+ ERRORS {
+ notAvailable |
+ invalidCallState |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 9}
+
+callTransferSetup OPERATION ::= {
+ ARGUMENT CTSetupArg
+ RESULT DummyRes
+ ERRORS{
+ notAvailable |
+ invalidCallState |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 10}
+
+callTransferActive OPERATION::= {
+ ARGUMENT CTActiveArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 11}
+
+callTransferComplete OPERATION ::= {
+ ARGUMENT CTCompleteArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 12}
+
+callTransferUpdate OPERATION ::= {
+ ARGUMENT CTUpdateArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 13}
+
+subaddressTransfer OPERATION ::= {
+ ARGUMENT SubaddressTransferArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 14}
+
+-- TYPE DEFINITIONS FOR CT DATA TYPES FOLLOW
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{CTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ }
+
+DummyRes ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{CTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ }
+
+CTIdentifyRes ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ resultExtension CHOICE {
+ single [6] IMPLICIT Extension{{CTExtSet}},
+ multiple [7] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTInitiateArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ argumentExtension CHOICE {
+ single [6] IMPLICIT Extension{{CTExtSet}},
+ multiple [7] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTSetupArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ argumentExtension CHOICE {
+ single [0] IMPLICIT Extension{{CTExtSet}},
+ multiple [1] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTActiveArg ::= SEQUENCE{
+ connectedAddress PresentedAddressScreened,
+ basicCallInfoElements PSS1InformationElement OPTIONAL,
+ -- ISO/IEC 11572 information element
+ -- Progress indicator is conveyed
+ connectedName Name OPTIONAL,
+ argumentExtension CHOICE {
+ single [9] IMPLICIT Extension{{CTExtSet}},
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTCompleteArg ::= SEQUENCE {
+ endDesignation EndDesignation,
+ redirectionNumber PresentedNumberScreened,
+ basicCallInfoElements PSS1InformationElement OPTIONAL,
+ -- ISO/IEC 11572 information element
+ -- Progress indicator is conveyed
+ redirectionName Name OPTIONAL,
+ callStatus CallStatus DEFAULT answered,
+ argumentExtension CHOICE {
+ single [9] IMPLICIT Extension{{CTExtSet}},
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CTUpdateArg ::= SEQUENCE {
+ redirectionNumber PresentedNumberScreened,
+ redirectionName Name OPTIONAL,
+ basicCallInfoElements PSS1InformationElement OPTIONAL,
+ -- ISO/IEC 11572 information element
+ -- Progress indicator is conveyed
+ argumentExtension CHOICE {
+ single [9] IMPLICIT Extension{{CTExtSet}},
+ multiple [10] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ }OPTIONAL }
+
+SubaddressTransferArg ::= SEQUENCE {
+ redirectionSubaddress PartySubaddress,
+ argumentExtension CHOICE {
+ single [0] IMPLICIT Extension{{CTExtSet}},
+ multiple [1] IMPLICIT SEQUENCE OF Extension{{CTExtSet}}
+ } OPTIONAL
+ }
+
+CallStatus ::= ENUMERATED{
+ answered(0),
+ alerting(1)
+ }
+
+CallIdentity ::= NumericString (SIZE (1..4))
+
+EndDesignation ::= ENUMERATED {
+ primaryEnd(0),
+ secondaryEnd(1)
+ }
+
+CTExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension {{CTExtSet}}
+ CODE local: 1008 }
+
+
+invalidRerouteingNumber ERROR ::= { CODE local: 1004}
+ -- used when establishment of the new
+ -- connection fails because
+ -- the rerouteingNumber is not a valid
+ -- PISN address
+
+unrecognizedCallIdentity ERROR ::= { CODE local: 1005}
+ -- used when establishment of the new
+ -- connection fails because it could not be
+ -- associated with a SS-CT entity
+ -- at the Secondary PINX
+
+establishmentFailure ERROR ::= { CODE local: 1006}
+ -- used when establishment of the new
+ -- connection fails and no other error applies
+ -- of Call-Transfer-Operations
+
+END -- of Call-Transfer-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-DND.asn b/asn1/qsig/QSIG-DND.asn
new file mode 100644
index 0000000000..3eb4a5ca99
--- /dev/null
+++ b/asn1/qsig/QSIG-DND.asn
@@ -0,0 +1,213 @@
+-- QSIG-DND.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-194, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-194.htm
+--
+-- $Id$
+--
+
+Do-Not-Disturb-Operations-asn1-97
+ {iso(1) standard(0) pss1-do-not-disturb(14844) do-not-disturb-operations-asn1-97 (2) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso(1) standard(0)
+ pss1-generic-procedures(11582) msi-class-asn1-97(11)}
+ basicServiceNotProvided, invalidServedUserNr, notAvailable,
+ userNotSubscribed, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97 (20)}
+ BasicService FROM Call-Diversion-Operations-asn1-97
+ {iso(1) standard(0) pss1-call-diversion(13873) call-diversion-operations-asn1-97 (1) }
+ ;
+
+Do-Not-Disturb-Operations OPERATION ::= {doNotDisturbActivateQ | doNotDisturbDeactivateQ |
+doNotDisturbInterrogateQ | doNotDisturbOverrideQ | doNotDisturbOvrExecuteQ | pathRetain | serviceAvailable}
+
+doNotDisturbActivateQ OPERATION ::= {
+ ARGUMENT DNDActivateArg
+ RESULT DNDActivateRes
+ ERRORS { userNotSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 35}
+
+doNotDisturbDeactivateQ OPERATION ::= {
+ ARGUMENT DNDDeactivateArg
+ RESULT DummyRes
+ ERRORS { userNotSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ notActivated |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 36}
+
+doNotDisturbInterrogateQ OPERATION ::= {
+ ARGUMENT DNDInterrogateArg
+ RESULT DNDInterrogateRes
+ ERRORS { userNotSubscribed |
+ notAvailable |
+ invalidServedUserNr |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 37}
+
+doNotDisturbOverrideQ OPERATION ::= {
+ ARGUMENT DNDOverrideArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 38}
+
+pathRetain OPERATION ::= {
+ ARGUMENT PathRetainArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 41}
+
+serviceAvailable OPERATION ::= {
+ ARGUMENT ServiceAvailableArg -- this operation may be used by other
+ -- Supplementary Services using other
+ -- values of the argument
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 42}
+
+doNotDisturbOvrExecuteQ OPERATION ::= {
+ ARGUMENT DummyArg
+ RESULT DummyRes
+ ERRORS { notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ unspecified}
+ CODE local: 39}
+
+DummyArg ::= CHOICE {
+ null NULL,
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ }
+
+DummyRes ::= CHOICE {
+ null NULL,
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ }
+
+DNDActivateArg ::= SEQUENCE {
+ basicService BasicService,
+ servedUserNr PartyNumber,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDActivateRes ::= SEQUENCE {
+ status SET OF SEQUENCE{
+ basicService BasicService,
+ dndProtectionLevel DNDProtectionLevel OPTIONAL
+ } OPTIONAL,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDDeactivateArg ::= SEQUENCE {
+ basicService BasicService,
+ servedUserNr PartyNumber,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDInterrogateArg ::= SEQUENCE {
+ servedUserNr PartyNumber,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDInterrogateRes ::= SEQUENCE {
+ status SET OF SEQUENCE {
+ basicService BasicService,
+ dndProtectionLevel DNDProtectionLevel OPTIONAL
+ } OPTIONAL,
+ resultExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+DNDOverrideArg ::= SEQUENCE {
+ dndoCapabilityLevel DNDOCapabilityLevel,
+ argumentExtension CHOICE{
+ extension [1] IMPLICIT Extension{{DNDExtSet}},
+ sequenceOfExtn [2] IMPLICIT SEQUENCE OF Extension{{DNDExtSet}}
+ } OPTIONAL
+ }
+
+PathRetainArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{DNDExtSet}}
+ }
+ }
+
+ServiceAvailableArg ::= CHOICE {
+ serviceList ServiceList,
+ extendedServiceList SEQUENCE {
+ serviceList ServiceList,
+ extension Extension{{DNDExtSet}}
+ }
+ }
+
+DNDProtectionLevel ::= ENUMERATED {
+ lowProtection(0),
+ mediumProtection(1),
+ highProtection(2),
+ fullProtection(3)
+ }
+
+DNDOCapabilityLevel ::= ENUMERATED {
+ overrideLowProt(1),
+ overrideMediumProt(2),
+ overrideHighProt(3)
+ }
+
+ServiceList ::= BIT STRING
+ { dndo-low(1), dndo-medium(2), dndo-high(3) } (SIZE (1..32))
+ -- bits other than dndo-low, dndo-medium, or dndo-high, are reserved
+ -- for other Supplementary Services
+
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+notActivated ERROR ::= { CODE local: 43}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{DNDExtSet}}
+ CODE local: 1008}
+
+DNDExtSet EXTENSION ::= {...}
+
+END -- of Do-Not-Disturb-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-MCM.asn b/asn1/qsig/QSIG-MCM.asn
new file mode 100644
index 0000000000..6555ae4630
--- /dev/null
+++ b/asn1/qsig/QSIG-MCM.asn
@@ -0,0 +1,401 @@
+-- QSIG-MCM.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-347, (June 2003)
+-- http://www.ecma-international.org/publications/standards/Ecma-347.htm
+--
+-- $Id$
+--
+
+SS-MCM-Operations-asn1-97
+{iso (1) identified-organization (3) icd-ecma (12) standard (0)
+qsig-message-centre-monitoring (347)
+message-centre-monitoring-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM
+ Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM
+ Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard pss1-generic-procedures (11582)
+ msi-class-asn1-97 (11)}
+
+ basicServiceNotProvided, userNotSubscribed, invalidServedUserNr
+ FROM General-Error-List
+ {itu-t (0) recommendation (0) q (17) 950
+ general-error-list (1)}
+
+ PresentedAddressUnscreened, PartyNumber FROM
+ Addressing-Data-Elements-asn1-97
+ {iso standard pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20)}
+ Name FROM Name-Operations-asn1-97
+ {iso standard pss1-name (13868) name-operations-asn1-97 (1)}
+ ;
+
+
+MCM-Operations OPERATION ::= {
+ mCMNewMsg |
+ mCMNoNewMsg |
+ mCMUpdate |
+ mCMUpdateReq |
+ mCMService |
+ mCMInterrogate |
+ mCMailboxFull }
+
+
+mCMNewMsg OPERATION ::= {
+ ARGUMENT MCMNewMsgArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ unspecified}
+ CODE local: 80} -- same code as for mWIActivate in SS-MWI
+
+
+mCMNoNewMsg OPERATION ::= {
+ ARGUMENT MCMNoNewMsgArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ unspecified}
+ CODE local: 81} -- same code as for mWIDeactivate in SS-MWI
+
+
+mCMUpdate OPERATION ::= {
+ ARGUMENT MCMUpdateArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ unspecified}
+ CODE local: 115}
+
+
+mCMUpdateReq OPERATION ::= {
+ ARGUMENT MCMUpdateReqArg
+ RESULT MCMUpdateReqRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ unspecified}
+ CODE local: 82}
+ -- same code as for mWIInterrogate in SS-MWI
+
+mCMService OPERATION ::= {
+ ARGUMENT MCMServiceArg
+ RESULT MCMDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ mCMModeNotProvided |
+ unspecified}
+ CODE local: 116}
+
+
+mCMInterrogate OPERATION ::= {
+ ARGUMENT MCMInterrogateArg
+ RESULT MCMInterrogateRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ basicServiceNotProvided |
+ mCMModeNotProvided |
+ unspecified}
+ CODE local: 117}
+
+
+mCMailboxFull OPERATION ::= {
+ ARGUMENT MCMailboxFullArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 118}
+
+
+MCMailboxFullArg ::= SEQUENCE
+ {
+ partyInfo PartyInfo,
+ mailboxFullFor MailboxFullFor,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MailboxFullFor ::= SEQUENCE OF MailboxFullPar
+
+MailboxFullPar ::= SEQUENCE
+ {
+ messageType MessageType,
+ capacityReached INTEGER (0..100) OPTIONAL
+ -- percentage of storage capacity already used
+ }
+
+MCMServiceArg ::= SEQUENCE
+ {
+
+ partyInfo PartyInfo,
+ mCMChange MCMChange,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MCMChange ::= CHOICE
+ {
+ activateMCM [1] IMPLICIT SEQUENCE OF MCMServiceInfo,
+ deactivateMCM [2] IMPLICIT SEQUENCE OF MessageType,
+ setToDefaultValues NULL
+ }
+
+MCMServiceInfo ::= SEQUENCE
+ {
+ messageType MessageType,
+ mCMModeNew [1] IMPLICIT MCMMode OPTIONAL,
+ mCMModeRetrieved [2] IMPLICIT MCMMode OPTIONAL
+ }
+
+MCMInterrogateArg ::= SEQUENCE
+ {
+ partyInfo PartyInfo,
+ interrogateInfo SEQUENCE OF MessageType,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MCMInterrogateRes ::= SEQUENCE
+ {
+ interrogateResult SEQUENCE OF MCMServiceInfo,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+MCMNewMsgArg ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ nrOfMessages [3] IMPLICIT NrOfMessages OPTIONAL,
+ originatingNr [4] PartyNumber OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority [5] IMPLICIT INTEGER (0..9) OPTIONAL,
+ argumentExt CHOICE {
+ extension [6] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+
+MCMNoNewMsgArg ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ argumentExt CHOICE {
+ extension [3] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [4] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+MCMUpdateArg ::= SEQUENCE
+ {
+ partyInfo PartyInfo,
+ messageType MessageType,
+ updateInfo UpdateInfo,
+ moreInfoFollows BOOLEAN DEFAULT FALSE,
+ extensions MCMExtensions OPTIONAL,
+ ...
+ }
+
+
+MCMUpdateReqArg ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ argumentExt CHOICE {
+ extension [3] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [4] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+
+MCMUpdateReqRes ::= SEQUENCE SIZE (1..10) OF MCMUpdateReqResElt
+
+
+MCMUpdateReqResElt ::= SEQUENCE
+ {
+ specificMessageType MessageType,
+ msgCentreId MsgCentreId OPTIONAL,
+ nrOfMessages [3] IMPLICIT NrOfMessages OPTIONAL,
+ originatingNr [4] PartyNumber OPTIONAL,
+ timestamp TimeStamp OPTIONAL,
+ priority [5] IMPLICIT INTEGER (0..9) OPTIONAL,
+ argumentExt CHOICE {
+ extension [6] IMPLICIT Extension{{MCMExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF
+ Extension{{MCMExtSet}}
+ } OPTIONAL
+ }
+
+
+MCMMode ::= INTEGER
+ {
+ compressed (0),
+ complete (1)
+ }
+
+MCMDummyRes ::= MCMExtensions
+
+
+PartyInfo ::= SEQUENCE
+ {
+ servedUserNr PartyNumber,
+ messageCentreID MsgCentreId
+ }
+
+UpdateInfo ::= CHOICE
+ {
+ newMsgInfoOnly [1] MessageInfo,
+ retrievedMsgInfoOnly [2] MessageInfo,
+ allMsgInfo AllMsgInfo
+ }
+
+
+AllMsgInfo ::= SEQUENCE
+ {
+ newMsgInfo MessageInfo,
+ retrievedMsgInfo MessageInfo
+ }
+
+
+MessageInfo ::= CHOICE
+ {
+ completeInfo [1] IMPLICIT CompleteInfo,
+ compressedInfo [2] IMPLICIT CompressedInfo,
+ noMsgsOfMsgType NULL
+ }
+
+
+CompleteInfo ::= SEQUENCE OF AddressHeader
+
+
+AddressHeader ::= SEQUENCE
+ {
+ originatorNr PartyNumber,
+ timeStamp [1] IMPLICIT TimeStamp OPTIONAL,
+ priority [2] IMPLICIT Priority OPTIONAL
+ }
+
+
+CompressedInfo ::= SEQUENCE
+ {
+ nrOfMessages NrOfMessages,
+ lastTimeStamp TimeStamp OPTIONAL,
+ highestPriority Priority OPTIONAL
+ }
+
+
+NrOfMessages ::= INTEGER (0..65535)
+
+
+Priority ::= INTEGER (0..9) -- the value 0 means the highest priority
+ -- and 9 the lowest
+
+MsgCentreId ::= CHOICE
+ {
+ integer [0] IMPLICIT INTEGER (0..65535),
+ partyNumber [1] PartyNumber,
+ numericString [2] IMPLICIT NumericString (SIZE(1..10))
+ }
+
+TimeStamp ::= GeneralizedTime (SIZE (12..19))
+ -- a VisibleString containing:
+ -- - the (local) date in 8 digits (YYYYMMDD),
+ -- - followed by (local) time of day in 4 or 6 digits (HHMM[SS]),
+ -- - optionally followed by the letter "Z" or
+ -- by a local time differential in 5 digits ("+"HHMM or "-"HHMM);
+ -- this date and time representation follows ISO 8601
+ -- Examples: 1) 19970621194530, meaning 21 June 1997, 19:45:30;
+ -- 2) 19970621194530Z, meaning the same as 1);
+ -- 3) 19970621194530-0500, meaning the same as 1),
+ -- 5 hours retarded in relation to UTC time
+
+
+MessageType ::= ENUMERATED
+ {
+ -- Note: for the following message type see also Annex D.4
+ allServices (0),
+ -- Note: for the following message types see also Annex D.1
+ -- For compatibility among vendors, speech is recommended for
+ -- voice mail indications
+ speech (1),
+ unrestrictedDigitalInformation (2),
+ audio3100Hz (3),
+ telephony (32),
+ teletex (33),
+ telefaxGroup4Class1 (34),
+ videotextSyntaxBased (35),
+ videotelephony (36),
+ telefaxGroup2-3 (37),
+ reservedNotUsed1 (38),
+ reservedNotUsed2 (39),
+ reservedNotUsed3 (40),
+ reservedNotUsed4 (41),
+ reservedNotUsed5 (42),
+ -- Note: for the following message types see also annex D.2
+ email (51),
+ video (52),
+ fileTransfer (53),
+ shortMessageService (54),
+ -- Note: for the following message types see also annex D.3
+ speechAndVideo (55),
+ speechAndFax (56),
+ speechAndEmail (57),
+ videoAndFax (58),
+ videoAndEmail (59),
+ faxAndEmail (60),
+ speechVideoAndFax (61),
+ speechVideoAndEmail (62),
+ speechFaxAndEmail (63),
+ videoFaxAndEmail (64),
+ speechVideoFaxAndEmail (65),
+ -- Note: for the following message types see also annex D.4
+ multimediaUnknown (66),
+ serviceUnknown (67),
+ futureReserve1 (68),
+ futureReserve2 (69),
+ futureReserve3 (70),
+ futureReserve4 (71),
+ futureReserve5 (72),
+ futureReserve6 (73),
+ futureReserve7 (74),
+ futureReserve8 (75)
+ }
+
+MCMExtensions ::= CHOICE
+ {
+ none NULL,
+ extension [1] IMPLICIT Extension {{MCMExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension {{ MCMExtSet }}
+ }
+
+mCMModeNotProvided ERROR ::= {
+ CODE local:1037}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{MCMExtSet}}
+ CODE local:1008}
+
+MCMExtSet EXTENSION ::= {...}
+
+
+END -- of SS-MCM-Operations-asn1-97
+
diff --git a/asn1/qsig/QSIG-MCR.asn b/asn1/qsig/QSIG-MCR.asn
new file mode 100644
index 0000000000..82c1fddfc8
--- /dev/null
+++ b/asn1/qsig/QSIG-MCR.asn
@@ -0,0 +1,171 @@
+-- QSIG-MCR.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-344, (June 2003)
+-- http://www.ecma-international.org/publications/standards/Ecma-344.htm
+--
+-- $Id$
+--
+
+SS-MCR-Operations-asn97
+{iso (1) identified-organization (3) icd-ecma (12) standard (0)
+ qsig-make-call-request (344) make-call-request-operations (0)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+OPERATION,
+ERROR
+FROM Remote-Operations-Information-Objects
+{ joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1 (0) }
+
+EXTENSION,
+Extension {}
+FROM Manufacturer-specific-service-extension-class-asn1-97
+{ iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+
+Name
+FROM Name-Operations-asn1-97
+{ iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1) }
+
+BasicService
+FROM Call-Diversion-Operations-asn1-97
+{ iso (1) standard (0) pss1-call-diversion (13873)
+ call-diversion-operations-asn1-97 (1) }
+
+basicServiceNotProvided,
+supplementaryServiceInteractionNotAllowed,
+userNotSubscribed
+FROM General-Error-List
+{itu-t (0) recommendation (0) q (17) 950 general-error-list (1)}
+
+PresentedAddressUnscreened
+FROM Addressing-Data-Elements-asn1-97
+{ iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) }
+
+CallIdentity, establishmentFailure
+FROM Path-Replacement-Operations-asn1-97
+{iso (1) standard (0) pss1-path-replacement (13874) pr-operations-asn1-97(1)}
+;
+
+Make-Call-Request-Operations OPERATION::= {
+ mCRequest | mCAlerting | mCInform }
+
+mCRequest OPERATION ::= {
+ ARGUMENT MCRequestArg
+ RESULT MCRequestResult
+ ERRORS {userNotSubscribed|
+ basicServiceNotProvided|
+ supplementaryServiceInteractionNotAllowed|
+ invalidDestinationNumber|
+ invalidCooperationNumber|
+ mCRequestNotAllowed|
+ mCExecutionNotAllowed|
+ mCDestUserBusy|
+ mCCoopUserBusy|
+ mCCoopUserRejected|
+ establishmentFailure|
+ unspecified}
+ CODE local: 112
+ }
+
+mCInform OPERATION ::= {
+ ARGUMENT MCInformArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ ERRORS {userNotSubscribed|
+ basicServiceNotProvided|
+ supplementaryServiceInteractionNotAllowed|
+ invalidDestinationNumber|
+ mCExecutionNotAllowed|
+ mCDestUserBusy|
+ unspecified}
+ CODE local: 113
+ }
+
+mCAlerting OPERATION ::= {
+ ARGUMENT MCAlertingArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 114
+ }
+
+MCRequestArg ::= SEQUENCE
+ {
+ callType CallType,
+ retainOrigCall BOOLEAN DEFAULT TRUE,
+ destinationAddress PresentedAddressUnscreened,
+ requestingAddress [0] PresentedAddressUnscreened OPTIONAL,
+ cooperatingAddress [1] PresentedAddressUnscreened OPTIONAL,
+ correlation Correlation,
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+
+MCRequestResult ::= SEQUENCE
+ {
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+
+MCInformArg ::= SEQUENCE
+ {
+ requestingAddress [0] PresentedAddressUnscreened OPTIONAL,
+ cooperatingAddress [1] PresentedAddressUnscreened OPTIONAL,
+ correlation Correlation,
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+
+MCAlertingArg ::= SEQUENCE
+ {
+ correlation Correlation,
+ extensions MCRExtensions OPTIONAL,
+ ...
+ }
+CallType ::= CHOICE
+ {
+ basicService BasicService,
+ cisc NULL
+ }
+
+Correlation ::= SEQUENCE
+ {
+ correlationData CallIdentity,
+ correlationReason CorrelationReason OPTIONAL
+ }
+CorrelationReason ::= INTEGER
+ {
+ unknown (0),
+ mCACommunication (1),
+ cTIApplication (2)
+ } (0..255)
+
+MCRExtensions ::= CHOICE
+ {
+ none NULL,
+ single [0] IMPLICIT Extension
+ { { MakeCallRequestExtension } } ,
+ multiple [1] IMPLICIT SEQUENCE OF Extension
+ { { MakeCallRequestExtension } }
+ }
+
+MakeCallRequestExtension EXTENSION::= {...}
+
+invalidDestinationNumber ERROR ::= {CODE local : 1030}
+invalidCooperationNumber ERROR ::= {CODE local : 1031}
+mCRequestNotAllowed ERROR ::= {CODE local : 1032}
+mCExecutionNotAllowed ERROR ::= {CODE local : 1033}
+mCDestUserBusy ERROR ::= {CODE local : 1034}
+mCCoopUserBusy ERROR ::= {CODE local : 1035}
+mCCoopUserRejected ERROR ::= {CODE local : 1036}
+unspecified ERROR ::= {PARAMETER Extension
+ { { MakeCallRequestExtension } }
+ CODE local : 1008
+ }
+
+END -- of SS-MCR-Operations
diff --git a/asn1/qsig/QSIG-MID.asn b/asn1/qsig/QSIG-MID.asn
new file mode 100644
index 0000000000..cd9ad7c96d
--- /dev/null
+++ b/asn1/qsig/QSIG-MID.asn
@@ -0,0 +1,131 @@
+-- QSIG-MID.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-347, (June 2003)
+-- http://www.ecma-international.org/publications/standards/Ecma-347.htm
+--
+-- $Id$
+--
+
+SS-MID-Operations-asn1-97
+{iso (1) identified-organization (3) icd-ecma (12) standard (0)
+qsig-mailbox-identification (347) mailbox-identification-operations-asn1-97 (2)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM
+ Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM
+ Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard pss1-generic-procedures (11582) msi-class-asn1-97
+ (11)}
+
+ basicServiceNotProvided, userNotSubscribed, invalidServedUserNr
+ FROM General-Error-List
+ {itu-t (0) recommendation (0) q (17) 950 general-error-list (1)}
+
+ PresentedAddressUnscreened FROM
+ Addressing-Data-Elements-asn1-97
+ {iso standard pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20)}
+
+ Name FROM
+ Name-Operations-asn1-97
+ {iso standard pss1-name (13868) name-operations-asn1-97 (1)}
+
+ MessageType, MsgCentreId FROM
+ SS-MCM-Operations-asn1-97
+ {iso (1) identified-organization (3) icd-ecma (12) standard (0)
+ qsig-message-centre-monitoring (347)
+ message-centre-monitoring-operations-asn1-97 (1)}
+ ;
+
+
+MID-Operations OPERATION ::= {mIDMailboxAuth |
+ mIDMailboxID}
+
+mIDMailboxAuth OPERATION ::= {
+ ARGUMENT MIDMailboxAuthArg
+ RESULT MIDDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ invalidMailbox |
+ authorizationFailed |
+ unspecified}
+ CODE local:119}
+
+mIDMailboxID OPERATION ::= {
+ ARGUMENT MIDMailboxIDArg
+ RESULT MIDDummyRes
+ ERRORS {userNotSubscribed |
+ invalidServedUserNr |
+ invalidMailbox |
+ unspecified}
+ CODE local:120}
+
+
+MIDMailboxAuthArg ::= SEQUENCE
+ {
+
+ partyInfo PartyInfo,
+ servedUserName Name OPTIONAL,
+ mailBox [8]String OPTIONAL,
+ password String,
+ extensions MIDExtensions OPTIONAL,
+ ...
+ }
+
+
+MIDMailboxIDArg ::= SEQUENCE
+ {
+
+ partyInfo PartyInfo,
+ servedUserName Name OPTIONAL,
+ mailBox String,
+ extensions MIDExtensions OPTIONAL,
+ ...
+ }
+
+
+MIDDummyRes ::= MIDExtensions
+
+PartyInfo ::= SEQUENCE
+ {
+ servedUserNr PresentedAddressUnscreened,
+ messageType MessageType OPTIONAL,
+ messageCentreID MsgCentreId
+ }
+
+String ::= CHOICE
+ {
+ stringBmp BMPString,
+ stringUtf8 UTF8String
+ }
+
+
+MIDExtensions ::= CHOICE
+ {
+ none NULL,
+ extension [1] IMPLICIT Extension {{MIDExtSet}},
+ multipleExtension [2] IMPLICIT SEQUENCE OF
+ Extension {{ MIDExtSet }}
+ }
+
+invalidMailbox ERROR ::= {
+ CODE local:1039}
+
+
+authorizationFailed ERROR ::= {
+ CODE local:1040}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{MIDExtSet}}
+ CODE local:1008}
+
+MIDExtSet EXTENSION ::= {...}
+
+END -- of SS-MID-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-NA.asn b/asn1/qsig/QSIG-NA.asn
new file mode 100644
index 0000000000..aa3e0881bd
--- /dev/null
+++ b/asn1/qsig/QSIG-NA.asn
@@ -0,0 +1,137 @@
+-- QSIG-NA.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-164, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-164.htm
+--
+-- $Id$
+--
+
+Name-Operations-asn1-97
+ { iso ( 1) standard ( 0) pss1-name (13868) name-operations-asn1-97( 1) }
+
+
+DEFINITIONS ::=
+
+BEGIN
+
+IMPORTS
+
+OPERATION FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso standard pss1-generic-procedures (11582) msi-class-asn1-97 ( 11) };
+
+Name-Operations OPERATION ::= { callingName | calledName | connectedName | busyName }
+
+callingName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 0
+ }
+
+calledName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 1
+ }
+
+connectedName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 2
+ }
+
+busyName OPERATION ::= {
+ ARGUMENT NameArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 3
+ }
+
+NameArg ::= CHOICE {
+ name Name,
+ nameSequence SEQUENCE {
+ name Name,
+ extension NameExtension OPTIONAL
+ }
+ }
+
+NameExtension ::= CHOICE {
+ single [5] IMPLICIT Extension{{NameExtensionSet}},
+ multiple [6] IMPLICIT SEQUENCE OF Extension{{NameExtensionSet}}
+ }
+
+NameExtensionSet EXTENSION ::= {...}
+
+Name ::= CHOICE
+ { namePresentationAllowed NamePresentationAllowed,
+ namePresentationRestricted NamePresentationRestricted,
+ nameNotAvailable NameNotAvailable }
+
+NamePresentationAllowed ::= CHOICE
+ { namePresentationAllowedSimple [0] IMPLICIT NameData,
+ namePresentationAllowedExtended [1] IMPLICIT NameSet }
+ -- iso8859-1 is implied in namePresentationAllowedSimple.
+
+NamePresentationRestricted ::= CHOICE
+ { namePresentationRestrictedSimple [2] IMPLICIT NameData,
+ namePresentationRestrictedExtended [3] IMPLICIT NameSet,
+ namePresentationRestrictedNull [7] IMPLICIT NULL}
+ -- iso8859-1 is implied in namePresentationRestrictedSimple.
+ -- namePresentationRestrictedNull shall only be used in the
+ -- case of interworking where the other network provides an
+ -- indication that the name is restricted without the name itself.
+
+NameNotAvailable ::= [4] IMPLICIT NULL
+
+NameData ::= OCTET STRING (SIZE (1..50))
+ -- The maximum allowed size of the name field is 50 octets.
+ -- The minimum required size of the name field is 1 octet.
+
+NameSet ::= SEQUENCE
+ { nameData NameData,
+ characterSet CharacterSet OPTIONAL }
+ -- If characterSet is not included, iso8859-1 is implied.
+
+CharacterSet ::= INTEGER
+ { unknown (0),
+ iso8859-1 (1),
+ -- The character set "iso8859-1" is specified in International
+ -- Standard ISO 8859-1
+ -- The value 2 was assigned for CCITT Rec. T.61
+ -- which has been withdrawn by ITU-T.
+ iso8859-2 (3),
+ -- The character set “iso8859-2” is specified in International
+ -- Standard ISO 8859-2
+ iso8859-3 (4),
+ --The character set “iso8859-3” is specified in International
+ -- Standard ISO 8859-3
+ iso8859-4 (5),
+ --The character set “iso8859-4” is specified in International
+ -- Standard ISO 8859-4
+ iso8859-5 (6),
+ --The character set “iso8859-5” is specified in International
+ -- Standard ISO 8859-5
+ iso8859-7 (7),
+ --The character set “iso8859-7” is specified in International
+ -- Standard ISO 8859-7
+ iso10646-BmpString (8),
+ -- The character set “iso10646-BmpString” is specified in International
+ -- Standard ISO 10646-1 and in ITU-T Rec. X.680
+ -- with this character set, each character occupies 2 octets in NameData
+ iso10646-utf-8String (9)
+ -- The character set “iso10646-utf-8String” is specified in International
+ -- Standard ISO 10646-1
+ -- UTF-8-String is defined in Annex R of ISO 10646-1
+ -- with this character set, each character occupies a variable
+ -- number of octets (1...6) in NameData
+ } (0..255)
+ -- Other character sets might be added in further editions of
+ -- this Standard
+
+END -- of Name-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-PR.asn b/asn1/qsig/QSIG-PR.asn
new file mode 100644
index 0000000000..81e7f57abe
--- /dev/null
+++ b/asn1/qsig/QSIG-PR.asn
@@ -0,0 +1,171 @@
+-- QSIG-PR.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-176, 4th edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-176.htm
+--
+-- $Id$
+--
+
+Path-Replacement-Operations-asn1-97
+ {iso standard pss1-path-replacement (13874) pr-operations-asn1-97(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard
+ pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+ notAvailable, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97 (20)};
+
+Path-Replacement-Operations OPERATION ::={
+pathReplacePropose | pathReplaceSetup | pathReplaceRetain | pathReplaceInvite}
+
+pathReplaceInvite OPERATION ::= {
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ERRORS {
+ notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ collision |
+ unspecified }
+ ALWAYS RESPONDS FALSE
+ CODE local: 86 }
+
+pathReplacePropose OPERATION ::= {
+ ARGUMENT PRProposeArg
+ RETURN RESULT FALSE
+ ERRORS {
+ notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ collision |
+ unspecified }
+ ALWAYS RESPONDS FALSE
+ CODE local: 4 }
+
+pathReplaceSetup OPERATION ::= {
+ ARGUMENT PRSetupArg
+ RESULT DummyResult
+ ERRORS {
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ temporarilyUnavailable |
+ unspecified }
+ CODE local: 5 }
+
+pathReplaceRetain OPERATION ::= {
+ ARGUMENT PRRetainArg
+ RESULT DummyResult
+ ERRORS {
+ notAvailable |
+ temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ criteriaPermanentlyUnachievable |
+ criteriaTemporarilyUnachievable |
+ invalidRerouteingNumber |
+ unrecognizedCallIdentity |
+ establishmentFailure |
+ unspecified }
+ CODE local: 6 }
+
+PRProposeArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ } OPTIONAL
+ }
+
+PRSetupArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ } OPTIONAL
+ }
+
+PRRetainArg ::= SEQUENCE {
+ callIdentity CallIdentity,
+ rerouteingNumber PartyNumber,
+ extension CHOICE {
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ } OPTIONAL
+ }
+
+DummyResult ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ }
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{PRExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{PRExtSet}}
+ }
+
+PRExtSet EXTENSION ::= {...}
+
+CallIdentity ::= NumericString (SIZE(1..4))
+
+temporarilyUnavailable ERROR ::= {CODE local: 1000}
+ -- used when the operation is temporarily not available and none of
+ -- the other errors applies - a later attempt could be successful
+
+collision ERROR ::= {CODE local: 1001}
+ -- used when a pathReplacePropose invoke APDU is received by a PINX
+ -- which has sent a pathReplacePropose invoke APDU
+
+criteriaPermanentlyUnachievable ERROR ::= {CODE local: 1002}
+ -- used when the special criteria requested cannot be achieved
+ -- because the necessary resources are permanently unavailable
+
+criteriaTemporarilyUnachievable ERROR ::= {CODE local: 1003}
+ -- used when the special criteria requested cannot be achieved
+ -- because the necessary resources are temporarily unavailable
+ -- a later attempt could be successful
+
+invalidRerouteingNumber ERROR ::= {CODE local: 1004}
+ -- used when the establishment of the new connection fails because the
+ -- Called party number information element is not a valid number for
+ -- routeing the new connection to
+
+unrecognizedCallIdentity ERROR ::= {CODE local: 1005}
+ -- used when establishment of the new connection fails because it could
+ -- not be associated with the old connection at the Requesting PINX
+
+establishmentFailure ERROR ::= {CODE local: 1006}
+ -- used when establishment of the new connection fails and no other error
+ -- applies
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{PRExtSet}}
+ CODE local: 1008}
+ -- used to convey a manufacturer specific error, possibly with other information
+ -- of Path-Replacement-Operations
+
+END -- of Path-Replacement-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-PUMCH.asn b/asn1/qsig/QSIG-PUMCH.asn
new file mode 100644
index 0000000000..6bbf4d0e3c
--- /dev/null
+++ b/asn1/qsig/QSIG-PUMCH.asn
@@ -0,0 +1,137 @@
+-- QSIG-PUMCH.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-284, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-284.htm
+--
+-- $Id$
+--
+
+Private-User-Mobility-Call-Handling-Operations-asn1-97
+ { iso (1) standard (0) pss1-pum-call-handling (17878) pum-call-handling-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t remote-operations (4) informationObjects (5) version1 (0) }
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) msi-class-asn1-97(11) }
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97 (17) }
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0)
+ pss1-name (13868) name-operations-asn1-97 (1) }
+ basicServiceNotProvided, invalidServedUserNr, notAvailable FROM
+ General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) }
+ Address, PartyNumber, PartySubaddress, PresentedNumberScreened FROM
+ Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) };
+
+Private-User-Mobility-Call-Handling-Operations OPERATION ::= { pumiEnquiry | pumiDivert | pumiInform |
+pumoCall }
+
+-- Operations for ANF-PUMI: --
+pumiEnquiry OPERATION ::= {
+ -- Sent from the PUMI-detect PINX to the Home PINX.
+ ARGUMENT EnquiryArg
+ RESULT EnquiryRes
+ ERRORS { invalidServedUserNr | locationNotKnown |
+ notAvailable | basicServiceNotProvided | unspecified }
+ CODE local: 93}
+pumiDivert OPERATION ::= {
+ -- Sent from the PUMI-detect PINX to the Rerouteing PINX.
+ ARGUMENT DivertArg
+ RESULT DummyRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 94}
+
+pumiInform OPERATION ::= {
+ -- Sent from the Rerouteing PINX to the Visitor PINX.
+ ARGUMENT InformArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 95}
+EnquiryArg ::= SEQUENCE { pisnNumber PartyNumber,
+ -- The PISN number of the PUM user
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility can be embedded in the qSIGInfoElement
+ -- in accordance with clause 6.5.2.1.
+ argExtension PumiExtension OPTIONAL }
+DivertArg ::= SEQUENCE { hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ callingNumber PresentedNumberScreened,
+ pumIdentity PumIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility, and Progress indicator
+ -- can be embedded in the qSIGInfoElement in accordance with clause 6.5.2.1.
+ callingUserSub [ 1 ] PartySubaddress OPTIONAL,
+ callingUserName [ 2 ] Name OPTIONAL,
+ pumUserSub [ 3 ] PartySubaddress OPTIONAL,
+ argExtension PumiExtension OPTIONAL }
+InformArg ::= SEQUENCE { pumIdentity PumIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ argExtension PumiExtension OPTIONAL }
+EnquiryRes ::= CHOICE { currLocation [ 1 ] IMPLICIT CurrLocation,
+ cfuActivated [ 2 ] IMPLICIT CfuActivated }
+CurrLocation ::= SEQUENCE { hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ pumIdentity PumIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ argExtension PumiExtension OPTIONAL }
+CfuActivated ::= SEQUENCE { divToAddress Address,
+ divOptions SubscriptionOption,
+ pumName [ 1 ] Name OPTIONAL,
+ argExtension PumiExtension OPTIONAL }
+SubscriptionOption ::=ENUMERATED { noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2) }
+
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{PUMCHExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMCHExtSet}} }
+PumiExtension ::= CHOICE { extension [ 4 ] IMPLICIT Extension{{PUMCHExtSet}},
+ sequOfExtn [ 5 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMCHExtSet}} }
+PumIdentity ::= CHOICE { pisnNumber PartyNumber,
+ alternativeId [ 10 ] IMPLICIT AlternativeId,
+ both [ 11 ] IMPLICIT SEQUENCE
+ { pisnNumber PartyNumber,
+ alternativeId AlternativeId } }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+-- Operation for ANF-PUMO --
+pumoCall OPERATION ::= {
+ ARGUMENT PumoArg
+ ALWAYS RESPONDS FALSE
+ RETURN RESULT FALSE
+ CODE local: 96}
+PumoArg ::= SEQUENCE { destinationNumber [0] PartyNumber OPTIONAL,
+ pumIdentity [1] PumIdentity OPTIONAL,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the PUM user.
+ sendingComplete [2] IMPLICIT NULL OPTIONAL,
+ extension CHOICE
+ {single [3] IMPLICIT Extension{{PUMCHExtSet}},
+ multiple [4] IMPLICIT SEQUENCE OF
+ Extension{{PUMCHExtSet}} }
+ OPTIONAL }
+PUMCHExtSet EXTENSION ::= {...}
+
+locationNotKnown ERROR ::= { CODE local: 1015}
+unspecified ERROR ::= { PARAMETER Extension{{PUMCHExtSet}}
+ CODE local: 1008}
+
+END -- of Private-User-Mobility-Call-Handling-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-PUMR.asn b/asn1/qsig/QSIG-PUMR.asn
new file mode 100644
index 0000000000..b604b1afbc
--- /dev/null
+++ b/asn1/qsig/QSIG-PUMR.asn
@@ -0,0 +1,207 @@
+-- QSIG-PUMR.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-282, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-282.htm
+--
+-- $Id$
+--
+
+PUM-Registration-Operations-asn1-97
+ { iso (1) standard (0) pss1-pum-registration (17876) pum-registration-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+ notAvailable, invalidServedUserNr, supplementaryServiceInteractionNotAllowed
+ FROM General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) }
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) }
+ BasicService FROM Call-Diversion-Operations-asn1-97
+ { iso (1) standard (0) pss1-call-diversion (13873)
+ call-diversion-operations-asn1-97 (1) }
+ pisnEnquiry FROM WTM-Location-Registration-Operations-asn1-97
+ { iso (1) standard (0) pss1-location-registration (15429)
+ wtmlr-operations-asn1-97 (1) };
+
+PUM-Registration-Operations OPERATION ::= { pumRegistr | pumDelReg | pumDe-reg |
+ pumInterrog | pisnEnquiry }
+
+pumRegistr OPERATION ::= {
+ -- Registration (sent from the Visitor PINX to the Home PINX or
+ -- from a Remote PINX to the Visitor PINX)
+ ARGUMENT PumRegistrArg
+ RESULT PumRegistrRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified |
+ notAvailable | temporarilyUnavailable |
+ supplementaryServiceInteractionNotAllowed |
+ pumUserNotSubscribedToThisServiceOpt |
+ pumUserFailedAuthentication | hostingAddrInvalid }
+ CODE local: 89}
+
+pumDelReg OPERATION ::= {
+ -- Delete Registration (sent from the Home PINX to the Previous Visitor PINX)
+ ARGUMENT PumDelRegArg
+ RESULT DummyRes
+ ERRORS { notAvailable | temporarilyUnavailable | unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 90}
+pumDe-reg OPERATION ::= {
+ -- De-registration (sent from the Visitor PINX or Remote PINX to the Home PINX)
+ ARGUMENT PumDe-regArg
+ RESULT DummyRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified |
+ supplementaryServiceInteractionNotAllowed |
+ pumUserNotSubscribedToThisServiceOpt |
+ pumUserFailedAuthentication | hostingAddrInvalid |
+ pumUserNotRegistered }
+ CODE local: 91}
+pumInterrog OPERATION ::= {
+ -- Interrogation (sent from the Visitor PINX or Remote PINX to the Home PINX and
+ -- from the Home PINX to the Visitor PINX)
+ ARGUMENT PumInterrogArg
+ RESULT PumInterrogRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified |
+ supplementaryServiceInteractionNotAllowed |
+ pumUserFailedAuthentication | hostingAddrInvalid |
+ pumUserNotRegistered }
+ CODE local: 92}
+PumRegistrArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ activatingUserAddr [0] PartyNumber OPTIONAL,
+ -- The PISN number of the activating user,
+ -- always a Complete Number.
+ -- Mandatory if sent from a Remote PINX, else not included.
+ serviceOption ServiceOption DEFAULT inCallRegistration,
+ -- Type of registration (InCall, OutCall or AllCall)
+ sessionParams SessionParams OPTIONAL,
+ -- Duration of session, Number of outgoing calls
+ userPin CHOICE { pumUserPin [6] IMPLICIT UserPin,
+ activatingUserPin [7] IMPLICIT UserPin } OPTIONAL,
+ argExtension PumrExtension OPTIONAL }
+
+PumRegistrRes ::= SEQUENCE { pumNumber PartyNumber,
+ serviceOption ServiceOption OPTIONAL,
+ -- Type of registration (InCall, OutCall or AllCall)
+ sessionParams SessionParams OPTIONAL,
+ -- Duration of session, Number of outgoing calls
+ argExtension PumrExtension OPTIONAL }
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{PUMRExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMRExtSet}} }
+PumDelRegArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr PartyNumber,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ serviceOption ServiceOption,
+ -- Type of registration session (InCall, OutCall or AllCall)
+ argExtension PumrExtension OPTIONAL }
+PumDe-regArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr [0] PartyNumber OPTIONAL,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ -- Not included if serviceOption indicates 'inCallRegistration',
+ -- optional if serviceOption indicates 'outCallRegistration'
+ -- or 'allCallRegistration'.
+ activatingUserAddr [1] PartyNumber OPTIONAL,
+ -- The PISN number of the activating user,
+ -- always a Complete Number.
+ -- Mandatory if sent from a Remote PINX, else not included.
+ serviceOption ServiceOption DEFAULT inCallRegistration,
+ -- Type of registration session (InCall, OutCall or AllCall)
+ -- If serviceOption indicates 'outCallRegistration' and
+ -- hostingAddr is omitted, the de-registration applies to
+ -- all OutCall registrations of this PUM user.
+ -- If serviceOption indicates 'allCallRegistration' and
+ -- hostingAddr is omitted, the de-registration applies to the
+ -- AllCall and all OutCall registrations of this PUM user.
+ userPin CHOICE { pumUserPin [6] IMPLICIT UserPin,
+ activatingUserPin [7] IMPLICIT UserPin } OPTIONAL,
+ argExtension PumrExtension OPTIONAL }
+
+PumInterrogArg ::= SEQUENCE { pumUserId CHOICE { pumNumber PartyNumber,
+ -- The PISN number of the PUM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId },
+ basicService BasicService,
+ -- specific basic service or all basic services,
+ hostingAddr [0] PartyNumber OPTIONAL,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ -- Omission indicates 'all hosting addresses'.
+ activatingUserAddr [1] PartyNumber OPTIONAL,
+ -- The PISN number of the activating user,
+ -- always a Complete Number.
+ serviceOption [2] ServiceOption OPTIONAL,
+ homeInfoOnly BOOLEAN DEFAULT TRUE,
+ -- True = Only Home PINX information (default)
+ -- False = Complete information
+ userPin CHOICE { pumUserPin [6] IMPLICIT UserPin,
+ activatingUserPin [7] IMPLICIT UserPin } OPTIONAL,
+ argExtension PumrExtension OPTIONAL }
+PumInterrogRes ::= SET SIZE(1..8) OF
+ SEQUENCE { basicService [0] IMPLICIT BasicService OPTIONAL,
+ -- specific basic service or all basic services,
+ -- (Home PINX information)
+ hostingAddr [1] PartyNumber OPTIONAL,
+ -- The PISN number of the hosting user,
+ -- always a Complete Number.
+ -- (Home PINX information)
+ serviceOption [2] IMPLICIT ServiceOption OPTIONAL,
+ -- Type of registration session
+ -- (InCall, OutCall or AllCall)
+ -- (Home PINX information)
+ interrogParams SessionParams OPTIONAL,
+ -- Time left in registration session,
+ -- Number of outgoing calls left
+ -- (Visitor PINX information)
+ argExtension PumrExtension OPTIONAL }
+AlternativeId ::= OCTET STRING (SIZE(1..20))
+ServiceOption ::= ENUMERATED { inCallRegistration (0),
+ outCallRegistration (1),
+ allCallRegistration (2) }
+SessionParams ::= SEQUENCE { durationOfSession [ 1 ] IMPLICIT INTEGER OPTIONAL,
+ -- Duration of session in seconds,
+ -- default if omitted: duration of session unlimited.
+ numberOfOutgCalls [ 2 ] IMPLICIT INTEGER OPTIONAL }
+ -- Default if omitted: number of outgoing calls unlimited.
+UserPin ::= OCTET STRING (SIZE(1..20))
+
+PumrExtension ::= CHOICE {
+ extension [ 4 ] IMPLICIT Extension {{PUMRExtSet}},
+ sequOfExtn [ 5 ] IMPLICIT SEQUENCE OF
+ Extension{{PUMRExtSet}} }
+PUMRExtSet EXTENSION ::= {...}unspecified ERROR ::= { PARAMETER
+ Extension{{PUMRExtSet}}
+ CODE local: 1008}
+notAuthorized ERROR ::= { CODE local: 1007}
+temporarilyUnavailable ERROR ::= { CODE local: 1000}
+pumUserNotSubscribedToThisServiceOpt ERROR ::= { CODE local: 1019}
+pumUserFailedAuthentication ERROR ::= { CODE local: 1020}
+hostingAddrInvalid ERROR ::= { CODE local: 1021}
+pumUserNotRegistered ERROR ::= { CODE local: 1022}
+END -- of PUM-Registration-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-RE.asn b/asn1/qsig/QSIG-RE.asn
new file mode 100644
index 0000000000..25ee450989
--- /dev/null
+++ b/asn1/qsig/QSIG-RE.asn
@@ -0,0 +1,64 @@
+-- QSIG-RE.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-214, 3rd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-214.htm
+--
+-- $Id$
+--
+
+Recall-Operations-asn1-97
+ { iso (1) standard (0) pss1-recall (15052) recall-operations-asn1-97 (1) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS
+ OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t (2) remote-operations (4) informationObjects (5) version1(0) }
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0) pss1-name (13868) name-operations-asn1-97 (1) }
+
+ PresentedNumberScreened, PartySubaddress FROM Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) addressing-data-elements-asn1-97 (20) };
+
+Recall-Operations OPERATION ::= { recallAlerting | recallAnswered }
+
+recallAlerting OPERATION ::= {
+ -- Sent from the Served User PINX to the Primary PINX
+ ARGUMENT ReAlertingArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 57}
+
+recallAnswered OPERATION ::= {
+ -- Sent from the Served User PINX to the Primary PINX
+ ARGUMENT ReAnswerArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 58}
+
+ReAlertingArg ::= SEQUENCE {
+ alertedNumber [1] PresentedNumberScreened OPTIONAL,
+ alertedName [2] Name OPTIONAL,
+ argumentExtension CHOICE {
+ extension [6] IMPLICIT Extension{{REExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF Extension{{REExtSet}}
+ } OPTIONAL }
+
+ReAnswerArg ::= SEQUENCE {
+ connectedNumber [1] PresentedNumberScreened,
+ connectedSubaddress [2] PartySubaddress OPTIONAL,
+ connectedName [3] Name OPTIONAL,
+ argumentExtension CHOICE {
+ extension [6] IMPLICIT Extension{{REExtSet}},
+ multipleExtension [7] IMPLICIT SEQUENCE OF Extension{{REExtSet}}
+ } OPTIONAL }
+REExtSet EXTENSION ::= {...}
+
+END -- of Recall-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-SD.asn b/asn1/qsig/QSIG-SD.asn
new file mode 100644
index 0000000000..43e0de7838
--- /dev/null
+++ b/asn1/qsig/QSIG-SD.asn
@@ -0,0 +1,91 @@
+-- QSIG-SD.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-311, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-311.htm
+--
+-- $Id$
+--
+
+SS-SD-Operations-asn1-97
+{ iso (1) standard (0) pss1-simple-dialog (21407) simple-dialog-operations-asn1-97 (1)}
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t (2) remote-operations (4) informationObjects (5)
+ version1 (0)}
+
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso (1) standard (0) pss1-generic-procedures (11582)
+ msi-class-asn1-97(11)};
+
+SD-Operations OPERATION ::= { display | keypad}
+
+display OPERATION ::= {
+ ARGUMENT DisplayArg
+ RETURN RESULT FALSE
+ ERRORS {unspecified |
+ noDisplayAvailable |
+ displayTemporarilyNotAvailable |
+ notPresentable
+ }
+ ALWAYS RESPONDS FALSE
+ CODE local: 103}
+
+
+keypad OPERATION ::= {
+ ARGUMENT KeypadArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 104}
+
+
+DisplayArg ::= SEQUENCE {
+ displayString DisplayString,
+ extension SDExtension OPTIONAL
+ }
+
+
+DisplayString ::= CHOICE {
+ displayStringNormal [0] IMPLICIT BMPStringNormal,
+ displayStringExtended [1] IMPLICIT BMPStringExtended
+ }
+
+KeypadArg ::= SEQUENCE {
+ keypadString [0] IMPLICIT BMPStringNormal,
+ extension SDExtension OPTIONAL
+ }
+
+
+BMPStringNormal ::= OCTET STRING (SIZE(2..64)) -- shall be used according to
+ -- ISO/IEC 10646-1 (section 6.2)
+ -- coded as a BMP String according to
+ -- ITU-T Rec. X.690 (section 8.20.8)
+
+BMPStringExtended ::= OCTET STRING (SIZE(2..160)) -- shall be used according to ISO/IEC 10646-1
+ -- coded as a BMP String according to
+ -- ITU-T Rec. X.690
+
+
+SDExtension ::= CHOICE {
+ extension [2] IMPLICIT Extension{{SDExtSet}},
+ multipleExtension [3] IMPLICIT SEQUENCE OF Extension{{SDExtSet}}
+ }
+
+SDExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= { PARAMETER Extension{{SDExtSet}}
+ CODE local: 1008}
+
+noDisplayAvailable ERROR ::= { CODE local: 1023}
+
+displayTemporarilyNotAvailable ERROR ::= { CODE local: 1024}
+
+notPresentable ERROR ::= { CODE local: 1025}
+
+
+END -- of SS-SD-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-SMS.asn b/asn1/qsig/QSIG-SMS.asn
new file mode 100644
index 0000000000..544eeed0c4
--- /dev/null
+++ b/asn1/qsig/QSIG-SMS.asn
@@ -0,0 +1,341 @@
+-- QSIG-SMS.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-325, (June 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-325.htm
+--
+-- $Id$
+--
+
+Short-Message-Service-Operations-asn1-97
+{iso(1) identified-organization(3) icd-ecma(12) standard(0) qsig-short-message-service(325) short-message-service-operations-asn1-97(1)}
+
+DEFINITIONS::=
+BEGIN
+IMPORTS
+ OPERATION,
+ ERROR
+FROM Remote-Operations-Information-Objects
+{joint-iso-itu-t (2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{}
+FROM Manufacturer-specific-service-extension-class-asn1-97
+{iso(1) standard(0) pss1-generic-procedures(11582) msi-class-asn1-97(11)}
+ Name
+FROM Name-Operations-asn1-97
+{iso(1) standard(0) pss1-name(13868) name-operations-asn1-97(1)}
+ supplementaryServiceInteractionNotAllowed
+FROM General-Error-List
+{ccitt recommendation q 950 general-error-list(1)}
+ PartyNumber
+FROM Addressing-Data-Elements-asn1-97
+{iso(1) standard(0) pss1-generic-procedures(11582) addressing-data-elements-asn1-97(20)};
+
+--TYPE DEFINITIONS FOR SMS OPERATIONS FOLLOW
+
+Sms-Operations OPERATION ::={
+
+ smsSubmit | smsDeliver | smsStatusReport | smsCommand | scAlert}
+
+smsSubmit OPERATION ::= {
+ -- sent from the Sending User PINX/ Sending User Message Centre to the Service Centre
+ ARGUMENT SmsSubmitArg
+ RESULT SmsSubmitRes
+ ERRORS {smsSubmitError |
+ unspecified}
+ CODE local:107}
+
+smsDeliver OPERATION ::= {
+ -- sent from the Service Centre to the Receiving User PINX or to the Receiving User Message Centre
+ ARGUMENT SmsDeliverArg
+ RESULT SmsDeliverRes
+ ERRORS {smsDeliverError |
+ unspecified}
+ CODE local:108}
+
+smsStatusReport OPERATION ::= {
+ -- sent from the Service Centre to the Sending User PINX or to the Sending User Message Centre
+ ARGUMENT SmsStatusReportArg
+ RESULT SmsStatusReportRes
+ ERRORS {smsStatusReportError |
+ unspecified}
+ CODE local:109}
+
+smsCommand OPERATION ::= {
+ -- sent from the Sending User PINX or the Sending User Message Centre to the Service Centre
+ ARGUMENT SmsCommandArg
+ RESULT SmsCommandRes
+ ERRORS {smsCommandError |
+ unspecified}
+ CODE local:110}
+
+scAlert OPERATION ::= {
+ -- sent from the Receiving User PINX or the Receiving User Message Centre to the Service Centre
+ ARGUMENT ScAlertArg
+ RESULT DummyRes
+ ERRORS {unspecified}
+ CODE local:111}
+
+--TYPE DEFINITIONS FOR SMS DATA TYPES FOLLOW
+
+SmsSubmitArg ::= SEQUENCE {
+ destinationAddress PartyNumber,
+ originatingAddress PartyNumber,
+ messageReference MessageReference,
+ smSubmitParameter SmSubmitParameter,
+ userData UserData,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsSubmitRes ::= SEQUENCE {
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier [3] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [4] IMPLICIT UserData OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsDeliverArg ::= SEQUENCE {
+ originatingAddress PartyNumber,
+ destinationAddress PartyNumber,
+ originatingName Name OPTIONAL,
+ smDeliverParameter SmDeliverParameter,
+ userData UserData,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsDeliverRes ::= SEQUENCE {
+ smsDeliverResponseChoice SmsDeliverResChoice,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsStatusReportArg ::= SEQUENCE {
+ messageReference MessageReference,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ dischargeTime DischargeTime,
+ recipientAddress PartyNumber,
+ recipientName [10] Name OPTIONAL,
+ destinationAddress PartyNumber,
+ status Status,
+ priority [11] IMPLICIT BOOLEAN DEFAULT FALSE,
+ moreMessagesToSend [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ statusReportQualifier [13] IMPLICIT BOOLEAN DEFAULT FALSE,
+ protocolIdentifier ProtocolIdentifier OPTIONAL,
+ userData UserData OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsStatusReportRes ::= SEQUENCE {
+ smsStatusReportResponseChoice SmsStatusReportResponseChoice,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsCommandArg ::= SEQUENCE {
+ destinationAddress PartyNumber,
+ messageReference MessageReference,
+ messageNumber MessageReference,
+ protocolIdentifier ProtocolIdentifier,
+ commandType CommandType,
+ commandData CommandData OPTIONAL,
+ statusReportRequest BOOLEAN OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+SmsCommandRes ::= SEQUENCE {
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier ProtocolIdentifier OPTIONAL,
+ userData UserData OPTIONAL,
+ smsExtension SmsExtension OPTIONAL}
+
+ScAlertArg ::= SEQUENCE {
+ originatingAddress PartyNumber,
+ smsExtension SmsExtension OPTIONAL}
+
+DummyRes ::= CHOICE{
+ null NULL,
+ smsExtension SmsExtension}
+
+SmSubmitParameter ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ validityPeriod ValidityPeriod OPTIONAL,
+ statusReportRequest [11] IMPLICIT BOOLEAN DEFAULT FALSE,
+ replyPath [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ rejectDuplicates [13] IMPLICIT BOOLEAN DEFAULT FALSE}
+
+SmDeliverParameter ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ priority [11] IMPLICIT BOOLEAN DEFAULT FALSE,
+ moreMessagesToSend [12] IMPLICIT BOOLEAN DEFAULT FALSE,
+ statusReportIndication [13] IMPLICIT BOOLEAN DEFAULT FALSE,
+ replyPath [14] IMPLICIT BOOLEAN DEFAULT FALSE}
+
+SmsDeliverResChoice ::= CHOICE {
+ null NULL,
+ protocolIdentifier ProtocolIdentifier,
+ userData [0] IMPLICIT UserData,
+ resChoiceSeq [1] IMPLICIT ResChoiceSeq}
+
+ResChoiceSeq ::= SEQUENCE {
+ protocolIdentifier ProtocolIdentifier,
+ userData UserData}
+
+SmsStatusReportResponseChoice ::= CHOICE {
+ null NULL,
+ protocolIdentifier ProtocolIdentifier,
+ userData [0] IMPLICIT UserData,
+ resChoiceSeq [1] IMPLICIT ResChoiceSeq}
+
+MessageReference ::= INTEGER(0..255)
+
+SmsExtension ::= CHOICE{
+ single [1]IMPLICIT Extension{{SmsExtSet}},
+ multiple [2]IMPLICIT SEQUENCE OF
+ Extension{{SmsExtSet}}
+ }
+
+SmsExtSet EXTENSION ::= {...}
+
+ProtocolIdentifier ::= INTEGER (0..127)
+ -- definition of the ProtocolIdentifier values and default value can be found in annex E section
+ -- E.1.2.1
+
+ServiceCentreTimeStamp ::= GeneralizedTime(SIZE(12..19))
+ -- this date and time representation follows ISO 8601
+
+DischargeTime ::= GeneralizedTime(SIZE(12..19))
+ -- this date and time representation follows ISO 8601
+
+ValidityPeriod ::= CHOICE{
+ validityPeriodRel [0] IMPLICIT ValidityPeriodRel,
+ validityPeriodAbs [1] IMPLICIT ValidityPeriodAbs,
+ validityPeriodEnh [2] IMPLICIT ValidityPeriodEnh}
+
+ValidityPeriodAbs ::= GeneralizedTime(SIZE(12..19))
+ -- this date and time representation follows ISO 8601
+
+ValidityPeriodRel ::= INTEGER(0..255)
+ -- the rules for the encoding of ValidityPeriodRel are shown in annex E section E.1.2.2
+
+ValidityPeriodEnh ::= SEQUENCE{
+ singleShotSM BOOLEAN DEFAULT FALSE,
+ enhancedVP EnhancedVP OPTIONAL}
+
+EnhancedVP ::= CHOICE{
+ validityPeriodRel [0] IMPLICIT ValidityPeriodRel,
+ validityPeriodSec [1] IMPLICIT INTEGER(0..255),
+ validityPeriodSemi [2] IMPLICIT ValidityPeriodSemi}
+
+ValidityPeriodSemi ::= OCTET STRING (SIZE(3))
+ -- Validity Period is relative in semi-octet representation, see ETSI TS 100 901, section 9.1.2.3
+ -- and section 9.2.3.12.3
+
+UserData ::= SEQUENCE{
+ userDataHeader [0] IMPLICIT UserDataHeader OPTIONAL,
+ class [1] IMPLICIT INTEGER (0..3) OPTIONAL,
+ compressed [2] IMPLICIT BOOLEAN DEFAULT FALSE,
+ shortMessageText ShortMessageText}
+
+ShortMessageText ::= SEQUENCE{
+ shortMessageTextType ShortMessageTextType,
+ shortMessageTextData ShortMessageTextData}
+
+ShortMessageTextType ::= INTEGER{
+ iA5Coded (0), -- ShortMessageTextData shall contain data according to
+ octetCoded (1), -- the type given in ShortMessageTextType, for further
+ uniCoded (2), -- details see annex E. 1.3.4.
+ compressedCoded (3)} (0..8)
+
+ShortMessageTextData ::= OCTET STRING (SIZE(0..140))
+
+Status ::= INTEGER (0..255)
+ -- definition of status values can be found in section E.7.6 in annex E
+
+CommandType ::= INTEGER{
+ enquiry (0),
+ cancelSRR (1),
+ deletePreviouslySubmittedSM (2),
+ enableSRRrelatingToPreviouslySubmittedSM (3)} (0..255)
+
+CommandData ::= OCTET STRING (SIZE(0..157))
+
+FailureCause ::= INTEGER (0..255)
+ -- definition for failureCause values can be found in section E.3.1 in annex E
+
+UserDataHeader ::= SEQUENCE OF UserDataHeaderChoice
+
+UserDataHeaderChoice ::= CHOICE{
+ smscControlParameterHeader [0] IMPLICIT SmscControlParameterHeader,
+ concatenated8BitSMHeader [1] IMPLICIT Concatenated8BitSMHeader,
+ concatenated16BitSMHeader [2] IMPLICIT Concatenated16BitSMHeader,
+ applicationPort8BitHeader [3] IMPLICIT ApplicationPort8BitHeader,
+ applicationPort16BitHeader [4] IMPLICIT ApplicationPort16BitHeader,
+ dataHeaderSourceIndicator [5] IMPLICIT DataHeaderSourceIndicator,
+ wirelessControlHeader [6] IMPLICIT WirelessControlHeader,
+ genericUserValue [99] IMPLICIT GenericUserValue}
+
+SmscControlParameterHeader ::= BIT STRING {
+ sRforTransactionCompleted (0),
+ sRforPermanentError (1),
+ sRforTempErrorSCnotTrying (2),
+ sRforTempErrorSCstillTrying (3),
+ cancelSRRforConcatenatedSM (6),
+ includeOrigUDHintoSR (7)} (SIZE(8))
+
+Concatenated8BitSMHeader ::= SEQUENCE{
+ concatenated8BitSMReferenceNumber INTEGER(0..255),
+ maximumNumberOf8BitSMInConcatenatedSM INTEGER(0..255),
+ sequenceNumberOf8BitSM INTEGER(0..255)}
+
+Concatenated16BitSMHeader ::= SEQUENCE{
+ concatenated16BitSMReferenceNumber INTEGER(0..65536),
+ maximumNumberOf16BitSMInConcatenatedSM INTEGER(0..255),
+ sequenceNumberOf16BitSM INTEGER(0..255)}
+
+ApplicationPort8BitHeader ::= SEQUENCE{
+ destination8BitPort INTEGER(0..255),
+ originator8BitPort INTEGER(0..255)}
+
+ApplicationPort16BitHeader ::= SEQUENCE{
+ destination16BitPort INTEGER(0..65536),
+ originator16BitPort INTEGER(0..65536)}
+
+DataHeaderSourceIndicator ::= INTEGER{
+ originalSender (1), -- valid in case of Status Report
+ originalReceiver (2), -- valid in case of Status Report
+ sMSC (3)}(0..255) -- can occur in any message or report
+
+WirelessControlHeader ::= OCTET STRING
+
+GenericUserValue ::= SEQUENCE{
+ parameterValue INTEGER(0..255),
+ genericUserData OCTET STRING}
+
+smsDeliverError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL,
+ scAddressSaved [2] IMPLICIT BOOLEAN DEFAULT FALSE}
+ CODE local:1026}
+
+smsSubmitError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL}
+ CODE local:1027}
+
+smsStatusReportError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL,
+ scAddressSaved [2] IMPLICIT BOOLEAN DEFAULT FALSE}
+ CODE local: 1028}
+
+smsCommandError ERROR ::= {
+ PARAMETER SEQUENCE{
+ failureCause FailureCause,
+ serviceCentreTimeStamp ServiceCentreTimeStamp,
+ protocolIdentifier [0] IMPLICIT ProtocolIdentifier OPTIONAL,
+ userData [1] IMPLICIT UserData OPTIONAL}
+ CODE local:1029}
+
+unspecified ERROR ::= {
+ PARAMETER SmsExtension
+ CODE local: 1008}
+
+END -- of Short-Message-Service-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-SSCT.asn b/asn1/qsig/QSIG-SSCT.asn
new file mode 100644
index 0000000000..c2f07864a4
--- /dev/null
+++ b/asn1/qsig/QSIG-SSCT.asn
@@ -0,0 +1,122 @@
+-- QSIG-SSCT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-300, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-300.htm
+--
+-- $Id$
+--
+
+Single-Step-Call-Transfer-Operations-asn1-97
+{ iso(1) standard (0) pss1-single-step-call-transfer (19460)
+single-step-call-transfer-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS
+ OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0) }
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+ Name FROM Name-Operations-asn1-97
+ {iso(1) standard(0) pss1-name (13868) name-operations-asn1-97 (1)}
+ supplementaryServiceInteractionNotAllowed, notAvailable, invalidCallState
+ FROM General-Error-List
+ { ccitt recommendation q 950 general-error-list (1) }
+ PresentedAddressScreened, PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20)}
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ {iso(1) standard (0) pss1-generic-procedures (11582)
+ pss1-generic-parameters-asn1-97 (17)}
+ callTransferUpdate, callTransferComplete, callTransferActive, subaddressTransfer,
+ invalidRerouteingNumber, establishmentFailure FROM Call-Transfer-Operations-asn1-97
+ {iso(1) standard (0) pss1-call-transfer (13869) call-transfer-operations-asn1-97 (1)};
+
+Single-Step-Call-Transfer-Operations OPERATION ::= { ssctInitiate | ssctSetup | ssctPostDial |
+ssctDigitInfo }
+
+ssctInitiate OPERATION ::= {
+ -- sent from the Transferring PINX to the Rerouting PINX
+ ARGUMENT SSCTInitiateArg
+ RESULT DummyRes
+ ERRORS { notAvailable | invalidCallState | invalidRerouteingNumber |
+ establishmentFailure | unspecified |
+ supplementaryServiceInteractionNotAllowed }
+ CODE local: 99}
+
+ssctSetup OPERATION ::= {
+ -- sent from the Rerouting PINX to the Transferred-To PINX
+ ARGUMENT SSCTSetupArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 100}
+
+ssctPostDial OPERATION ::= {
+ -- sent from the Rerouting PINX to the Transferred PINX
+ ARGUMENT DummyArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 101}
+
+ssctDigitInfo OPERATION ::= {
+ -- sent from the Transferred PINX to the Rerouting PINX
+ ARGUMENT SSCTDigitInfoArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 102}
+
+DummyArg ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}}
+
+DummyRes ::= CHOICE {
+ null NULL,
+ single [1] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [2] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}}
+
+SSCTInitiateArg ::= SEQUENCE {
+ rerouteingNumber PartyNumber, -- Transferred-To Number
+ transferredAddress PresentedAddressScreened,
+ awaitConnect AwaitConnect,
+ transferredName [1] Name OPTIONAL,
+ transferringAddress [2] PresentedAddressScreened OPTIONAL,
+ transferringName [3] Name OPTIONAL,
+ argumentExtension CHOICE {
+ single [4] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [5] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}
+ } OPTIONAL
+ }
+
+AwaitConnect ::= BOOLEAN
+ -- FALSE = release the original call upon ALERTING received
+ -- TRUE = release the original call upon CONNECT received
+
+SSCTSetupArg ::= SEQUENCE {
+ transferringAddress [1] PresentedAddressScreened OPTIONAL,
+ transferringName [2] Name OPTIONAL,
+ argumentExtension CHOICE {
+ single [3] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [4] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}
+ } OPTIONAL
+ }
+
+SSCTDigitInfoArg ::= SEQUENCE {
+ reroutingNumber [1] PartyNumber OPTIONAL,
+ -- remaining digits of the Transferred-To Number
+ sendingComplete [2] IMPLICIT NULL OPTIONAL,
+ argumentExtension CHOICE {
+ single [3] IMPLICIT Extension{{SSCTExtSet}},
+ multiple [4] IMPLICIT SEQUENCE OF Extension{{SSCTExtSet}}
+ } OPTIONAL
+ }
+
+SSCTExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{SSCTExtSet}}
+ CODE local: 1008}
+
+END -- of SSCT Operations-asn1-97
diff --git a/asn1/qsig/QSIG-WTMAU.asn b/asn1/qsig/QSIG-WTMAU.asn
new file mode 100644
index 0000000000..7f58d07044
--- /dev/null
+++ b/asn1/qsig/QSIG-WTMAU.asn
@@ -0,0 +1,156 @@
+-- QSIG-WTMAU.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-306, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-306.htm
+--
+-- $Id$
+--
+
+WTM-Authentication-Operations-asn1-97
+ {iso standard pss1-authentication (15433) authentication-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t(2) remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard
+ pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
+ invalidServedUserNr FROM General-Error-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97(20)};
+WTMAuth-Operations OPERATION ::= {authWtmUser | getWtatParam | wtatParamEnq | getWtanParam |
+ wtanParamEnq | transferAuthParam}
+-- The following three operations shall apply to SS-WTAT --
+authWtmUser OPERATION ::= { -- from Home PINX to Visitor PINX--
+ ARGUMENT AuthWtmArg
+ RESULT AuthWtmRes
+ ERRORS { temporarilyUnavailable | invalidServedUserNr |
+ notAuthorized | paramNotAvailable | unspecified}
+ CODE local : 72}
+getWtatParam OPERATION ::= { -- from Visitor PINX to Home PINX --
+ ARGUMENT WtatParamArg
+ RESULT WtatParamRes
+ ERRORS { invalidServedUserNr | notAuthorized |
+ paramNotAvailable | temporarilyUnavailable | unspecified}
+ CODE local : 73}
+wtatParamEnq OPERATION ::= { -- from Home PINX to Authentication Server PINX--
+ ARGUMENT WtatParamArg
+ RESULT WtatParamRes
+ ERRORS { invalidServedUserNr | paramNotAvailable | unspecified}
+ CODE local : 74}
+AuthWtmArg ::= SEQUENCE {
+ wtmUserId WtmUserId,
+ calcWtatInfo [ 1 ] IMPLICIT CalcWtatInfo OPTIONAL,
+ dummyExtension DummyExtension OPTIONAL}
+
+AuthWtmRes ::= SEQUENCE {
+ autWtmResValue ENUMERATED
+ {auth-res-correct (0),
+ auth-res-incorrect (1) },
+ dummyExtension DummyExtension OPTIONAL}
+WtatParamArg ::= SEQUENCE {
+ wtmUserId WtmUserId,
+ canCompute CanCompute OPTIONAL,
+ authChallenge AuthChallenge OPTIONAL,
+ dummyExtension DummyExtension OPTIONAL}
+ -- The presence of element canCompute indicates that the Visitor PINX is able to --
+ -- compute a challenge and the expected response from session key information --
+WtatParamRes ::= SEQUENCE {wtatParamInfo WtatParamInfo,
+ dummyExtension DummyExtension OPTIONAL}
+-- The following two operations shall apply to SS-WTAN --
+getWtanParam OPERATION ::= { -- from Visitor PINX to Home PINX --
+ ARGUMENT WtanParamArg
+ RESULT WtanParamRes
+ ERRORS { invalidServedUserNr | notAuthorized |
+ paramNotAvailable | temporarilyUnavailable | unspecified}
+ CODE local : 75}
+wtanParamEnq OPERATION ::= { -- from Home PINX to Authentication Server PINX--
+ ARGUMENT WtanParamArg
+ RESULT WtanParamRes
+ ERRORS { invalidServedUserNr | paramNotAvailable | unspecified}
+ CODE local : 76}
+WtanParamArg ::= SEQUENCE { wtmUserId WtmUserId,
+ authChallenge AuthChallenge,
+ authAlgorithm AuthAlgorithm,
+ canCompute CanCompute OPTIONAL,
+ dummyExtension DummyExtension OPTIONAL}
+ -- The presence of element canCompute indicates that the Visitor PINX is able to --
+ -- compute the response from session key information --
+WtmUserId ::= CHOICE { pisnNumber PartyNumber,
+ -- The PISN number of the WTM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+WtanParamRes ::= SEQUENCE {wtanParamInfo WtanParamInfo,
+ dummyExtension DummyExtension OPTIONAL}
+
+-- The following unconfirmed operation shall apply when interaction between SS-WTAT and ANF-WTINFO --
+transferAuthParam OPERATION ::= { -- from Home PINX to Visitor PINX --
+ ARGUMENT SEQUENCE {
+ wtatParamInfo WtatParamInfo,
+ dummyExtension DummyExtension OPTIONAL}
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local : 77}
+WtatParamInfo ::= SEQUENCE {authAlgorithm AuthAlgorithm,
+ wtatParamInfoChoice CHOICE {
+ authSessionKeyInfo [ 1 ] IMPLICIT AuthSessionKeyInfo,
+ calcWtatInfo [ 2 ] IMPLICIT CalcWtatInfo,
+ authKey [ 3 ] IMPLICIT AuthKey,
+ challLen [ 4 ] IMPLICIT INTEGER(1..8) } }
+AuthKey ::= OCTET STRING (SIZE(1..16)) -- Authentication key --
+WtanParamInfo ::= CHOICE {authSessionKeyInfo [ 1 ] IMPLICIT AuthSessionKeyInfo,
+ calcWtanInfo [ 2 ] IMPLICIT CalcWtanInfo}
+AuthSessionKeyInfo ::= SEQUENCE {authSessionKey AuthSessionKey,
+ calculationParam CalculationParam}
+CalcWtatInfo ::= SEQUENCE SIZE(1..5) OF CalcWtatInfoUnit
+CalcWtatInfoUnit ::= SEQUENCE {authChallenge AuthChallenge,
+ authResponse AuthResponse,
+ derivedCipherKey [1] IMPLICIT DerivedCipherKey OPTIONAL,
+ calculationParam [2] IMPLICIT CalculationParam OPTIONAL}
+ -- included if required by the authentication algorithm in use --
+CalcWtanInfo ::= SEQUENCE {authResponse AuthResponse,
+ calculationParam CalculationParam OPTIONAL}
+ -- included if required by the authentication algorithm in use --
+DummyExtension ::= CHOICE {extension [5] IMPLICIT Extension{{WTMAuthExtSet}},
+ sequOfExtn [6] IMPLICIT SEQUENCE OF
+ Extension{{WTMAuthExtSet}} }
+AUTH-ALG ::= CLASS {
+ &id DefinedIDs UNIQUE,
+ &Type OPTIONAL
+ }
+DefinedIDs ::= INTEGER { ct2 (0), dect (1), gsm (2), pci (3), pwt (4), us-gsm (5), phs (6), tetra (7) } (0..255)
+AuthAlgSet AUTH-ALG ::= {...}
+AuthAlgorithm ::= SEQUENCE {
+ authAlg AUTH-ALG.&id({AuthAlgSet}),
+ param AUTH-ALG.&Type({AuthAlgSet}{@.authAlg}) OPTIONAL
+ }
+AuthChallenge ::= OCTET STRING (SIZE(1..8)) -- Randomly generated parameter --
+
+AuthResponse ::= OCTET STRING (SIZE(1..4)) -- WTAT: Expected response value --
+ -- WTAN: Response value from network --
+AuthSessionKey ::= OCTET STRING (SIZE(1..16)) -- Authentication session key--
+CalculationParam ::= OCTET STRING (SIZE(1..8)) -- Parameter used when calculating --
+ -- the authentication session key from --
+ -- the real authentication key. It may be --
+ -- transferred to the WTM user during --
+ -- both WTAT and WTAN. --
+CanCompute ::= NULL -- indicates capability of computing --
+ -- challenge and/or response value --
+DerivedCipherKey ::= OCTET STRING (SIZE(1..8)) -- derived cipher key may be computed --
+ -- when computing challenge and --
+ -- expected response values--
+WTMAuthExtSet EXTENSION ::= {...}
+notAuthorized ERROR ::= {CODE local : 1007 }
+paramNotAvailable ERROR ::= {CODE local : 1017 }
+temporarilyUnavailable ERROR ::= {CODE local : 1000 }
+unspecified ERROR ::={
+ PARAMETER Extension{{WTMAuthExtSet}}
+ CODE local : 1008}
+END -- of WTM-Authentication-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-WTMCH.asn b/asn1/qsig/QSIG-WTMCH.asn
new file mode 100644
index 0000000000..95cd448ee3
--- /dev/null
+++ b/asn1/qsig/QSIG-WTMCH.asn
@@ -0,0 +1,140 @@
+-- QSIG-WTMCH.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-304, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-304.htm
+--
+-- $Id$
+--
+
+Wireless-Terminal-Call-Handling-Operations-asn1-97
+ { iso (1) standard (0) pss1-wtm-call-handling (15431) operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ { joint-iso-itu-t remote-operations (4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) msi-class-asn1-97 (11) }
+ PSS1InformationElement FROM PSS1-generic-parameters-definition-asn1-97
+ { iso (1) standard (0)
+ pss1-generic-procedures (11582) pss1-generic-parameters-asn1-97 (17) }
+ Name FROM Name-Operations-asn1-97
+ { iso (1) standard (0)
+ pss1-name (13868) name-operations-asn1-97 (1) }
+ basicServiceNotProvided, invalidServedUserNr, notAvailable FROM
+ General-Error-List
+ { ccitt (0) recommendation (0) q 950 general-error-list (1) }
+ Address, PartyNumber, PartySubaddress, PresentedNumberScreened FROM
+ Addressing-Data-Elements-asn1-97
+ { iso (1) standard (0) pss1-generic-procedures (11582)
+ addressing-data-elements-asn1-97 (20) };
+
+-- Operations for ANF-WTMI: --
+
+WTMCH-Operations OPERATION ::= {wtmiEnquiry | wtmiDivert | wtmiInform| wtmoCall}
+
+wtmiEnquiry OPERATION ::= {
+ -- Sent from the WTMI-detect PINX to the Home PINX.
+ ARGUMENT EnquiryArg
+ RESULT EnquiryRes
+ ERRORS { invalidServedUserNr | locationNotKnown |
+ notAvailable | basicServiceNotProvided | unspecified }
+ CODE local: 54}
+
+wtmiDivert OPERATION ::= {
+ -- Sent from the WTMI-detect PINX to the Rerouteing PINX.
+ ARGUMENT DivertArg
+ RESULT DummyRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 55}
+wtmiInform OPERATION ::= {
+ -- Sent from the Rerouteing PINX to the Visitor PINX.
+ ARGUMENT InformArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 56}
+
+EnquiryArg ::= SEQUENCE { pisnNumber PartyNumber,
+ -- The PISN number of the WTMI user
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility can be embedded in the qSIGInfoElement
+ -- in accordance with clause 6.5.2.1.
+ argExtension WtmiExtension OPTIONAL }
+DivertArg ::= SEQUENCE { visitPINX PartyNumber,
+ -- The PISN number of the Visitor PINX,
+ -- always a Complete Number.
+ callingNumber PresentedNumberScreened,
+ wtmIdentity WtmIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the WTMI user.
+ qSIGInfoElement PSS1InformationElement,
+ -- The basic call information elements Bearer capability, High layer compatibility,
+ -- Low layer compatibility, and Progress indicator
+ -- can be embedded in the qSIGInfoElement in accordance with clause 6.5.2.1.
+ callingUserSub [ 1 ] PartySubaddress OPTIONAL,
+ callingName [ 2 ] Name OPTIONAL,
+ wtmUserSub [ 3 ] PartySubaddress OPTIONAL,
+ argExtension WtmiExtension OPTIONAL }
+InformArg ::= SEQUENCE { wtmIdentity WtmIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the WTMI user.
+ argExtension WtmiExtension OPTIONAL }
+EnquiryRes ::= CHOICE { currLocation [ 1 ] IMPLICIT CurrLocation,
+ cfuActivated [ 2 ] IMPLICIT CfuActivated }
+CurrLocation ::= SEQUENCE { visitPINX PartyNumber,
+ -- The PISN number of the Visitor PINX,
+ -- always a Complete Number.
+ wtmIdentity WtmIdentity,
+ -- The PISN number (always a Complete Number)
+ -- and/or an alternative identifier of the WTMI user
+ argExtension WtmiExtension OPTIONAL }
+
+CfuActivated ::= SEQUENCE { divToAddress Address,
+ divOptions SubscriptionOption,
+ wtmName [ 1 ] Name OPTIONAL,
+ argExtension WtmiExtension OPTIONAL }
+SubscriptionOption ::= ENUMERATED { noNotification (0),
+ notificationWithoutDivertedToNr (1),
+ notificationWithDivertedToNr (2) }
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{WTMCHExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMCHExtSet}} }
+WtmiExtension ::= CHOICE { extension [ 4 ] IMPLICIT Extension{{WTMCHExtSet}},
+ sequOfExtn [ 5 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMCHExtSet}} }
+WtmIdentity ::= CHOICE { pisnNumber PartyNumber,
+ alternativeId [ 10 ] IMPLICIT AlternativeId,
+ both [ 11 ] IMPLICIT SEQUENCE
+ { pisnNumber PartyNumber,
+ alternativeId AlternativeId } }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+
+-- Operation for ANF-WTMO --
+wtmoCall OPERATION ::= {
+ ARGUMENT WtmoArg
+ RETURN RESULT FALSE
+ ALWAYS RESPONDS FALSE
+ CODE local: 71}
+WtmoArg ::= SEQUENCE {
+ destinationNumber [0] PartyNumber OPTIONAL,
+ sendingComplete [1] IMPLICIT NULL OPTIONAL,
+ extension CHOICE
+ {single [2] IMPLICIT Extension{{WTMCHExtSet}},
+ multiple [3] IMPLICIT SEQUENCE OF
+ Extension{{WTMCHExtSet}}
+ } OPTIONAL
+ }
+
+WTMCHExtSet EXTENSION ::= {...}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{WTMCHExtSet}}
+ CODE local: 1008}
+locationNotKnown ERROR ::= { CODE local: 1015}
+
+END -- of Wireless-Terminal-Call-Handling-Operations-asn1-97
diff --git a/asn1/qsig/QSIG-WTMLR.asn b/asn1/qsig/QSIG-WTMLR.asn
new file mode 100644
index 0000000000..8fcbe38e1d
--- /dev/null
+++ b/asn1/qsig/QSIG-WTMLR.asn
@@ -0,0 +1,124 @@
+-- QSIG-WTMLT.asn
+--
+-- Taken from Ecma International
+-- Standard ECMA-302, 2nd edition (December 2001)
+-- http://www.ecma-international.org/publications/standards/Ecma-302.htm
+--
+-- $Id$
+--
+
+WTM-Location-Registration-Operations-asn1-97
+ {iso standard pss1-location-registration (15429) wtlr-operations-asn1-97 (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
+ {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+ EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
+ {iso standard
+ pss1-generic-procedures (11582) msi-class-asn1-97(11)}
+ notAvailable, invalidServedUserNr
+ FROM General-Errors-List
+ {ccitt recommendation q 950 general-error-list (1)}
+ PartyNumber FROM Addressing-Data-Elements-asn1-97
+ {iso(1) standard(0) pss1-generic-procedures(11582)
+ addressing-data-elements-asn1-97(20)}
+ BasicService FROM Call-Diversion-Operations-asn1-97
+ { iso (1) standard (0) pss1-call-diversion (13873)
+ call-diversion-operations-asn1-97 (1) };
+WTMLR-Operations OPERATION ::= {locUpdate | locDelete | locDeReg | pisnEnquiry | getRRCInf | locInfoCheck}
+
+locUpdate OPERATION ::={
+ -- Sent from the Visitor PINX to the Home PINX.
+ ARGUMENT LocUpdArg
+ RESULT DummyRes
+ ERRORS { invalidServedUserNr | notAuthorized | unspecified }
+ CODE local: 50}
+
+locDelete OPERATION ::= {
+ -- Sent from the Home PINX to the previous Visitor PINX.
+ ARGUMENT LocDelArg
+ RESULT DummyRes
+ ERRORS { temporarilyUnavailable | unspecified }
+ CODE local: 51}
+locDeReg OPERATION ::= {
+ -- Sent from the Visitor PINX to the Home PINX.
+ ARGUMENT LocDeRegArg
+ RESULT DummyRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 52}
+pisnEnquiry OPERATION ::= {
+ -- Sent from the Visitor PINX to the previous Visitor PINX or a Directory PINX.
+ ARGUMENT PisnEnqArg
+ RESULT PisnEnqRes
+ ERRORS { invalidServedUserNr | unspecified}
+ CODE local: 53}
+getRRCInf OPERATION ::= {
+ -- Sent from the Visitor PINX to the Home PINX.
+ ARGUMENT GetRRCInfArg
+ RESULT GetRRCInfRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 97}
+locInfoCheck OPERATION ::= {
+ -- Sent from the Visitor PINX to the Home PINX or vice versa.
+ ARGUMENT LocInfoCheckArg
+ RESULT LocInfoCheckRes
+ ERRORS { notAvailable | unspecified }
+ CODE local: 98}
+LocUpdArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ visitPINX PartyNumber,
+ -- The pisnNumber of the Visitor PINX,
+ -- always a Complete Number.
+ argExtension LrExtension OPTIONAL }
+DummyRes ::= CHOICE { null NULL,
+ extension [ 1 ] IMPLICIT Extension{{WTMLRExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMLRExtSet}} }
+LocDelArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ argExtension LrExtension OPTIONAL }
+LocDeRegArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ argExtension LrExtension OPTIONAL }
+
+PisnEnqArg ::= SEQUENCE { alternativeId AlternativeId,
+ -- Can be a temporary identifier, e.g. Network Assigned
+ -- Identity structure, or a fixed handset identifier.
+ argExtension LrExtension OPTIONAL }
+PisnEnqRes ::= SEQUENCE { wtmUserId WtmUserId,
+ resExtension LrExtension OPTIONAL }
+GetRRCInfArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ argExtension LrExtension OPTIONAL }
+GetRRCInfRes ::= SEQUENCE { alternativeId AlternativeId OPTIONAL,
+ rrClass RRClass OPTIONAL,
+ argExtension LrExtension OPTIONAL }
+LocInfoCheckArg ::= SEQUENCE { wtmUserId WtmUserId,
+ basicService BasicService DEFAULT allServices,
+ visitPINX PartyNumber,
+ -- The PISN number of the Visitor PINX,
+ -- always a Complete Number.
+ argExtension LrExtension OPTIONAL }
+LocInfoCheckRes ::= SEQUENCE { checkResult CheckResult,
+ argExtension LrExtension OPTIONAL }
+WtmUserId ::= CHOICE { pisnNumber PartyNumber,
+ -- The PISN number of the WTM user,
+ -- always a Complete Number.
+ alternativeId AlternativeId }
+AlternativeId ::= OCTET STRING(SIZE(1..20))
+LrExtension ::= CHOICE { extension [ 1 ] IMPLICIT Extension{{WTMLRExtSet}},
+ sequOfExtn [ 2 ] IMPLICIT SEQUENCE OF
+ Extension{{WTMLRExtSet}} }
+RRClass ::= INTEGER (0..99)
+CheckResult ::= ENUMERATED { locInfChk-correct (0),
+ locInfChk-incorrect (1) }
+WTMLRExtSet EXTENSION ::= {...}
+notAuthorized ERROR ::= {CODE local: 1007}
+temporarilyUnavailable ERROR ::= {CODE local: 1000}
+
+unspecified ERROR ::= {
+ PARAMETER Extension{{WTMLRExtSet}}
+ CODE local: 1008}
+END -- of WTM-Location-Registration-Operations-asn1-97
diff --git a/asn1/qsig/packet-qsig-template.c b/asn1/qsig/packet-qsig-template.c
index 2b6a8e844b..cd1aeb3c4e 100644
--- a/asn1/qsig/packet-qsig-template.c
+++ b/asn1/qsig/packet-qsig-template.c
@@ -270,140 +270,20 @@ static const gint32 op2srv_tab[] = {
};
static const value_string qsig_str_operation[] = {
- { 0, "callingName" },
- { 1, "calledName" },
- { 2, "connectedName" },
- { 3, "busyName" },
- { 4, "pathReplacePropose" },
- { 5, "pathReplaceSetup" },
- { 6, "pathReplaceRetain" },
- { 7, "callTransferIdentify" },
- { 8, "callTransferAbandon" },
- { 9, "callTransferInitiate" },
- { 10, "callTransferSetup" },
- { 11, "callTransferActive" },
- { 12, "callTransferComplete" },
- { 13, "callTransferUpdate" },
- { 14, "subaddressTransfer" },
- { 15, "activateDiversionQ" },
- { 16, "deactivateDiversionQ" },
- { 17, "interrogateDiversionQ" },
- { 18, "checkRestriction" },
- { 19, "callRerouteing" },
- { 20, "divertingLegInformation1" },
- { 21, "divertingLegInformation2" },
- { 22, "divertingLegInformation3" },
- { 23, "cfnrDivertedLegFailed" },
-/* 24 Reserved (corresponding integer value used by ISO for MLPP) */
-/* 25 Reserved (corresponding integer value used by ISO for MLPP) */
-/* 26 Reserved (corresponding integer value used by ISO for MLPP) */
- { 27, "ccnrRequest" },
- { 28, "ccCancel" },
- { 29, "ccExecPossible" },
- { 30, "ccPathReserve" },
- { 31, "ccRingout" },
- { 32, "ccSuspend" },
- { 33, "ccResume" },
- { 34, "callOfferRequest" },
- { 35, "doNotDisturbActivateQ" },
- { 36, "doNotDisturbDeactivateQ" },
- { 37, "doNotDisturbInterrogateQ" },
- { 38, "doNotDisturbOverrideQ" },
- { 39, "doNotDisturbOvrExecuteQ" },
- { 40, "ccbsRequest" },
- { 41, "pathRetain" }, /* common for QSIG-CO, QSIG-DND(O), QSIG-CI */
- { 42, "serviceAvailable" }, /* common for QSIG-CO, QSIG-DND(O), QSIG-CI */
- { 43, "callIntrusionRequest" },
- { 44, "callIntrusionGetCIPL" },
- { 45, "callIntrusionIsolate" },
- { 46, "callIntrusionForcedRelease" },
- { 47, "callIntrusionWOBRequest" },
- { 48, "callIntrusionCompleted" },
- { 49, "cfbOverride" }, /* common for QSIG-CO, QSIG-CI */
- { 50, "locUpdate" },
- { 51, "locDelete" },
- { 52, "locDeReg" },
- { 53, "pisnEnquiry" },
- { 54, "wtmiEnquiry" },
- { 55, "wtmiDivert" },
- { 56, "wtmiInform" },
- { 57, "recallAlerting" },
- { 58, "recallAnswered" },
- { 59, "chargeRequest" },
- { 60, "getFinalCharge" },
- { 61, "aocFinal" },
- { 62, "aocInterim" },
- { 63, "aocRate" },
- { 64, "aocComplete" },
- { 65, "aocDivChargeReq" },
- { 66, "cintLegInformation1" },
- { 67, "cintLegInformation2" },
- { 68, "cintCondition" },
- { 69, "cintDisable" },
- { 70, "cintEnable" },
- { 71, "wtmoCall" },
- { 72, "authWtmUser" },
- { 73, "getWtatParam" },
- { 74, "wtatParamEnq" },
- { 75, "getWtanParam" },
- { 76, "wtanParamEnq" },
- { 77, "transferAuthParam" },
- { 78, "synchronizationRequest" },
- { 79, "synchronizationInfo" },
- { 80, "mwiActivate/mCMNewMsg" }, /* common for QSIG-MWI, QSIG-MCM */
- { 81, "mwiDeactivate/mCMNoNewMsg" }, /* common for QSIG-MWI, QSIG-MCM */
- { 82, "mwiInterrogate/mCMUpdateReq" }, /* common for QSIG-MWI, QSIG-MCM */
-/* 83 Reserved (corresponding integer value used by ISO for RRC) ISO/IEC 13241 */
- { 84, "cmnRequest" },
- { 85, "cmnInform" },
- { 86, "pathReplaceInvite" },
- { 87, "callInterruptionRequest" },
- { 88, "callProtectionRequest" },
- { 89, "pumRegistr" },
- { 90, "pumDelReg" },
- { 91, "pumDe-reg" },
- { 92, "pumInterrog" },
- { 93, "pumiEnquiry" },
- { 94, "pumiDivert" },
- { 95, "pumiInform" },
- { 96, "pumoCall" },
- { 97, "getRRCInf" },
- { 98, "locInfoCheck" },
- { 99, "ssctInitiate" },
- { 100, "ssctSetup" },
- { 101, "ssctPostDial" },
- { 102, "ssctDigitInfo" },
- { 103, "display" },
- { 104, "keypad" },
- { 105, "callIdentificationAssign" },
- { 106, "callIdentificationUpdate" },
- { 107, "smsSubmit" },
- { 108, "smsDeliver" },
- { 109, "smsStatusReport" },
- { 110, "smsCommand" },
- { 111, "scAlert" },
- { 112, "mCRequest" },
- { 113, "mCAlerting" },
- { 114, "mCInform" },
- { 115, "mCMUpdate" },
- { 116, "mCMService" },
- { 117, "mCMInterrogate" },
- { 118, "mCMailboxFull" },
- { 119, "mIDMailboxAuth" },
- { 120, "mIDMailboxID" },
+#include "packet-qsig-table10.c"
{ 0, NULL}
};
-
-typedef struct _qsig_op_t {
- gint32 opcode;
- new_dissector_t arg_pdu;
- new_dissector_t res_pdu;
-} qsig_op_t;
+static const value_string qsig_str_error[] = {
+#include "packet-qsig-table20.c"
+ { 0, NULL}
+};
+
/* Initialize the protocol and registered fields */
int proto_qsig = -1;
static int hf_qsig_operation = -1;
static int hf_qsig_service = -1;
+static int hf_qsig_error = -1;
static int hf_qsig_ie_type = -1;
static int hf_qsig_ie_type_cs4 = -1;
static int hf_qsig_ie_type_cs5 = -1;
@@ -439,133 +319,32 @@ static dissector_handle_t data_handle = NULL;
#include "packet-qsig-fn.c"
-static const qsig_op_t qsig_tab[] = {
- /* 0 */ { 0, dissect_NameArg_PDU, NULL },
- /* 1 */ { 1, dissect_NameArg_PDU, NULL },
- /* 2 */ { 2, dissect_NameArg_PDU, NULL },
- /* 3 */ { 3, dissect_NameArg_PDU, NULL },
- /* 4 */ { 4, NULL, NULL },
- /* 5 */ { 5, NULL, NULL },
- /* 6 */ { 6, NULL, NULL },
- /* 7 */ { 7, NULL, NULL },
- /* 8 */ { 8, NULL, NULL },
- /* 9 */ { 9, NULL, NULL },
- /* 10 */ { 10, NULL, NULL },
- /* 11 */ { 11, NULL, NULL },
- /* 12 */ { 12, NULL, NULL },
- /* 13 */ { 13, NULL, NULL },
- /* 14 */ { 14, NULL, NULL },
- /* 15 */ { 15, dissect_ARG_activateDiversionQ_PDU, dissect_RES_activateDiversionQ_PDU },
- /* 16 */ { 16, dissect_ARG_deactivateDiversionQ_PDU, dissect_RES_deactivateDiversionQ_PDU },
- /* 17 */ { 17, dissect_ARG_interrogateDiversionQ_PDU, dissect_IntResultList_PDU },
- /* 18 */ { 18, dissect_ARG_checkRestriction_PDU, dissect_RES_checkRestriction_PDU },
- /* 19 */ { 19, dissect_ARG_callRerouteing_PDU, dissect_RES_callRerouteing_PDU },
- /* 20 */ { 20, dissect_ARG_divertingLegInformation1_PDU, NULL },
- /* 21 */ { 21, dissect_ARG_divertingLegInformation2_PDU, NULL },
- /* 22 */ { 22, dissect_ARG_divertingLegInformation3_PDU, NULL },
- /* 23 */ { 23, dissect_ARG_cfnrDivertedLegFailed_PDU, NULL },
- /* 27 */ { 27, NULL, NULL },
- /* 28 */ { 28, NULL, NULL },
- /* 29 */ { 29, NULL, NULL },
- /* 30 */ { 30, NULL, NULL },
- /* 31 */ { 31, NULL, NULL },
- /* 32 */ { 32, NULL, NULL },
- /* 33 */ { 33, NULL, NULL },
- /* 34 */ { 34, NULL, NULL },
- /* 35 */ { 35, NULL, NULL },
- /* 36 */ { 36, NULL, NULL },
- /* 37 */ { 37, NULL, NULL },
- /* 38 */ { 38, NULL, NULL },
- /* 39 */ { 39, NULL, NULL },
- /* 40 */ { 40, NULL, NULL },
- /* 41 */ { 41, NULL, NULL },
- /* 42 */ { 42, NULL, NULL },
- /* 43 */ { 43, NULL, NULL },
- /* 44 */ { 44, NULL, NULL },
- /* 45 */ { 45, NULL, NULL },
- /* 46 */ { 46, NULL, NULL },
- /* 47 */ { 47, NULL, NULL },
- /* 48 */ { 48, NULL, NULL },
- /* 49 */ { 49, NULL, NULL },
- /* 50 */ { 50, NULL, NULL },
- /* 51 */ { 51, NULL, NULL },
- /* 52 */ { 52, NULL, NULL },
- /* 53 */ { 53, NULL, NULL },
- /* 54 */ { 54, NULL, NULL },
- /* 55 */ { 55, NULL, NULL },
- /* 56 */ { 56, NULL, NULL },
- /* 57 */ { 57, NULL, NULL },
- /* 58 */ { 58, NULL, NULL },
- /* 59 */ { 59, NULL, NULL },
- /* 60 */ { 60, NULL, NULL },
- /* 61 */ { 61, NULL, NULL },
- /* 62 */ { 62, NULL, NULL },
- /* 63 */ { 63, NULL, NULL },
- /* 64 */ { 64, NULL, NULL },
- /* 65 */ { 65, NULL, NULL },
- /* 66 */ { 66, NULL, NULL },
- /* 67 */ { 67, NULL, NULL },
- /* 68 */ { 68, NULL, NULL },
- /* 69 */ { 69, NULL, NULL },
- /* 70 */ { 70, NULL, NULL },
- /* 71 */ { 71, NULL, NULL },
- /* 72 */ { 72, NULL, NULL },
- /* 73 */ { 73, NULL, NULL },
- /* 74 */ { 74, NULL, NULL },
- /* 75 */ { 75, NULL, NULL },
- /* 76 */ { 76, NULL, NULL },
- /* 77 */ { 77, NULL, NULL },
- /* 78 */ { 78, NULL, NULL },
- /* 79 */ { 79, NULL, NULL },
- /* 80 */ { 80, NULL, NULL },
- /* 81 */ { 81, NULL, NULL },
- /* 82 */ { 82, NULL, NULL },
- /* 84 */ { 84, NULL, NULL },
- /* 85 */ { 85, NULL, NULL },
- /* 86 */ { 86, NULL, NULL },
- /* 87 */ { 87, NULL, NULL },
- /* 88 */ { 88, NULL, NULL },
- /* 89 */ { 89, NULL, NULL },
- /* 90 */ { 90, NULL, NULL },
- /* 91 */ { 91, NULL, NULL },
- /* 92 */ { 92, NULL, NULL },
- /* 93 */ { 93, NULL, NULL },
- /* 94 */ { 94, NULL, NULL },
- /* 95 */ { 95, NULL, NULL },
- /* 96 */ { 96, NULL, NULL },
- /* 97 */ { 97, NULL, NULL },
- /* 98 */ { 98, NULL, NULL },
- /* 99 */ { 99, NULL, NULL },
- /* 100 */ { 100, NULL, NULL },
- /* 101 */ { 101, NULL, NULL },
- /* 102 */ { 102, NULL, NULL },
- /* 103 */ { 103, NULL, NULL },
- /* 104 */ { 104, NULL, NULL },
- /* 105 */ { 105, NULL, NULL },
- /* 106 */ { 106, NULL, NULL },
- /* 107 */ { 107, NULL, NULL },
- /* 108 */ { 108, NULL, NULL },
- /* 109 */ { 109, NULL, NULL },
- /* 110 */ { 110, NULL, NULL },
- /* 111 */ { 111, NULL, NULL },
- /* 112 */ { 112, NULL, NULL },
- /* 113 */ { 113, NULL, NULL },
- /* 114 */ { 114, NULL, NULL },
- /* 115 */ { 115, NULL, NULL },
- /* 116 */ { 116, NULL, NULL },
- /* 117 */ { 117, NULL, NULL },
- /* 118 */ { 118, NULL, NULL },
- /* 119 */ { 119, NULL, NULL },
- /* 120 */ { 120, NULL, NULL },
+typedef struct _qsig_op_t {
+ gint32 opcode;
+ new_dissector_t arg_pdu;
+ new_dissector_t res_pdu;
+} qsig_op_t;
+
+static const qsig_op_t qsig_op_tab[] = {
+#include "packet-qsig-table11.c"
+};
+
+typedef struct _qsig_err_t {
+ gint32 errcode;
+ new_dissector_t err_pdu;
+} qsig_err_t;
+
+static const qsig_err_t qsig_err_tab[] = {
+#include "packet-qsig-table21.c"
};
static const qsig_op_t *get_op(gint32 opcode) {
int i;
/* search from the end to get the last occurence if the operation is redefined in some newer specification */
- for (i = array_length(qsig_tab) - 1; i >= 0; i--)
- if (qsig_tab[i].opcode == opcode)
- return &qsig_tab[i];
+ for (i = array_length(qsig_op_tab) - 1; i >= 0; i--)
+ if (qsig_op_tab[i].opcode == opcode)
+ return &qsig_op_tab[i];
return NULL;
}
@@ -574,6 +353,16 @@ static gint32 get_service(gint32 opcode) {
return NO_SRV;
return op2srv_tab[opcode];
}
+
+static const qsig_err_t *get_err(gint32 errcode) {
+ int i;
+
+ /* search from the end to get the last occurence if the operation is redefined in some newer specification */
+ for (i = array_length(qsig_err_tab) - 1; i >= 0; i--)
+ if (qsig_err_tab[i].errcode == errcode)
+ return &qsig_err_tab[i];
+ return NULL;
+}
/*--- dissect_qsig_arg ------------------------------------------------------*/
static int
@@ -677,6 +466,52 @@ dissect_qsig_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
return offset;
}
+/*--- dissect_qsig_err ------------------------------------------------------*/
+static int
+dissect_qsig_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ int offset;
+ rose_ctx_t *rctx;
+ gint32 errcode;
+ const qsig_err_t *err_ptr;
+ const gchar *p;
+ proto_item *ti;
+ proto_tree *qsig_tree;
+
+ offset = 0;
+ rctx = get_rose_ctx(pinfo->private_data);
+ DISSECTOR_ASSERT(rctx);
+ if (rctx->d.pdu != 3) /* returnError */
+ return offset;
+ if (rctx->d.code != 0) /* local */
+ return offset;
+ errcode = rctx->d.code_local;
+ err_ptr = get_err(errcode);
+ if (!err_ptr)
+ return offset;
+
+ ti = proto_tree_add_item(tree, proto_qsig, tvb, offset, tvb_length(tvb), FALSE);
+ qsig_tree = proto_item_add_subtree(ti, ett_qsig);
+
+ proto_tree_add_uint(qsig_tree, hf_qsig_error, tvb, 0, 0, errcode);
+ p = match_strval(errcode, VALS(qsig_str_error));
+ if (p) {
+ proto_item_append_text(ti, ": %s", p);
+ proto_item_append_text(rctx->d.code_item, " - %s", p);
+ if (rctx->apdu_depth >= 0)
+ proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
+ }
+
+ if (err_ptr->err_pdu)
+ offset = err_ptr->err_pdu(tvb, pinfo, qsig_tree);
+ else
+ if (tvb_length_remaining(tvb, offset) > 0) {
+ proto_tree_add_text(qsig_tree, tvb, offset, -1, "UNSUPPORTED ERROR TYPE (QSIG)");
+ offset += tvb_length_remaining(tvb, offset);
+ }
+
+ return offset;
+}
+
/*--- dissect_qsig_transit_counter_ie ---------------------------------------*/
static int
dissect_qsig_transit_counter_ie(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int length _U_) {
@@ -751,6 +586,9 @@ void proto_register_qsig(void) {
{ &hf_qsig_service, { "Service", "qsig.service",
FT_UINT8, BASE_DEC, VALS(qsig_str_service), 0x0,
"Supplementary Service", HFILL }},
+ { &hf_qsig_error, { "Error", "qsig.error",
+ FT_UINT8, BASE_DEC, VALS(qsig_str_error), 0x0,
+ "Error", HFILL }},
{ &hf_qsig_ie_type, { "Type", "qsig.ie.type",
FT_UINT8, BASE_HEX, NULL, 0x0,
"Information Element Type", HFILL }},
@@ -797,17 +635,20 @@ void proto_reg_handoff_qsig(void) {
int i;
dissector_handle_t qsig_arg_handle;
dissector_handle_t qsig_res_handle;
+ dissector_handle_t qsig_err_handle;
dissector_handle_t qsig_ie_handle;
data_handle = find_dissector("data");
- if (find_dissector_table("q932.ros.local.arg")) {
- qsig_arg_handle = new_create_dissector_handle(dissect_qsig_arg, proto_qsig);
- qsig_res_handle = new_create_dissector_handle(dissect_qsig_res, proto_qsig);
- for (i=0; i<(int)array_length(qsig_tab); i++) {
- dissector_add("q932.ros.local.arg", qsig_tab[i].opcode, qsig_arg_handle);
- dissector_add("q932.ros.local.res", qsig_tab[i].opcode, qsig_res_handle);
- }
+ qsig_arg_handle = new_create_dissector_handle(dissect_qsig_arg, proto_qsig);
+ qsig_res_handle = new_create_dissector_handle(dissect_qsig_res, proto_qsig);
+ for (i=0; i<(int)array_length(qsig_op_tab); i++) {
+ dissector_add("q932.ros.local.arg", qsig_op_tab[i].opcode, qsig_arg_handle);
+ dissector_add("q932.ros.local.res", qsig_op_tab[i].opcode, qsig_res_handle);
+ }
+ qsig_err_handle = new_create_dissector_handle(dissect_qsig_err, proto_qsig);
+ for (i=0; i<(int)array_length(qsig_err_tab); i++) {
+ dissector_add("q932.ros.local.err", qsig_err_tab[i].errcode, qsig_err_handle);
}
qsig_ie_handle = create_dissector_handle(dissect_qsig_ie_cs4, proto_qsig);
diff --git a/asn1/qsig/qsig-exp.cnf b/asn1/qsig/qsig-exp.cnf
index 43b45ee757..90c7531cd1 100644
--- a/asn1/qsig/qsig-exp.cnf
+++ b/asn1/qsig/qsig-exp.cnf
@@ -1,14 +1,33 @@
# Do not modify this file.
# It is created automatically by the ASN.1 to Wireshark dissector compiler
# .\qsig-exp.cnf
-# ../../tools/asn2wrs.py -b -T -X -e -p qsig -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn qsig-na.asn qsig-cf.asn
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- ---
#.MODULE
Manufacturer-specific-service-extension-class-asn1-97 qsig
PSS1-generic-parameters-definition-asn1-97 qsig
Addressing-Data-Elements-asn1-97 qsig
-Name-Operations-asn1-97 qsig
-Call-Diversion-Operations-asn1-97 qsig
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Name-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Name-Operations-asn1-97 qsig.na
#.END
#.IMPORT_TAG
@@ -16,6 +35,438 @@ Name BER_CLASS_ANY/*choice*/ -1/*choice*/
#.END
#.TYPE_ATTR
-Name TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(qsig_Name_vals) BITMASK = 0
+Name TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(qsig_na_Name_vals) BITMASK = 0
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Diversion-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Diversion-Operations-asn1-97 qsig.cf
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Path-Replacement-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Path-Replacement-Operations-asn1-97 qsig.pr
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Transfer-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Transfer-Operations-asn1-97 qsig.ct
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module SS-CC-Operations-asn1-97 --- --- ---
+
+#.MODULE
+SS-CC-Operations-asn1-97 qsig.cc
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Offer-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Offer-Operations-asn1-97 qsig.co
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Do-Not-Disturb-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Do-Not-Disturb-Operations-asn1-97 qsig.dnd
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Intrusion-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Intrusion-Operations-asn1-97 qsig.ci
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module SS-AOC-Operations-asn1-97 --- --- ---
+
+#.MODULE
+SS-AOC-Operations-asn1-97 qsig.aoc
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Recall-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Recall-Operations-asn1-97 qsig.re
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Interception-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Interception-Operations-asn1-97 qsig.cint
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Common-Information-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Common-Information-Operations-asn1-97 qsig.cmn
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Interruption-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Interruption-Operations-asn1-97 qsig.cpi
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module PUM-Registration-Operations-asn1-97 --- --- ---
+
+#.MODULE
+PUM-Registration-Operations-asn1-97 qsig.pumr
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Private-User-Mobility-Call-Handling-Operations-asn1-97 qsig.pumch
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Single-Step-Call-Transfer-Operations-asn1-97 qsig.ssct
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module WTM-Location-Registration-Operations-asn1-97 --- --- ---
+
+#.MODULE
+WTM-Location-Registration-Operations-asn1-97 qsig.wtmlr
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Wireless-Terminal-Call-Handling-Operations-asn1-97 qsig.wtmch
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module WTM-Authentication-Operations-asn1-97 --- --- ---
+
+#.MODULE
+WTM-Authentication-Operations-asn1-97 qsig.wtmau
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module SS-SD-Operations-asn1-97 --- --- ---
+
+#.MODULE
+SS-SD-Operations-asn1-97 qsig.sd
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Call-Identification-and-Call-Linkage-Operations-asn1-97 qsig.cidl
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module Short-Message-Service-Operations-asn1-97 --- --- ---
+
+#.MODULE
+Short-Message-Service-Operations-asn1-97 qsig.sms
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module SS-MCR-Operations-asn97 --- --- ---
+
+#.MODULE
+SS-MCR-Operations-asn97 qsig.mcr
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module SS-MCM-Operations-asn1-97 --- --- ---
+
+#.MODULE
+SS-MCM-Operations-asn1-97 qsig.mcm
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
+#.END
+
+# Do not modify this file.
+# It is created automatically by the ASN.1 to Wireshark dissector compiler
+# .\qsig-exp.cnf
+# ../../tools/asn2wrs.py -e -c qsig.cnf -s packet-qsig-template qsig-gf-ext.asn qsig-gf-gp.asn qsig-gf-ade.asn QSIG-NA.asn QSIG-CF.asn QSIG-PR.asn QSIG-CT.asn QSIG-CC.asn QSIG-CO.asn QSIG-DND.asn QSIG-CI.asn QSIG-AOC.asn QSIG-RE.asn QSIG-CINT.asn QSIG-CMN.asn QSIG-CPI.asn QSIG-PUMR.asn QSIG-PUMCH.asn QSIG-SSCT.asn QSIG-WTMLR.asn QSIG-WTMCH.asn QSIG-WTMAU.asn QSIG-SD.asn QSIG-CIDL.asn QSIG-SMS.asn QSIG-MCR.asn QSIG-MCM.asn QSIG-MID.asn
+
+
+# --- Module SS-MID-Operations-asn1-97 --- --- ---
+
+#.MODULE
+SS-MID-Operations-asn1-97 qsig.mid
+#.END
+
+#.IMPORT_TAG
+#.END
+
+#.TYPE_ATTR
#.END
diff --git a/asn1/qsig/qsig-gf-ade.asn b/asn1/qsig/qsig-gf-ade.asn
index 96c1090c1c..98a8d451db 100644
--- a/asn1/qsig/qsig-gf-ade.asn
+++ b/asn1/qsig/qsig-gf-ade.asn
@@ -1,8 +1,10 @@
--- QSIG-GF-EXT.asn
+-- QSIG-GF-ADE.asn
--
-- Taken from Ecma International
-- http://www.ecma-international.org/publications/standards/Ecma-165.htm
--
+-- B.1 Addressing information
+--
-- $Id$
--
diff --git a/asn1/qsig/qsig-gf-ext.asn b/asn1/qsig/qsig-gf-ext.asn
index 2aab19d4a3..57fa783707 100644
--- a/asn1/qsig/qsig-gf-ext.asn
+++ b/asn1/qsig/qsig-gf-ext.asn
@@ -3,6 +3,8 @@
-- Taken from Ecma International
-- http://www.ecma-international.org/publications/standards/Ecma-165.htm
--
+-- 9.2 Manufacturer specific additions to standardised operations
+--
-- $Id$
--
diff --git a/asn1/qsig/qsig-gf-gp.asn b/asn1/qsig/qsig-gf-gp.asn
index 12f881a2de..2ed4ad679d 100644
--- a/asn1/qsig/qsig-gf-gp.asn
+++ b/asn1/qsig/qsig-gf-gp.asn
@@ -3,6 +3,8 @@
-- Taken from Ecma International
-- http://www.ecma-international.org/publications/standards/Ecma-165.htm
--
+-- B.3 PSS1InformationElement
+--
-- $Id$
--
diff --git a/asn1/qsig/qsig.cnf b/asn1/qsig/qsig.cnf
index 4048878dfc..73f8546330 100644
--- a/asn1/qsig/qsig.cnf
+++ b/asn1/qsig/qsig.cnf
@@ -4,15 +4,54 @@
# $Id$
+#.OPT
+BER
+-T
+-X
+GROUP_BY_PROT
+-o qsig
+#.END
#.EXPORTS EXTERN VALS_WITH_TABLE
Name
+#.MODULE
+Addressing-Data-Elements-asn1-97 qsig
+Manufacturer-specific-service-extension-class-asn1-97 qsig
+PSS1-generic-parameters-definition-asn1-97 qsig
+
+Name-Operations-asn1-97 qsig.na
+Call-Diversion-Operations-asn1-97 qsig.cf
+Path-Replacement-Operations-asn1-97 qsig.pr
+Call-Transfer-Operations-asn1-97 qsig.ct
+SS-CC-Operations-asn1-97 qsig.cc
+Call-Offer-Operations-asn1-97 qsig.co
+Do-Not-Disturb-Operations-asn1-97 qsig.dnd
+Call-Intrusion-Operations-asn1-97 qsig.ci
+SS-AOC-Operations-asn1-97 qsig.aoc
+Recall-Operations-asn1-97 qsig.re
+Call-Interception-Operations-asn1-97 qsig.cint
+Common-Information-Operations-asn1-97 qsig.cmn
+Call-Interruption-Operations-asn1-97 qsig.cpi
+PUM-Registration-Operations-asn1-97 qsig.pumr
+Private-User-Mobility-Call-Handling-Operations-asn1-97 qsig.pumch
+Single-Step-Call-Transfer-Operations-asn1-97 qsig.ssct
+WTM-Location-Registration-Operations-asn1-97 qsig.wtmlr
+Wireless-Terminal-Call-Handling-Operations-asn1-97 qsig.wtmch
+WTM-Authentication-Operations-asn1-97 qsig.wtmau
+SS-SD-Operations-asn1-97 qsig.sd
+Call-Identification-and-Call-Linkage-Operations-asn1-97 qsig.cidl
+Short-Message-Service-Operations-asn1-97 qsig.sms
+SS-MCR-Operations-asn97 qsig.mcr
+SS-MCM-Operations-asn1-97 qsig.mcm
+SS-MID-Operations-asn1-97 qsig.mid
+
#.PDU_NEW
OPERATION.&ArgumentType
OPERATION.&ResultType
+ERROR.&ParameterType
#.END
@@ -49,3 +88,23 @@ NameData TYPE = FT_STRING DISPLAY = BASE_NONE
#.FN_BODY Extension/extensionArgument
#.END
+
+#.FN_BODY AuthAlgorithm/param
+
+#.END
+
+#.TABLE10_BODY OPERATION
+ { %(&operationCode)3s, "%(_name)s" },
+#.END
+
+#.TABLE11_BODY OPERATION
+ /* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
+#.END
+
+#.TABLE20_BODY ERROR
+ { %(&errorCode)4s, "%(_name)s" },
+#.END
+
+#.TABLE21_BODY ERROR
+ /* %(_name)-24s */ { %(&errorCode)4s, %(_parameter_pdu)s },
+#.END