aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/Makefile.am27
-rw-r--r--asn1/q932/packet-q932-template.c2
-rw-r--r--asn1/q932/q932-ros.cnf27
-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
-rw-r--r--epan/asn1.h2
-rw-r--r--epan/dissectors/packet-q932-ros.c43
-rw-r--r--epan/dissectors/packet-q932.c2
-rw-r--r--epan/dissectors/packet-qsig.c14996
-rw-r--r--epan/dissectors/packet-qsig.h9
-rw-r--r--epan/libwireshark.def2
-rwxr-xr-xtools/asn2wrs.py35
43 files changed, 19165 insertions, 1167 deletions
diff --git a/asn1/Makefile.am b/asn1/Makefile.am
index 3bde06db30..7b8dfce740 100644
--- a/asn1/Makefile.am
+++ b/asn1/Makefile.am
@@ -297,11 +297,34 @@ EXTRA_DIST = \
q932/packet-q932-ros-template.c \
q932/packet-q932-template.c \
q932/packet-q932-template.h \
- qsig/qsig-cf.asn \
+ qsig/QSIG-AOC.asn \
+ qsig/QSIG-CC.asn \
+ qsig/QSIG-CF.asn \
+ qsig/QSIG-CI.asn \
+ qsig/QSIG-CIDL.asn \
+ qsig/QSIG-CINT.asn \
+ qsig/QSIG-CMN.asn \
+ qsig/QSIG-CO.asn \
+ qsig/QSIG-CPI.asn \
+ qsig/QSIG-CT.asn \
+ qsig/QSIG-DND.asn \
+ qsig/QSIG-MCM.asn \
+ qsig/QSIG-MCR.asn \
+ qsig/QSIG-MID.asn \
+ qsig/QSIG-NA.asn \
+ qsig/QSIG-PR.asn \
+ qsig/QSIG-PUMCH.asn \
+ qsig/QSIG-PUMR.asn \
+ qsig/QSIG-RE.asn \
+ qsig/QSIG-SD.asn \
+ qsig/QSIG-SMS.asn \
+ qsig/QSIG-SSCT.asn \
+ qsig/QSIG-WTMAU.asn \
+ qsig/QSIG-WTMCH.asn \
+ qsig/QSIG-WTMLR.asn \
qsig/qsig-gf-ade.asn \
qsig/qsig-gf-ext.asn \
qsig/qsig-gf-gp.asn \
- qsig/qsig-na.asn \
qsig/qsig.cnf \
qsig/qsig-exp.cnf \
qsig/Makefile \
diff --git a/asn1/q932/packet-q932-template.c b/asn1/q932/packet-q932-template.c
index 23c8c5c563..911f6935a7 100644
--- a/asn1/q932/packet-q932-template.c
+++ b/asn1/q932/packet-q932-template.c
@@ -319,6 +319,8 @@ void proto_register_q932(void) {
q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", FT_STRING, BASE_NONE);
q932_rose_ctx.arg_local_dissector_table = register_dissector_table("q932.ros.local.arg", "Q.932 Operation Argument (local opcode)", FT_UINT32, BASE_HEX);
q932_rose_ctx.res_local_dissector_table = register_dissector_table("q932.ros.local.res", "Q.932 Operation Result (local opcode)", FT_UINT32, BASE_HEX);
+ q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", FT_STRING, BASE_NONE);
+ q932_rose_ctx.err_local_dissector_table = register_dissector_table("q932.ros.local.err", "Q.932 Error (local opcode)", FT_UINT32, BASE_HEX);
}
/*--- proto_reg_handoff_q932 ------------------------------------------------*/
diff --git a/asn1/q932/q932-ros.cnf b/asn1/q932/q932-ros.cnf
index 8be1c247e9..bdf39ab616 100644
--- a/asn1/q932/q932-ros.cnf
+++ b/asn1/q932/q932-ros.cnf
@@ -98,10 +98,11 @@ Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_HEX
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
- if (arg_next_tvb) {
- actx->pinfo->private_data = actx->rose_ctx;
- call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree);
+ if (!arg_next_tvb) { /* empty argument */
+ arg_next_tvb = tvb_new_subset(tvb, offset, 0, 0);
}
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree);
#.END
@@ -143,10 +144,11 @@ ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_HEX
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
- if (res_next_tvb) {
- actx->pinfo->private_data = actx->rose_ctx;
- call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree);
+ if (!res_next_tvb) { /* empty result */
+ res_next_tvb = tvb_new_subset(tvb, offset, 0, 0);
}
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree);
#.END
#--- RETURN ERROR ---
@@ -161,7 +163,7 @@ ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_HEX
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
- res_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ err_next_tvb = tvb_new_subset(tvb, offset, len, len);
offset += tvb_length_remaining(tvb, offset);
@@ -173,9 +175,9 @@ ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_HEX
actx->rose_ctx->d.pdu = 3;
if (actx->rose_ctx->d.code == 0) {
- /*err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);*/
+ err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);
} else if (actx->rose_ctx->d.code == 1) {
- /*err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);*/
+ err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);
} else {
err_handle = NULL;
}
@@ -188,10 +190,11 @@ ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_HEX
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
- if (err_next_tvb) {
- actx->pinfo->private_data = actx->rose_ctx;
- call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree);
+ if (!err_next_tvb) { /* empty error */
+ err_next_tvb = tvb_new_subset(tvb, offset, 0, 0);
}
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree);
#.END
#--- REJECT ---
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
diff --git a/epan/asn1.h b/epan/asn1.h
index 1bf7b639ef..4d081aed85 100644
--- a/epan/asn1.h
+++ b/epan/asn1.h
@@ -109,6 +109,8 @@ typedef struct _rose_ctx_t {
dissector_table_t arg_local_dissector_table;
dissector_table_t res_global_dissector_table;
dissector_table_t res_local_dissector_table;
+ dissector_table_t err_global_dissector_table;
+ dissector_table_t err_local_dissector_table;
int apdu_depth;
struct { /* "dynamic" data */
gint pdu;
diff --git a/epan/dissectors/packet-q932-ros.c b/epan/dissectors/packet-q932-ros.c
index 5b09f7249c..af47919c5c 100644
--- a/epan/dissectors/packet-q932-ros.c
+++ b/epan/dissectors/packet-q932-ros.c
@@ -299,10 +299,11 @@ dissect_q932_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
- if (arg_next_tvb) {
- actx->pinfo->private_data = actx->rose_ctx;
- call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree);
+ if (!arg_next_tvb) { /* empty argument */
+ arg_next_tvb = tvb_new_subset(tvb, offset, 0, 0);
}
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree);
return offset;
}
@@ -311,7 +312,7 @@ dissect_q932_ros_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_q932_ros_ResultArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 114 "q932-ros.cnf"
+#line 115 "q932-ros.cnf"
gint len;
len = tvb_length_remaining(tvb, offset);
@@ -350,7 +351,7 @@ static const ber_sequence_t ReturnResult_sequence[] = {
static int
dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 124 "q932-ros.cnf"
+#line 125 "q932-ros.cnf"
dissector_handle_t res_handle = NULL;
res_next_tvb = NULL;
@@ -358,7 +359,7 @@ dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ReturnResult_sequence, hf_index, ett_q932_ros_ReturnResult);
-#line 128 "q932-ros.cnf"
+#line 129 "q932-ros.cnf"
actx->rose_ctx->d.pdu = 2;
if (actx->rose_ctx->d.code == 0) {
@@ -377,10 +378,11 @@ dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
- if (res_next_tvb) {
- actx->pinfo->private_data = actx->rose_ctx;
- call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree);
+ if (!res_next_tvb) { /* empty result */
+ res_next_tvb = tvb_new_subset(tvb, offset, 0, 0);
}
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree);
return offset;
}
@@ -389,14 +391,14 @@ dissect_q932_ros_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_q932_ros_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 158 "q932-ros.cnf"
+#line 160 "q932-ros.cnf"
gint len;
len = tvb_length_remaining(tvb, offset);
if (len)
proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
- res_next_tvb = tvb_new_subset(tvb, offset, len, len);
+ err_next_tvb = tvb_new_subset(tvb, offset, len, len);
offset += tvb_length_remaining(tvb, offset);
@@ -415,7 +417,7 @@ static const ber_sequence_t ReturnError_sequence[] = {
static int
dissect_q932_ros_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 169 "q932-ros.cnf"
+#line 171 "q932-ros.cnf"
dissector_handle_t err_handle = NULL;
err_next_tvb = NULL;
@@ -423,13 +425,13 @@ dissect_q932_ros_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ReturnError_sequence, hf_index, ett_q932_ros_ReturnError);
-#line 173 "q932-ros.cnf"
+#line 175 "q932-ros.cnf"
actx->rose_ctx->d.pdu = 3;
if (actx->rose_ctx->d.code == 0) {
- /*err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);*/
+ err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);
} else if (actx->rose_ctx->d.code == 1) {
- /*err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);*/
+ err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);
} else {
err_handle = NULL;
}
@@ -442,10 +444,11 @@ dissect_q932_ros_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
- if (err_next_tvb) {
- actx->pinfo->private_data = actx->rose_ctx;
- call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree);
+ if (!err_next_tvb) { /* empty error */
+ err_next_tvb = tvb_new_subset(tvb, offset, 0, 0);
}
+ actx->pinfo->private_data = actx->rose_ctx;
+ call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree);
return offset;
}
@@ -572,13 +575,13 @@ static const ber_sequence_t Reject_sequence[] = {
static int
dissect_q932_ros_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 200 "q932-ros.cnf"
+#line 203 "q932-ros.cnf"
problem_str[0] = '\0';
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Reject_sequence, hf_index, ett_q932_ros_Reject);
-#line 202 "q932-ros.cnf"
+#line 205 "q932-ros.cnf"
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " REJ: %s", problem_str);
return offset;
diff --git a/epan/dissectors/packet-q932.c b/epan/dissectors/packet-q932.c
index 31ada57306..fc9d78195b 100644
--- a/epan/dissectors/packet-q932.c
+++ b/epan/dissectors/packet-q932.c
@@ -1004,6 +1004,8 @@ void proto_register_q932(void) {
q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", FT_STRING, BASE_NONE);
q932_rose_ctx.arg_local_dissector_table = register_dissector_table("q932.ros.local.arg", "Q.932 Operation Argument (local opcode)", FT_UINT32, BASE_HEX);
q932_rose_ctx.res_local_dissector_table = register_dissector_table("q932.ros.local.res", "Q.932 Operation Result (local opcode)", FT_UINT32, BASE_HEX);
+ q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", FT_STRING, BASE_NONE);
+ q932_rose_ctx.err_local_dissector_table = register_dissector_table("q932.ros.local.err", "Q.932 Error (local opcode)", FT_UINT32, BASE_HEX);
}
/*--- proto_reg_handoff_q932 ------------------------------------------------*/
diff --git a/epan/dissectors/packet-qsig.c b/epan/dissectors/packet-qsig.c
index a58d63272b..b66e7d09b6 100644
--- a/epan/dissectors/packet-qsig.c
+++ b/epan/dissectors/packet-qsig.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* .\packet-qsig.c */
-/* ../../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 */
/* Input file: packet-qsig-template.c */
@@ -278,13 +278,42 @@ static const gint32 op2srv_tab[] = {
};
static const value_string qsig_str_operation[] = {
+
+/*--- Included file: packet-qsig-table10.c ---*/
+#line 1 "packet-qsig-table10.c"
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list OPERATION */
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
{ 0, "callingName" },
{ 1, "calledName" },
{ 2, "connectedName" },
{ 3, "busyName" },
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+ { 15, "activateDiversionQ" },
+ { 16, "deactivateDiversionQ" },
+ { 17, "interrogateDiversionQ" },
+ { 18, "checkRestriction" },
+ { 19, "callRerouteing" },
+ { 20, "divertingLegInformation1" },
+ { 21, "divertingLegInformation2" },
+ { 22, "divertingLegInformation3" },
+ { 23, "cfnrDivertedLegFailed" },
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+ { 86, "pathReplaceInvite" },
{ 4, "pathReplacePropose" },
{ 5, "pathReplaceSetup" },
{ 6, "pathReplaceRetain" },
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
{ 7, "callTransferIdentify" },
{ 8, "callTransferAbandon" },
{ 9, "callTransferInitiate" },
@@ -293,18 +322,10 @@ static const value_string qsig_str_operation[] = {
{ 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) */
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+ { 40, "ccbsRequest" },
{ 27, "ccnrRequest" },
{ 28, "ccCancel" },
{ 29, "ccExecPossible" },
@@ -312,106 +333,337 @@ static const value_string qsig_str_operation[] = {
{ 31, "ccRingout" },
{ 32, "ccSuspend" },
{ 33, "ccResume" },
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+ { 41, "pathRetain" },
+ { 42, "serviceAvailable" },
{ 34, "callOfferRequest" },
+ { 49, "cfbOverride" },
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
{ 35, "doNotDisturbActivateQ" },
{ 36, "doNotDisturbDeactivateQ" },
{ 37, "doNotDisturbInterrogateQ" },
{ 38, "doNotDisturbOverrideQ" },
+ { 41, "pathRetain" },
+ { 42, "serviceAvailable" },
{ 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 */
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+ { 41, "pathRetain" },
+ { 42, "serviceAvailable" },
{ 43, "callIntrusionRequest" },
{ 44, "callIntrusionGetCIPL" },
- { 45, "callIntrusionIsolate" },
{ 46, "callIntrusionForcedRelease" },
+ { 45, "callIntrusionIsolate" },
{ 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" },
+ { 49, "cfbOverride" },
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+ { 63, "aocRate" },
+ { 62, "aocInterim" },
+ { 61, "aocFinal" },
{ 59, "chargeRequest" },
{ 60, "getFinalCharge" },
- { 61, "aocFinal" },
- { 62, "aocInterim" },
- { 63, "aocRate" },
{ 64, "aocComplete" },
{ 65, "aocDivChargeReq" },
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+ { 57, "recallAlerting" },
+ { 58, "recallAnswered" },
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
{ 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 */
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
{ 84, "cmnRequest" },
{ 85, "cmnInform" },
- { 86, "pathReplaceInvite" },
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
{ 87, "callInterruptionRequest" },
{ 88, "callProtectionRequest" },
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
{ 89, "pumRegistr" },
{ 90, "pumDelReg" },
{ 91, "pumDe-reg" },
{ 92, "pumInterrog" },
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
{ 93, "pumiEnquiry" },
{ 94, "pumiDivert" },
{ 95, "pumiInform" },
{ 96, "pumoCall" },
- { 97, "getRRCInf" },
- { 98, "locInfoCheck" },
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
{ 99, "ssctInitiate" },
{ 100, "ssctSetup" },
{ 101, "ssctPostDial" },
{ 102, "ssctDigitInfo" },
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+ { 50, "locUpdate" },
+ { 51, "locDelete" },
+ { 52, "locDeReg" },
+ { 53, "pisnEnquiry" },
+ { 97, "getRRCInf" },
+ { 98, "locInfoCheck" },
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ { 54, "wtmiEnquiry" },
+ { 55, "wtmiDivert" },
+ { 56, "wtmiInform" },
+ { 71, "wtmoCall" },
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+ { 72, "authWtmUser" },
+ { 73, "getWtatParam" },
+ { 74, "wtatParamEnq" },
+ { 75, "getWtanParam" },
+ { 76, "wtanParamEnq" },
+ { 77, "transferAuthParam" },
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
{ 103, "display" },
{ 104, "keypad" },
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
{ 105, "callIdentificationAssign" },
{ 106, "callIdentificationUpdate" },
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
{ 107, "smsSubmit" },
{ 108, "smsDeliver" },
{ 109, "smsStatusReport" },
{ 110, "smsCommand" },
{ 111, "scAlert" },
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
{ 112, "mCRequest" },
- { 113, "mCAlerting" },
- { 114, "mCInform" },
+ { 113, "mCInform" },
+ { 114, "mCAlerting" },
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+ { 80, "mCMNewMsg" },
+ { 81, "mCMNoNewMsg" },
{ 115, "mCMUpdate" },
+ { 82, "mCMUpdateReq" },
{ 116, "mCMService" },
{ 117, "mCMInterrogate" },
{ 118, "mCMailboxFull" },
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
{ 119, "mIDMailboxAuth" },
{ 120, "mIDMailboxID" },
+
+/*--- End of included file: packet-qsig-table10.c ---*/
+#line 274 "packet-qsig-template.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[] = {
+
+/*--- Included file: packet-qsig-table20.c ---*/
+#line 1 "packet-qsig-table20.c"
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+ { 12, "invalidDivertedToNr" },
+ { 14, "specialServiceNr" },
+ { 15, "diversionToServedUserNr" },
+ { 24, "numberOfDiversionsExceeded" },
+ { 1000, "temporarilyUnavailable" },
+ { 1007, "notAuthorized" },
+ { 1008, "unspecified" },
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+ { 1000, "temporarilyUnavailable" },
+ { 1001, "collision" },
+ { 1002, "criteriaPermanentlyUnachievable" },
+ { 1003, "criteriaTemporarilyUnachievable" },
+ { 1004, "invalidRerouteingNumber" },
+ { 1005, "unrecognizedCallIdentity" },
+ { 1006, "establishmentFailure" },
+ { 1008, "unspecified" },
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+ { 1004, "invalidRerouteingNumber" },
+ { 1005, "unrecognizedCallIdentity" },
+ { 1006, "establishmentFailure" },
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+ { 1010, "shortTermRejection" },
+ { 1011, "longTermRejection" },
+ { 1012, "remoteUserBusyAgain" },
+ { 1013, "failureToMatch" },
+ { 1014, "failedDueToInterworking" },
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+ { 1009, "notBusy" },
+ { 1000, "temporarilyUnavailable" },
+ { 1008, "unspecified" },
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+ { 1000, "temporarilyUnavailable" },
+ { 43, "notActivated" },
+ { 1008, "unspecified" },
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+ { 1009, "notBusy" },
+ { 1000, "temporarilyUnavailable" },
+ { 1007, "notAuthorized" },
+ { 1008, "unspecified" },
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+ { 1016, "freeOfCharge" },
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+ { 1007, "notAuthorized" },
+ { 1000, "temporarilyUnavailable" },
+ { 1019, "pumUserNotSubscribedToThisServiceOpt" },
+ { 1020, "pumUserFailedAuthentication" },
+ { 1021, "hostingAddrInvalid" },
+ { 1022, "pumUserNotRegistered" },
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ { 1015, "locationNotKnown" },
+ { 1008, "unspecified" },
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+ { 1007, "notAuthorized" },
+ { 1000, "temporarilyUnavailable" },
+ { 1008, "unspecified" },
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+ { 1015, "locationNotKnown" },
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+ { 1007, "notAuthorized" },
+ { 1017, "paramNotAvailable" },
+ { 1000, "temporarilyUnavailable" },
+ { 1008, "unspecified" },
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+ { 1008, "unspecified" },
+ { 1023, "noDisplayAvailable" },
+ { 1024, "displayTemporarilyNotAvailable" },
+ { 1025, "notPresentable" },
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+ { 1026, "smsDeliverError" },
+ { 1027, "smsSubmitError" },
+ { 1028, "smsStatusReportError" },
+ { 1029, "smsCommandError" },
+ { 1008, "unspecified" },
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+ { 1030, "invalidDestinationNumber" },
+ { 1031, "invalidCooperationNumber" },
+ { 1032, "mCRequestNotAllowed" },
+ { 1033, "mCExecutionNotAllowed" },
+ { 1034, "mCDestUserBusy" },
+ { 1035, "mCCoopUserBusy" },
+ { 1036, "mCCoopUserRejected" },
+ { 1008, "unspecified" },
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+ { 1037, "mCMModeNotProvided" },
+ { 1008, "unspecified" },
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+ { 1039, "invalidMailbox" },
+ { 1040, "authorizationFailed" },
+ { 1008, "unspecified" },
+
+/*--- End of included file: packet-qsig-table20.c ---*/
+#line 279 "packet-qsig-template.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;
@@ -422,21 +674,9 @@ static int hf_qsig_pc = -1;
/*--- Included file: packet-qsig-hf.c ---*/
#line 1 "packet-qsig-hf.c"
-static int hf_qsig_NameArg_PDU = -1; /* NameArg */
-static int hf_qsig_ARG_activateDiversionQ_PDU = -1; /* ARG_activateDiversionQ */
-static int hf_qsig_RES_activateDiversionQ_PDU = -1; /* RES_activateDiversionQ */
-static int hf_qsig_ARG_deactivateDiversionQ_PDU = -1; /* ARG_deactivateDiversionQ */
-static int hf_qsig_RES_deactivateDiversionQ_PDU = -1; /* RES_deactivateDiversionQ */
-static int hf_qsig_ARG_interrogateDiversionQ_PDU = -1; /* ARG_interrogateDiversionQ */
-static int hf_qsig_IntResultList_PDU = -1; /* IntResultList */
-static int hf_qsig_ARG_checkRestriction_PDU = -1; /* ARG_checkRestriction */
-static int hf_qsig_RES_checkRestriction_PDU = -1; /* RES_checkRestriction */
-static int hf_qsig_ARG_callRerouteing_PDU = -1; /* ARG_callRerouteing */
-static int hf_qsig_RES_callRerouteing_PDU = -1; /* RES_callRerouteing */
-static int hf_qsig_ARG_divertingLegInformation1_PDU = -1; /* ARG_divertingLegInformation1 */
-static int hf_qsig_ARG_divertingLegInformation2_PDU = -1; /* ARG_divertingLegInformation2 */
-static int hf_qsig_ARG_divertingLegInformation3_PDU = -1; /* ARG_divertingLegInformation3 */
-static int hf_qsig_ARG_cfnrDivertedLegFailed_PDU = -1; /* ARG_cfnrDivertedLegFailed */
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
static int hf_qsig_extensionId = -1; /* OBJECT_IDENTIFIER */
static int hf_qsig_extensionArgument = -1; /* T_extensionArgument */
static int hf_qsig_presentationAllowedAddressS = -1; /* AddressScreened */
@@ -466,64 +706,837 @@ static int hf_qsig_userSpecifiedSubaddress = -1; /* UserSpecifiedSubaddress */
static int hf_qsig_nSAPSubaddress = -1; /* NSAPSubaddress */
static int hf_qsig_subaddressInformation = -1; /* SubaddressInformation */
static int hf_qsig_oddCountIndicator = -1; /* BOOLEAN */
-static int hf_qsig_name = -1; /* Name */
-static int hf_qsig_nameSequence = -1; /* T_nameSequence */
-static int hf_qsig_extensionNA = -1; /* NameExtension */
-static int hf_qsig_single = -1; /* Extension */
-static int hf_qsig_multiple = -1; /* SEQUENCE_OF_Extension */
-static int hf_qsig_multiple_item = -1; /* Extension */
-static int hf_qsig_namePresentationAllowed = -1; /* NamePresentationAllowed */
-static int hf_qsig_namePresentationRestricted = -1; /* NamePresentationRestricted */
-static int hf_qsig_nameNotAvailable = -1; /* NameNotAvailable */
-static int hf_qsig_namePresentationAllowedSimple = -1; /* NameData */
-static int hf_qsig_namePresentationAllowedExtended = -1; /* NameSet */
-static int hf_qsig_namePresentationRestrictedSimple = -1; /* NameData */
-static int hf_qsig_namePresentationRestrictedExtended = -1; /* NameSet */
-static int hf_qsig_namePresentationRestrictedNull = -1; /* NULL */
-static int hf_qsig_nameData = -1; /* NameData */
-static int hf_qsig_characterSet = -1; /* CharacterSet */
-static int hf_qsig_procedure = -1; /* Procedure */
-static int hf_qsig_basicService = -1; /* BasicService */
-static int hf_qsig_divertedToAddress = -1; /* Address */
-static int hf_qsig_servedUserNr = -1; /* PartyNumber */
-static int hf_qsig_activatingUserNr = -1; /* PartyNumber */
-static int hf_qsig_extensionAD = -1; /* ADExtension */
-static int hf_qsig_null = -1; /* NULL */
-static int hf_qsig_deactivatingUserNr = -1; /* PartyNumber */
-static int hf_qsig_extensionDD = -1; /* DDExtension */
-static int hf_qsig_interrogatingUserNr = -1; /* PartyNumber */
-static int hf_qsig_extensionID = -1; /* IDExtension */
-static int hf_qsig_divertedToNr = -1; /* PartyNumber */
-static int hf_qsig_extensionCHR = -1; /* CHRExtension */
-static int hf_qsig_rerouteingReason = -1; /* DiversionReason */
-static int hf_qsig_originalRerouteingReason = -1; /* DiversionReason */
-static int hf_qsig_calledAddress = -1; /* Address */
-static int hf_qsig_diversionCounter = -1; /* INTEGER_1_15 */
-static int hf_qsig_pSS1InfoElement = -1; /* PSS1InformationElement */
-static int hf_qsig_lastRerouteingNr = -1; /* PresentedNumberUnscreened */
-static int hf_qsig_subscriptionOption = -1; /* SubscriptionOption */
-static int hf_qsig_callingPartySubaddress = -1; /* PartySubaddress */
-static int hf_qsig_callingNumber = -1; /* PresentedNumberScreened */
-static int hf_qsig_callingName = -1; /* Name */
-static int hf_qsig_originalCalledNr = -1; /* PresentedNumberUnscreened */
-static int hf_qsig_redirectingName = -1; /* Name */
-static int hf_qsig_originalCalledName = -1; /* Name */
-static int hf_qsig_extensionCRR = -1; /* CRRExtension */
-static int hf_qsig_diversionReason = -1; /* DiversionReason */
-static int hf_qsig_nominatedNr = -1; /* PartyNumber */
-static int hf_qsig_extensionDLI1 = -1; /* DLI1Extension */
-static int hf_qsig_originalDiversionReason = -1; /* DiversionReason */
-static int hf_qsig_divertingNr = -1; /* PresentedNumberUnscreened */
-static int hf_qsig_extensionDLI2 = -1; /* DLI2Extension */
-static int hf_qsig_presentationAllowedIndicator = -1; /* PresentationAllowedIndicator */
-static int hf_qsig_redirectionName = -1; /* Name */
-static int hf_qsig_extensionDLI3 = -1; /* DLI3Extension */
-static int hf_qsig_IntResultList_item = -1; /* IntResult */
-static int hf_qsig_remoteEnabled = -1; /* BOOLEAN */
-static int hf_qsig_extensionIR = -1; /* IRExtension */
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_na_qsig_na_NameArg_PDU = -1; /* NameArg */
+static int hf_qsig_na_name = -1; /* Name */
+static int hf_qsig_na_nameSequence = -1; /* T_nameSequence */
+static int hf_qsig_na_extensionNA = -1; /* NameExtension */
+static int hf_qsig_na_single = -1; /* Extension */
+static int hf_qsig_na_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_na_multiple_item = -1; /* Extension */
+static int hf_qsig_na_namePresentationAllowed = -1; /* NamePresentationAllowed */
+static int hf_qsig_na_namePresentationRestricted = -1; /* NamePresentationRestricted */
+static int hf_qsig_na_nameNotAvailable = -1; /* NameNotAvailable */
+static int hf_qsig_na_namePresentationAllowedSimple = -1; /* NameData */
+static int hf_qsig_na_namePresentationAllowedExtended = -1; /* NameSet */
+static int hf_qsig_na_namePresentationRestrictedSimple = -1; /* NameData */
+static int hf_qsig_na_namePresentationRestrictedExtended = -1; /* NameSet */
+static int hf_qsig_na_namePresentationRestrictedNull = -1; /* NULL */
+static int hf_qsig_na_nameData = -1; /* NameData */
+static int hf_qsig_na_characterSet = -1; /* CharacterSet */
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_cf_qsig_cf_ARG_activateDiversionQ_PDU = -1; /* ARG_activateDiversionQ */
+static int hf_qsig_cf_qsig_cf_RES_activateDiversionQ_PDU = -1; /* RES_activateDiversionQ */
+static int hf_qsig_cf_qsig_cf_ARG_deactivateDiversionQ_PDU = -1; /* ARG_deactivateDiversionQ */
+static int hf_qsig_cf_qsig_cf_RES_deactivateDiversionQ_PDU = -1; /* RES_deactivateDiversionQ */
+static int hf_qsig_cf_qsig_cf_ARG_interrogateDiversionQ_PDU = -1; /* ARG_interrogateDiversionQ */
+static int hf_qsig_cf_qsig_cf_IntResultList_PDU = -1; /* IntResultList */
+static int hf_qsig_cf_qsig_cf_ARG_checkRestriction_PDU = -1; /* ARG_checkRestriction */
+static int hf_qsig_cf_qsig_cf_RES_checkRestriction_PDU = -1; /* RES_checkRestriction */
+static int hf_qsig_cf_qsig_cf_ARG_callRerouteing_PDU = -1; /* ARG_callRerouteing */
+static int hf_qsig_cf_qsig_cf_RES_callRerouteing_PDU = -1; /* RES_callRerouteing */
+static int hf_qsig_cf_qsig_cf_ARG_divertingLegInformation1_PDU = -1; /* ARG_divertingLegInformation1 */
+static int hf_qsig_cf_qsig_cf_ARG_divertingLegInformation2_PDU = -1; /* ARG_divertingLegInformation2 */
+static int hf_qsig_cf_qsig_cf_ARG_divertingLegInformation3_PDU = -1; /* ARG_divertingLegInformation3 */
+static int hf_qsig_cf_qsig_cf_ARG_cfnrDivertedLegFailed_PDU = -1; /* ARG_cfnrDivertedLegFailed */
+static int hf_qsig_cf_qsig_cf_Extension_PDU = -1; /* Extension */
+static int hf_qsig_cf_procedure = -1; /* Procedure */
+static int hf_qsig_cf_basicService = -1; /* BasicService */
+static int hf_qsig_cf_divertedToAddress = -1; /* Address */
+static int hf_qsig_cf_servedUserNr = -1; /* PartyNumber */
+static int hf_qsig_cf_activatingUserNr = -1; /* PartyNumber */
+static int hf_qsig_cf_extensionAD = -1; /* ADExtension */
+static int hf_qsig_cf_single = -1; /* Extension */
+static int hf_qsig_cf_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_cf_multiple_item = -1; /* Extension */
+static int hf_qsig_cf_null = -1; /* NULL */
+static int hf_qsig_cf_deactivatingUserNr = -1; /* PartyNumber */
+static int hf_qsig_cf_extensionDD = -1; /* DDExtension */
+static int hf_qsig_cf_interrogatingUserNr = -1; /* PartyNumber */
+static int hf_qsig_cf_extensionID = -1; /* IDExtension */
+static int hf_qsig_cf_divertedToNr = -1; /* PartyNumber */
+static int hf_qsig_cf_extensionCHR = -1; /* CHRExtension */
+static int hf_qsig_cf_rerouteingReason = -1; /* DiversionReason */
+static int hf_qsig_cf_originalRerouteingReason = -1; /* DiversionReason */
+static int hf_qsig_cf_calledAddress = -1; /* Address */
+static int hf_qsig_cf_diversionCounter = -1; /* INTEGER_1_15 */
+static int hf_qsig_cf_pSS1InfoElement = -1; /* PSS1InformationElement */
+static int hf_qsig_cf_lastRerouteingNr = -1; /* PresentedNumberUnscreened */
+static int hf_qsig_cf_subscriptionOption = -1; /* SubscriptionOption */
+static int hf_qsig_cf_callingPartySubaddress = -1; /* PartySubaddress */
+static int hf_qsig_cf_callingNumber = -1; /* PresentedNumberScreened */
+static int hf_qsig_cf_callingName = -1; /* Name */
+static int hf_qsig_cf_originalCalledNr = -1; /* PresentedNumberUnscreened */
+static int hf_qsig_cf_redirectingName = -1; /* Name */
+static int hf_qsig_cf_originalCalledName = -1; /* Name */
+static int hf_qsig_cf_extensionCRR = -1; /* CRRExtension */
+static int hf_qsig_cf_diversionReason = -1; /* DiversionReason */
+static int hf_qsig_cf_nominatedNr = -1; /* PartyNumber */
+static int hf_qsig_cf_extensionDLI1 = -1; /* DLI1Extension */
+static int hf_qsig_cf_originalDiversionReason = -1; /* DiversionReason */
+static int hf_qsig_cf_divertingNr = -1; /* PresentedNumberUnscreened */
+static int hf_qsig_cf_extensionDLI2 = -1; /* DLI2Extension */
+static int hf_qsig_cf_presentationAllowedIndicator = -1; /* PresentationAllowedIndicator */
+static int hf_qsig_cf_redirectionName = -1; /* Name */
+static int hf_qsig_cf_extensionDLI3 = -1; /* DLI3Extension */
+static int hf_qsig_cf_IntResultList_item = -1; /* IntResult */
+static int hf_qsig_cf_remoteEnabled = -1; /* BOOLEAN */
+static int hf_qsig_cf_extensionIR = -1; /* IRExtension */
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_pr_qsig_pr_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_pr_qsig_pr_PRProposeArg_PDU = -1; /* PRProposeArg */
+static int hf_qsig_pr_qsig_pr_PRSetupArg_PDU = -1; /* PRSetupArg */
+static int hf_qsig_pr_qsig_pr_DummyResult_PDU = -1; /* DummyResult */
+static int hf_qsig_pr_qsig_pr_PRRetainArg_PDU = -1; /* PRRetainArg */
+static int hf_qsig_pr_qsig_pr_Extension_PDU = -1; /* Extension */
+static int hf_qsig_pr_callIdentity = -1; /* CallIdentity */
+static int hf_qsig_pr_rerouteingNumber = -1; /* PartyNumber */
+static int hf_qsig_pr_extension = -1; /* T_extension */
+static int hf_qsig_pr_single = -1; /* Extension */
+static int hf_qsig_pr_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_pr_multiple_item = -1; /* Extension */
+static int hf_qsig_pr_extension_01 = -1; /* T_extension_01 */
+static int hf_qsig_pr_extension_02 = -1; /* T_extension_02 */
+static int hf_qsig_pr_null = -1; /* NULL */
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_ct_qsig_ct_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_ct_qsig_ct_CTIdentifyRes_PDU = -1; /* CTIdentifyRes */
+static int hf_qsig_ct_qsig_ct_CTInitiateArg_PDU = -1; /* CTInitiateArg */
+static int hf_qsig_ct_qsig_ct_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_ct_qsig_ct_CTSetupArg_PDU = -1; /* CTSetupArg */
+static int hf_qsig_ct_qsig_ct_CTActiveArg_PDU = -1; /* CTActiveArg */
+static int hf_qsig_ct_qsig_ct_CTCompleteArg_PDU = -1; /* CTCompleteArg */
+static int hf_qsig_ct_qsig_ct_CTUpdateArg_PDU = -1; /* CTUpdateArg */
+static int hf_qsig_ct_qsig_ct_SubaddressTransferArg_PDU = -1; /* SubaddressTransferArg */
+static int hf_qsig_ct_qsig_ct_Extension_PDU = -1; /* Extension */
+static int hf_qsig_ct_null = -1; /* NULL */
+static int hf_qsig_ct_single = -1; /* Extension */
+static int hf_qsig_ct_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_ct_multiple_item = -1; /* Extension */
+static int hf_qsig_ct_callIdentity = -1; /* CallIdentity */
+static int hf_qsig_ct_rerouteingNumber = -1; /* PartyNumber */
+static int hf_qsig_ct_resultExtension = -1; /* T_resultExtension */
+static int hf_qsig_ct_argumentExtension = -1; /* T_argumentExtension */
+static int hf_qsig_ct_argumentExtension_01 = -1; /* T_argumentExtension_01 */
+static int hf_qsig_ct_connectedAddress = -1; /* PresentedAddressScreened */
+static int hf_qsig_ct_basicCallInfoElements = -1; /* PSS1InformationElement */
+static int hf_qsig_ct_connectedName = -1; /* Name */
+static int hf_qsig_ct_argumentExtension_02 = -1; /* T_argumentExtension_02 */
+static int hf_qsig_ct_endDesignation = -1; /* EndDesignation */
+static int hf_qsig_ct_redirectionNumber = -1; /* PresentedNumberScreened */
+static int hf_qsig_ct_redirectionName = -1; /* Name */
+static int hf_qsig_ct_callStatus = -1; /* CallStatus */
+static int hf_qsig_ct_argumentExtension_03 = -1; /* T_argumentExtension_03 */
+static int hf_qsig_ct_argumentExtension_04 = -1; /* T_argumentExtension_04 */
+static int hf_qsig_ct_redirectionSubaddress = -1; /* PartySubaddress */
+static int hf_qsig_ct_argumentExtension_05 = -1; /* T_argumentExtension_05 */
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_cc_qsig_cc_CcRequestArg_PDU = -1; /* CcRequestArg */
+static int hf_qsig_cc_qsig_cc_CcRequestRes_PDU = -1; /* CcRequestRes */
+static int hf_qsig_cc_qsig_cc_CcOptionalArg_PDU = -1; /* CcOptionalArg */
+static int hf_qsig_cc_qsig_cc_CcExtension_PDU = -1; /* CcExtension */
+static int hf_qsig_cc_qsig_cc_Extension_PDU = -1; /* Extension */
+static int hf_qsig_cc_numberA = -1; /* PresentedNumberUnscreened */
+static int hf_qsig_cc_numberB = -1; /* PartyNumber */
+static int hf_qsig_cc_service = -1; /* PSS1InformationElement */
+static int hf_qsig_cc_subaddrA = -1; /* PartySubaddress */
+static int hf_qsig_cc_subaddrB = -1; /* PartySubaddress */
+static int hf_qsig_cc_can_retain_service = -1; /* BOOLEAN */
+static int hf_qsig_cc_retain_sig_connection = -1; /* BOOLEAN */
+static int hf_qsig_cc_extension = -1; /* CcExtension */
+static int hf_qsig_cc_no_path_reservation = -1; /* BOOLEAN */
+static int hf_qsig_cc_retain_service = -1; /* BOOLEAN */
+static int hf_qsig_cc_fullArg = -1; /* T_fullArg */
+static int hf_qsig_cc_numberA_01 = -1; /* PartyNumber */
+static int hf_qsig_cc_extArg = -1; /* CcExtension */
+static int hf_qsig_cc_none = -1; /* NULL */
+static int hf_qsig_cc_single = -1; /* Extension */
+static int hf_qsig_cc_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_cc_multiple_item = -1; /* Extension */
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_co_qsig_co_PathRetainArg_PDU = -1; /* PathRetainArg */
+static int hf_qsig_co_qsig_co_ServiceAvailableArg_PDU = -1; /* ServiceAvailableArg */
+static int hf_qsig_co_qsig_co_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_co_qsig_co_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_co_qsig_co_Extension_PDU = -1; /* Extension */
+static int hf_qsig_co_serviceList = -1; /* ServiceList */
+static int hf_qsig_co_extendedServiceList = -1; /* T_extendedServiceList */
+static int hf_qsig_co_extension = -1; /* Extension */
+static int hf_qsig_co_extendedServiceList_01 = -1; /* T_extendedServiceList_01 */
+static int hf_qsig_co_null = -1; /* NULL */
+static int hf_qsig_co_sequenceOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_co_sequenceOfExtn_item = -1; /* Extension */
+/* named bits */
+static int hf_qsig_co_ServiceList_callOffer = -1;
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_dnd_qsig_dnd_DNDActivateArg_PDU = -1; /* DNDActivateArg */
+static int hf_qsig_dnd_qsig_dnd_DNDActivateRes_PDU = -1; /* DNDActivateRes */
+static int hf_qsig_dnd_qsig_dnd_DNDDeactivateArg_PDU = -1; /* DNDDeactivateArg */
+static int hf_qsig_dnd_qsig_dnd_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_dnd_qsig_dnd_DNDInterrogateArg_PDU = -1; /* DNDInterrogateArg */
+static int hf_qsig_dnd_qsig_dnd_DNDInterrogateRes_PDU = -1; /* DNDInterrogateRes */
+static int hf_qsig_dnd_qsig_dnd_DNDOverrideArg_PDU = -1; /* DNDOverrideArg */
+static int hf_qsig_dnd_qsig_dnd_PathRetainArg_PDU = -1; /* PathRetainArg */
+static int hf_qsig_dnd_qsig_dnd_ServiceAvailableArg_PDU = -1; /* ServiceAvailableArg */
+static int hf_qsig_dnd_qsig_dnd_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_dnd_qsig_dnd_Extension_PDU = -1; /* Extension */
+static int hf_qsig_dnd_null = -1; /* NULL */
+static int hf_qsig_dnd_extension = -1; /* Extension */
+static int hf_qsig_dnd_sequenceOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_dnd_sequenceOfExtn_item = -1; /* Extension */
+static int hf_qsig_dnd_basicService = -1; /* BasicService */
+static int hf_qsig_dnd_servedUserNr = -1; /* PartyNumber */
+static int hf_qsig_dnd_argumentExtension = -1; /* T_argumentExtension */
+static int hf_qsig_dnd_status = -1; /* T_status */
+static int hf_qsig_dnd_status_item = -1; /* T_status_item */
+static int hf_qsig_dnd_dndProtectionLevel = -1; /* DNDProtectionLevel */
+static int hf_qsig_dnd_resultExtension = -1; /* T_resultExtension */
+static int hf_qsig_dnd_argumentExtension_01 = -1; /* T_argumentExtension_01 */
+static int hf_qsig_dnd_argumentExtension_02 = -1; /* T_argumentExtension_02 */
+static int hf_qsig_dnd_status_01 = -1; /* T_status_01 */
+static int hf_qsig_dnd_status_item_01 = -1; /* T_status_item_01 */
+static int hf_qsig_dnd_resultExtension_01 = -1; /* T_resultExtension_01 */
+static int hf_qsig_dnd_dndoCapabilityLevel = -1; /* DNDOCapabilityLevel */
+static int hf_qsig_dnd_argumentExtension_03 = -1; /* T_argumentExtension_03 */
+static int hf_qsig_dnd_serviceList = -1; /* ServiceList */
+static int hf_qsig_dnd_extendedServiceList = -1; /* T_extendedServiceList */
+static int hf_qsig_dnd_extendedServiceList_01 = -1; /* T_extendedServiceList_01 */
+/* named bits */
+static int hf_qsig_dnd_ServiceList_dndo_low = -1;
+static int hf_qsig_dnd_ServiceList_dndo_medium = -1;
+static int hf_qsig_dnd_ServiceList_dndo_high = -1;
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_ci_qsig_ci_PathRetainArg_PDU = -1; /* PathRetainArg */
+static int hf_qsig_ci_qsig_ci_ServiceAvailableArg_PDU = -1; /* ServiceAvailableArg */
+static int hf_qsig_ci_qsig_ci_CIRequestArg_PDU = -1; /* CIRequestArg */
+static int hf_qsig_ci_qsig_ci_CIRequestRes_PDU = -1; /* CIRequestRes */
+static int hf_qsig_ci_qsig_ci_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_ci_qsig_ci_CIGetCIPLRes_PDU = -1; /* CIGetCIPLRes */
+static int hf_qsig_ci_qsig_ci_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_ci_qsig_ci_Extension_PDU = -1; /* Extension */
+static int hf_qsig_ci_serviceList = -1; /* ServiceList */
+static int hf_qsig_ci_extendedServiceList = -1; /* T_extendedServiceList */
+static int hf_qsig_ci_extension = -1; /* Extension */
+static int hf_qsig_ci_extendedServiceList_01 = -1; /* T_extendedServiceList_01 */
+static int hf_qsig_ci_null = -1; /* NULL */
+static int hf_qsig_ci_sequenceOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_ci_sequenceOfExtn_item = -1; /* Extension */
+static int hf_qsig_ci_ciCapabilityLevel = -1; /* CICapabilityLevel */
+static int hf_qsig_ci_argumentExtension = -1; /* T_argumentExtension */
+static int hf_qsig_ci_ciUnwantedUserStatus = -1; /* CIUnwantedUserStatus */
+static int hf_qsig_ci_resultExtension = -1; /* T_resultExtension */
+static int hf_qsig_ci_ciProtectionLevel = -1; /* CIProtectionLevel */
+static int hf_qsig_ci_resultExtension_01 = -1; /* T_resultExtension_01 */
+/* named bits */
+static int hf_qsig_ci_ServiceList_ci_low = -1;
+static int hf_qsig_ci_ServiceList_ci_medium = -1;
+static int hf_qsig_ci_ServiceList_ci_high = -1;
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_aoc_qsig_aoc_AocRateArg_PDU = -1; /* AocRateArg */
+static int hf_qsig_aoc_qsig_aoc_AocInterimArg_PDU = -1; /* AocInterimArg */
+static int hf_qsig_aoc_qsig_aoc_AocFinalArg_PDU = -1; /* AocFinalArg */
+static int hf_qsig_aoc_qsig_aoc_ChargeRequestArg_PDU = -1; /* ChargeRequestArg */
+static int hf_qsig_aoc_qsig_aoc_ChargeRequestRes_PDU = -1; /* ChargeRequestRes */
+static int hf_qsig_aoc_qsig_aoc_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_aoc_qsig_aoc_AocCompleteArg_PDU = -1; /* AocCompleteArg */
+static int hf_qsig_aoc_qsig_aoc_AocCompleteRes_PDU = -1; /* AocCompleteRes */
+static int hf_qsig_aoc_qsig_aoc_AocDivChargeReqArg_PDU = -1; /* AocDivChargeReqArg */
+static int hf_qsig_aoc_qsig_aoc_Extension_PDU = -1; /* Extension */
+static int hf_qsig_aoc_aocRate = -1; /* T_aocRate */
+static int hf_qsig_aoc_chargeNotAvailable = -1; /* NULL */
+static int hf_qsig_aoc_aocSCurrencyInfoList = -1; /* AOCSCurrencyInfoList */
+static int hf_qsig_aoc_rateArgExtension = -1; /* T_rateArgExtension */
+static int hf_qsig_aoc_extension = -1; /* Extension */
+static int hf_qsig_aoc_multipleExtension = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_aoc_multipleExtension_item = -1; /* Extension */
+static int hf_qsig_aoc_interimCharge = -1; /* T_interimCharge */
+static int hf_qsig_aoc_freeOfCharge = -1; /* NULL */
+static int hf_qsig_aoc_specificCurrency = -1; /* T_specificCurrency */
+static int hf_qsig_aoc_recordedCurrency = -1; /* RecordedCurrency */
+static int hf_qsig_aoc_interimBillingId = -1; /* InterimBillingId */
+static int hf_qsig_aoc_interimArgExtension = -1; /* T_interimArgExtension */
+static int hf_qsig_aoc_finalCharge = -1; /* T_finalCharge */
+static int hf_qsig_aoc_specificCurrency_01 = -1; /* T_specificCurrency_01 */
+static int hf_qsig_aoc_finalBillingId = -1; /* FinalBillingId */
+static int hf_qsig_aoc_chargingAssociation = -1; /* ChargingAssociation */
+static int hf_qsig_aoc_finalArgExtension = -1; /* T_finalArgExtension */
+static int hf_qsig_aoc_AOCSCurrencyInfoList_item = -1; /* AOCSCurrencyInfo */
+static int hf_qsig_aoc_chargedItem = -1; /* ChargedItem */
+static int hf_qsig_aoc_rateType = -1; /* T_rateType */
+static int hf_qsig_aoc_durationCurrency = -1; /* DurationCurrency */
+static int hf_qsig_aoc_flatRateCurrency = -1; /* FlatRateCurrency */
+static int hf_qsig_aoc_volumeRateCurrency = -1; /* VolumeRateCurrency */
+static int hf_qsig_aoc_specialChargingCode = -1; /* SpecialChargingCode */
+static int hf_qsig_aoc_currencyInfoNotAvailable = -1; /* NULL */
+static int hf_qsig_aoc_freeOfChargefromBeginning = -1; /* NULL */
+static int hf_qsig_aoc_dCurrency = -1; /* Currency */
+static int hf_qsig_aoc_dAmount = -1; /* Amount */
+static int hf_qsig_aoc_dChargingType = -1; /* ChargingType */
+static int hf_qsig_aoc_dTime = -1; /* Time */
+static int hf_qsig_aoc_dGranularity = -1; /* Time */
+static int hf_qsig_aoc_fRCurrency = -1; /* Currency */
+static int hf_qsig_aoc_fRAmount = -1; /* Amount */
+static int hf_qsig_aoc_vRCurrency = -1; /* Currency */
+static int hf_qsig_aoc_vRAmount = -1; /* Amount */
+static int hf_qsig_aoc_vRVolumeUnit = -1; /* VolumeUnit */
+static int hf_qsig_aoc_rCurrency = -1; /* Currency */
+static int hf_qsig_aoc_rAmount = -1; /* Amount */
+static int hf_qsig_aoc_currencyAmount = -1; /* CurrencyAmount */
+static int hf_qsig_aoc_multiplier = -1; /* Multiplier */
+static int hf_qsig_aoc_lengthOfTimeUnit = -1; /* LengthOfTimeUnit */
+static int hf_qsig_aoc_scale = -1; /* Scale */
+static int hf_qsig_aoc_chargeNumber = -1; /* PartyNumber */
+static int hf_qsig_aoc_chargeIdentifier = -1; /* ChargeIdentifier */
+static int hf_qsig_aoc_adviceModeCombinations = -1; /* SEQUENCE_SIZE_0_7_OF_AdviceModeCombination */
+static int hf_qsig_aoc_adviceModeCombinations_item = -1; /* AdviceModeCombination */
+static int hf_qsig_aoc_chargeReqArgExtension = -1; /* T_chargeReqArgExtension */
+static int hf_qsig_aoc_adviceModeCombination = -1; /* AdviceModeCombination */
+static int hf_qsig_aoc_chargeReqResExtension = -1; /* T_chargeReqResExtension */
+static int hf_qsig_aoc_none = -1; /* NULL */
+static int hf_qsig_aoc_chargedUser = -1; /* PartyNumber */
+static int hf_qsig_aoc_completeArgExtension = -1; /* T_completeArgExtension */
+static int hf_qsig_aoc_chargingOption = -1; /* ChargingOption */
+static int hf_qsig_aoc_completeResExtension = -1; /* T_completeResExtension */
+static int hf_qsig_aoc_divertingUser = -1; /* PartyNumber */
+static int hf_qsig_aoc_diversionType = -1; /* DiversionType */
+static int hf_qsig_aoc_aocDivChargeReqArgExt = -1; /* T_aocDivChargeReqArgExt */
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_re_qsig_re_ReAlertingArg_PDU = -1; /* ReAlertingArg */
+static int hf_qsig_re_qsig_re_ReAnswerArg_PDU = -1; /* ReAnswerArg */
+static int hf_qsig_re_alertedNumber = -1; /* PresentedNumberScreened */
+static int hf_qsig_re_alertedName = -1; /* Name */
+static int hf_qsig_re_argumentExtension = -1; /* T_argumentExtension */
+static int hf_qsig_re_extension = -1; /* Extension */
+static int hf_qsig_re_multipleExtension = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_re_multipleExtension_item = -1; /* Extension */
+static int hf_qsig_re_connectedNumber = -1; /* PresentedNumberScreened */
+static int hf_qsig_re_connectedSubaddress = -1; /* PartySubaddress */
+static int hf_qsig_re_connectedName = -1; /* Name */
+static int hf_qsig_re_argumentExtension_01 = -1; /* T_argumentExtension_01 */
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_cint_qsig_cint_CintInformation1Arg_PDU = -1; /* CintInformation1Arg */
+static int hf_qsig_cint_qsig_cint_CintInformation2Arg_PDU = -1; /* CintInformation2Arg */
+static int hf_qsig_cint_qsig_cint_CintCondArg_PDU = -1; /* CintCondArg */
+static int hf_qsig_cint_qsig_cint_CintExtension_PDU = -1; /* CintExtension */
+static int hf_qsig_cint_interceptionCause = -1; /* CintCause */
+static int hf_qsig_cint_interceptedToNumber = -1; /* PartyNumber */
+static int hf_qsig_cint_extension = -1; /* CintExtension */
+static int hf_qsig_cint_calledNumber = -1; /* PresentedNumberUnscreened */
+static int hf_qsig_cint_originalCalledNumber = -1; /* PresentedNumberUnscreened */
+static int hf_qsig_cint_calledName = -1; /* Name */
+static int hf_qsig_cint_originalCalledName = -1; /* Name */
+static int hf_qsig_cint_interceptionCause_01 = -1; /* Condition */
+static int hf_qsig_cint_none = -1; /* NULL */
+static int hf_qsig_cint_single = -1; /* Extension */
+static int hf_qsig_cint_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_cint_multiple_item = -1; /* Extension */
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_cmn_qsig_cmn_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_cmn_qsig_cmn_CmnArg_PDU = -1; /* CmnArg */
+static int hf_qsig_cmn_featureIdentifier = -1; /* FeatureIdList */
+static int hf_qsig_cmn_ssDNDOprotectionLevel = -1; /* INTEGER_0_3 */
+static int hf_qsig_cmn_ssCIprotectionLevel = -1; /* INTEGER_0_3 */
+static int hf_qsig_cmn_equipmentIdentity = -1; /* EquipmentId */
+static int hf_qsig_cmn_partyCategory = -1; /* PartyCategory */
+static int hf_qsig_cmn_extension = -1; /* T_extension */
+static int hf_qsig_cmn_single = -1; /* Extension */
+static int hf_qsig_cmn_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_cmn_multiple_item = -1; /* Extension */
+static int hf_qsig_cmn_null = -1; /* NULL */
+static int hf_qsig_cmn_nodeId = -1; /* IA5String_SIZE_1_10 */
+static int hf_qsig_cmn_groupId = -1; /* IA5String_SIZE_1_10 */
+static int hf_qsig_cmn_unitId = -1; /* IA5String_SIZE_1_10 */
+/* named bits */
+static int hf_qsig_cmn_FeatureIdList_reserved = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCFreRoutingSupported = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCTreRoutingSupported = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCCBSpossible = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCCNRpossible = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCOsupported = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCIforcedRelease = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCIisolation = -1;
+static int hf_qsig_cmn_FeatureIdList_ssCIwaitOnBusy = -1;
+static int hf_qsig_cmn_FeatureIdList_ssAOCsupportChargeRateProvAtGatewPinx = -1;
+static int hf_qsig_cmn_FeatureIdList_ssAOCsupportInterimChargeProvAtGatewPinx = -1;
+static int hf_qsig_cmn_FeatureIdList_ssAOCsupportFinalChargeProvAtGatewPinx = -1;
+static int hf_qsig_cmn_FeatureIdList_anfPRsupportedAtCooperatingPinx = -1;
+static int hf_qsig_cmn_FeatureIdList_anfCINTcanInterceptImmediate = -1;
+static int hf_qsig_cmn_FeatureIdList_anfCINTcanInterceptDelayed = -1;
+static int hf_qsig_cmn_FeatureIdList_anfWTMIreRoutingSupported = -1;
+static int hf_qsig_cmn_FeatureIdList_anfPUMIreRoutingSupported = -1;
+static int hf_qsig_cmn_FeatureIdList_ssSSCTreRoutingSupported = -1;
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_cpi_qsig_cpi_CPIRequestArg_PDU = -1; /* CPIRequestArg */
+static int hf_qsig_cpi_qsig_cpi_CPIPRequestArg_PDU = -1; /* CPIPRequestArg */
+static int hf_qsig_cpi_cpiCapabilityLevel = -1; /* CPICapabilityLevel */
+static int hf_qsig_cpi_argumentExtension = -1; /* T_argumentExtension */
+static int hf_qsig_cpi_extension = -1; /* Extension */
+static int hf_qsig_cpi_sequenceOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_cpi_sequenceOfExtn_item = -1; /* Extension */
+static int hf_qsig_cpi_cpiProtectionLevel = -1; /* CPIProtectionLevel */
+static int hf_qsig_cpi_argumentExtension_01 = -1; /* T_argumentExtension_01 */
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_pumr_qsig_pumr_PumRegistrArg_PDU = -1; /* PumRegistrArg */
+static int hf_qsig_pumr_qsig_pumr_PumRegistrRes_PDU = -1; /* PumRegistrRes */
+static int hf_qsig_pumr_qsig_pumr_PumDelRegArg_PDU = -1; /* PumDelRegArg */
+static int hf_qsig_pumr_qsig_pumr_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_pumr_qsig_pumr_PumDe_regArg_PDU = -1; /* PumDe_regArg */
+static int hf_qsig_pumr_qsig_pumr_PumInterrogArg_PDU = -1; /* PumInterrogArg */
+static int hf_qsig_pumr_qsig_pumr_PumInterrogRes_PDU = -1; /* PumInterrogRes */
+static int hf_qsig_pumr_qsig_pumr_Extension_PDU = -1; /* Extension */
+static int hf_qsig_pumr_pumUserId = -1; /* T_pumUserId */
+static int hf_qsig_pumr_pumNumber = -1; /* PartyNumber */
+static int hf_qsig_pumr_alternativeId = -1; /* AlternativeId */
+static int hf_qsig_pumr_basicService = -1; /* BasicService */
+static int hf_qsig_pumr_hostingAddr = -1; /* PartyNumber */
+static int hf_qsig_pumr_activatingUserAddr = -1; /* PartyNumber */
+static int hf_qsig_pumr_serviceOption = -1; /* ServiceOption */
+static int hf_qsig_pumr_sessionParams = -1; /* SessionParams */
+static int hf_qsig_pumr_userPin = -1; /* T_userPin */
+static int hf_qsig_pumr_pumUserPin = -1; /* UserPin */
+static int hf_qsig_pumr_activatingUserPin = -1; /* UserPin */
+static int hf_qsig_pumr_argExtension = -1; /* PumrExtension */
+static int hf_qsig_pumr_null = -1; /* NULL */
+static int hf_qsig_pumr_extension = -1; /* Extension */
+static int hf_qsig_pumr_sequOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_pumr_sequOfExtn_item = -1; /* Extension */
+static int hf_qsig_pumr_pumUserId_01 = -1; /* T_pumUserId_01 */
+static int hf_qsig_pumr_pumUserId_02 = -1; /* T_pumUserId_02 */
+static int hf_qsig_pumr_userPin_01 = -1; /* T_userPin_01 */
+static int hf_qsig_pumr_pumUserId_03 = -1; /* T_pumUserId_03 */
+static int hf_qsig_pumr_homeInfoOnly = -1; /* BOOLEAN */
+static int hf_qsig_pumr_userPin_02 = -1; /* T_userPin_02 */
+static int hf_qsig_pumr_PumInterrogRes_item = -1; /* PumInterrogRes_item */
+static int hf_qsig_pumr_interrogParams = -1; /* SessionParams */
+static int hf_qsig_pumr_durationOfSession = -1; /* INTEGER */
+static int hf_qsig_pumr_numberOfOutgCalls = -1; /* INTEGER */
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_pumch_qsig_pumch_EnquiryArg_PDU = -1; /* EnquiryArg */
+static int hf_qsig_pumch_qsig_pumch_EnquiryRes_PDU = -1; /* EnquiryRes */
+static int hf_qsig_pumch_qsig_pumch_DivertArg_PDU = -1; /* DivertArg */
+static int hf_qsig_pumch_qsig_pumch_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_pumch_qsig_pumch_InformArg_PDU = -1; /* InformArg */
+static int hf_qsig_pumch_qsig_pumch_PumoArg_PDU = -1; /* PumoArg */
+static int hf_qsig_pumch_qsig_pumch_Extension_PDU = -1; /* Extension */
+static int hf_qsig_pumch_pisnNumber = -1; /* PartyNumber */
+static int hf_qsig_pumch_qSIGInfoElement = -1; /* PSS1InformationElement */
+static int hf_qsig_pumch_argExtension = -1; /* PumiExtension */
+static int hf_qsig_pumch_hostingAddr = -1; /* PartyNumber */
+static int hf_qsig_pumch_callingNumber = -1; /* PresentedNumberScreened */
+static int hf_qsig_pumch_pumIdentity = -1; /* PumIdentity */
+static int hf_qsig_pumch_callingUserSub = -1; /* PartySubaddress */
+static int hf_qsig_pumch_callingUserName = -1; /* Name */
+static int hf_qsig_pumch_pumUserSub = -1; /* PartySubaddress */
+static int hf_qsig_pumch_currLocation = -1; /* CurrLocation */
+static int hf_qsig_pumch_cfuActivated = -1; /* CfuActivated */
+static int hf_qsig_pumch_divToAddress = -1; /* Address */
+static int hf_qsig_pumch_divOptions = -1; /* SubscriptionOption */
+static int hf_qsig_pumch_pumName = -1; /* Name */
+static int hf_qsig_pumch_null = -1; /* NULL */
+static int hf_qsig_pumch_extension = -1; /* Extension */
+static int hf_qsig_pumch_sequOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_pumch_sequOfExtn_item = -1; /* Extension */
+static int hf_qsig_pumch_alternativeId = -1; /* AlternativeId */
+static int hf_qsig_pumch_both = -1; /* T_both */
+static int hf_qsig_pumch_destinationNumber = -1; /* PartyNumber */
+static int hf_qsig_pumch_sendingComplete = -1; /* NULL */
+static int hf_qsig_pumch_extension_01 = -1; /* T_extension */
+static int hf_qsig_pumch_single = -1; /* Extension */
+static int hf_qsig_pumch_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_pumch_multiple_item = -1; /* Extension */
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_ssct_qsig_ssct_SSCTInitiateArg_PDU = -1; /* SSCTInitiateArg */
+static int hf_qsig_ssct_qsig_ssct_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_ssct_qsig_ssct_SSCTSetupArg_PDU = -1; /* SSCTSetupArg */
+static int hf_qsig_ssct_qsig_ssct_DummyArg_PDU = -1; /* DummyArg */
+static int hf_qsig_ssct_qsig_ssct_SSCTDigitInfoArg_PDU = -1; /* SSCTDigitInfoArg */
+static int hf_qsig_ssct_qsig_ssct_Extension_PDU = -1; /* Extension */
+static int hf_qsig_ssct_null = -1; /* NULL */
+static int hf_qsig_ssct_single = -1; /* Extension */
+static int hf_qsig_ssct_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_ssct_multiple_item = -1; /* Extension */
+static int hf_qsig_ssct_rerouteingNumber = -1; /* PartyNumber */
+static int hf_qsig_ssct_transferredAddress = -1; /* PresentedAddressScreened */
+static int hf_qsig_ssct_awaitConnect = -1; /* AwaitConnect */
+static int hf_qsig_ssct_transferredName = -1; /* Name */
+static int hf_qsig_ssct_transferringAddress = -1; /* PresentedAddressScreened */
+static int hf_qsig_ssct_transferringName = -1; /* Name */
+static int hf_qsig_ssct_argumentExtension = -1; /* T_argumentExtension */
+static int hf_qsig_ssct_argumentExtension_01 = -1; /* T_argumentExtension_01 */
+static int hf_qsig_ssct_reroutingNumber = -1; /* PartyNumber */
+static int hf_qsig_ssct_sendingComplete = -1; /* NULL */
+static int hf_qsig_ssct_argumentExtension_02 = -1; /* T_argumentExtension_02 */
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_wtmlr_qsig_wtmlr_LocUpdArg_PDU = -1; /* LocUpdArg */
+static int hf_qsig_wtmlr_qsig_wtmlr_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_wtmlr_qsig_wtmlr_LocDelArg_PDU = -1; /* LocDelArg */
+static int hf_qsig_wtmlr_qsig_wtmlr_LocDeRegArg_PDU = -1; /* LocDeRegArg */
+static int hf_qsig_wtmlr_qsig_wtmlr_PisnEnqArg_PDU = -1; /* PisnEnqArg */
+static int hf_qsig_wtmlr_qsig_wtmlr_PisnEnqRes_PDU = -1; /* PisnEnqRes */
+static int hf_qsig_wtmlr_qsig_wtmlr_GetRRCInfArg_PDU = -1; /* GetRRCInfArg */
+static int hf_qsig_wtmlr_qsig_wtmlr_GetRRCInfRes_PDU = -1; /* GetRRCInfRes */
+static int hf_qsig_wtmlr_qsig_wtmlr_LocInfoCheckArg_PDU = -1; /* LocInfoCheckArg */
+static int hf_qsig_wtmlr_qsig_wtmlr_LocInfoCheckRes_PDU = -1; /* LocInfoCheckRes */
+static int hf_qsig_wtmlr_qsig_wtmlr_Extension_PDU = -1; /* Extension */
+static int hf_qsig_wtmlr_wtmUserId = -1; /* WtmUserId */
+static int hf_qsig_wtmlr_basicService = -1; /* BasicService */
+static int hf_qsig_wtmlr_visitPINX = -1; /* PartyNumber */
+static int hf_qsig_wtmlr_argExtension = -1; /* LrExtension */
+static int hf_qsig_wtmlr_null = -1; /* NULL */
+static int hf_qsig_wtmlr_extension = -1; /* Extension */
+static int hf_qsig_wtmlr_sequOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_wtmlr_sequOfExtn_item = -1; /* Extension */
+static int hf_qsig_wtmlr_alternativeId = -1; /* AlternativeId */
+static int hf_qsig_wtmlr_resExtension = -1; /* LrExtension */
+static int hf_qsig_wtmlr_rrClass = -1; /* RRClass */
+static int hf_qsig_wtmlr_checkResult = -1; /* CheckResult */
+static int hf_qsig_wtmlr_pisnNumber = -1; /* PartyNumber */
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_wtmch_qsig_wtmch_EnquiryArg_PDU = -1; /* EnquiryArg */
+static int hf_qsig_wtmch_qsig_wtmch_EnquiryRes_PDU = -1; /* EnquiryRes */
+static int hf_qsig_wtmch_qsig_wtmch_DivertArg_PDU = -1; /* DivertArg */
+static int hf_qsig_wtmch_qsig_wtmch_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_wtmch_qsig_wtmch_InformArg_PDU = -1; /* InformArg */
+static int hf_qsig_wtmch_qsig_wtmch_WtmoArg_PDU = -1; /* WtmoArg */
+static int hf_qsig_wtmch_qsig_wtmch_Extension_PDU = -1; /* Extension */
+static int hf_qsig_wtmch_pisnNumber = -1; /* PartyNumber */
+static int hf_qsig_wtmch_qSIGInfoElement = -1; /* PSS1InformationElement */
+static int hf_qsig_wtmch_argExtension = -1; /* WtmiExtension */
+static int hf_qsig_wtmch_visitPINX = -1; /* PartyNumber */
+static int hf_qsig_wtmch_callingNumber = -1; /* PresentedNumberScreened */
+static int hf_qsig_wtmch_wtmIdentity = -1; /* WtmIdentity */
+static int hf_qsig_wtmch_callingUserSub = -1; /* PartySubaddress */
+static int hf_qsig_wtmch_callingName = -1; /* Name */
+static int hf_qsig_wtmch_wtmUserSub = -1; /* PartySubaddress */
+static int hf_qsig_wtmch_currLocation = -1; /* CurrLocation */
+static int hf_qsig_wtmch_cfuActivated = -1; /* CfuActivated */
+static int hf_qsig_wtmch_divToAddress = -1; /* Address */
+static int hf_qsig_wtmch_divOptions = -1; /* SubscriptionOption */
+static int hf_qsig_wtmch_wtmName = -1; /* Name */
+static int hf_qsig_wtmch_null = -1; /* NULL */
+static int hf_qsig_wtmch_extension = -1; /* Extension */
+static int hf_qsig_wtmch_sequOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_wtmch_sequOfExtn_item = -1; /* Extension */
+static int hf_qsig_wtmch_alternativeId = -1; /* AlternativeId */
+static int hf_qsig_wtmch_both = -1; /* T_both */
+static int hf_qsig_wtmch_destinationNumber = -1; /* PartyNumber */
+static int hf_qsig_wtmch_sendingComplete = -1; /* NULL */
+static int hf_qsig_wtmch_extension_01 = -1; /* T_extension */
+static int hf_qsig_wtmch_single = -1; /* Extension */
+static int hf_qsig_wtmch_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_wtmch_multiple_item = -1; /* Extension */
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_wtmau_qsig_wtmau_AuthWtmArg_PDU = -1; /* AuthWtmArg */
+static int hf_qsig_wtmau_qsig_wtmau_AuthWtmRes_PDU = -1; /* AuthWtmRes */
+static int hf_qsig_wtmau_qsig_wtmau_WtatParamArg_PDU = -1; /* WtatParamArg */
+static int hf_qsig_wtmau_qsig_wtmau_WtatParamRes_PDU = -1; /* WtatParamRes */
+static int hf_qsig_wtmau_qsig_wtmau_WtanParamArg_PDU = -1; /* WtanParamArg */
+static int hf_qsig_wtmau_qsig_wtmau_WtanParamRes_PDU = -1; /* WtanParamRes */
+static int hf_qsig_wtmau_qsig_wtmau_ARG_transferAuthParam_PDU = -1; /* ARG_transferAuthParam */
+static int hf_qsig_wtmau_qsig_wtmau_Extension_PDU = -1; /* Extension */
+static int hf_qsig_wtmau_wtmUserId = -1; /* WtmUserId */
+static int hf_qsig_wtmau_calcWtatInfo = -1; /* CalcWtatInfo */
+static int hf_qsig_wtmau_dummyExtension = -1; /* DummyExtension */
+static int hf_qsig_wtmau_autWtmResValue = -1; /* T_autWtmResValue */
+static int hf_qsig_wtmau_canCompute = -1; /* CanCompute */
+static int hf_qsig_wtmau_authChallenge = -1; /* AuthChallenge */
+static int hf_qsig_wtmau_wtatParamInfo = -1; /* WtatParamInfo */
+static int hf_qsig_wtmau_authAlgorithm = -1; /* AuthAlgorithm */
+static int hf_qsig_wtmau_pisnNumber = -1; /* PartyNumber */
+static int hf_qsig_wtmau_alternativeId = -1; /* AlternativeId */
+static int hf_qsig_wtmau_wtanParamInfo = -1; /* WtanParamInfo */
+static int hf_qsig_wtmau_wtatParamInfoChoice = -1; /* T_wtatParamInfoChoice */
+static int hf_qsig_wtmau_authSessionKeyInfo = -1; /* AuthSessionKeyInfo */
+static int hf_qsig_wtmau_authKey = -1; /* AuthKey */
+static int hf_qsig_wtmau_challLen = -1; /* INTEGER_1_8 */
+static int hf_qsig_wtmau_calcWtanInfo = -1; /* CalcWtanInfo */
+static int hf_qsig_wtmau_authSessionKey = -1; /* AuthSessionKey */
+static int hf_qsig_wtmau_calculationParam = -1; /* CalculationParam */
+static int hf_qsig_wtmau_CalcWtatInfo_item = -1; /* CalcWtatInfoUnit */
+static int hf_qsig_wtmau_authResponse = -1; /* AuthResponse */
+static int hf_qsig_wtmau_derivedCipherKey = -1; /* DerivedCipherKey */
+static int hf_qsig_wtmau_extension = -1; /* Extension */
+static int hf_qsig_wtmau_sequOfExtn = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_wtmau_sequOfExtn_item = -1; /* Extension */
+static int hf_qsig_wtmau_authAlg = -1; /* DefinedIDs */
+static int hf_qsig_wtmau_param = -1; /* T_param */
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_sd_qsig_sd_DisplayArg_PDU = -1; /* DisplayArg */
+static int hf_qsig_sd_qsig_sd_KeypadArg_PDU = -1; /* KeypadArg */
+static int hf_qsig_sd_qsig_sd_Extension_PDU = -1; /* Extension */
+static int hf_qsig_sd_displayString = -1; /* DisplayString */
+static int hf_qsig_sd_extension = -1; /* SDExtension */
+static int hf_qsig_sd_displayStringNormal = -1; /* BMPStringNormal */
+static int hf_qsig_sd_displayStringExtended = -1; /* BMPStringExtended */
+static int hf_qsig_sd_keypadString = -1; /* BMPStringNormal */
+static int hf_qsig_sd_extension_01 = -1; /* Extension */
+static int hf_qsig_sd_multipleExtension = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_sd_multipleExtension_item = -1; /* Extension */
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_cidl_qsig_cidl_CallIdentificationAssignArg_PDU = -1; /* CallIdentificationAssignArg */
+static int hf_qsig_cidl_qsig_cidl_CallIdentificationUpdateArg_PDU = -1; /* CallIdentificationUpdateArg */
+static int hf_qsig_cidl_globalCallID = -1; /* CallIdentificationData */
+static int hf_qsig_cidl_threadID = -1; /* CallIdentificationData */
+static int hf_qsig_cidl_legID = -1; /* CallIdentificationData */
+static int hf_qsig_cidl_extension = -1; /* ExtensionType */
+static int hf_qsig_cidl_switchingSubDomainName = -1; /* SwitchingSubDomainName */
+static int hf_qsig_cidl_linkageID = -1; /* T_linkageID */
+static int hf_qsig_cidl_subDomainID = -1; /* SubDomainID */
+static int hf_qsig_cidl_globallyUniqueID = -1; /* GloballyUniqueID */
+static int hf_qsig_cidl_timeStamp = -1; /* TimeStamp */
+static int hf_qsig_cidl_extension_01 = -1; /* Extension */
+static int hf_qsig_cidl_sequenceOfExt = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_cidl_sequenceOfExt_item = -1; /* Extension */
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_sms_qsig_sms_SmsSubmitArg_PDU = -1; /* SmsSubmitArg */
+static int hf_qsig_sms_qsig_sms_SmsSubmitRes_PDU = -1; /* SmsSubmitRes */
+static int hf_qsig_sms_qsig_sms_SmsDeliverArg_PDU = -1; /* SmsDeliverArg */
+static int hf_qsig_sms_qsig_sms_SmsDeliverRes_PDU = -1; /* SmsDeliverRes */
+static int hf_qsig_sms_qsig_sms_SmsStatusReportArg_PDU = -1; /* SmsStatusReportArg */
+static int hf_qsig_sms_qsig_sms_SmsStatusReportRes_PDU = -1; /* SmsStatusReportRes */
+static int hf_qsig_sms_qsig_sms_SmsCommandArg_PDU = -1; /* SmsCommandArg */
+static int hf_qsig_sms_qsig_sms_SmsCommandRes_PDU = -1; /* SmsCommandRes */
+static int hf_qsig_sms_qsig_sms_ScAlertArg_PDU = -1; /* ScAlertArg */
+static int hf_qsig_sms_qsig_sms_DummyRes_PDU = -1; /* DummyRes */
+static int hf_qsig_sms_qsig_sms_PAR_smsDeliverError_PDU = -1; /* PAR_smsDeliverError */
+static int hf_qsig_sms_qsig_sms_PAR_smsSubmitError_PDU = -1; /* PAR_smsSubmitError */
+static int hf_qsig_sms_qsig_sms_PAR_smsStatusReportError_PDU = -1; /* PAR_smsStatusReportError */
+static int hf_qsig_sms_qsig_sms_PAR_smsCommandError_PDU = -1; /* PAR_smsCommandError */
+static int hf_qsig_sms_qsig_sms_SmsExtension_PDU = -1; /* SmsExtension */
+static int hf_qsig_sms_destinationAddress = -1; /* PartyNumber */
+static int hf_qsig_sms_originatingAddress = -1; /* PartyNumber */
+static int hf_qsig_sms_messageReference = -1; /* MessageReference */
+static int hf_qsig_sms_smSubmitParameter = -1; /* SmSubmitParameter */
+static int hf_qsig_sms_userData = -1; /* UserData */
+static int hf_qsig_sms_smsExtension = -1; /* SmsExtension */
+static int hf_qsig_sms_serviceCentreTimeStamp = -1; /* ServiceCentreTimeStamp */
+static int hf_qsig_sms_protocolIdentifier = -1; /* ProtocolIdentifier */
+static int hf_qsig_sms_originatingName = -1; /* Name */
+static int hf_qsig_sms_smDeliverParameter = -1; /* SmDeliverParameter */
+static int hf_qsig_sms_smsDeliverResponseChoice = -1; /* SmsDeliverResChoice */
+static int hf_qsig_sms_dischargeTime = -1; /* DischargeTime */
+static int hf_qsig_sms_recipientAddress = -1; /* PartyNumber */
+static int hf_qsig_sms_recipientName = -1; /* Name */
+static int hf_qsig_sms_status = -1; /* Status */
+static int hf_qsig_sms_priority = -1; /* BOOLEAN */
+static int hf_qsig_sms_moreMessagesToSend = -1; /* BOOLEAN */
+static int hf_qsig_sms_statusReportQualifier = -1; /* BOOLEAN */
+static int hf_qsig_sms_smsStatusReportResponseChoice = -1; /* SmsStatusReportResponseChoice */
+static int hf_qsig_sms_messageNumber = -1; /* MessageReference */
+static int hf_qsig_sms_commandType = -1; /* CommandType */
+static int hf_qsig_sms_commandData = -1; /* CommandData */
+static int hf_qsig_sms_statusReportRequest = -1; /* BOOLEAN */
+static int hf_qsig_sms_null = -1; /* NULL */
+static int hf_qsig_sms_validityPeriod = -1; /* ValidityPeriod */
+static int hf_qsig_sms_replyPath = -1; /* BOOLEAN */
+static int hf_qsig_sms_rejectDuplicates = -1; /* BOOLEAN */
+static int hf_qsig_sms_statusReportIndication = -1; /* BOOLEAN */
+static int hf_qsig_sms_resChoiceSeq = -1; /* ResChoiceSeq */
+static int hf_qsig_sms_single = -1; /* Extension */
+static int hf_qsig_sms_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_sms_multiple_item = -1; /* Extension */
+static int hf_qsig_sms_validityPeriodRel = -1; /* ValidityPeriodRel */
+static int hf_qsig_sms_validityPeriodAbs = -1; /* ValidityPeriodAbs */
+static int hf_qsig_sms_validityPeriodEnh = -1; /* ValidityPeriodEnh */
+static int hf_qsig_sms_singleShotSM = -1; /* BOOLEAN */
+static int hf_qsig_sms_enhancedVP = -1; /* EnhancedVP */
+static int hf_qsig_sms_validityPeriodSec = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_validityPeriodSemi = -1; /* ValidityPeriodSemi */
+static int hf_qsig_sms_userDataHeader = -1; /* UserDataHeader */
+static int hf_qsig_sms_class = -1; /* INTEGER_0_3 */
+static int hf_qsig_sms_compressed = -1; /* BOOLEAN */
+static int hf_qsig_sms_shortMessageText = -1; /* ShortMessageText */
+static int hf_qsig_sms_shortMessageTextType = -1; /* ShortMessageTextType */
+static int hf_qsig_sms_shortMessageTextData = -1; /* ShortMessageTextData */
+static int hf_qsig_sms_UserDataHeader_item = -1; /* UserDataHeaderChoice */
+static int hf_qsig_sms_smscControlParameterHeader = -1; /* SmscControlParameterHeader */
+static int hf_qsig_sms_concatenated8BitSMHeader = -1; /* Concatenated8BitSMHeader */
+static int hf_qsig_sms_concatenated16BitSMHeader = -1; /* Concatenated16BitSMHeader */
+static int hf_qsig_sms_applicationPort8BitHeader = -1; /* ApplicationPort8BitHeader */
+static int hf_qsig_sms_applicationPort16BitHeader = -1; /* ApplicationPort16BitHeader */
+static int hf_qsig_sms_dataHeaderSourceIndicator = -1; /* DataHeaderSourceIndicator */
+static int hf_qsig_sms_wirelessControlHeader = -1; /* WirelessControlHeader */
+static int hf_qsig_sms_genericUserValue = -1; /* GenericUserValue */
+static int hf_qsig_sms_concatenated8BitSMReferenceNumber = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_maximumNumberOf8BitSMInConcatenatedSM = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_sequenceNumberOf8BitSM = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_concatenated16BitSMReferenceNumber = -1; /* INTEGER_0_65536 */
+static int hf_qsig_sms_maximumNumberOf16BitSMInConcatenatedSM = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_sequenceNumberOf16BitSM = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_destination8BitPort = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_originator8BitPort = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_destination16BitPort = -1; /* INTEGER_0_65536 */
+static int hf_qsig_sms_originator16BitPort = -1; /* INTEGER_0_65536 */
+static int hf_qsig_sms_parameterValue = -1; /* INTEGER_0_255 */
+static int hf_qsig_sms_genericUserData = -1; /* OCTET_STRING */
+static int hf_qsig_sms_failureCause = -1; /* FailureCause */
+static int hf_qsig_sms_scAddressSaved = -1; /* BOOLEAN */
+/* named bits */
+static int hf_qsig_sms_SmscControlParameterHeader_sRforTransactionCompleted = -1;
+static int hf_qsig_sms_SmscControlParameterHeader_sRforPermanentError = -1;
+static int hf_qsig_sms_SmscControlParameterHeader_sRforTempErrorSCnotTrying = -1;
+static int hf_qsig_sms_SmscControlParameterHeader_sRforTempErrorSCstillTrying = -1;
+static int hf_qsig_sms_SmscControlParameterHeader_cancelSRRforConcatenatedSM = -1;
+static int hf_qsig_sms_SmscControlParameterHeader_includeOrigUDHintoSR = -1;
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+static int hf_qsig_mcr_qsig_mcr_MCRequestArg_PDU = -1; /* MCRequestArg */
+static int hf_qsig_mcr_qsig_mcr_MCRequestResult_PDU = -1; /* MCRequestResult */
+static int hf_qsig_mcr_qsig_mcr_MCInformArg_PDU = -1; /* MCInformArg */
+static int hf_qsig_mcr_qsig_mcr_MCAlertingArg_PDU = -1; /* MCAlertingArg */
+static int hf_qsig_mcr_qsig_mcr_Extension_PDU = -1; /* Extension */
+static int hf_qsig_mcr_callType = -1; /* CallType */
+static int hf_qsig_mcr_retainOrigCall = -1; /* BOOLEAN */
+static int hf_qsig_mcr_destinationAddress = -1; /* PresentedAddressUnscreened */
+static int hf_qsig_mcr_requestingAddress = -1; /* PresentedAddressUnscreened */
+static int hf_qsig_mcr_cooperatingAddress = -1; /* PresentedAddressUnscreened */
+static int hf_qsig_mcr_correlation = -1; /* Correlation */
+static int hf_qsig_mcr_extensions = -1; /* MCRExtensions */
+static int hf_qsig_mcr_basicService = -1; /* BasicService */
+static int hf_qsig_mcr_cisc = -1; /* NULL */
+static int hf_qsig_mcr_correlationData = -1; /* CallIdentity */
+static int hf_qsig_mcr_correlationReason = -1; /* CorrelationReason */
+static int hf_qsig_mcr_none = -1; /* NULL */
+static int hf_qsig_mcr_single = -1; /* Extension */
+static int hf_qsig_mcr_multiple = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_mcr_multiple_item = -1; /* Extension */
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_mcm_qsig_mcm_MCMNewMsgArg_PDU = -1; /* MCMNewMsgArg */
+static int hf_qsig_mcm_qsig_mcm_MCMDummyRes_PDU = -1; /* MCMDummyRes */
+static int hf_qsig_mcm_qsig_mcm_MCMNoNewMsgArg_PDU = -1; /* MCMNoNewMsgArg */
+static int hf_qsig_mcm_qsig_mcm_MCMUpdateArg_PDU = -1; /* MCMUpdateArg */
+static int hf_qsig_mcm_qsig_mcm_MCMUpdateReqArg_PDU = -1; /* MCMUpdateReqArg */
+static int hf_qsig_mcm_qsig_mcm_MCMUpdateReqRes_PDU = -1; /* MCMUpdateReqRes */
+static int hf_qsig_mcm_qsig_mcm_MCMServiceArg_PDU = -1; /* MCMServiceArg */
+static int hf_qsig_mcm_qsig_mcm_MCMInterrogateArg_PDU = -1; /* MCMInterrogateArg */
+static int hf_qsig_mcm_qsig_mcm_MCMInterrogateRes_PDU = -1; /* MCMInterrogateRes */
+static int hf_qsig_mcm_qsig_mcm_MCMailboxFullArg_PDU = -1; /* MCMailboxFullArg */
+static int hf_qsig_mcm_qsig_mcm_Extension_PDU = -1; /* Extension */
+static int hf_qsig_mcm_partyInfo = -1; /* PartyInfo */
+static int hf_qsig_mcm_mailboxFullFor = -1; /* MailboxFullFor */
+static int hf_qsig_mcm_extensions = -1; /* MCMExtensions */
+static int hf_qsig_mcm_MailboxFullFor_item = -1; /* MailboxFullPar */
+static int hf_qsig_mcm_messageType = -1; /* MessageType */
+static int hf_qsig_mcm_capacityReached = -1; /* INTEGER_0_100 */
+static int hf_qsig_mcm_mCMChange = -1; /* MCMChange */
+static int hf_qsig_mcm_activateMCM = -1; /* SEQUENCE_OF_MCMServiceInfo */
+static int hf_qsig_mcm_activateMCM_item = -1; /* MCMServiceInfo */
+static int hf_qsig_mcm_deactivateMCM = -1; /* SEQUENCE_OF_MessageType */
+static int hf_qsig_mcm_deactivateMCM_item = -1; /* MessageType */
+static int hf_qsig_mcm_setToDefaultValues = -1; /* NULL */
+static int hf_qsig_mcm_mCMModeNew = -1; /* MCMMode */
+static int hf_qsig_mcm_mCMModeRetrieved = -1; /* MCMMode */
+static int hf_qsig_mcm_interrogateInfo = -1; /* SEQUENCE_OF_MessageType */
+static int hf_qsig_mcm_interrogateInfo_item = -1; /* MessageType */
+static int hf_qsig_mcm_interrogateResult = -1; /* SEQUENCE_OF_MCMServiceInfo */
+static int hf_qsig_mcm_interrogateResult_item = -1; /* MCMServiceInfo */
+static int hf_qsig_mcm_servedUserNr = -1; /* PartyNumber */
+static int hf_qsig_mcm_specificMessageType = -1; /* MessageType */
+static int hf_qsig_mcm_msgCentreId = -1; /* MsgCentreId */
+static int hf_qsig_mcm_nrOfMessages = -1; /* NrOfMessages */
+static int hf_qsig_mcm_originatingNr = -1; /* PartyNumber */
+static int hf_qsig_mcm_timestamp = -1; /* TimeStamp */
+static int hf_qsig_mcm_priority = -1; /* INTEGER_0_9 */
+static int hf_qsig_mcm_argumentExt = -1; /* T_argumentExt */
+static int hf_qsig_mcm_extension = -1; /* Extension */
+static int hf_qsig_mcm_multipleExtension = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_mcm_multipleExtension_item = -1; /* Extension */
+static int hf_qsig_mcm_argumentExt_01 = -1; /* T_argumentExt_01 */
+static int hf_qsig_mcm_updateInfo = -1; /* UpdateInfo */
+static int hf_qsig_mcm_moreInfoFollows = -1; /* BOOLEAN */
+static int hf_qsig_mcm_argumentExt_02 = -1; /* T_argumentExt_02 */
+static int hf_qsig_mcm_MCMUpdateReqRes_item = -1; /* MCMUpdateReqResElt */
+static int hf_qsig_mcm_argumentExt_03 = -1; /* T_argumentExt_03 */
+static int hf_qsig_mcm_messageCentreID = -1; /* MsgCentreId */
+static int hf_qsig_mcm_newMsgInfoOnly = -1; /* MessageInfo */
+static int hf_qsig_mcm_retrievedMsgInfoOnly = -1; /* MessageInfo */
+static int hf_qsig_mcm_allMsgInfo = -1; /* AllMsgInfo */
+static int hf_qsig_mcm_newMsgInfo = -1; /* MessageInfo */
+static int hf_qsig_mcm_retrievedMsgInfo = -1; /* MessageInfo */
+static int hf_qsig_mcm_completeInfo = -1; /* CompleteInfo */
+static int hf_qsig_mcm_compressedInfo = -1; /* CompressedInfo */
+static int hf_qsig_mcm_noMsgsOfMsgType = -1; /* NULL */
+static int hf_qsig_mcm_CompleteInfo_item = -1; /* AddressHeader */
+static int hf_qsig_mcm_originatorNr = -1; /* PartyNumber */
+static int hf_qsig_mcm_timeStamp = -1; /* TimeStamp */
+static int hf_qsig_mcm_priority_01 = -1; /* Priority */
+static int hf_qsig_mcm_lastTimeStamp = -1; /* TimeStamp */
+static int hf_qsig_mcm_highestPriority = -1; /* Priority */
+static int hf_qsig_mcm_integer = -1; /* INTEGER_0_65535 */
+static int hf_qsig_mcm_partyNumber = -1; /* PartyNumber */
+static int hf_qsig_mcm_numericString = -1; /* NumericString_SIZE_1_10 */
+static int hf_qsig_mcm_none = -1; /* NULL */
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+static int hf_qsig_mid_qsig_mid_MIDMailboxAuthArg_PDU = -1; /* MIDMailboxAuthArg */
+static int hf_qsig_mid_qsig_mid_MIDDummyRes_PDU = -1; /* MIDDummyRes */
+static int hf_qsig_mid_qsig_mid_MIDMailboxIDArg_PDU = -1; /* MIDMailboxIDArg */
+static int hf_qsig_mid_qsig_mid_Extension_PDU = -1; /* Extension */
+static int hf_qsig_mid_partyInfo = -1; /* PartyInfo */
+static int hf_qsig_mid_servedUserName = -1; /* Name */
+static int hf_qsig_mid_mailBox = -1; /* String */
+static int hf_qsig_mid_password = -1; /* String */
+static int hf_qsig_mid_extensions = -1; /* MIDExtensions */
+static int hf_qsig_mid_servedUserNr = -1; /* PresentedAddressUnscreened */
+static int hf_qsig_mid_messageType = -1; /* MessageType */
+static int hf_qsig_mid_messageCentreID = -1; /* MsgCentreId */
+static int hf_qsig_mid_stringBmp = -1; /* BMPString */
+static int hf_qsig_mid_stringUtf8 = -1; /* UTF8String */
+static int hf_qsig_mid_none = -1; /* NULL */
+static int hf_qsig_mid_extension = -1; /* Extension */
+static int hf_qsig_mid_multipleExtension = -1; /* SEQUENCE_OF_Extension */
+static int hf_qsig_mid_multipleExtension_item = -1; /* Extension */
/*--- End of included file: packet-qsig-hf.c ---*/
-#line 415 "packet-qsig-template.c"
+#line 295 "packet-qsig-template.c"
static int *hf_qsig_ie_type_arr[] = {
NULL,
@@ -542,6 +1555,9 @@ static gint ett_qsig_ie = -1;
/*--- Included file: packet-qsig-ett.c ---*/
#line 1 "packet-qsig-ett.c"
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
static gint ett_qsig_Extension = -1;
static gint ett_qsig_PresentedAddressScreened = -1;
static gint ett_qsig_PresentedAddressUnscreened = -1;
@@ -555,41 +1571,423 @@ static gint ett_qsig_PublicPartyNumber = -1;
static gint ett_qsig_PrivatePartyNumber = -1;
static gint ett_qsig_PartySubaddress = -1;
static gint ett_qsig_UserSpecifiedSubaddress = -1;
-static gint ett_qsig_NameArg = -1;
-static gint ett_qsig_T_nameSequence = -1;
-static gint ett_qsig_NameExtension = -1;
-static gint ett_qsig_SEQUENCE_OF_Extension = -1;
-static gint ett_qsig_Name = -1;
-static gint ett_qsig_NamePresentationAllowed = -1;
-static gint ett_qsig_NamePresentationRestricted = -1;
-static gint ett_qsig_NameSet = -1;
-static gint ett_qsig_ARG_activateDiversionQ = -1;
-static gint ett_qsig_ADExtension = -1;
-static gint ett_qsig_RES_activateDiversionQ = -1;
-static gint ett_qsig_ARG_deactivateDiversionQ = -1;
-static gint ett_qsig_DDExtension = -1;
-static gint ett_qsig_RES_deactivateDiversionQ = -1;
-static gint ett_qsig_ARG_interrogateDiversionQ = -1;
-static gint ett_qsig_IDExtension = -1;
-static gint ett_qsig_ARG_checkRestriction = -1;
-static gint ett_qsig_CHRExtension = -1;
-static gint ett_qsig_RES_checkRestriction = -1;
-static gint ett_qsig_ARG_callRerouteing = -1;
-static gint ett_qsig_CRRExtension = -1;
-static gint ett_qsig_RES_callRerouteing = -1;
-static gint ett_qsig_ARG_divertingLegInformation1 = -1;
-static gint ett_qsig_DLI1Extension = -1;
-static gint ett_qsig_ARG_divertingLegInformation2 = -1;
-static gint ett_qsig_DLI2Extension = -1;
-static gint ett_qsig_ARG_divertingLegInformation3 = -1;
-static gint ett_qsig_DLI3Extension = -1;
-static gint ett_qsig_ARG_cfnrDivertedLegFailed = -1;
-static gint ett_qsig_IntResultList = -1;
-static gint ett_qsig_IntResult = -1;
-static gint ett_qsig_IRExtension = -1;
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_na_NameArg = -1;
+static gint ett_qsig_na_T_nameSequence = -1;
+static gint ett_qsig_na_NameExtension = -1;
+static gint ett_qsig_na_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_na_Name = -1;
+static gint ett_qsig_na_NamePresentationAllowed = -1;
+static gint ett_qsig_na_NamePresentationRestricted = -1;
+static gint ett_qsig_na_NameSet = -1;
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_cf_ARG_activateDiversionQ = -1;
+static gint ett_qsig_cf_ADExtension = -1;
+static gint ett_qsig_cf_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_cf_RES_activateDiversionQ = -1;
+static gint ett_qsig_cf_ARG_deactivateDiversionQ = -1;
+static gint ett_qsig_cf_DDExtension = -1;
+static gint ett_qsig_cf_RES_deactivateDiversionQ = -1;
+static gint ett_qsig_cf_ARG_interrogateDiversionQ = -1;
+static gint ett_qsig_cf_IDExtension = -1;
+static gint ett_qsig_cf_ARG_checkRestriction = -1;
+static gint ett_qsig_cf_CHRExtension = -1;
+static gint ett_qsig_cf_RES_checkRestriction = -1;
+static gint ett_qsig_cf_ARG_callRerouteing = -1;
+static gint ett_qsig_cf_CRRExtension = -1;
+static gint ett_qsig_cf_RES_callRerouteing = -1;
+static gint ett_qsig_cf_ARG_divertingLegInformation1 = -1;
+static gint ett_qsig_cf_DLI1Extension = -1;
+static gint ett_qsig_cf_ARG_divertingLegInformation2 = -1;
+static gint ett_qsig_cf_DLI2Extension = -1;
+static gint ett_qsig_cf_ARG_divertingLegInformation3 = -1;
+static gint ett_qsig_cf_DLI3Extension = -1;
+static gint ett_qsig_cf_ARG_cfnrDivertedLegFailed = -1;
+static gint ett_qsig_cf_IntResultList = -1;
+static gint ett_qsig_cf_IntResult = -1;
+static gint ett_qsig_cf_IRExtension = -1;
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_pr_PRProposeArg = -1;
+static gint ett_qsig_pr_T_extension = -1;
+static gint ett_qsig_pr_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_pr_PRSetupArg = -1;
+static gint ett_qsig_pr_T_extension_01 = -1;
+static gint ett_qsig_pr_PRRetainArg = -1;
+static gint ett_qsig_pr_T_extension_02 = -1;
+static gint ett_qsig_pr_DummyResult = -1;
+static gint ett_qsig_pr_DummyArg = -1;
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_ct_DummyArg = -1;
+static gint ett_qsig_ct_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_ct_DummyRes = -1;
+static gint ett_qsig_ct_CTIdentifyRes = -1;
+static gint ett_qsig_ct_T_resultExtension = -1;
+static gint ett_qsig_ct_CTInitiateArg = -1;
+static gint ett_qsig_ct_T_argumentExtension = -1;
+static gint ett_qsig_ct_CTSetupArg = -1;
+static gint ett_qsig_ct_T_argumentExtension_01 = -1;
+static gint ett_qsig_ct_CTActiveArg = -1;
+static gint ett_qsig_ct_T_argumentExtension_02 = -1;
+static gint ett_qsig_ct_CTCompleteArg = -1;
+static gint ett_qsig_ct_T_argumentExtension_03 = -1;
+static gint ett_qsig_ct_CTUpdateArg = -1;
+static gint ett_qsig_ct_T_argumentExtension_04 = -1;
+static gint ett_qsig_ct_SubaddressTransferArg = -1;
+static gint ett_qsig_ct_T_argumentExtension_05 = -1;
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_cc_CcRequestArg = -1;
+static gint ett_qsig_cc_CcRequestRes = -1;
+static gint ett_qsig_cc_CcOptionalArg = -1;
+static gint ett_qsig_cc_T_fullArg = -1;
+static gint ett_qsig_cc_CcExtension = -1;
+static gint ett_qsig_cc_SEQUENCE_OF_Extension = -1;
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_co_PathRetainArg = -1;
+static gint ett_qsig_co_T_extendedServiceList = -1;
+static gint ett_qsig_co_ServiceAvailableArg = -1;
+static gint ett_qsig_co_T_extendedServiceList_01 = -1;
+static gint ett_qsig_co_ServiceList = -1;
+static gint ett_qsig_co_DummyArg = -1;
+static gint ett_qsig_co_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_co_DummyRes = -1;
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_dnd_DummyArg = -1;
+static gint ett_qsig_dnd_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_dnd_DummyRes = -1;
+static gint ett_qsig_dnd_DNDActivateArg = -1;
+static gint ett_qsig_dnd_T_argumentExtension = -1;
+static gint ett_qsig_dnd_DNDActivateRes = -1;
+static gint ett_qsig_dnd_T_status = -1;
+static gint ett_qsig_dnd_T_status_item = -1;
+static gint ett_qsig_dnd_T_resultExtension = -1;
+static gint ett_qsig_dnd_DNDDeactivateArg = -1;
+static gint ett_qsig_dnd_T_argumentExtension_01 = -1;
+static gint ett_qsig_dnd_DNDInterrogateArg = -1;
+static gint ett_qsig_dnd_T_argumentExtension_02 = -1;
+static gint ett_qsig_dnd_DNDInterrogateRes = -1;
+static gint ett_qsig_dnd_T_status_01 = -1;
+static gint ett_qsig_dnd_T_status_item_01 = -1;
+static gint ett_qsig_dnd_T_resultExtension_01 = -1;
+static gint ett_qsig_dnd_DNDOverrideArg = -1;
+static gint ett_qsig_dnd_T_argumentExtension_03 = -1;
+static gint ett_qsig_dnd_PathRetainArg = -1;
+static gint ett_qsig_dnd_T_extendedServiceList = -1;
+static gint ett_qsig_dnd_ServiceAvailableArg = -1;
+static gint ett_qsig_dnd_T_extendedServiceList_01 = -1;
+static gint ett_qsig_dnd_ServiceList = -1;
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_ci_PathRetainArg = -1;
+static gint ett_qsig_ci_T_extendedServiceList = -1;
+static gint ett_qsig_ci_ServiceAvailableArg = -1;
+static gint ett_qsig_ci_T_extendedServiceList_01 = -1;
+static gint ett_qsig_ci_ServiceList = -1;
+static gint ett_qsig_ci_DummyArg = -1;
+static gint ett_qsig_ci_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_ci_DummyRes = -1;
+static gint ett_qsig_ci_CIRequestArg = -1;
+static gint ett_qsig_ci_T_argumentExtension = -1;
+static gint ett_qsig_ci_CIRequestRes = -1;
+static gint ett_qsig_ci_T_resultExtension = -1;
+static gint ett_qsig_ci_CIGetCIPLRes = -1;
+static gint ett_qsig_ci_T_resultExtension_01 = -1;
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_aoc_AocRateArg = -1;
+static gint ett_qsig_aoc_T_aocRate = -1;
+static gint ett_qsig_aoc_T_rateArgExtension = -1;
+static gint ett_qsig_aoc_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_aoc_AocInterimArg = -1;
+static gint ett_qsig_aoc_T_interimCharge = -1;
+static gint ett_qsig_aoc_T_specificCurrency = -1;
+static gint ett_qsig_aoc_T_interimArgExtension = -1;
+static gint ett_qsig_aoc_AocFinalArg = -1;
+static gint ett_qsig_aoc_T_finalCharge = -1;
+static gint ett_qsig_aoc_T_specificCurrency_01 = -1;
+static gint ett_qsig_aoc_T_finalArgExtension = -1;
+static gint ett_qsig_aoc_AOCSCurrencyInfoList = -1;
+static gint ett_qsig_aoc_AOCSCurrencyInfo = -1;
+static gint ett_qsig_aoc_T_rateType = -1;
+static gint ett_qsig_aoc_DurationCurrency = -1;
+static gint ett_qsig_aoc_FlatRateCurrency = -1;
+static gint ett_qsig_aoc_VolumeRateCurrency = -1;
+static gint ett_qsig_aoc_RecordedCurrency = -1;
+static gint ett_qsig_aoc_Amount = -1;
+static gint ett_qsig_aoc_Time = -1;
+static gint ett_qsig_aoc_ChargingAssociation = -1;
+static gint ett_qsig_aoc_ChargeRequestArg = -1;
+static gint ett_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination = -1;
+static gint ett_qsig_aoc_T_chargeReqArgExtension = -1;
+static gint ett_qsig_aoc_ChargeRequestRes = -1;
+static gint ett_qsig_aoc_T_chargeReqResExtension = -1;
+static gint ett_qsig_aoc_DummyArg = -1;
+static gint ett_qsig_aoc_AocCompleteArg = -1;
+static gint ett_qsig_aoc_T_completeArgExtension = -1;
+static gint ett_qsig_aoc_AocCompleteRes = -1;
+static gint ett_qsig_aoc_T_completeResExtension = -1;
+static gint ett_qsig_aoc_AocDivChargeReqArg = -1;
+static gint ett_qsig_aoc_T_aocDivChargeReqArgExt = -1;
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_re_ReAlertingArg = -1;
+static gint ett_qsig_re_T_argumentExtension = -1;
+static gint ett_qsig_re_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_re_ReAnswerArg = -1;
+static gint ett_qsig_re_T_argumentExtension_01 = -1;
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_cint_CintInformation1Arg = -1;
+static gint ett_qsig_cint_CintInformation2Arg = -1;
+static gint ett_qsig_cint_CintCondArg = -1;
+static gint ett_qsig_cint_CintExtension = -1;
+static gint ett_qsig_cint_SEQUENCE_OF_Extension = -1;
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_cmn_CmnArg = -1;
+static gint ett_qsig_cmn_T_extension = -1;
+static gint ett_qsig_cmn_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_cmn_DummyArg = -1;
+static gint ett_qsig_cmn_FeatureIdList = -1;
+static gint ett_qsig_cmn_EquipmentId = -1;
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_cpi_CPIRequestArg = -1;
+static gint ett_qsig_cpi_T_argumentExtension = -1;
+static gint ett_qsig_cpi_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_cpi_CPIPRequestArg = -1;
+static gint ett_qsig_cpi_T_argumentExtension_01 = -1;
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_pumr_PumRegistrArg = -1;
+static gint ett_qsig_pumr_T_pumUserId = -1;
+static gint ett_qsig_pumr_T_userPin = -1;
+static gint ett_qsig_pumr_PumRegistrRes = -1;
+static gint ett_qsig_pumr_DummyRes = -1;
+static gint ett_qsig_pumr_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_pumr_PumDelRegArg = -1;
+static gint ett_qsig_pumr_T_pumUserId_01 = -1;
+static gint ett_qsig_pumr_PumDe_regArg = -1;
+static gint ett_qsig_pumr_T_pumUserId_02 = -1;
+static gint ett_qsig_pumr_T_userPin_01 = -1;
+static gint ett_qsig_pumr_PumInterrogArg = -1;
+static gint ett_qsig_pumr_T_pumUserId_03 = -1;
+static gint ett_qsig_pumr_T_userPin_02 = -1;
+static gint ett_qsig_pumr_PumInterrogRes = -1;
+static gint ett_qsig_pumr_PumInterrogRes_item = -1;
+static gint ett_qsig_pumr_SessionParams = -1;
+static gint ett_qsig_pumr_PumrExtension = -1;
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_pumch_EnquiryArg = -1;
+static gint ett_qsig_pumch_DivertArg = -1;
+static gint ett_qsig_pumch_InformArg = -1;
+static gint ett_qsig_pumch_EnquiryRes = -1;
+static gint ett_qsig_pumch_CurrLocation = -1;
+static gint ett_qsig_pumch_CfuActivated = -1;
+static gint ett_qsig_pumch_DummyRes = -1;
+static gint ett_qsig_pumch_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_pumch_PumiExtension = -1;
+static gint ett_qsig_pumch_PumIdentity = -1;
+static gint ett_qsig_pumch_T_both = -1;
+static gint ett_qsig_pumch_PumoArg = -1;
+static gint ett_qsig_pumch_T_extension = -1;
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_ssct_DummyArg = -1;
+static gint ett_qsig_ssct_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_ssct_DummyRes = -1;
+static gint ett_qsig_ssct_SSCTInitiateArg = -1;
+static gint ett_qsig_ssct_T_argumentExtension = -1;
+static gint ett_qsig_ssct_SSCTSetupArg = -1;
+static gint ett_qsig_ssct_T_argumentExtension_01 = -1;
+static gint ett_qsig_ssct_SSCTDigitInfoArg = -1;
+static gint ett_qsig_ssct_T_argumentExtension_02 = -1;
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_wtmlr_LocUpdArg = -1;
+static gint ett_qsig_wtmlr_DummyRes = -1;
+static gint ett_qsig_wtmlr_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_wtmlr_LocDelArg = -1;
+static gint ett_qsig_wtmlr_LocDeRegArg = -1;
+static gint ett_qsig_wtmlr_PisnEnqArg = -1;
+static gint ett_qsig_wtmlr_PisnEnqRes = -1;
+static gint ett_qsig_wtmlr_GetRRCInfArg = -1;
+static gint ett_qsig_wtmlr_GetRRCInfRes = -1;
+static gint ett_qsig_wtmlr_LocInfoCheckArg = -1;
+static gint ett_qsig_wtmlr_LocInfoCheckRes = -1;
+static gint ett_qsig_wtmlr_WtmUserId = -1;
+static gint ett_qsig_wtmlr_LrExtension = -1;
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_wtmch_EnquiryArg = -1;
+static gint ett_qsig_wtmch_DivertArg = -1;
+static gint ett_qsig_wtmch_InformArg = -1;
+static gint ett_qsig_wtmch_EnquiryRes = -1;
+static gint ett_qsig_wtmch_CurrLocation = -1;
+static gint ett_qsig_wtmch_CfuActivated = -1;
+static gint ett_qsig_wtmch_DummyRes = -1;
+static gint ett_qsig_wtmch_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_wtmch_WtmiExtension = -1;
+static gint ett_qsig_wtmch_WtmIdentity = -1;
+static gint ett_qsig_wtmch_T_both = -1;
+static gint ett_qsig_wtmch_WtmoArg = -1;
+static gint ett_qsig_wtmch_T_extension = -1;
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_wtmau_AuthWtmArg = -1;
+static gint ett_qsig_wtmau_AuthWtmRes = -1;
+static gint ett_qsig_wtmau_WtatParamArg = -1;
+static gint ett_qsig_wtmau_WtatParamRes = -1;
+static gint ett_qsig_wtmau_WtanParamArg = -1;
+static gint ett_qsig_wtmau_WtmUserId = -1;
+static gint ett_qsig_wtmau_WtanParamRes = -1;
+static gint ett_qsig_wtmau_ARG_transferAuthParam = -1;
+static gint ett_qsig_wtmau_WtatParamInfo = -1;
+static gint ett_qsig_wtmau_T_wtatParamInfoChoice = -1;
+static gint ett_qsig_wtmau_WtanParamInfo = -1;
+static gint ett_qsig_wtmau_AuthSessionKeyInfo = -1;
+static gint ett_qsig_wtmau_CalcWtatInfo = -1;
+static gint ett_qsig_wtmau_CalcWtatInfoUnit = -1;
+static gint ett_qsig_wtmau_CalcWtanInfo = -1;
+static gint ett_qsig_wtmau_DummyExtension = -1;
+static gint ett_qsig_wtmau_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_wtmau_AuthAlgorithm = -1;
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_sd_DisplayArg = -1;
+static gint ett_qsig_sd_DisplayString = -1;
+static gint ett_qsig_sd_KeypadArg = -1;
+static gint ett_qsig_sd_SDExtension = -1;
+static gint ett_qsig_sd_SEQUENCE_OF_Extension = -1;
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_cidl_CallIdentificationAssignArg = -1;
+static gint ett_qsig_cidl_CallIdentificationUpdateArg = -1;
+static gint ett_qsig_cidl_CallIdentificationData = -1;
+static gint ett_qsig_cidl_T_linkageID = -1;
+static gint ett_qsig_cidl_ExtensionType = -1;
+static gint ett_qsig_cidl_SEQUENCE_OF_Extension = -1;
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_sms_SmsSubmitArg = -1;
+static gint ett_qsig_sms_SmsSubmitRes = -1;
+static gint ett_qsig_sms_SmsDeliverArg = -1;
+static gint ett_qsig_sms_SmsDeliverRes = -1;
+static gint ett_qsig_sms_SmsStatusReportArg = -1;
+static gint ett_qsig_sms_SmsStatusReportRes = -1;
+static gint ett_qsig_sms_SmsCommandArg = -1;
+static gint ett_qsig_sms_SmsCommandRes = -1;
+static gint ett_qsig_sms_ScAlertArg = -1;
+static gint ett_qsig_sms_DummyRes = -1;
+static gint ett_qsig_sms_SmSubmitParameter = -1;
+static gint ett_qsig_sms_SmDeliverParameter = -1;
+static gint ett_qsig_sms_SmsDeliverResChoice = -1;
+static gint ett_qsig_sms_ResChoiceSeq = -1;
+static gint ett_qsig_sms_SmsStatusReportResponseChoice = -1;
+static gint ett_qsig_sms_SmsExtension = -1;
+static gint ett_qsig_sms_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_sms_ValidityPeriod = -1;
+static gint ett_qsig_sms_ValidityPeriodEnh = -1;
+static gint ett_qsig_sms_EnhancedVP = -1;
+static gint ett_qsig_sms_UserData = -1;
+static gint ett_qsig_sms_ShortMessageText = -1;
+static gint ett_qsig_sms_UserDataHeader = -1;
+static gint ett_qsig_sms_UserDataHeaderChoice = -1;
+static gint ett_qsig_sms_SmscControlParameterHeader = -1;
+static gint ett_qsig_sms_Concatenated8BitSMHeader = -1;
+static gint ett_qsig_sms_Concatenated16BitSMHeader = -1;
+static gint ett_qsig_sms_ApplicationPort8BitHeader = -1;
+static gint ett_qsig_sms_ApplicationPort16BitHeader = -1;
+static gint ett_qsig_sms_GenericUserValue = -1;
+static gint ett_qsig_sms_PAR_smsDeliverError = -1;
+static gint ett_qsig_sms_PAR_smsSubmitError = -1;
+static gint ett_qsig_sms_PAR_smsStatusReportError = -1;
+static gint ett_qsig_sms_PAR_smsCommandError = -1;
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+static gint ett_qsig_mcr_MCRequestArg = -1;
+static gint ett_qsig_mcr_MCRequestResult = -1;
+static gint ett_qsig_mcr_MCInformArg = -1;
+static gint ett_qsig_mcr_MCAlertingArg = -1;
+static gint ett_qsig_mcr_CallType = -1;
+static gint ett_qsig_mcr_Correlation = -1;
+static gint ett_qsig_mcr_MCRExtensions = -1;
+static gint ett_qsig_mcr_SEQUENCE_OF_Extension = -1;
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_mcm_MCMailboxFullArg = -1;
+static gint ett_qsig_mcm_MailboxFullFor = -1;
+static gint ett_qsig_mcm_MailboxFullPar = -1;
+static gint ett_qsig_mcm_MCMServiceArg = -1;
+static gint ett_qsig_mcm_MCMChange = -1;
+static gint ett_qsig_mcm_SEQUENCE_OF_MCMServiceInfo = -1;
+static gint ett_qsig_mcm_SEQUENCE_OF_MessageType = -1;
+static gint ett_qsig_mcm_MCMServiceInfo = -1;
+static gint ett_qsig_mcm_MCMInterrogateArg = -1;
+static gint ett_qsig_mcm_MCMInterrogateRes = -1;
+static gint ett_qsig_mcm_MCMNewMsgArg = -1;
+static gint ett_qsig_mcm_T_argumentExt = -1;
+static gint ett_qsig_mcm_SEQUENCE_OF_Extension = -1;
+static gint ett_qsig_mcm_MCMNoNewMsgArg = -1;
+static gint ett_qsig_mcm_T_argumentExt_01 = -1;
+static gint ett_qsig_mcm_MCMUpdateArg = -1;
+static gint ett_qsig_mcm_MCMUpdateReqArg = -1;
+static gint ett_qsig_mcm_T_argumentExt_02 = -1;
+static gint ett_qsig_mcm_MCMUpdateReqRes = -1;
+static gint ett_qsig_mcm_MCMUpdateReqResElt = -1;
+static gint ett_qsig_mcm_T_argumentExt_03 = -1;
+static gint ett_qsig_mcm_PartyInfo = -1;
+static gint ett_qsig_mcm_UpdateInfo = -1;
+static gint ett_qsig_mcm_AllMsgInfo = -1;
+static gint ett_qsig_mcm_MessageInfo = -1;
+static gint ett_qsig_mcm_CompleteInfo = -1;
+static gint ett_qsig_mcm_AddressHeader = -1;
+static gint ett_qsig_mcm_CompressedInfo = -1;
+static gint ett_qsig_mcm_MsgCentreId = -1;
+static gint ett_qsig_mcm_MCMExtensions = -1;
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+static gint ett_qsig_mid_MIDMailboxAuthArg = -1;
+static gint ett_qsig_mid_MIDMailboxIDArg = -1;
+static gint ett_qsig_mid_PartyInfo = -1;
+static gint ett_qsig_mid_String = -1;
+static gint ett_qsig_mid_MIDExtensions = -1;
+static gint ett_qsig_mid_SEQUENCE_OF_Extension = -1;
/*--- End of included file: packet-qsig-ett.c ---*/
-#line 431 "packet-qsig-template.c"
+#line 311 "packet-qsig-template.c"
/* Preferences */
@@ -603,6 +2001,9 @@ static dissector_handle_t data_handle = NULL;
/*--- Included file: packet-qsig-fn.c ---*/
#line 1 "packet-qsig-fn.c"
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
+
static int
dissect_qsig_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -615,7 +2016,7 @@ dissect_qsig_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
dissect_qsig_T_extensionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 50 "qsig.cnf"
+#line 89 "qsig.cnf"
@@ -623,7 +2024,7 @@ dissect_qsig_T_extensionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
}
-static const ber_sequence_t Extension_sequence[] = {
+static const ber_sequence_t qsig_Extension_sequence[] = {
{ &hf_qsig_extensionId , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_qsig_OBJECT_IDENTIFIER },
{ &hf_qsig_extensionArgument, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_T_extensionArgument },
{ NULL, 0, 0, 0, NULL }
@@ -632,7 +2033,7 @@ static const ber_sequence_t Extension_sequence[] = {
static int
dissect_qsig_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- Extension_sequence, hf_index, ett_qsig_Extension);
+ qsig_Extension_sequence, hf_index, ett_qsig_Extension);
return offset;
}
@@ -689,7 +2090,7 @@ dissect_qsig_PublicTypeOfNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-static const ber_sequence_t PublicPartyNumber_sequence[] = {
+static const ber_sequence_t qsig_PublicPartyNumber_sequence[] = {
{ &hf_qsig_publicTypeOfNumber, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_PublicTypeOfNumber },
{ &hf_qsig_publicNumberDigits, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_NumberDigits },
{ NULL, 0, 0, 0, NULL }
@@ -698,7 +2099,7 @@ static const ber_sequence_t PublicPartyNumber_sequence[] = {
static int
dissect_qsig_PublicPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- PublicPartyNumber_sequence, hf_index, ett_qsig_PublicPartyNumber);
+ qsig_PublicPartyNumber_sequence, hf_index, ett_qsig_PublicPartyNumber);
return offset;
}
@@ -724,7 +2125,7 @@ dissect_qsig_PrivateTypeOfNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
}
-static const ber_sequence_t PrivatePartyNumber_sequence[] = {
+static const ber_sequence_t qsig_PrivatePartyNumber_sequence[] = {
{ &hf_qsig_privateTypeOfNumber, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_PrivateTypeOfNumber },
{ &hf_qsig_privateNumberDigits, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_NumberDigits },
{ NULL, 0, 0, 0, NULL }
@@ -733,7 +2134,7 @@ static const ber_sequence_t PrivatePartyNumber_sequence[] = {
static int
dissect_qsig_PrivatePartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- PrivatePartyNumber_sequence, hf_index, ett_qsig_PrivatePartyNumber);
+ qsig_PrivatePartyNumber_sequence, hf_index, ett_qsig_PrivatePartyNumber);
return offset;
}
@@ -749,7 +2150,7 @@ static const value_string qsig_PartyNumber_vals[] = {
{ 0, NULL }
};
-static const ber_choice_t PartyNumber_choice[] = {
+static const ber_choice_t qsig_PartyNumber_choice[] = {
{ 0, &hf_qsig_unknownPartyNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_NumberDigits },
{ 1, &hf_qsig_publicPartyNumber, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_PublicPartyNumber },
{ 3, &hf_qsig_dataPartyNumber, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_NumberDigits },
@@ -762,7 +2163,7 @@ static const ber_choice_t PartyNumber_choice[] = {
static int
dissect_qsig_PartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- PartyNumber_choice, hf_index, ett_qsig_PartyNumber,
+ qsig_PartyNumber_choice, hf_index, ett_qsig_PartyNumber,
NULL);
return offset;
@@ -806,7 +2207,7 @@ dissect_qsig_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
}
-static const ber_sequence_t UserSpecifiedSubaddress_sequence[] = {
+static const ber_sequence_t qsig_UserSpecifiedSubaddress_sequence[] = {
{ &hf_qsig_subaddressInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_SubaddressInformation },
{ &hf_qsig_oddCountIndicator, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_BOOLEAN },
{ NULL, 0, 0, 0, NULL }
@@ -815,7 +2216,7 @@ static const ber_sequence_t UserSpecifiedSubaddress_sequence[] = {
static int
dissect_qsig_UserSpecifiedSubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- UserSpecifiedSubaddress_sequence, hf_index, ett_qsig_UserSpecifiedSubaddress);
+ qsig_UserSpecifiedSubaddress_sequence, hf_index, ett_qsig_UserSpecifiedSubaddress);
return offset;
}
@@ -837,7 +2238,7 @@ static const value_string qsig_PartySubaddress_vals[] = {
{ 0, NULL }
};
-static const ber_choice_t PartySubaddress_choice[] = {
+static const ber_choice_t qsig_PartySubaddress_choice[] = {
{ 0, &hf_qsig_userSpecifiedSubaddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_UserSpecifiedSubaddress },
{ 1, &hf_qsig_nSAPSubaddress , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_NSAPSubaddress },
{ 0, NULL, 0, 0, 0, NULL }
@@ -846,14 +2247,14 @@ static const ber_choice_t PartySubaddress_choice[] = {
static int
dissect_qsig_PartySubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- PartySubaddress_choice, hf_index, ett_qsig_PartySubaddress,
+ qsig_PartySubaddress_choice, hf_index, ett_qsig_PartySubaddress,
NULL);
return offset;
}
-static const ber_sequence_t AddressScreened_sequence[] = {
+static const ber_sequence_t qsig_AddressScreened_sequence[] = {
{ &hf_qsig_partyNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
{ &hf_qsig_screeningIndicator, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_ScreeningIndicator },
{ &hf_qsig_partySubaddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartySubaddress },
@@ -863,7 +2264,7 @@ static const ber_sequence_t AddressScreened_sequence[] = {
static int
dissect_qsig_AddressScreened(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- AddressScreened_sequence, hf_index, ett_qsig_AddressScreened);
+ qsig_AddressScreened_sequence, hf_index, ett_qsig_AddressScreened);
return offset;
}
@@ -886,7 +2287,7 @@ static const value_string qsig_PresentedAddressScreened_vals[] = {
{ 0, NULL }
};
-static const ber_choice_t PresentedAddressScreened_choice[] = {
+static const ber_choice_t qsig_PresentedAddressScreened_choice[] = {
{ 0, &hf_qsig_presentationAllowedAddressS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_AddressScreened },
{ 1, &hf_qsig_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
{ 2, &hf_qsig_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
@@ -897,14 +2298,14 @@ static const ber_choice_t PresentedAddressScreened_choice[] = {
static int
dissect_qsig_PresentedAddressScreened(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- PresentedAddressScreened_choice, hf_index, ett_qsig_PresentedAddressScreened,
+ qsig_PresentedAddressScreened_choice, hf_index, ett_qsig_PresentedAddressScreened,
NULL);
return offset;
}
-static const ber_sequence_t Address_sequence[] = {
+static const ber_sequence_t qsig_Address_sequence[] = {
{ &hf_qsig_partyNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
{ &hf_qsig_partySubaddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartySubaddress },
{ NULL, 0, 0, 0, NULL }
@@ -913,7 +2314,7 @@ static const ber_sequence_t Address_sequence[] = {
static int
dissect_qsig_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- Address_sequence, hf_index, ett_qsig_Address);
+ qsig_Address_sequence, hf_index, ett_qsig_Address);
return offset;
}
@@ -927,7 +2328,7 @@ static const value_string qsig_PresentedAddressUnscreened_vals[] = {
{ 0, NULL }
};
-static const ber_choice_t PresentedAddressUnscreened_choice[] = {
+static const ber_choice_t qsig_PresentedAddressUnscreened_choice[] = {
{ 0, &hf_qsig_presentationAllowedAddressU, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_Address },
{ 1, &hf_qsig_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
{ 2, &hf_qsig_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
@@ -938,14 +2339,14 @@ static const ber_choice_t PresentedAddressUnscreened_choice[] = {
static int
dissect_qsig_PresentedAddressUnscreened(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- PresentedAddressUnscreened_choice, hf_index, ett_qsig_PresentedAddressUnscreened,
+ qsig_PresentedAddressUnscreened_choice, hf_index, ett_qsig_PresentedAddressUnscreened,
NULL);
return offset;
}
-static const ber_sequence_t NumberScreened_sequence[] = {
+static const ber_sequence_t qsig_NumberScreened_sequence[] = {
{ &hf_qsig_partyNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
{ &hf_qsig_screeningIndicator, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_ScreeningIndicator },
{ NULL, 0, 0, 0, NULL }
@@ -954,7 +2355,7 @@ static const ber_sequence_t NumberScreened_sequence[] = {
static int
dissect_qsig_NumberScreened(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- NumberScreened_sequence, hf_index, ett_qsig_NumberScreened);
+ qsig_NumberScreened_sequence, hf_index, ett_qsig_NumberScreened);
return offset;
}
@@ -968,7 +2369,7 @@ static const value_string qsig_PresentedNumberScreened_vals[] = {
{ 0, NULL }
};
-static const ber_choice_t PresentedNumberScreened_choice[] = {
+static const ber_choice_t qsig_PresentedNumberScreened_choice[] = {
{ 0, &hf_qsig_presentationAllowedAddressNS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_NumberScreened },
{ 1, &hf_qsig_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
{ 2, &hf_qsig_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
@@ -979,7 +2380,7 @@ static const ber_choice_t PresentedNumberScreened_choice[] = {
static int
dissect_qsig_PresentedNumberScreened(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- PresentedNumberScreened_choice, hf_index, ett_qsig_PresentedNumberScreened,
+ qsig_PresentedNumberScreened_choice, hf_index, ett_qsig_PresentedNumberScreened,
NULL);
return offset;
@@ -994,7 +2395,7 @@ static const value_string qsig_PresentedNumberUnscreened_vals[] = {
{ 0, NULL }
};
-static const ber_choice_t PresentedNumberUnscreened_choice[] = {
+static const ber_choice_t qsig_PresentedNumberUnscreened_choice[] = {
{ 0, &hf_qsig_presentationAllowedAddressNU, BER_CLASS_CON, 0, 0, dissect_qsig_PartyNumber },
{ 1, &hf_qsig_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
{ 2, &hf_qsig_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
@@ -1005,7 +2406,7 @@ static const ber_choice_t PresentedNumberUnscreened_choice[] = {
static int
dissect_qsig_PresentedNumberUnscreened(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- PresentedNumberUnscreened_choice, hf_index, ett_qsig_PresentedNumberUnscreened,
+ qsig_PresentedNumberUnscreened_choice, hf_index, ett_qsig_PresentedNumberUnscreened,
NULL);
return offset;
@@ -1021,9 +2422,12 @@ dissect_qsig_PresentationAllowedIndicator(gboolean implicit_tag _U_, tvbuff_t *t
}
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+
static int
-dissect_qsig_NameData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NameData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1031,7 +2435,7 @@ dissect_qsig_NameData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
}
-static const value_string qsig_CharacterSet_vals[] = {
+static const value_string qsig_na_CharacterSet_vals[] = {
{ 0, "unknown" },
{ 1, "iso8859-1" },
{ 3, "iso8859-2" },
@@ -1046,7 +2450,7 @@ static const value_string qsig_CharacterSet_vals[] = {
static int
-dissect_qsig_CharacterSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_CharacterSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1054,61 +2458,70 @@ dissect_qsig_CharacterSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
}
-static const ber_sequence_t NameSet_sequence[] = {
- { &hf_qsig_nameData , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_NameData },
- { &hf_qsig_characterSet , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_CharacterSet },
+static const ber_sequence_t qsig_na_NameSet_sequence[] = {
+ { &hf_qsig_na_nameData , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_na_NameData },
+ { &hf_qsig_na_characterSet, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_CharacterSet },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_NameSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NameSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- NameSet_sequence, hf_index, ett_qsig_NameSet);
+ qsig_na_NameSet_sequence, hf_index, ett_qsig_na_NameSet);
return offset;
}
-static const value_string qsig_NamePresentationAllowed_vals[] = {
+static const value_string qsig_na_NamePresentationAllowed_vals[] = {
{ 0, "namePresentationAllowedSimple" },
{ 1, "namePresentationAllowedExtended" },
{ 0, NULL }
};
-static const ber_choice_t NamePresentationAllowed_choice[] = {
- { 0, &hf_qsig_namePresentationAllowedSimple, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_NameData },
- { 1, &hf_qsig_namePresentationAllowedExtended, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_NameSet },
+static const ber_choice_t qsig_na_NamePresentationAllowed_choice[] = {
+ { 0, &hf_qsig_na_namePresentationAllowedSimple, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_na_NameData },
+ { 1, &hf_qsig_na_namePresentationAllowedExtended, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_na_NameSet },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_NamePresentationAllowed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NamePresentationAllowed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- NamePresentationAllowed_choice, hf_index, ett_qsig_NamePresentationAllowed,
+ qsig_na_NamePresentationAllowed_choice, hf_index, ett_qsig_na_NamePresentationAllowed,
NULL);
return offset;
}
-static const value_string qsig_NamePresentationRestricted_vals[] = {
+
+static int
+dissect_qsig_na_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_na_NamePresentationRestricted_vals[] = {
{ 2, "namePresentationRestrictedSimple" },
{ 3, "namePresentationRestrictedExtended" },
{ 7, "namePresentationRestrictedNull" },
{ 0, NULL }
};
-static const ber_choice_t NamePresentationRestricted_choice[] = {
- { 2, &hf_qsig_namePresentationRestrictedSimple, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_NameData },
- { 3, &hf_qsig_namePresentationRestrictedExtended, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_NameSet },
- { 7, &hf_qsig_namePresentationRestrictedNull, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_NULL },
+static const ber_choice_t qsig_na_NamePresentationRestricted_choice[] = {
+ { 2, &hf_qsig_na_namePresentationRestrictedSimple, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_na_NameData },
+ { 3, &hf_qsig_na_namePresentationRestrictedExtended, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_na_NameSet },
+ { 7, &hf_qsig_na_namePresentationRestrictedNull, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_na_NULL },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_NamePresentationRestricted(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NamePresentationRestricted(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- NamePresentationRestricted_choice, hf_index, ett_qsig_NamePresentationRestricted,
+ qsig_na_NamePresentationRestricted_choice, hf_index, ett_qsig_na_NamePresentationRestricted,
NULL);
return offset;
@@ -1117,104 +2530,117 @@ dissect_qsig_NamePresentationRestricted(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
-dissect_qsig_NameNotAvailable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NameNotAvailable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_CON, 4, TRUE, dissect_qsig_NULL);
+ hf_index, BER_CLASS_CON, 4, TRUE, dissect_qsig_na_NULL);
return offset;
}
-static const ber_choice_t Name_choice[] = {
- { 0, &hf_qsig_namePresentationAllowed, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_NamePresentationAllowed },
- { 1, &hf_qsig_namePresentationRestricted, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_NamePresentationRestricted },
- { 2, &hf_qsig_nameNotAvailable, BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_qsig_NameNotAvailable },
+static const ber_choice_t qsig_na_Name_choice[] = {
+ { 0, &hf_qsig_na_namePresentationAllowed, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_na_NamePresentationAllowed },
+ { 1, &hf_qsig_na_namePresentationRestricted, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_na_NamePresentationRestricted },
+ { 2, &hf_qsig_na_nameNotAvailable, BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_qsig_na_NameNotAvailable },
{ 0, NULL, 0, 0, 0, NULL }
};
int
-dissect_qsig_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- Name_choice, hf_index, ett_qsig_Name,
+ qsig_na_Name_choice, hf_index, ett_qsig_na_Name,
NULL);
return offset;
}
-static const ber_sequence_t SEQUENCE_OF_Extension_sequence_of[1] = {
- { &hf_qsig_multiple_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+static const ber_sequence_t qsig_na_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_na_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
};
static int
-dissect_qsig_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_SEQUENCE_OF_Extension);
+ qsig_na_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_na_SEQUENCE_OF_Extension);
return offset;
}
-static const value_string qsig_NameExtension_vals[] = {
+static const value_string qsig_na_NameExtension_vals[] = {
{ 5, "single" },
{ 6, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t NameExtension_choice[] = {
- { 5, &hf_qsig_single , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 6, &hf_qsig_multiple , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_na_NameExtension_choice[] = {
+ { 5, &hf_qsig_na_single , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 6, &hf_qsig_na_multiple , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_na_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_NameExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NameExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- NameExtension_choice, hf_index, ett_qsig_NameExtension,
+ qsig_na_NameExtension_choice, hf_index, ett_qsig_na_NameExtension,
NULL);
return offset;
}
-static const ber_sequence_t T_nameSequence_sequence[] = {
- { &hf_qsig_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_extensionNA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_NameExtension },
+static const ber_sequence_t qsig_na_T_nameSequence_sequence[] = {
+ { &hf_qsig_na_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_na_Name },
+ { &hf_qsig_na_extensionNA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_na_NameExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_T_nameSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_T_nameSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- T_nameSequence_sequence, hf_index, ett_qsig_T_nameSequence);
+ qsig_na_T_nameSequence_sequence, hf_index, ett_qsig_na_T_nameSequence);
return offset;
}
-static const value_string qsig_NameArg_vals[] = {
+static const value_string qsig_na_NameArg_vals[] = {
{ 0, "name" },
{ 1, "nameSequence" },
{ 0, NULL }
};
-static const ber_choice_t NameArg_choice[] = {
- { 0, &hf_qsig_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_Name },
- { 1, &hf_qsig_nameSequence , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_T_nameSequence },
+static const ber_choice_t qsig_na_NameArg_choice[] = {
+ { 0, &hf_qsig_na_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { 1, &hf_qsig_na_nameSequence, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_na_T_nameSequence },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_NameArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_na_NameArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- NameArg_choice, hf_index, ett_qsig_NameArg,
+ qsig_na_NameArg_choice, hf_index, ett_qsig_na_NameArg,
NULL);
return offset;
}
+/*--- PDUs ---*/
+
+static int dissect_qsig_na_NameArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_na_NameArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_na_qsig_na_NameArg_PDU);
+ return offset;
+}
+
-static const value_string qsig_Procedure_vals[] = {
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+
+static const value_string qsig_cf_Procedure_vals[] = {
{ 0, "cfu" },
{ 1, "cfb" },
{ 2, "cfnr" },
@@ -1223,7 +2649,7 @@ static const value_string qsig_Procedure_vals[] = {
static int
-dissect_qsig_Procedure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_Procedure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1231,7 +2657,7 @@ dissect_qsig_Procedure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-static const value_string qsig_BasicService_vals[] = {
+static const value_string qsig_cf_BasicService_vals[] = {
{ 0, "allServices" },
{ 1, "speech" },
{ 2, "unrestrictedDigitalInformation" },
@@ -1246,7 +2672,7 @@ static const value_string qsig_BasicService_vals[] = {
static int
-dissect_qsig_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1254,239 +2680,261 @@ dissect_qsig_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
}
-static const value_string qsig_ADExtension_vals[] = {
+static const ber_sequence_t qsig_cf_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_cf_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_cf_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_cf_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_cf_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_cf_ADExtension_vals[] = {
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t ADExtension_choice[] = {
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_ADExtension_choice[] = {
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ADExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ADExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- ADExtension_choice, hf_index, ett_qsig_ADExtension,
+ qsig_cf_ADExtension_choice, hf_index, ett_qsig_cf_ADExtension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_activateDiversionQ_sequence[] = {
- { &hf_qsig_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_Procedure },
- { &hf_qsig_basicService , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_BasicService },
- { &hf_qsig_divertedToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
- { &hf_qsig_servedUserNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_activatingUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_extensionAD , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ADExtension },
+static const ber_sequence_t qsig_cf_ARG_activateDiversionQ_sequence[] = {
+ { &hf_qsig_cf_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_Procedure },
+ { &hf_qsig_cf_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_cf_divertedToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
+ { &hf_qsig_cf_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_activatingUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_extensionAD , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_ADExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_activateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_activateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_activateDiversionQ_sequence, hf_index, ett_qsig_ARG_activateDiversionQ);
+ qsig_cf_ARG_activateDiversionQ_sequence, hf_index, ett_qsig_cf_ARG_activateDiversionQ);
return offset;
}
-static const value_string qsig_RES_activateDiversionQ_vals[] = {
+
+static int
+dissect_qsig_cf_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_cf_RES_activateDiversionQ_vals[] = {
{ 0, "null" },
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t RES_activateDiversionQ_choice[] = {
- { 0, &hf_qsig_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_NULL },
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_RES_activateDiversionQ_choice[] = {
+ { 0, &hf_qsig_cf_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_NULL },
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_RES_activateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_RES_activateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- RES_activateDiversionQ_choice, hf_index, ett_qsig_RES_activateDiversionQ,
+ qsig_cf_RES_activateDiversionQ_choice, hf_index, ett_qsig_cf_RES_activateDiversionQ,
NULL);
return offset;
}
-static const value_string qsig_DDExtension_vals[] = {
+static const value_string qsig_cf_DDExtension_vals[] = {
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t DDExtension_choice[] = {
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_DDExtension_choice[] = {
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_DDExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_DDExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- DDExtension_choice, hf_index, ett_qsig_DDExtension,
+ qsig_cf_DDExtension_choice, hf_index, ett_qsig_cf_DDExtension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_deactivateDiversionQ_sequence[] = {
- { &hf_qsig_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_Procedure },
- { &hf_qsig_basicService , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_BasicService },
- { &hf_qsig_servedUserNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_deactivatingUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_extensionDD , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_DDExtension },
+static const ber_sequence_t qsig_cf_ARG_deactivateDiversionQ_sequence[] = {
+ { &hf_qsig_cf_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_Procedure },
+ { &hf_qsig_cf_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_cf_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_deactivatingUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_extensionDD , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_DDExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_deactivateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_deactivateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_deactivateDiversionQ_sequence, hf_index, ett_qsig_ARG_deactivateDiversionQ);
+ qsig_cf_ARG_deactivateDiversionQ_sequence, hf_index, ett_qsig_cf_ARG_deactivateDiversionQ);
return offset;
}
-static const value_string qsig_RES_deactivateDiversionQ_vals[] = {
+static const value_string qsig_cf_RES_deactivateDiversionQ_vals[] = {
{ 0, "null" },
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t RES_deactivateDiversionQ_choice[] = {
- { 0, &hf_qsig_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_NULL },
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_RES_deactivateDiversionQ_choice[] = {
+ { 0, &hf_qsig_cf_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_NULL },
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_RES_deactivateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_RES_deactivateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- RES_deactivateDiversionQ_choice, hf_index, ett_qsig_RES_deactivateDiversionQ,
+ qsig_cf_RES_deactivateDiversionQ_choice, hf_index, ett_qsig_cf_RES_deactivateDiversionQ,
NULL);
return offset;
}
-static const value_string qsig_IDExtension_vals[] = {
+static const value_string qsig_cf_IDExtension_vals[] = {
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t IDExtension_choice[] = {
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_IDExtension_choice[] = {
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_IDExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_IDExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- IDExtension_choice, hf_index, ett_qsig_IDExtension,
+ qsig_cf_IDExtension_choice, hf_index, ett_qsig_cf_IDExtension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_interrogateDiversionQ_sequence[] = {
- { &hf_qsig_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_Procedure },
- { &hf_qsig_basicService , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_BasicService },
- { &hf_qsig_servedUserNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_interrogatingUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_extensionID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_IDExtension },
+static const ber_sequence_t qsig_cf_ARG_interrogateDiversionQ_sequence[] = {
+ { &hf_qsig_cf_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_Procedure },
+ { &hf_qsig_cf_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_cf_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_interrogatingUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_extensionID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_IDExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_interrogateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_interrogateDiversionQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_interrogateDiversionQ_sequence, hf_index, ett_qsig_ARG_interrogateDiversionQ);
+ qsig_cf_ARG_interrogateDiversionQ_sequence, hf_index, ett_qsig_cf_ARG_interrogateDiversionQ);
return offset;
}
-static const value_string qsig_CHRExtension_vals[] = {
+static const value_string qsig_cf_CHRExtension_vals[] = {
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t CHRExtension_choice[] = {
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_CHRExtension_choice[] = {
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_CHRExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_CHRExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- CHRExtension_choice, hf_index, ett_qsig_CHRExtension,
+ qsig_cf_CHRExtension_choice, hf_index, ett_qsig_cf_CHRExtension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_checkRestriction_sequence[] = {
- { &hf_qsig_servedUserNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_basicService , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_BasicService },
- { &hf_qsig_divertedToNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_extensionCHR , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_CHRExtension },
+static const ber_sequence_t qsig_cf_ARG_checkRestriction_sequence[] = {
+ { &hf_qsig_cf_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_cf_divertedToNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_extensionCHR, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_CHRExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_checkRestriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_checkRestriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_checkRestriction_sequence, hf_index, ett_qsig_ARG_checkRestriction);
+ qsig_cf_ARG_checkRestriction_sequence, hf_index, ett_qsig_cf_ARG_checkRestriction);
return offset;
}
-static const value_string qsig_RES_checkRestriction_vals[] = {
+static const value_string qsig_cf_RES_checkRestriction_vals[] = {
{ 0, "null" },
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t RES_checkRestriction_choice[] = {
- { 0, &hf_qsig_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_NULL },
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_RES_checkRestriction_choice[] = {
+ { 0, &hf_qsig_cf_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_NULL },
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_RES_checkRestriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_RES_checkRestriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- RES_checkRestriction_choice, hf_index, ett_qsig_RES_checkRestriction,
+ qsig_cf_RES_checkRestriction_choice, hf_index, ett_qsig_cf_RES_checkRestriction,
NULL);
return offset;
}
-static const value_string qsig_DiversionReason_vals[] = {
+static const value_string qsig_cf_DiversionReason_vals[] = {
{ 0, "unknown" },
{ 1, "cfu" },
{ 2, "cfb" },
@@ -1496,7 +2944,7 @@ static const value_string qsig_DiversionReason_vals[] = {
static int
-dissect_qsig_DiversionReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_DiversionReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1506,7 +2954,7 @@ dissect_qsig_DiversionReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
-dissect_qsig_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1514,7 +2962,7 @@ dissect_qsig_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
}
-static const value_string qsig_SubscriptionOption_vals[] = {
+static const value_string qsig_cf_SubscriptionOption_vals[] = {
{ 0, "noNotification" },
{ 1, "notificationWithoutDivertedToNr" },
{ 2, "notificationWithDivertedToNr" },
@@ -1523,7 +2971,7 @@ static const value_string qsig_SubscriptionOption_vals[] = {
static int
-dissect_qsig_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1531,515 +2979,9118 @@ dissect_qsig_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-static const value_string qsig_CRRExtension_vals[] = {
+static const value_string qsig_cf_CRRExtension_vals[] = {
{ 9, "single" },
{ 10, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t CRRExtension_choice[] = {
- { 9, &hf_qsig_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 10, &hf_qsig_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_CRRExtension_choice[] = {
+ { 9, &hf_qsig_cf_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 10, &hf_qsig_cf_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_CRRExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_CRRExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- CRRExtension_choice, hf_index, ett_qsig_CRRExtension,
+ qsig_cf_CRRExtension_choice, hf_index, ett_qsig_cf_CRRExtension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_callRerouteing_sequence[] = {
- { &hf_qsig_rerouteingReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_DiversionReason },
- { &hf_qsig_originalRerouteingReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_DiversionReason },
- { &hf_qsig_calledAddress , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
- { &hf_qsig_diversionCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_INTEGER_1_15 },
- { &hf_qsig_pSS1InfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
- { &hf_qsig_lastRerouteingNr, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_qsig_PresentedNumberUnscreened },
- { &hf_qsig_subscriptionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SubscriptionOption },
- { &hf_qsig_callingPartySubaddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartySubaddress },
- { &hf_qsig_callingNumber , BER_CLASS_CON, 4, BER_FLAGS_NOTCHKTAG, dissect_qsig_PresentedNumberScreened },
- { &hf_qsig_callingName , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_originalCalledNr, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_PresentedNumberUnscreened },
- { &hf_qsig_redirectingName, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_originalCalledName, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_extensionCRR , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_CRRExtension },
+static const ber_sequence_t qsig_cf_ARG_callRerouteing_sequence[] = {
+ { &hf_qsig_cf_rerouteingReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_DiversionReason },
+ { &hf_qsig_cf_originalRerouteingReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cf_DiversionReason },
+ { &hf_qsig_cf_calledAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
+ { &hf_qsig_cf_diversionCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_INTEGER_1_15 },
+ { &hf_qsig_cf_pSS1InfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_cf_lastRerouteingNr, BER_CLASS_CON, 1, 0, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cf_subscriptionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SubscriptionOption },
+ { &hf_qsig_cf_callingPartySubaddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_cf_callingNumber, BER_CLASS_CON, 4, 0, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_cf_callingName , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cf_originalCalledNr, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cf_redirectingName, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cf_originalCalledName, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cf_extensionCRR, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_CRRExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_callRerouteing(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_callRerouteing(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_callRerouteing_sequence, hf_index, ett_qsig_ARG_callRerouteing);
+ qsig_cf_ARG_callRerouteing_sequence, hf_index, ett_qsig_cf_ARG_callRerouteing);
return offset;
}
-static const value_string qsig_RES_callRerouteing_vals[] = {
+static const value_string qsig_cf_RES_callRerouteing_vals[] = {
{ 0, "null" },
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t RES_callRerouteing_choice[] = {
- { 0, &hf_qsig_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_NULL },
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_RES_callRerouteing_choice[] = {
+ { 0, &hf_qsig_cf_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_NULL },
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_RES_callRerouteing(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_RES_callRerouteing(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- RES_callRerouteing_choice, hf_index, ett_qsig_RES_callRerouteing,
+ qsig_cf_RES_callRerouteing_choice, hf_index, ett_qsig_cf_RES_callRerouteing,
NULL);
return offset;
}
-static const value_string qsig_DLI1Extension_vals[] = {
+static const value_string qsig_cf_DLI1Extension_vals[] = {
{ 9, "single" },
{ 10, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t DLI1Extension_choice[] = {
- { 9, &hf_qsig_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 10, &hf_qsig_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_DLI1Extension_choice[] = {
+ { 9, &hf_qsig_cf_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 10, &hf_qsig_cf_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_DLI1Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_DLI1Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- DLI1Extension_choice, hf_index, ett_qsig_DLI1Extension,
+ qsig_cf_DLI1Extension_choice, hf_index, ett_qsig_cf_DLI1Extension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_divertingLegInformation1_sequence[] = {
- { &hf_qsig_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_DiversionReason },
- { &hf_qsig_subscriptionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_SubscriptionOption },
- { &hf_qsig_nominatedNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_extensionDLI1 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_DLI1Extension },
+static const ber_sequence_t qsig_cf_ARG_divertingLegInformation1_sequence[] = {
+ { &hf_qsig_cf_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_DiversionReason },
+ { &hf_qsig_cf_subscriptionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_SubscriptionOption },
+ { &hf_qsig_cf_nominatedNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_extensionDLI1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_DLI1Extension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_divertingLegInformation1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_divertingLegInformation1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_divertingLegInformation1_sequence, hf_index, ett_qsig_ARG_divertingLegInformation1);
+ qsig_cf_ARG_divertingLegInformation1_sequence, hf_index, ett_qsig_cf_ARG_divertingLegInformation1);
return offset;
}
-static const value_string qsig_DLI2Extension_vals[] = {
+static const value_string qsig_cf_DLI2Extension_vals[] = {
{ 5, "single" },
{ 6, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t DLI2Extension_choice[] = {
- { 5, &hf_qsig_single , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 6, &hf_qsig_multiple , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_DLI2Extension_choice[] = {
+ { 5, &hf_qsig_cf_single , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 6, &hf_qsig_cf_multiple , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_DLI2Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_DLI2Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- DLI2Extension_choice, hf_index, ett_qsig_DLI2Extension,
+ qsig_cf_DLI2Extension_choice, hf_index, ett_qsig_cf_DLI2Extension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_divertingLegInformation2_sequence[] = {
- { &hf_qsig_diversionCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_INTEGER_1_15 },
- { &hf_qsig_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_DiversionReason },
- { &hf_qsig_originalDiversionReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_DiversionReason },
- { &hf_qsig_divertingNr , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_PresentedNumberUnscreened },
- { &hf_qsig_originalCalledNr, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_PresentedNumberUnscreened },
- { &hf_qsig_redirectingName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_originalCalledName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_extensionDLI2 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_DLI2Extension },
+static const ber_sequence_t qsig_cf_ARG_divertingLegInformation2_sequence[] = {
+ { &hf_qsig_cf_diversionCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_INTEGER_1_15 },
+ { &hf_qsig_cf_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_DiversionReason },
+ { &hf_qsig_cf_originalDiversionReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cf_DiversionReason },
+ { &hf_qsig_cf_divertingNr , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cf_originalCalledNr, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cf_redirectingName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cf_originalCalledName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cf_extensionDLI2, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_DLI2Extension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_divertingLegInformation2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_divertingLegInformation2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_divertingLegInformation2_sequence, hf_index, ett_qsig_ARG_divertingLegInformation2);
+ qsig_cf_ARG_divertingLegInformation2_sequence, hf_index, ett_qsig_cf_ARG_divertingLegInformation2);
return offset;
}
-static const value_string qsig_DLI3Extension_vals[] = {
+static const value_string qsig_cf_DLI3Extension_vals[] = {
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t DLI3Extension_choice[] = {
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_DLI3Extension_choice[] = {
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_DLI3Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_DLI3Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- DLI3Extension_choice, hf_index, ett_qsig_DLI3Extension,
+ qsig_cf_DLI3Extension_choice, hf_index, ett_qsig_cf_DLI3Extension,
NULL);
return offset;
}
-static const ber_sequence_t ARG_divertingLegInformation3_sequence[] = {
- { &hf_qsig_presentationAllowedIndicator, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentationAllowedIndicator },
- { &hf_qsig_redirectionName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_Name },
- { &hf_qsig_extensionDLI3 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_DLI3Extension },
+static const ber_sequence_t qsig_cf_ARG_divertingLegInformation3_sequence[] = {
+ { &hf_qsig_cf_presentationAllowedIndicator, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentationAllowedIndicator },
+ { &hf_qsig_cf_redirectionName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cf_extensionDLI3, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_DLI3Extension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_divertingLegInformation3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_divertingLegInformation3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ARG_divertingLegInformation3_sequence, hf_index, ett_qsig_ARG_divertingLegInformation3);
+ qsig_cf_ARG_divertingLegInformation3_sequence, hf_index, ett_qsig_cf_ARG_divertingLegInformation3);
return offset;
}
-static const value_string qsig_ARG_cfnrDivertedLegFailed_vals[] = {
+static const value_string qsig_cf_ARG_cfnrDivertedLegFailed_vals[] = {
{ 0, "null" },
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t ARG_cfnrDivertedLegFailed_choice[] = {
- { 0, &hf_qsig_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_NULL },
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_ARG_cfnrDivertedLegFailed_choice[] = {
+ { 0, &hf_qsig_cf_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_NULL },
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_ARG_cfnrDivertedLegFailed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_ARG_cfnrDivertedLegFailed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- ARG_cfnrDivertedLegFailed_choice, hf_index, ett_qsig_ARG_cfnrDivertedLegFailed,
+ qsig_cf_ARG_cfnrDivertedLegFailed_choice, hf_index, ett_qsig_cf_ARG_cfnrDivertedLegFailed,
NULL);
return offset;
}
-static const value_string qsig_IRExtension_vals[] = {
+
+static int
+dissect_qsig_cf_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_cf_IRExtension_vals[] = {
{ 1, "single" },
{ 2, "multiple" },
{ 0, NULL }
};
-static const ber_choice_t IRExtension_choice[] = {
- { 1, &hf_qsig_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
- { 2, &hf_qsig_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_SEQUENCE_OF_Extension },
+static const ber_choice_t qsig_cf_IRExtension_choice[] = {
+ { 1, &hf_qsig_cf_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cf_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cf_SEQUENCE_OF_Extension },
{ 0, NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_IRExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_IRExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
- IRExtension_choice, hf_index, ett_qsig_IRExtension,
+ qsig_cf_IRExtension_choice, hf_index, ett_qsig_cf_IRExtension,
NULL);
return offset;
}
-static const ber_sequence_t IntResult_sequence[] = {
- { &hf_qsig_servedUserNr , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_PartyNumber },
- { &hf_qsig_basicService , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_BasicService },
- { &hf_qsig_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_Procedure },
- { &hf_qsig_divertedToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
- { &hf_qsig_remoteEnabled , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_BOOLEAN },
- { &hf_qsig_extensionIR , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_IRExtension },
+static const ber_sequence_t qsig_cf_IntResult_sequence[] = {
+ { &hf_qsig_cf_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cf_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_cf_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_Procedure },
+ { &hf_qsig_cf_divertedToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
+ { &hf_qsig_cf_remoteEnabled, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BOOLEAN },
+ { &hf_qsig_cf_extensionIR , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cf_IRExtension },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_qsig_IntResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_IntResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- IntResult_sequence, hf_index, ett_qsig_IntResult);
+ qsig_cf_IntResult_sequence, hf_index, ett_qsig_cf_IntResult);
return offset;
}
-static const ber_sequence_t IntResultList_set_of[1] = {
- { &hf_qsig_IntResultList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_IntResult },
+static const ber_sequence_t qsig_cf_IntResultList_set_of[1] = {
+ { &hf_qsig_cf_IntResultList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_IntResult },
};
static int
-dissect_qsig_IntResultList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_qsig_cf_IntResultList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- IntResultList_set_of, hf_index, ett_qsig_IntResultList);
+ qsig_cf_IntResultList_set_of, hf_index, ett_qsig_cf_IntResultList);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_cf_ARG_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_activateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_activateDiversionQ_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_RES_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_RES_activateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_RES_activateDiversionQ_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_deactivateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_deactivateDiversionQ_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_RES_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_RES_deactivateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_RES_deactivateDiversionQ_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_interrogateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_interrogateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_interrogateDiversionQ_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_IntResultList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_IntResultList(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_IntResultList_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_checkRestriction(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_checkRestriction_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_RES_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_RES_checkRestriction(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_RES_checkRestriction_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_callRerouteing_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_callRerouteing(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_callRerouteing_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_RES_callRerouteing_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_RES_callRerouteing(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_RES_callRerouteing_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_divertingLegInformation1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_divertingLegInformation1(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_divertingLegInformation1_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_divertingLegInformation2_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_divertingLegInformation2(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_divertingLegInformation2_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_divertingLegInformation3_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_divertingLegInformation3(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_divertingLegInformation3_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_ARG_cfnrDivertedLegFailed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cf_ARG_cfnrDivertedLegFailed(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_ARG_cfnrDivertedLegFailed_PDU);
+ return offset;
+}
+static int dissect_qsig_cf_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cf_qsig_cf_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_pr_CallIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pr_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_pr_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_pr_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_pr_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_pr_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_pr_T_extension_vals[] = {
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pr_T_extension_choice[] = {
+ { 1, &hf_qsig_pr_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pr_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_T_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pr_T_extension_choice, hf_index, ett_qsig_pr_T_extension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pr_PRProposeArg_sequence[] = {
+ { &hf_qsig_pr_callIdentity, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_pr_CallIdentity },
+ { &hf_qsig_pr_rerouteingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pr_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pr_T_extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_PRProposeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pr_PRProposeArg_sequence, hf_index, ett_qsig_pr_PRProposeArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_pr_T_extension_01_vals[] = {
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pr_T_extension_01_choice[] = {
+ { 1, &hf_qsig_pr_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pr_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_T_extension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pr_T_extension_01_choice, hf_index, ett_qsig_pr_T_extension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pr_PRSetupArg_sequence[] = {
+ { &hf_qsig_pr_callIdentity, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_pr_CallIdentity },
+ { &hf_qsig_pr_extension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pr_T_extension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_PRSetupArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pr_PRSetupArg_sequence, hf_index, ett_qsig_pr_PRSetupArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_pr_T_extension_02_vals[] = {
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pr_T_extension_02_choice[] = {
+ { 1, &hf_qsig_pr_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pr_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_T_extension_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pr_T_extension_02_choice, hf_index, ett_qsig_pr_T_extension_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pr_PRRetainArg_sequence[] = {
+ { &hf_qsig_pr_callIdentity, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_pr_CallIdentity },
+ { &hf_qsig_pr_rerouteingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pr_extension_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pr_T_extension_02 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_PRRetainArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pr_PRRetainArg_sequence, hf_index, ett_qsig_pr_PRRetainArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_pr_DummyResult_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pr_DummyResult_choice[] = {
+ { 0, &hf_qsig_pr_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_pr_NULL },
+ { 1, &hf_qsig_pr_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pr_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_DummyResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pr_DummyResult_choice, hf_index, ett_qsig_pr_DummyResult,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pr_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pr_DummyArg_choice[] = {
+ { 0, &hf_qsig_pr_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_pr_NULL },
+ { 1, &hf_qsig_pr_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pr_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pr_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pr_DummyArg_choice, hf_index, ett_qsig_pr_DummyArg,
+ NULL);
return offset;
}
/*--- PDUs ---*/
-static int dissect_NameArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_pr_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_NameArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_NameArg_PDU);
+ offset = dissect_qsig_pr_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pr_qsig_pr_DummyArg_PDU);
return offset;
}
-static int dissect_ARG_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_pr_PRProposeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_activateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_activateDiversionQ_PDU);
+ offset = dissect_qsig_pr_PRProposeArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pr_qsig_pr_PRProposeArg_PDU);
return offset;
}
-static int dissect_RES_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_pr_PRSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_RES_activateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_RES_activateDiversionQ_PDU);
+ offset = dissect_qsig_pr_PRSetupArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pr_qsig_pr_PRSetupArg_PDU);
return offset;
}
-static int dissect_ARG_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_pr_DummyResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_deactivateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_deactivateDiversionQ_PDU);
+ offset = dissect_qsig_pr_DummyResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pr_qsig_pr_DummyResult_PDU);
return offset;
}
-static int dissect_RES_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_pr_PRRetainArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_RES_deactivateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_RES_deactivateDiversionQ_PDU);
+ offset = dissect_qsig_pr_PRRetainArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pr_qsig_pr_PRRetainArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pr_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pr_qsig_pr_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_ct_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_ct_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_ct_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_ct_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_DummyArg_choice[] = {
+ { 0, &hf_qsig_ct_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_ct_NULL },
+ { 1, &hf_qsig_ct_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ct_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_DummyArg_choice, hf_index, ett_qsig_ct_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_DummyRes_choice[] = {
+ { 0, &hf_qsig_ct_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_ct_NULL },
+ { 1, &hf_qsig_ct_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ct_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_DummyRes_choice, hf_index, ett_qsig_ct_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_ct_CallIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_resultExtension_vals[] = {
+ { 6, "single" },
+ { 7, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_resultExtension_choice[] = {
+ { 6, &hf_qsig_ct_single , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 7, &hf_qsig_ct_multiple , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_resultExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_resultExtension_choice, hf_index, ett_qsig_ct_T_resultExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_CTIdentifyRes_sequence[] = {
+ { &hf_qsig_ct_callIdentity, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_ct_CallIdentity },
+ { &hf_qsig_ct_rerouteingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_ct_resultExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_resultExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_CTIdentifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_CTIdentifyRes_sequence, hf_index, ett_qsig_ct_CTIdentifyRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_argumentExtension_vals[] = {
+ { 6, "single" },
+ { 7, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_argumentExtension_choice[] = {
+ { 6, &hf_qsig_ct_single , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 7, &hf_qsig_ct_multiple , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_argumentExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_argumentExtension_choice, hf_index, ett_qsig_ct_T_argumentExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_CTInitiateArg_sequence[] = {
+ { &hf_qsig_ct_callIdentity, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_ct_CallIdentity },
+ { &hf_qsig_ct_rerouteingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_ct_argumentExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_argumentExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_CTInitiateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_CTInitiateArg_sequence, hf_index, ett_qsig_ct_CTInitiateArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_argumentExtension_01_vals[] = {
+ { 0, "single" },
+ { 1, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_argumentExtension_01_choice[] = {
+ { 0, &hf_qsig_ct_single , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 1, &hf_qsig_ct_multiple , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_argumentExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_argumentExtension_01_choice, hf_index, ett_qsig_ct_T_argumentExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_CTSetupArg_sequence[] = {
+ { &hf_qsig_ct_callIdentity, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_ct_CallIdentity },
+ { &hf_qsig_ct_argumentExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_argumentExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_CTSetupArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_CTSetupArg_sequence, hf_index, ett_qsig_ct_CTSetupArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_argumentExtension_02_vals[] = {
+ { 9, "single" },
+ { 10, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_argumentExtension_02_choice[] = {
+ { 9, &hf_qsig_ct_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 10, &hf_qsig_ct_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_argumentExtension_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_argumentExtension_02_choice, hf_index, ett_qsig_ct_T_argumentExtension_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_CTActiveArg_sequence[] = {
+ { &hf_qsig_ct_connectedAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedAddressScreened },
+ { &hf_qsig_ct_basicCallInfoElements, BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_ct_connectedName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { &hf_qsig_ct_argumentExtension_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_argumentExtension_02 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_CTActiveArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_CTActiveArg_sequence, hf_index, ett_qsig_ct_CTActiveArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_EndDesignation_vals[] = {
+ { 0, "primaryEnd" },
+ { 1, "secondaryEnd" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_ct_EndDesignation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_CallStatus_vals[] = {
+ { 0, "answered" },
+ { 1, "alerting" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_ct_CallStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_argumentExtension_03_vals[] = {
+ { 9, "single" },
+ { 10, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_argumentExtension_03_choice[] = {
+ { 9, &hf_qsig_ct_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 10, &hf_qsig_ct_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_argumentExtension_03(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_argumentExtension_03_choice, hf_index, ett_qsig_ct_T_argumentExtension_03,
+ NULL);
+
return offset;
}
-static int dissect_ARG_interrogateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+
+
+static const ber_sequence_t qsig_ct_CTCompleteArg_sequence[] = {
+ { &hf_qsig_ct_endDesignation, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_ct_EndDesignation },
+ { &hf_qsig_ct_redirectionNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_ct_basicCallInfoElements, BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_ct_redirectionName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { &hf_qsig_ct_callStatus , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_ct_CallStatus },
+ { &hf_qsig_ct_argumentExtension_03, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_argumentExtension_03 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_CTCompleteArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_CTCompleteArg_sequence, hf_index, ett_qsig_ct_CTCompleteArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_argumentExtension_04_vals[] = {
+ { 9, "single" },
+ { 10, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_argumentExtension_04_choice[] = {
+ { 9, &hf_qsig_ct_single , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 10, &hf_qsig_ct_multiple , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_argumentExtension_04(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_argumentExtension_04_choice, hf_index, ett_qsig_ct_T_argumentExtension_04,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_CTUpdateArg_sequence[] = {
+ { &hf_qsig_ct_redirectionNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_ct_redirectionName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { &hf_qsig_ct_basicCallInfoElements, BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_ct_argumentExtension_04, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_argumentExtension_04 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_CTUpdateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_CTUpdateArg_sequence, hf_index, ett_qsig_ct_CTUpdateArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ct_T_argumentExtension_05_vals[] = {
+ { 0, "single" },
+ { 1, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ct_T_argumentExtension_05_choice[] = {
+ { 0, &hf_qsig_ct_single , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 1, &hf_qsig_ct_multiple , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_ct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_T_argumentExtension_05(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ct_T_argumentExtension_05_choice, hf_index, ett_qsig_ct_T_argumentExtension_05,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ct_SubaddressTransferArg_sequence[] = {
+ { &hf_qsig_ct_redirectionSubaddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartySubaddress },
+ { &hf_qsig_ct_argumentExtension_05, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ct_T_argumentExtension_05 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ct_SubaddressTransferArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ct_SubaddressTransferArg_sequence, hf_index, ett_qsig_ct_SubaddressTransferArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_ct_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_interrogateDiversionQ(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_interrogateDiversionQ_PDU);
+ offset = dissect_qsig_ct_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_DummyArg_PDU);
return offset;
}
-static int dissect_IntResultList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_CTIdentifyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_IntResultList(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_IntResultList_PDU);
+ offset = dissect_qsig_ct_CTIdentifyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_CTIdentifyRes_PDU);
return offset;
}
-static int dissect_ARG_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_CTInitiateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_checkRestriction(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_checkRestriction_PDU);
+ offset = dissect_qsig_ct_CTInitiateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_CTInitiateArg_PDU);
return offset;
}
-static int dissect_RES_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_RES_checkRestriction(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_RES_checkRestriction_PDU);
+ offset = dissect_qsig_ct_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_DummyRes_PDU);
return offset;
}
-static int dissect_ARG_callRerouteing_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_CTSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_callRerouteing(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_callRerouteing_PDU);
+ offset = dissect_qsig_ct_CTSetupArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_CTSetupArg_PDU);
return offset;
}
-static int dissect_RES_callRerouteing_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_CTActiveArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_RES_callRerouteing(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_RES_callRerouteing_PDU);
+ offset = dissect_qsig_ct_CTActiveArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_CTActiveArg_PDU);
return offset;
}
-static int dissect_ARG_divertingLegInformation1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_CTCompleteArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_divertingLegInformation1(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_divertingLegInformation1_PDU);
+ offset = dissect_qsig_ct_CTCompleteArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_CTCompleteArg_PDU);
return offset;
}
-static int dissect_ARG_divertingLegInformation2_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_CTUpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_divertingLegInformation2(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_divertingLegInformation2_PDU);
+ offset = dissect_qsig_ct_CTUpdateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_CTUpdateArg_PDU);
return offset;
}
-static int dissect_ARG_divertingLegInformation3_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_SubaddressTransferArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_divertingLegInformation3(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_divertingLegInformation3_PDU);
+ offset = dissect_qsig_ct_SubaddressTransferArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_SubaddressTransferArg_PDU);
return offset;
}
-static int dissect_ARG_cfnrDivertedLegFailed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_qsig_ct_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_qsig_ARG_cfnrDivertedLegFailed(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ARG_cfnrDivertedLegFailed_PDU);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ct_qsig_ct_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_cc_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cc_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cc_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_cc_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_cc_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_cc_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_cc_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_cc_CcExtension_vals[] = {
+ { 0, "none" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cc_CcExtension_choice[] = {
+ { 0, &hf_qsig_cc_none , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cc_NULL },
+ { 1, &hf_qsig_cc_single , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cc_multiple , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_qsig_cc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cc_CcExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cc_CcExtension_choice, hf_index, ett_qsig_cc_CcExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cc_CcRequestArg_sequence[] = {
+ { &hf_qsig_cc_numberA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cc_numberB , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cc_service , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_cc_subaddrA , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_cc_subaddrB , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_cc_can_retain_service, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cc_BOOLEAN },
+ { &hf_qsig_cc_retain_sig_connection, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cc_BOOLEAN },
+ { &hf_qsig_cc_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cc_CcExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cc_CcRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cc_CcRequestArg_sequence, hf_index, ett_qsig_cc_CcRequestArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cc_CcRequestRes_sequence[] = {
+ { &hf_qsig_cc_no_path_reservation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cc_BOOLEAN },
+ { &hf_qsig_cc_retain_service, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cc_BOOLEAN },
+ { &hf_qsig_cc_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cc_CcExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cc_CcRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cc_CcRequestRes_sequence, hf_index, ett_qsig_cc_CcRequestRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cc_T_fullArg_sequence[] = {
+ { &hf_qsig_cc_numberA_01 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cc_numberB , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cc_service , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_cc_subaddrA , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_cc_subaddrB , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_cc_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cc_CcExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cc_T_fullArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cc_T_fullArg_sequence, hf_index, ett_qsig_cc_T_fullArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_cc_CcOptionalArg_vals[] = {
+ { 0, "fullArg" },
+ { 1, "extArg" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cc_CcOptionalArg_choice[] = {
+ { 0, &hf_qsig_cc_fullArg , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_cc_T_fullArg },
+ { 1, &hf_qsig_cc_extArg , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_cc_CcExtension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cc_CcOptionalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cc_CcOptionalArg_choice, hf_index, ett_qsig_cc_CcOptionalArg,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_cc_CcRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cc_CcRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cc_qsig_cc_CcRequestArg_PDU);
+ return offset;
+}
+static int dissect_qsig_cc_CcRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cc_CcRequestRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cc_qsig_cc_CcRequestRes_PDU);
+ return offset;
+}
+static int dissect_qsig_cc_CcOptionalArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cc_CcOptionalArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cc_qsig_cc_CcOptionalArg_PDU);
+ return offset;
+}
+static int dissect_qsig_cc_CcExtension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cc_CcExtension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cc_qsig_cc_CcExtension_PDU);
+ return offset;
+}
+static int dissect_qsig_cc_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cc_qsig_cc_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+
+static const asn_namedbit qsig_co_ServiceList_bits[] = {
+ { 0, &hf_qsig_co_ServiceList_callOffer, -1, -1, "callOffer", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_qsig_co_ServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ qsig_co_ServiceList_bits, hf_index, ett_qsig_co_ServiceList,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_co_T_extendedServiceList_sequence[] = {
+ { &hf_qsig_co_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_co_ServiceList },
+ { &hf_qsig_co_extension , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_co_T_extendedServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_co_T_extendedServiceList_sequence, hf_index, ett_qsig_co_T_extendedServiceList);
+
+ return offset;
+}
+
+
+static const value_string qsig_co_PathRetainArg_vals[] = {
+ { 0, "serviceList" },
+ { 1, "extendedServiceList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_co_PathRetainArg_choice[] = {
+ { 0, &hf_qsig_co_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_co_ServiceList },
+ { 1, &hf_qsig_co_extendedServiceList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_co_T_extendedServiceList },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_co_PathRetainArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_co_PathRetainArg_choice, hf_index, ett_qsig_co_PathRetainArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_co_T_extendedServiceList_01_sequence[] = {
+ { &hf_qsig_co_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_co_ServiceList },
+ { &hf_qsig_co_extension , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_co_T_extendedServiceList_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_co_T_extendedServiceList_01_sequence, hf_index, ett_qsig_co_T_extendedServiceList_01);
+
+ return offset;
+}
+
+
+static const value_string qsig_co_ServiceAvailableArg_vals[] = {
+ { 0, "serviceList" },
+ { 1, "extendedServiceList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_co_ServiceAvailableArg_choice[] = {
+ { 0, &hf_qsig_co_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_co_ServiceList },
+ { 1, &hf_qsig_co_extendedServiceList_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_co_T_extendedServiceList_01 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_co_ServiceAvailableArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_co_ServiceAvailableArg_choice, hf_index, ett_qsig_co_ServiceAvailableArg,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_co_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_co_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_co_sequenceOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_co_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_co_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_co_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_co_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_co_DummyArg_choice[] = {
+ { 0, &hf_qsig_co_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_co_NULL },
+ { 1, &hf_qsig_co_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_co_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_co_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_co_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_co_DummyArg_choice, hf_index, ett_qsig_co_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_co_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_co_DummyRes_choice[] = {
+ { 0, &hf_qsig_co_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_co_NULL },
+ { 1, &hf_qsig_co_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_co_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_co_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_co_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_co_DummyRes_choice, hf_index, ett_qsig_co_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_co_PathRetainArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_co_PathRetainArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_co_qsig_co_PathRetainArg_PDU);
+ return offset;
+}
+static int dissect_qsig_co_ServiceAvailableArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_co_ServiceAvailableArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_co_qsig_co_ServiceAvailableArg_PDU);
+ return offset;
+}
+static int dissect_qsig_co_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_co_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_co_qsig_co_DummyArg_PDU);
+ return offset;
+}
+static int dissect_qsig_co_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_co_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_co_qsig_co_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_co_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_co_qsig_co_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_dnd_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_dnd_sequenceOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_dnd_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_dnd_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_DummyArg_choice[] = {
+ { 0, &hf_qsig_dnd_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_NULL },
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_DummyArg_choice, hf_index, ett_qsig_dnd_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_DummyRes_choice[] = {
+ { 0, &hf_qsig_dnd_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_NULL },
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_DummyRes_choice, hf_index, ett_qsig_dnd_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_T_argumentExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_T_argumentExtension_choice[] = {
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_argumentExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_T_argumentExtension_choice, hf_index, ett_qsig_dnd_T_argumentExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_DNDActivateArg_sequence[] = {
+ { &hf_qsig_dnd_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_dnd_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_dnd_argumentExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_dnd_T_argumentExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DNDActivateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_DNDActivateArg_sequence, hf_index, ett_qsig_dnd_DNDActivateArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_DNDProtectionLevel_vals[] = {
+ { 0, "lowProtection" },
+ { 1, "mediumProtection" },
+ { 2, "highProtection" },
+ { 3, "fullProtection" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_dnd_DNDProtectionLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_T_status_item_sequence[] = {
+ { &hf_qsig_dnd_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_dnd_dndProtectionLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_DNDProtectionLevel },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_status_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_T_status_item_sequence, hf_index, ett_qsig_dnd_T_status_item);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_T_status_set_of[1] = {
+ { &hf_qsig_dnd_status_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_T_status_item },
+};
+
+static int
+dissect_qsig_dnd_T_status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_T_status_set_of, hf_index, ett_qsig_dnd_T_status);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_T_resultExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_T_resultExtension_choice[] = {
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_resultExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_T_resultExtension_choice, hf_index, ett_qsig_dnd_T_resultExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_DNDActivateRes_sequence[] = {
+ { &hf_qsig_dnd_status , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_T_status },
+ { &hf_qsig_dnd_resultExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_dnd_T_resultExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DNDActivateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_DNDActivateRes_sequence, hf_index, ett_qsig_dnd_DNDActivateRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_T_argumentExtension_01_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_T_argumentExtension_01_choice[] = {
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_argumentExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_T_argumentExtension_01_choice, hf_index, ett_qsig_dnd_T_argumentExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_DNDDeactivateArg_sequence[] = {
+ { &hf_qsig_dnd_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_dnd_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_dnd_argumentExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_dnd_T_argumentExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DNDDeactivateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_DNDDeactivateArg_sequence, hf_index, ett_qsig_dnd_DNDDeactivateArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_T_argumentExtension_02_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_T_argumentExtension_02_choice[] = {
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_argumentExtension_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_T_argumentExtension_02_choice, hf_index, ett_qsig_dnd_T_argumentExtension_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_DNDInterrogateArg_sequence[] = {
+ { &hf_qsig_dnd_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_dnd_argumentExtension_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_dnd_T_argumentExtension_02 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DNDInterrogateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_DNDInterrogateArg_sequence, hf_index, ett_qsig_dnd_DNDInterrogateArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_T_status_item_01_sequence[] = {
+ { &hf_qsig_dnd_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_dnd_dndProtectionLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_DNDProtectionLevel },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_status_item_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_T_status_item_01_sequence, hf_index, ett_qsig_dnd_T_status_item_01);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_T_status_01_set_of[1] = {
+ { &hf_qsig_dnd_status_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_T_status_item_01 },
+};
+
+static int
+dissect_qsig_dnd_T_status_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_T_status_01_set_of, hf_index, ett_qsig_dnd_T_status_01);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_T_resultExtension_01_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_T_resultExtension_01_choice[] = {
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_resultExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_T_resultExtension_01_choice, hf_index, ett_qsig_dnd_T_resultExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_DNDInterrogateRes_sequence[] = {
+ { &hf_qsig_dnd_status_01 , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_T_status_01 },
+ { &hf_qsig_dnd_resultExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_dnd_T_resultExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DNDInterrogateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_DNDInterrogateRes_sequence, hf_index, ett_qsig_dnd_DNDInterrogateRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_DNDOCapabilityLevel_vals[] = {
+ { 1, "overrideLowProt" },
+ { 2, "overrideMediumProt" },
+ { 3, "overrideHighProt" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_dnd_DNDOCapabilityLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_T_argumentExtension_03_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_T_argumentExtension_03_choice[] = {
+ { 1, &hf_qsig_dnd_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_dnd_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_dnd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_argumentExtension_03(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_T_argumentExtension_03_choice, hf_index, ett_qsig_dnd_T_argumentExtension_03,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_DNDOverrideArg_sequence[] = {
+ { &hf_qsig_dnd_dndoCapabilityLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_DNDOCapabilityLevel },
+ { &hf_qsig_dnd_argumentExtension_03, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_dnd_T_argumentExtension_03 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_DNDOverrideArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_DNDOverrideArg_sequence, hf_index, ett_qsig_dnd_DNDOverrideArg);
+
+ return offset;
+}
+
+
+static const asn_namedbit qsig_dnd_ServiceList_bits[] = {
+ { 1, &hf_qsig_dnd_ServiceList_dndo_low, -1, -1, "dndo-low", NULL },
+ { 2, &hf_qsig_dnd_ServiceList_dndo_medium, -1, -1, "dndo-medium", NULL },
+ { 3, &hf_qsig_dnd_ServiceList_dndo_high, -1, -1, "dndo-high", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_qsig_dnd_ServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_ServiceList_bits, hf_index, ett_qsig_dnd_ServiceList,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_T_extendedServiceList_sequence[] = {
+ { &hf_qsig_dnd_serviceList, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_ServiceList },
+ { &hf_qsig_dnd_extension , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_extendedServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_T_extendedServiceList_sequence, hf_index, ett_qsig_dnd_T_extendedServiceList);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_PathRetainArg_vals[] = {
+ { 0, "serviceList" },
+ { 1, "extendedServiceList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_PathRetainArg_choice[] = {
+ { 0, &hf_qsig_dnd_serviceList, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_ServiceList },
+ { 1, &hf_qsig_dnd_extendedServiceList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_T_extendedServiceList },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_PathRetainArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_PathRetainArg_choice, hf_index, ett_qsig_dnd_PathRetainArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_dnd_T_extendedServiceList_01_sequence[] = {
+ { &hf_qsig_dnd_serviceList, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_ServiceList },
+ { &hf_qsig_dnd_extension , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_T_extendedServiceList_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_dnd_T_extendedServiceList_01_sequence, hf_index, ett_qsig_dnd_T_extendedServiceList_01);
+
+ return offset;
+}
+
+
+static const value_string qsig_dnd_ServiceAvailableArg_vals[] = {
+ { 0, "serviceList" },
+ { 1, "extendedServiceList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_dnd_ServiceAvailableArg_choice[] = {
+ { 0, &hf_qsig_dnd_serviceList, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_ServiceList },
+ { 1, &hf_qsig_dnd_extendedServiceList_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_dnd_T_extendedServiceList_01 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_dnd_ServiceAvailableArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_dnd_ServiceAvailableArg_choice, hf_index, ett_qsig_dnd_ServiceAvailableArg,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_dnd_DNDActivateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DNDActivateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DNDActivateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DNDActivateRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DNDActivateRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DNDActivateRes_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DNDDeactivateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DNDDeactivateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DNDDeactivateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DNDInterrogateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DNDInterrogateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DNDInterrogateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DNDInterrogateRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DNDInterrogateRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DNDInterrogateRes_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DNDOverrideArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DNDOverrideArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DNDOverrideArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_PathRetainArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_PathRetainArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_PathRetainArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_ServiceAvailableArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_ServiceAvailableArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_ServiceAvailableArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_dnd_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_DummyArg_PDU);
+ return offset;
+}
+static int dissect_qsig_dnd_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_dnd_qsig_dnd_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+
+static const asn_namedbit qsig_ci_ServiceList_bits[] = {
+ { 4, &hf_qsig_ci_ServiceList_ci_low, -1, -1, "ci-low", NULL },
+ { 5, &hf_qsig_ci_ServiceList_ci_medium, -1, -1, "ci-medium", NULL },
+ { 6, &hf_qsig_ci_ServiceList_ci_high, -1, -1, "ci-high", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_qsig_ci_ServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_ServiceList_bits, hf_index, ett_qsig_ci_ServiceList,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ci_T_extendedServiceList_sequence[] = {
+ { &hf_qsig_ci_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_ServiceList },
+ { &hf_qsig_ci_extension , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_T_extendedServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_T_extendedServiceList_sequence, hf_index, ett_qsig_ci_T_extendedServiceList);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_PathRetainArg_vals[] = {
+ { 0, "serviceList" },
+ { 1, "extendedServiceList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_PathRetainArg_choice[] = {
+ { 0, &hf_qsig_ci_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_ServiceList },
+ { 1, &hf_qsig_ci_extendedServiceList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_T_extendedServiceList },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_PathRetainArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_PathRetainArg_choice, hf_index, ett_qsig_ci_PathRetainArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ci_T_extendedServiceList_01_sequence[] = {
+ { &hf_qsig_ci_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_ServiceList },
+ { &hf_qsig_ci_extension , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_T_extendedServiceList_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_T_extendedServiceList_01_sequence, hf_index, ett_qsig_ci_T_extendedServiceList_01);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_ServiceAvailableArg_vals[] = {
+ { 0, "serviceList" },
+ { 1, "extendedServiceList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_ServiceAvailableArg_choice[] = {
+ { 0, &hf_qsig_ci_serviceList , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_ServiceList },
+ { 1, &hf_qsig_ci_extendedServiceList_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_T_extendedServiceList_01 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_ServiceAvailableArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_ServiceAvailableArg_choice, hf_index, ett_qsig_ci_ServiceAvailableArg,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_ci_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ci_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_ci_sequenceOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_ci_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_ci_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_DummyArg_choice[] = {
+ { 0, &hf_qsig_ci_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_NULL },
+ { 1, &hf_qsig_ci_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ci_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ci_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_DummyArg_choice, hf_index, ett_qsig_ci_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_DummyRes_choice[] = {
+ { 0, &hf_qsig_ci_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_NULL },
+ { 1, &hf_qsig_ci_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ci_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ci_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_DummyRes_choice, hf_index, ett_qsig_ci_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_CICapabilityLevel_vals[] = {
+ { 1, "intrusionLowProt" },
+ { 2, "intrusionMediumProt" },
+ { 3, "intrusionHighProt" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_ci_CICapabilityLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_T_argumentExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_T_argumentExtension_choice[] = {
+ { 1, &hf_qsig_ci_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ci_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ci_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_T_argumentExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_T_argumentExtension_choice, hf_index, ett_qsig_ci_T_argumentExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ci_CIRequestArg_sequence[] = {
+ { &hf_qsig_ci_ciCapabilityLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_CICapabilityLevel },
+ { &hf_qsig_ci_argumentExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ci_T_argumentExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_CIRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_CIRequestArg_sequence, hf_index, ett_qsig_ci_CIRequestArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_CIUnwantedUserStatus_vals[] = {
+ { 0, "unwantedUserIntruded" },
+ { 1, "unwantedUserIsolated" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_ci_CIUnwantedUserStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_T_resultExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_T_resultExtension_choice[] = {
+ { 1, &hf_qsig_ci_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ci_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ci_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_T_resultExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_T_resultExtension_choice, hf_index, ett_qsig_ci_T_resultExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ci_CIRequestRes_sequence[] = {
+ { &hf_qsig_ci_ciUnwantedUserStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_CIUnwantedUserStatus },
+ { &hf_qsig_ci_resultExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ci_T_resultExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_CIRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_CIRequestRes_sequence, hf_index, ett_qsig_ci_CIRequestRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_CIProtectionLevel_vals[] = {
+ { 0, "lowProtection" },
+ { 1, "mediumProtection" },
+ { 2, "highProtection" },
+ { 3, "fullProtection" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_ci_CIProtectionLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ci_T_resultExtension_01_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ci_T_resultExtension_01_choice[] = {
+ { 1, &hf_qsig_ci_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ci_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ci_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_T_resultExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ci_T_resultExtension_01_choice, hf_index, ett_qsig_ci_T_resultExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ci_CIGetCIPLRes_sequence[] = {
+ { &hf_qsig_ci_ciProtectionLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_ci_CIProtectionLevel },
+ { &hf_qsig_ci_resultExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ci_T_resultExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ci_CIGetCIPLRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ci_CIGetCIPLRes_sequence, hf_index, ett_qsig_ci_CIGetCIPLRes);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_ci_PathRetainArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_PathRetainArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_PathRetainArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_ServiceAvailableArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_ServiceAvailableArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_ServiceAvailableArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_CIRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_CIRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_CIRequestArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_CIRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_CIRequestRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_CIRequestRes_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_DummyArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_CIGetCIPLRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_CIGetCIPLRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_CIGetCIPLRes_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ci_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_ci_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ci_qsig_ci_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_aoc_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_ChargedItem_vals[] = {
+ { 0, "basicCommunication" },
+ { 1, "callAttempt" },
+ { 2, "callSetup" },
+ { 3, "userToUserInfo" },
+ { 4, "operationOfSupplementaryServ" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_ChargedItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_aoc_Currency(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_aoc_CurrencyAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_Multiplier_vals[] = {
+ { 0, "oneThousandth" },
+ { 1, "oneHundredth" },
+ { 2, "oneTenth" },
+ { 3, "one" },
+ { 4, "ten" },
+ { 5, "hundred" },
+ { 6, "thousand" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_Multiplier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_Amount_sequence[] = {
+ { &hf_qsig_aoc_currencyAmount, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_CurrencyAmount },
+ { &hf_qsig_aoc_multiplier , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Multiplier },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_Amount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_Amount_sequence, hf_index, ett_qsig_aoc_Amount);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_ChargingType_vals[] = {
+ { 0, "continuousCharging" },
+ { 1, "stepFunction" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_ChargingType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_aoc_LengthOfTimeUnit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_Scale_vals[] = {
+ { 0, "oneHundredthSecond" },
+ { 1, "oneTenthSecond" },
+ { 2, "oneSecond" },
+ { 3, "tenSeconds" },
+ { 4, "oneMinute" },
+ { 5, "oneHour" },
+ { 6, "twentyFourHours" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_Scale(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_Time_sequence[] = {
+ { &hf_qsig_aoc_lengthOfTimeUnit, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_LengthOfTimeUnit },
+ { &hf_qsig_aoc_scale , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Scale },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_Time_sequence, hf_index, ett_qsig_aoc_Time);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_DurationCurrency_sequence[] = {
+ { &hf_qsig_aoc_dCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Currency },
+ { &hf_qsig_aoc_dAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Amount },
+ { &hf_qsig_aoc_dChargingType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_ChargingType },
+ { &hf_qsig_aoc_dTime , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Time },
+ { &hf_qsig_aoc_dGranularity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Time },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_DurationCurrency(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_DurationCurrency_sequence, hf_index, ett_qsig_aoc_DurationCurrency);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_FlatRateCurrency_sequence[] = {
+ { &hf_qsig_aoc_fRCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Currency },
+ { &hf_qsig_aoc_fRAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Amount },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_FlatRateCurrency(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_FlatRateCurrency_sequence, hf_index, ett_qsig_aoc_FlatRateCurrency);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_VolumeUnit_vals[] = {
+ { 0, "octet" },
+ { 1, "segment" },
+ { 2, "message" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_VolumeUnit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_VolumeRateCurrency_sequence[] = {
+ { &hf_qsig_aoc_vRCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Currency },
+ { &hf_qsig_aoc_vRAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Amount },
+ { &hf_qsig_aoc_vRVolumeUnit, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_VolumeUnit },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_VolumeRateCurrency(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_VolumeRateCurrency_sequence, hf_index, ett_qsig_aoc_VolumeRateCurrency);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_aoc_SpecialChargingCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_rateType_vals[] = {
+ { 0, "durationCurrency" },
+ { 1, "flatRateCurrency" },
+ { 2, "volumeRateCurrency" },
+ { 3, "specialChargingCode" },
+ { 4, "freeOfCharge" },
+ { 5, "currencyInfoNotAvailable" },
+ { 6, "freeOfChargefromBeginning" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_rateType_choice[] = {
+ { 0, &hf_qsig_aoc_durationCurrency, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_DurationCurrency },
+ { 1, &hf_qsig_aoc_flatRateCurrency, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_FlatRateCurrency },
+ { 2, &hf_qsig_aoc_volumeRateCurrency, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_VolumeRateCurrency },
+ { 3, &hf_qsig_aoc_specialChargingCode, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_SpecialChargingCode },
+ { 4, &hf_qsig_aoc_freeOfCharge, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 5, &hf_qsig_aoc_currencyInfoNotAvailable, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 6, &hf_qsig_aoc_freeOfChargefromBeginning, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_rateType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_rateType_choice, hf_index, ett_qsig_aoc_T_rateType,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AOCSCurrencyInfo_sequence[] = {
+ { &hf_qsig_aoc_chargedItem, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_ChargedItem },
+ { &hf_qsig_aoc_rateType , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_rateType },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AOCSCurrencyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AOCSCurrencyInfo_sequence, hf_index, ett_qsig_aoc_AOCSCurrencyInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AOCSCurrencyInfoList_sequence_of[1] = {
+ { &hf_qsig_aoc_AOCSCurrencyInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_AOCSCurrencyInfo },
+};
+
+static int
+dissect_qsig_aoc_AOCSCurrencyInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AOCSCurrencyInfoList_sequence_of, hf_index, ett_qsig_aoc_AOCSCurrencyInfoList);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_aocRate_vals[] = {
+ { 0, "chargeNotAvailable" },
+ { 1, "aocSCurrencyInfoList" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_aocRate_choice[] = {
+ { 0, &hf_qsig_aoc_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_NULL },
+ { 1, &hf_qsig_aoc_aocSCurrencyInfoList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_AOCSCurrencyInfoList },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_aocRate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_aocRate_choice, hf_index, ett_qsig_aoc_T_aocRate,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_aoc_multipleExtension_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_aoc_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_aoc_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_rateArgExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_rateArgExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_rateArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_rateArgExtension_choice, hf_index, ett_qsig_aoc_T_rateArgExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AocRateArg_sequence[] = {
+ { &hf_qsig_aoc_aocRate , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_aocRate },
+ { &hf_qsig_aoc_rateArgExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_rateArgExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AocRateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AocRateArg_sequence, hf_index, ett_qsig_aoc_AocRateArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_RecordedCurrency_sequence[] = {
+ { &hf_qsig_aoc_rCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Currency },
+ { &hf_qsig_aoc_rAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_Amount },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_RecordedCurrency(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_RecordedCurrency_sequence, hf_index, ett_qsig_aoc_RecordedCurrency);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_InterimBillingId_vals[] = {
+ { 0, "normalCharging" },
+ { 2, "creditCardCharging" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_InterimBillingId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_T_specificCurrency_sequence[] = {
+ { &hf_qsig_aoc_recordedCurrency, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_RecordedCurrency },
+ { &hf_qsig_aoc_interimBillingId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_aoc_InterimBillingId },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_specificCurrency(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_T_specificCurrency_sequence, hf_index, ett_qsig_aoc_T_specificCurrency);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_interimCharge_vals[] = {
+ { 0, "chargeNotAvailable" },
+ { 1, "freeOfCharge" },
+ { 2, "specificCurrency" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_interimCharge_choice[] = {
+ { 0, &hf_qsig_aoc_chargeNotAvailable, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 1, &hf_qsig_aoc_freeOfCharge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 2, &hf_qsig_aoc_specificCurrency, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_T_specificCurrency },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_interimCharge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_interimCharge_choice, hf_index, ett_qsig_aoc_T_interimCharge,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_interimArgExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_interimArgExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_interimArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_interimArgExtension_choice, hf_index, ett_qsig_aoc_T_interimArgExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AocInterimArg_sequence[] = {
+ { &hf_qsig_aoc_interimCharge, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_interimCharge },
+ { &hf_qsig_aoc_interimArgExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_interimArgExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AocInterimArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AocInterimArg_sequence, hf_index, ett_qsig_aoc_AocInterimArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_FinalBillingId_vals[] = {
+ { 0, "normalCharging" },
+ { 2, "creditCardCharging" },
+ { 3, "callForwardingUnconditional" },
+ { 4, "callForwardingBusy" },
+ { 5, "callForwardingNoReply" },
+ { 6, "callDeflection" },
+ { 7, "callTransfer" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_FinalBillingId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_T_specificCurrency_01_sequence[] = {
+ { &hf_qsig_aoc_recordedCurrency, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_RecordedCurrency },
+ { &hf_qsig_aoc_finalBillingId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_aoc_FinalBillingId },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_specificCurrency_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_T_specificCurrency_01_sequence, hf_index, ett_qsig_aoc_T_specificCurrency_01);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_finalCharge_vals[] = {
+ { 0, "chargeNotAvailable" },
+ { 1, "freeOfCharge" },
+ { 2, "specificCurrency" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_finalCharge_choice[] = {
+ { 0, &hf_qsig_aoc_chargeNotAvailable, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 1, &hf_qsig_aoc_freeOfCharge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_NULL },
+ { 2, &hf_qsig_aoc_specificCurrency_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_T_specificCurrency_01 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_finalCharge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_finalCharge_choice, hf_index, ett_qsig_aoc_T_finalCharge,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_aoc_ChargeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_ChargingAssociation_vals[] = {
+ { 0, "chargeNumber" },
+ { 1, "chargeIdentifier" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_ChargingAssociation_choice[] = {
+ { 0, &hf_qsig_aoc_chargeNumber, BER_CLASS_CON, 0, 0, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_aoc_chargeIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_ChargeIdentifier },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_ChargingAssociation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_ChargingAssociation_choice, hf_index, ett_qsig_aoc_ChargingAssociation,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_finalArgExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_finalArgExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_finalArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_finalArgExtension_choice, hf_index, ett_qsig_aoc_T_finalArgExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AocFinalArg_sequence[] = {
+ { &hf_qsig_aoc_finalCharge, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_finalCharge },
+ { &hf_qsig_aoc_chargingAssociation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_ChargingAssociation },
+ { &hf_qsig_aoc_finalArgExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_finalArgExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AocFinalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AocFinalArg_sequence, hf_index, ett_qsig_aoc_AocFinalArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_AdviceModeCombination_vals[] = {
+ { 0, "rate" },
+ { 1, "rateInterim" },
+ { 2, "rateFinal" },
+ { 3, "interim" },
+ { 4, "final" },
+ { 5, "interimFinal" },
+ { 6, "rateInterimFinal" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_AdviceModeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination_sequence_of[1] = {
+ { &hf_qsig_aoc_adviceModeCombinations_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_AdviceModeCombination },
+};
+
+static int
+dissect_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination_sequence_of, hf_index, ett_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_chargeReqArgExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_chargeReqArgExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_chargeReqArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_chargeReqArgExtension_choice, hf_index, ett_qsig_aoc_T_chargeReqArgExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_ChargeRequestArg_sequence[] = {
+ { &hf_qsig_aoc_adviceModeCombinations, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination },
+ { &hf_qsig_aoc_chargeReqArgExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_chargeReqArgExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_ChargeRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_ChargeRequestArg_sequence, hf_index, ett_qsig_aoc_ChargeRequestArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_chargeReqResExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_chargeReqResExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_chargeReqResExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_chargeReqResExtension_choice, hf_index, ett_qsig_aoc_T_chargeReqResExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_ChargeRequestRes_sequence[] = {
+ { &hf_qsig_aoc_adviceModeCombination, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_AdviceModeCombination },
+ { &hf_qsig_aoc_chargeReqResExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_chargeReqResExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_ChargeRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_ChargeRequestRes_sequence, hf_index, ett_qsig_aoc_ChargeRequestRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_DummyArg_vals[] = {
+ { 0, "none" },
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_DummyArg_choice[] = {
+ { 0, &hf_qsig_aoc_none , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_NULL },
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_DummyArg_choice, hf_index, ett_qsig_aoc_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_completeArgExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_completeArgExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_completeArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_completeArgExtension_choice, hf_index, ett_qsig_aoc_T_completeArgExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AocCompleteArg_sequence[] = {
+ { &hf_qsig_aoc_chargedUser, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_aoc_chargingAssociation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_ChargingAssociation },
+ { &hf_qsig_aoc_completeArgExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_completeArgExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AocCompleteArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AocCompleteArg_sequence, hf_index, ett_qsig_aoc_AocCompleteArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_ChargingOption_vals[] = {
+ { 0, "aocFreeOfCharge" },
+ { 1, "aocContinueCharging" },
+ { 2, "aocStopCharging" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_ChargingOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_completeResExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_completeResExtension_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_completeResExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_completeResExtension_choice, hf_index, ett_qsig_aoc_T_completeResExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AocCompleteRes_sequence[] = {
+ { &hf_qsig_aoc_chargingOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_ChargingOption },
+ { &hf_qsig_aoc_completeResExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_completeResExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AocCompleteRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AocCompleteRes_sequence, hf_index, ett_qsig_aoc_AocCompleteRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_DiversionType_vals[] = {
+ { 0, "callForwardingUnconditional" },
+ { 1, "callForwardingBusy" },
+ { 2, "callForwardingNoReply" },
+ { 3, "callDeflection" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_aoc_DiversionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_aoc_T_aocDivChargeReqArgExt_vals[] = {
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_aoc_T_aocDivChargeReqArgExt_choice[] = {
+ { 1, &hf_qsig_aoc_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_aoc_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_aoc_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_T_aocDivChargeReqArgExt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_aoc_T_aocDivChargeReqArgExt_choice, hf_index, ett_qsig_aoc_T_aocDivChargeReqArgExt,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_aoc_AocDivChargeReqArg_sequence[] = {
+ { &hf_qsig_aoc_divertingUser, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_aoc_chargingAssociation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_ChargingAssociation },
+ { &hf_qsig_aoc_diversionType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_aoc_DiversionType },
+ { &hf_qsig_aoc_aocDivChargeReqArgExt, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_aoc_T_aocDivChargeReqArgExt },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_aoc_AocDivChargeReqArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_aoc_AocDivChargeReqArg_sequence, hf_index, ett_qsig_aoc_AocDivChargeReqArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_aoc_AocRateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_AocRateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_AocRateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_AocInterimArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_AocInterimArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_AocInterimArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_AocFinalArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_AocFinalArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_AocFinalArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_ChargeRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_ChargeRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_ChargeRequestArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_ChargeRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_ChargeRequestRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_ChargeRequestRes_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_DummyArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_AocCompleteArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_AocCompleteArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_AocCompleteArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_AocCompleteRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_AocCompleteRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_AocCompleteRes_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_AocDivChargeReqArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_aoc_AocDivChargeReqArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_AocDivChargeReqArg_PDU);
+ return offset;
+}
+static int dissect_qsig_aoc_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_aoc_qsig_aoc_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+
+static const ber_sequence_t qsig_re_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_re_multipleExtension_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_re_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_re_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_re_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_re_T_argumentExtension_vals[] = {
+ { 6, "extension" },
+ { 7, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_re_T_argumentExtension_choice[] = {
+ { 6, &hf_qsig_re_extension , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 7, &hf_qsig_re_multipleExtension, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_re_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_re_T_argumentExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_re_T_argumentExtension_choice, hf_index, ett_qsig_re_T_argumentExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_re_ReAlertingArg_sequence[] = {
+ { &hf_qsig_re_alertedNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_re_alertedName , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_re_argumentExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_re_T_argumentExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_re_ReAlertingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_re_ReAlertingArg_sequence, hf_index, ett_qsig_re_ReAlertingArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_re_T_argumentExtension_01_vals[] = {
+ { 6, "extension" },
+ { 7, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_re_T_argumentExtension_01_choice[] = {
+ { 6, &hf_qsig_re_extension , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 7, &hf_qsig_re_multipleExtension, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_re_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_re_T_argumentExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_re_T_argumentExtension_01_choice, hf_index, ett_qsig_re_T_argumentExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_re_ReAnswerArg_sequence[] = {
+ { &hf_qsig_re_connectedNumber, BER_CLASS_CON, 1, 0, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_re_connectedSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_re_connectedName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_re_argumentExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_re_T_argumentExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_re_ReAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_re_ReAnswerArg_sequence, hf_index, ett_qsig_re_ReAnswerArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_re_ReAlertingArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_re_ReAlertingArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_re_qsig_re_ReAlertingArg_PDU);
+ return offset;
+}
+static int dissect_qsig_re_ReAnswerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_re_ReAnswerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_re_qsig_re_ReAnswerArg_PDU);
+ return offset;
+}
+
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+
+static const value_string qsig_cint_CintCause_vals[] = {
+ { 0, "unknown" },
+ { 1, "cintBnan" },
+ { 2, "cintBus" },
+ { 3, "cintCug" },
+ { 4, "cintDnd" },
+ { 5, "cintIbd" },
+ { 6, "cintInn" },
+ { 7, "cintMob1" },
+ { 8, "cintMob2" },
+ { 9, "cintMob3" },
+ { 10, "cintNcmp" },
+ { 11, "cintNcong" },
+ { 12, "cintNre" },
+ { 13, "cintOos" },
+ { 14, "cintRrs" },
+ { 15, "cintTbnan" },
+ { 16, "cintTnre" },
+ { 17, "cintTrans" },
+ { 18, "cintUpl" },
+ { 19, "cintInvDiv" },
+ { 20, "cintHold" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_cint_CintCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cint_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cint_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_cint_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_cint_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_cint_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_cint_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_cint_CintExtension_vals[] = {
+ { 0, "none" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cint_CintExtension_choice[] = {
+ { 0, &hf_qsig_cint_none , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cint_NULL },
+ { 1, &hf_qsig_cint_single , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cint_multiple , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_cint_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cint_CintExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cint_CintExtension_choice, hf_index, ett_qsig_cint_CintExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cint_CintInformation1Arg_sequence[] = {
+ { &hf_qsig_cint_interceptionCause, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_cint_CintCause },
+ { &hf_qsig_cint_interceptedToNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_cint_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cint_CintExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cint_CintInformation1Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cint_CintInformation1Arg_sequence, hf_index, ett_qsig_cint_CintInformation1Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cint_CintInformation2Arg_sequence[] = {
+ { &hf_qsig_cint_interceptionCause, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_cint_CintCause },
+ { &hf_qsig_cint_calledNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cint_originalCalledNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cint_calledName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cint_originalCalledName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cint_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cint_CintExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cint_CintInformation2Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cint_CintInformation2Arg_sequence, hf_index, ett_qsig_cint_CintInformation2Arg);
+
+ return offset;
+}
+
+
+static const value_string qsig_cint_Condition_vals[] = {
+ { 0, "unknown" },
+ { 2, "cintBus" },
+ { 3, "cintCug" },
+ { 4, "cintDnd" },
+ { 5, "cintIbd" },
+ { 6, "cintInn" },
+ { 7, "cintMob1" },
+ { 8, "cintMob2" },
+ { 9, "cintMob3" },
+ { 10, "cintNcmp" },
+ { 11, "cintNcong" },
+ { 13, "cintOos" },
+ { 14, "cintRrs" },
+ { 17, "cintTrans" },
+ { 18, "cintUpl" },
+ { 19, "cintInvDiv" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_cint_Condition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cint_CintCondArg_sequence[] = {
+ { &hf_qsig_cint_interceptionCause_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_cint_Condition },
+ { &hf_qsig_cint_originalCalledNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedNumberUnscreened },
+ { &hf_qsig_cint_calledName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cint_originalCalledName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_cint_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cint_CintExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cint_CintCondArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cint_CintCondArg_sequence, hf_index, ett_qsig_cint_CintCondArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_cint_CintInformation1Arg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cint_CintInformation1Arg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cint_qsig_cint_CintInformation1Arg_PDU);
+ return offset;
+}
+static int dissect_qsig_cint_CintInformation2Arg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cint_CintInformation2Arg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cint_qsig_cint_CintInformation2Arg_PDU);
+ return offset;
+}
+static int dissect_qsig_cint_CintCondArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cint_CintCondArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cint_qsig_cint_CintCondArg_PDU);
+ return offset;
+}
+static int dissect_qsig_cint_CintExtension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cint_CintExtension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cint_qsig_cint_CintExtension_PDU);
+ return offset;
+}
+
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+
+static const asn_namedbit qsig_cmn_FeatureIdList_bits[] = {
+ { 0, &hf_qsig_cmn_FeatureIdList_reserved, -1, -1, "reserved", NULL },
+ { 1, &hf_qsig_cmn_FeatureIdList_ssCFreRoutingSupported, -1, -1, "ssCFreRoutingSupported", NULL },
+ { 2, &hf_qsig_cmn_FeatureIdList_ssCTreRoutingSupported, -1, -1, "ssCTreRoutingSupported", NULL },
+ { 3, &hf_qsig_cmn_FeatureIdList_ssCCBSpossible, -1, -1, "ssCCBSpossible", NULL },
+ { 4, &hf_qsig_cmn_FeatureIdList_ssCCNRpossible, -1, -1, "ssCCNRpossible", NULL },
+ { 5, &hf_qsig_cmn_FeatureIdList_ssCOsupported, -1, -1, "ssCOsupported", NULL },
+ { 6, &hf_qsig_cmn_FeatureIdList_ssCIforcedRelease, -1, -1, "ssCIforcedRelease", NULL },
+ { 7, &hf_qsig_cmn_FeatureIdList_ssCIisolation, -1, -1, "ssCIisolation", NULL },
+ { 8, &hf_qsig_cmn_FeatureIdList_ssCIwaitOnBusy, -1, -1, "ssCIwaitOnBusy", NULL },
+ { 9, &hf_qsig_cmn_FeatureIdList_ssAOCsupportChargeRateProvAtGatewPinx, -1, -1, "ssAOCsupportChargeRateProvAtGatewPinx", NULL },
+ { 10, &hf_qsig_cmn_FeatureIdList_ssAOCsupportInterimChargeProvAtGatewPinx, -1, -1, "ssAOCsupportInterimChargeProvAtGatewPinx", NULL },
+ { 11, &hf_qsig_cmn_FeatureIdList_ssAOCsupportFinalChargeProvAtGatewPinx, -1, -1, "ssAOCsupportFinalChargeProvAtGatewPinx", NULL },
+ { 12, &hf_qsig_cmn_FeatureIdList_anfPRsupportedAtCooperatingPinx, -1, -1, "anfPRsupportedAtCooperatingPinx", NULL },
+ { 13, &hf_qsig_cmn_FeatureIdList_anfCINTcanInterceptImmediate, -1, -1, "anfCINTcanInterceptImmediate", NULL },
+ { 14, &hf_qsig_cmn_FeatureIdList_anfCINTcanInterceptDelayed, -1, -1, "anfCINTcanInterceptDelayed", NULL },
+ { 15, &hf_qsig_cmn_FeatureIdList_anfWTMIreRoutingSupported, -1, -1, "anfWTMIreRoutingSupported", NULL },
+ { 16, &hf_qsig_cmn_FeatureIdList_anfPUMIreRoutingSupported, -1, -1, "anfPUMIreRoutingSupported", NULL },
+ { 17, &hf_qsig_cmn_FeatureIdList_ssSSCTreRoutingSupported, -1, -1, "ssSSCTreRoutingSupported", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_qsig_cmn_FeatureIdList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ qsig_cmn_FeatureIdList_bits, hf_index, ett_qsig_cmn_FeatureIdList,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cmn_INTEGER_0_3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cmn_IA5String_SIZE_1_10(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cmn_EquipmentId_sequence[] = {
+ { &hf_qsig_cmn_nodeId , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_IA5String_SIZE_1_10 },
+ { &hf_qsig_cmn_groupId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_IA5String_SIZE_1_10 },
+ { &hf_qsig_cmn_unitId , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_IA5String_SIZE_1_10 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cmn_EquipmentId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cmn_EquipmentId_sequence, hf_index, ett_qsig_cmn_EquipmentId);
+
+ return offset;
+}
+
+
+static const value_string qsig_cmn_PartyCategory_vals[] = {
+ { 0, "unknown" },
+ { 1, "extension" },
+ { 2, "pisnAttendant" },
+ { 3, "emergExt" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_cmn_PartyCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cmn_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_cmn_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_cmn_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_cmn_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_cmn_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_cmn_T_extension_vals[] = {
+ { 7, "single" },
+ { 8, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cmn_T_extension_choice[] = {
+ { 7, &hf_qsig_cmn_single , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 8, &hf_qsig_cmn_multiple , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_qsig_cmn_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cmn_T_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cmn_T_extension_choice, hf_index, ett_qsig_cmn_T_extension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cmn_CmnArg_sequence[] = {
+ { &hf_qsig_cmn_featureIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_FeatureIdList },
+ { &hf_qsig_cmn_ssDNDOprotectionLevel, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_INTEGER_0_3 },
+ { &hf_qsig_cmn_ssCIprotectionLevel, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_INTEGER_0_3 },
+ { &hf_qsig_cmn_equipmentIdentity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_EquipmentId },
+ { &hf_qsig_cmn_partyCategory, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cmn_PartyCategory },
+ { &hf_qsig_cmn_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cmn_T_extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cmn_CmnArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cmn_CmnArg_sequence, hf_index, ett_qsig_cmn_CmnArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cmn_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_cmn_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cmn_DummyArg_choice[] = {
+ { 0, &hf_qsig_cmn_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_cmn_NULL },
+ { 1, &hf_qsig_cmn_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cmn_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cmn_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cmn_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cmn_DummyArg_choice, hf_index, ett_qsig_cmn_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_cmn_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cmn_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cmn_qsig_cmn_DummyArg_PDU);
+ return offset;
+}
+static int dissect_qsig_cmn_CmnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cmn_CmnArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cmn_qsig_cmn_CmnArg_PDU);
+ return offset;
+}
+
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+
+static const value_string qsig_cpi_CPICapabilityLevel_vals[] = {
+ { 1, "interruptionLowPriority" },
+ { 2, "interruptionMediumPriority" },
+ { 3, "interruptionHighPriority" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_cpi_CPICapabilityLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cpi_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_cpi_sequenceOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_cpi_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_cpi_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_cpi_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_cpi_T_argumentExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cpi_T_argumentExtension_choice[] = {
+ { 1, &hf_qsig_cpi_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cpi_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cpi_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cpi_T_argumentExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cpi_T_argumentExtension_choice, hf_index, ett_qsig_cpi_T_argumentExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cpi_CPIRequestArg_sequence[] = {
+ { &hf_qsig_cpi_cpiCapabilityLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cpi_CPICapabilityLevel },
+ { &hf_qsig_cpi_argumentExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cpi_T_argumentExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cpi_CPIRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cpi_CPIRequestArg_sequence, hf_index, ett_qsig_cpi_CPIRequestArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_cpi_CPIProtectionLevel_vals[] = {
+ { 0, "noProtection" },
+ { 1, "lowProtection" },
+ { 2, "mediumProtection" },
+ { 3, "totalProtection" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_cpi_CPIProtectionLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_cpi_T_argumentExtension_01_vals[] = {
+ { 1, "extension" },
+ { 2, "sequenceOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cpi_T_argumentExtension_01_choice[] = {
+ { 1, &hf_qsig_cpi_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_cpi_sequenceOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cpi_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cpi_T_argumentExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cpi_T_argumentExtension_01_choice, hf_index, ett_qsig_cpi_T_argumentExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cpi_CPIPRequestArg_sequence[] = {
+ { &hf_qsig_cpi_cpiProtectionLevel, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cpi_CPIProtectionLevel },
+ { &hf_qsig_cpi_argumentExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cpi_T_argumentExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cpi_CPIPRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cpi_CPIPRequestArg_sequence, hf_index, ett_qsig_cpi_CPIPRequestArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_cpi_CPIRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cpi_CPIRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cpi_qsig_cpi_CPIRequestArg_PDU);
+ return offset;
+}
+static int dissect_qsig_cpi_CPIPRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cpi_CPIPRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cpi_qsig_cpi_CPIPRequestArg_PDU);
+ return offset;
+}
+
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_pumr_AlternativeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_pumUserId_vals[] = {
+ { 0, "pumNumber" },
+ { 1, "alternativeId" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_pumUserId_choice[] = {
+ { 0, &hf_qsig_pumr_pumNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_pumr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_AlternativeId },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_pumUserId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_pumUserId_choice, hf_index, ett_qsig_pumr_T_pumUserId,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_ServiceOption_vals[] = {
+ { 0, "inCallRegistration" },
+ { 1, "outCallRegistration" },
+ { 2, "allCallRegistration" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_pumr_ServiceOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pumr_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_SessionParams_sequence[] = {
+ { &hf_qsig_pumr_durationOfSession, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_pumr_INTEGER },
+ { &hf_qsig_pumr_numberOfOutgCalls, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_pumr_INTEGER },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_SessionParams(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_SessionParams_sequence, hf_index, ett_qsig_pumr_SessionParams);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pumr_UserPin(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_userPin_vals[] = {
+ { 6, "pumUserPin" },
+ { 7, "activatingUserPin" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_userPin_choice[] = {
+ { 6, &hf_qsig_pumr_pumUserPin, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_UserPin },
+ { 7, &hf_qsig_pumr_activatingUserPin, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_UserPin },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_userPin(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_userPin_choice, hf_index, ett_qsig_pumr_T_userPin,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_pumr_sequOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_pumr_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_pumr_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_PumrExtension_vals[] = {
+ { 4, "extension" },
+ { 5, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_PumrExtension_choice[] = {
+ { 4, &hf_qsig_pumr_extension , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 5, &hf_qsig_pumr_sequOfExtn, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumrExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_PumrExtension_choice, hf_index, ett_qsig_pumr_PumrExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumRegistrArg_sequence[] = {
+ { &hf_qsig_pumr_pumUserId , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_pumUserId },
+ { &hf_qsig_pumr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_pumr_hostingAddr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_activatingUserAddr, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_serviceOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_ServiceOption },
+ { &hf_qsig_pumr_sessionParams, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_SessionParams },
+ { &hf_qsig_pumr_userPin , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_userPin },
+ { &hf_qsig_pumr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_PumrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumRegistrArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumRegistrArg_sequence, hf_index, ett_qsig_pumr_PumRegistrArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumRegistrRes_sequence[] = {
+ { &hf_qsig_pumr_pumNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_serviceOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_ServiceOption },
+ { &hf_qsig_pumr_sessionParams, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_SessionParams },
+ { &hf_qsig_pumr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_PumrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumRegistrRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumRegistrRes_sequence, hf_index, ett_qsig_pumr_PumRegistrRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pumr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_DummyRes_choice[] = {
+ { 0, &hf_qsig_pumr_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_NULL },
+ { 1, &hf_qsig_pumr_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pumr_sequOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_DummyRes_choice, hf_index, ett_qsig_pumr_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_pumUserId_01_vals[] = {
+ { 0, "pumNumber" },
+ { 1, "alternativeId" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_pumUserId_01_choice[] = {
+ { 0, &hf_qsig_pumr_pumNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_pumr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_AlternativeId },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_pumUserId_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_pumUserId_01_choice, hf_index, ett_qsig_pumr_T_pumUserId_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumDelRegArg_sequence[] = {
+ { &hf_qsig_pumr_pumUserId_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_pumUserId_01 },
+ { &hf_qsig_pumr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_pumr_hostingAddr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_serviceOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_ServiceOption },
+ { &hf_qsig_pumr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_PumrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumDelRegArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumDelRegArg_sequence, hf_index, ett_qsig_pumr_PumDelRegArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_pumUserId_02_vals[] = {
+ { 0, "pumNumber" },
+ { 1, "alternativeId" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_pumUserId_02_choice[] = {
+ { 0, &hf_qsig_pumr_pumNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_pumr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_AlternativeId },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_pumUserId_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_pumUserId_02_choice, hf_index, ett_qsig_pumr_T_pumUserId_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_userPin_01_vals[] = {
+ { 6, "pumUserPin" },
+ { 7, "activatingUserPin" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_userPin_01_choice[] = {
+ { 6, &hf_qsig_pumr_pumUserPin, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_UserPin },
+ { 7, &hf_qsig_pumr_activatingUserPin, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_UserPin },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_userPin_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_userPin_01_choice, hf_index, ett_qsig_pumr_T_userPin_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumDe_regArg_sequence[] = {
+ { &hf_qsig_pumr_pumUserId_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_pumUserId_02 },
+ { &hf_qsig_pumr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_pumr_hostingAddr, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_activatingUserAddr, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_serviceOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_ServiceOption },
+ { &hf_qsig_pumr_userPin_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_userPin_01 },
+ { &hf_qsig_pumr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_PumrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumDe_regArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumDe_regArg_sequence, hf_index, ett_qsig_pumr_PumDe_regArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_pumUserId_03_vals[] = {
+ { 0, "pumNumber" },
+ { 1, "alternativeId" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_pumUserId_03_choice[] = {
+ { 0, &hf_qsig_pumr_pumNumber , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_pumr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_AlternativeId },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_pumUserId_03(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_pumUserId_03_choice, hf_index, ett_qsig_pumr_T_pumUserId_03,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pumr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumr_T_userPin_02_vals[] = {
+ { 6, "pumUserPin" },
+ { 7, "activatingUserPin" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumr_T_userPin_02_choice[] = {
+ { 6, &hf_qsig_pumr_pumUserPin, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_UserPin },
+ { 7, &hf_qsig_pumr_activatingUserPin, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_pumr_UserPin },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_T_userPin_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumr_T_userPin_02_choice, hf_index, ett_qsig_pumr_T_userPin_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumInterrogArg_sequence[] = {
+ { &hf_qsig_pumr_pumUserId_03, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_pumUserId_03 },
+ { &hf_qsig_pumr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_pumr_hostingAddr, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_activatingUserAddr, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_serviceOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_pumr_ServiceOption },
+ { &hf_qsig_pumr_homeInfoOnly, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_BOOLEAN },
+ { &hf_qsig_pumr_userPin_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_T_userPin_02 },
+ { &hf_qsig_pumr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_PumrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumInterrogArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumInterrogArg_sequence, hf_index, ett_qsig_pumr_PumInterrogArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumInterrogRes_item_sequence[] = {
+ { &hf_qsig_pumr_basicService, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_pumr_hostingAddr, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumr_serviceOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_pumr_ServiceOption },
+ { &hf_qsig_pumr_interrogParams, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_SessionParams },
+ { &hf_qsig_pumr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumr_PumrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumr_PumInterrogRes_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumInterrogRes_item_sequence, hf_index, ett_qsig_pumr_PumInterrogRes_item);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumr_PumInterrogRes_set_of[1] = {
+ { &hf_qsig_pumr_PumInterrogRes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_pumr_PumInterrogRes_item },
+};
+
+static int
+dissect_qsig_pumr_PumInterrogRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumr_PumInterrogRes_set_of, hf_index, ett_qsig_pumr_PumInterrogRes);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_pumr_PumRegistrArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_PumRegistrArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_PumRegistrArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_PumRegistrRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_PumRegistrRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_PumRegistrRes_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_PumDelRegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_PumDelRegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_PumDelRegArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_PumDe_regArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_PumDe_regArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_PumDe_regArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_PumInterrogArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_PumInterrogArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_PumInterrogArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_PumInterrogRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumr_PumInterrogRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_PumInterrogRes_PDU);
+ return offset;
+}
+static int dissect_qsig_pumr_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumr_qsig_pumr_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+
+static const ber_sequence_t qsig_pumch_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_pumch_sequOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_pumch_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_pumch_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumch_PumiExtension_vals[] = {
+ { 4, "extension" },
+ { 5, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumch_PumiExtension_choice[] = {
+ { 4, &hf_qsig_pumch_extension, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 5, &hf_qsig_pumch_sequOfExtn, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_PumiExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumch_PumiExtension_choice, hf_index, ett_qsig_pumch_PumiExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_EnquiryArg_sequence[] = {
+ { &hf_qsig_pumch_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumch_qSIGInfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_pumch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_EnquiryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_EnquiryArg_sequence, hf_index, ett_qsig_pumch_EnquiryArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pumch_AlternativeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_T_both_sequence[] = {
+ { &hf_qsig_pumch_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumch_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_pumch_AlternativeId },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_T_both(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_T_both_sequence, hf_index, ett_qsig_pumch_T_both);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumch_PumIdentity_vals[] = {
+ { 0, "pisnNumber" },
+ { 1, "alternativeId" },
+ { 2, "both" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumch_PumIdentity_choice[] = {
+ { 0, &hf_qsig_pumch_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_pumch_alternativeId, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_AlternativeId },
+ { 2, &hf_qsig_pumch_both , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_T_both },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_PumIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumch_PumIdentity_choice, hf_index, ett_qsig_pumch_PumIdentity,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_DivertArg_sequence[] = {
+ { &hf_qsig_pumch_hostingAddr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumch_callingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_pumch_pumIdentity, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumIdentity },
+ { &hf_qsig_pumch_qSIGInfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_pumch_callingUserSub, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_pumch_callingUserName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_pumch_pumUserSub, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_pumch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_DivertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_DivertArg_sequence, hf_index, ett_qsig_pumch_DivertArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_InformArg_sequence[] = {
+ { &hf_qsig_pumch_pumIdentity, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumIdentity },
+ { &hf_qsig_pumch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_InformArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_InformArg_sequence, hf_index, ett_qsig_pumch_InformArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_CurrLocation_sequence[] = {
+ { &hf_qsig_pumch_hostingAddr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumch_pumIdentity, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumIdentity },
+ { &hf_qsig_pumch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_CurrLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_CurrLocation_sequence, hf_index, ett_qsig_pumch_CurrLocation);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumch_SubscriptionOption_vals[] = {
+ { 0, "noNotification" },
+ { 1, "notificationWithoutDivertedToNr" },
+ { 2, "notificationWithDivertedToNr" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_pumch_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_CfuActivated_sequence[] = {
+ { &hf_qsig_pumch_divToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
+ { &hf_qsig_pumch_divOptions, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_pumch_SubscriptionOption },
+ { &hf_qsig_pumch_pumName , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_pumch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_CfuActivated(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_CfuActivated_sequence, hf_index, ett_qsig_pumch_CfuActivated);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumch_EnquiryRes_vals[] = {
+ { 1, "currLocation" },
+ { 2, "cfuActivated" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumch_EnquiryRes_choice[] = {
+ { 1, &hf_qsig_pumch_currLocation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_CurrLocation },
+ { 2, &hf_qsig_pumch_cfuActivated, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_CfuActivated },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_EnquiryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumch_EnquiryRes_choice, hf_index, ett_qsig_pumch_EnquiryRes,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_pumch_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumch_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumch_DummyRes_choice[] = {
+ { 0, &hf_qsig_pumch_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_pumch_NULL },
+ { 1, &hf_qsig_pumch_extension, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_pumch_sequOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumch_DummyRes_choice, hf_index, ett_qsig_pumch_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_pumch_T_extension_vals[] = {
+ { 3, "single" },
+ { 4, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_pumch_T_extension_choice[] = {
+ { 3, &hf_qsig_pumch_single , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 4, &hf_qsig_pumch_multiple , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_pumch_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_T_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_pumch_T_extension_choice, hf_index, ett_qsig_pumch_T_extension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_pumch_PumoArg_sequence[] = {
+ { &hf_qsig_pumch_destinationNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_pumch_pumIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_PumIdentity },
+ { &hf_qsig_pumch_sendingComplete, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_pumch_NULL },
+ { &hf_qsig_pumch_extension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_pumch_T_extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_pumch_PumoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_pumch_PumoArg_sequence, hf_index, ett_qsig_pumch_PumoArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_pumch_EnquiryArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumch_EnquiryArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_EnquiryArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumch_EnquiryRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumch_EnquiryRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_EnquiryRes_PDU);
+ return offset;
+}
+static int dissect_qsig_pumch_DivertArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumch_DivertArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_DivertArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumch_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumch_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_pumch_InformArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumch_InformArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_InformArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumch_PumoArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_pumch_PumoArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_PumoArg_PDU);
+ return offset;
+}
+static int dissect_qsig_pumch_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_pumch_qsig_pumch_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_ssct_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ssct_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_ssct_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_ssct_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_ssct_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_ssct_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_ssct_DummyArg_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ssct_DummyArg_choice[] = {
+ { 0, &hf_qsig_ssct_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_ssct_NULL },
+ { 1, &hf_qsig_ssct_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ssct_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ssct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_DummyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ssct_DummyArg_choice, hf_index, ett_qsig_ssct_DummyArg,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_ssct_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ssct_DummyRes_choice[] = {
+ { 0, &hf_qsig_ssct_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_ssct_NULL },
+ { 1, &hf_qsig_ssct_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_ssct_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_ssct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ssct_DummyRes_choice, hf_index, ett_qsig_ssct_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_ssct_AwaitConnect(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_ssct_T_argumentExtension_vals[] = {
+ { 4, "single" },
+ { 5, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ssct_T_argumentExtension_choice[] = {
+ { 4, &hf_qsig_ssct_single , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 5, &hf_qsig_ssct_multiple , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_ssct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_T_argumentExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ssct_T_argumentExtension_choice, hf_index, ett_qsig_ssct_T_argumentExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ssct_SSCTInitiateArg_sequence[] = {
+ { &hf_qsig_ssct_rerouteingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_ssct_transferredAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedAddressScreened },
+ { &hf_qsig_ssct_awaitConnect, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_qsig_ssct_AwaitConnect },
+ { &hf_qsig_ssct_transferredName, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_ssct_transferringAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedAddressScreened },
+ { &hf_qsig_ssct_transferringName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_ssct_argumentExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ssct_T_argumentExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_SSCTInitiateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ssct_SSCTInitiateArg_sequence, hf_index, ett_qsig_ssct_SSCTInitiateArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ssct_T_argumentExtension_01_vals[] = {
+ { 3, "single" },
+ { 4, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ssct_T_argumentExtension_01_choice[] = {
+ { 3, &hf_qsig_ssct_single , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 4, &hf_qsig_ssct_multiple , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_ssct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_T_argumentExtension_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ssct_T_argumentExtension_01_choice, hf_index, ett_qsig_ssct_T_argumentExtension_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ssct_SSCTSetupArg_sequence[] = {
+ { &hf_qsig_ssct_transferringAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedAddressScreened },
+ { &hf_qsig_ssct_transferringName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_ssct_argumentExtension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ssct_T_argumentExtension_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_SSCTSetupArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ssct_SSCTSetupArg_sequence, hf_index, ett_qsig_ssct_SSCTSetupArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_ssct_T_argumentExtension_02_vals[] = {
+ { 3, "single" },
+ { 4, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_ssct_T_argumentExtension_02_choice[] = {
+ { 3, &hf_qsig_ssct_single , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 4, &hf_qsig_ssct_multiple , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_ssct_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_T_argumentExtension_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_ssct_T_argumentExtension_02_choice, hf_index, ett_qsig_ssct_T_argumentExtension_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_ssct_SSCTDigitInfoArg_sequence[] = {
+ { &hf_qsig_ssct_reroutingNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_ssct_sendingComplete, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_ssct_NULL },
+ { &hf_qsig_ssct_argumentExtension_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_ssct_T_argumentExtension_02 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_ssct_SSCTDigitInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_ssct_SSCTDigitInfoArg_sequence, hf_index, ett_qsig_ssct_SSCTDigitInfoArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_ssct_SSCTInitiateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ssct_SSCTInitiateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ssct_qsig_ssct_SSCTInitiateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ssct_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ssct_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ssct_qsig_ssct_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_ssct_SSCTSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ssct_SSCTSetupArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ssct_qsig_ssct_SSCTSetupArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ssct_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ssct_DummyArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ssct_qsig_ssct_DummyArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ssct_SSCTDigitInfoArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_ssct_SSCTDigitInfoArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ssct_qsig_ssct_SSCTDigitInfoArg_PDU);
+ return offset;
+}
+static int dissect_qsig_ssct_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_ssct_qsig_ssct_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_wtmlr_AlternativeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmlr_WtmUserId_vals[] = {
+ { 0, "pisnNumber" },
+ { 1, "alternativeId" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmlr_WtmUserId_choice[] = {
+ { 0, &hf_qsig_wtmlr_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_wtmlr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmlr_AlternativeId },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_WtmUserId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmlr_WtmUserId_choice, hf_index, ett_qsig_wtmlr_WtmUserId,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_wtmlr_sequOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_wtmlr_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_wtmlr_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmlr_LrExtension_vals[] = {
+ { 1, "extension" },
+ { 2, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmlr_LrExtension_choice[] = {
+ { 1, &hf_qsig_wtmlr_extension, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_wtmlr_sequOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_wtmlr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_LrExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmlr_LrExtension_choice, hf_index, ett_qsig_wtmlr_LrExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_LocUpdArg_sequence[] = {
+ { &hf_qsig_wtmlr_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_WtmUserId },
+ { &hf_qsig_wtmlr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_wtmlr_visitPINX, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_LocUpdArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_LocUpdArg_sequence, hf_index, ett_qsig_wtmlr_LocUpdArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmlr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmlr_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmlr_DummyRes_choice[] = {
+ { 0, &hf_qsig_wtmlr_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmlr_NULL },
+ { 1, &hf_qsig_wtmlr_extension, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_wtmlr_sequOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_wtmlr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmlr_DummyRes_choice, hf_index, ett_qsig_wtmlr_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_LocDelArg_sequence[] = {
+ { &hf_qsig_wtmlr_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_WtmUserId },
+ { &hf_qsig_wtmlr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_LocDelArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_LocDelArg_sequence, hf_index, ett_qsig_wtmlr_LocDelArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_LocDeRegArg_sequence[] = {
+ { &hf_qsig_wtmlr_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_WtmUserId },
+ { &hf_qsig_wtmlr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_LocDeRegArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_LocDeRegArg_sequence, hf_index, ett_qsig_wtmlr_LocDeRegArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_PisnEnqArg_sequence[] = {
+ { &hf_qsig_wtmlr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmlr_AlternativeId },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_PisnEnqArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_PisnEnqArg_sequence, hf_index, ett_qsig_wtmlr_PisnEnqArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_PisnEnqRes_sequence[] = {
+ { &hf_qsig_wtmlr_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_WtmUserId },
+ { &hf_qsig_wtmlr_resExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_PisnEnqRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_PisnEnqRes_sequence, hf_index, ett_qsig_wtmlr_PisnEnqRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_GetRRCInfArg_sequence[] = {
+ { &hf_qsig_wtmlr_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_WtmUserId },
+ { &hf_qsig_wtmlr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_GetRRCInfArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_GetRRCInfArg_sequence, hf_index, ett_qsig_wtmlr_GetRRCInfArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmlr_RRClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_GetRRCInfRes_sequence[] = {
+ { &hf_qsig_wtmlr_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmlr_AlternativeId },
+ { &hf_qsig_wtmlr_rrClass , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmlr_RRClass },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_GetRRCInfRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_GetRRCInfRes_sequence, hf_index, ett_qsig_wtmlr_GetRRCInfRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_LocInfoCheckArg_sequence[] = {
+ { &hf_qsig_wtmlr_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_WtmUserId },
+ { &hf_qsig_wtmlr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { &hf_qsig_wtmlr_visitPINX, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_LocInfoCheckArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_LocInfoCheckArg_sequence, hf_index, ett_qsig_wtmlr_LocInfoCheckArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmlr_CheckResult_vals[] = {
+ { 0, "locInfChk-correct" },
+ { 1, "locInfChk-incorrect" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_wtmlr_CheckResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmlr_LocInfoCheckRes_sequence[] = {
+ { &hf_qsig_wtmlr_checkResult, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmlr_CheckResult },
+ { &hf_qsig_wtmlr_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmlr_LrExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmlr_LocInfoCheckRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmlr_LocInfoCheckRes_sequence, hf_index, ett_qsig_wtmlr_LocInfoCheckRes);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_wtmlr_LocUpdArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_LocUpdArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_LocUpdArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_LocDelArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_LocDelArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_LocDelArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_LocDeRegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_LocDeRegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_LocDeRegArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_PisnEnqArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_PisnEnqArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_PisnEnqArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_PisnEnqRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_PisnEnqRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_PisnEnqRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_GetRRCInfArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_GetRRCInfArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_GetRRCInfArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_GetRRCInfRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_GetRRCInfRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_GetRRCInfRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_LocInfoCheckArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_LocInfoCheckArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_LocInfoCheckArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_LocInfoCheckRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmlr_LocInfoCheckRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_LocInfoCheckRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmlr_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmlr_qsig_wtmlr_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+
+static const ber_sequence_t qsig_wtmch_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_wtmch_sequOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_wtmch_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_wtmch_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmch_WtmiExtension_vals[] = {
+ { 4, "extension" },
+ { 5, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmch_WtmiExtension_choice[] = {
+ { 4, &hf_qsig_wtmch_extension, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 5, &hf_qsig_wtmch_sequOfExtn, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_WtmiExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmch_WtmiExtension_choice, hf_index, ett_qsig_wtmch_WtmiExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_EnquiryArg_sequence[] = {
+ { &hf_qsig_wtmch_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmch_qSIGInfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_wtmch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_EnquiryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_EnquiryArg_sequence, hf_index, ett_qsig_wtmch_EnquiryArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmch_AlternativeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_T_both_sequence[] = {
+ { &hf_qsig_wtmch_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmch_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmch_AlternativeId },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_T_both(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_T_both_sequence, hf_index, ett_qsig_wtmch_T_both);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmch_WtmIdentity_vals[] = {
+ { 0, "pisnNumber" },
+ { 1, "alternativeId" },
+ { 2, "both" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmch_WtmIdentity_choice[] = {
+ { 0, &hf_qsig_wtmch_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_wtmch_alternativeId, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_AlternativeId },
+ { 2, &hf_qsig_wtmch_both , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_T_both },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_WtmIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmch_WtmIdentity_choice, hf_index, ett_qsig_wtmch_WtmIdentity,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_DivertArg_sequence[] = {
+ { &hf_qsig_wtmch_visitPINX, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmch_callingNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedNumberScreened },
+ { &hf_qsig_wtmch_wtmIdentity, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmIdentity },
+ { &hf_qsig_wtmch_qSIGInfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_qsig_PSS1InformationElement },
+ { &hf_qsig_wtmch_callingUserSub, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_wtmch_callingName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_wtmch_wtmUserSub, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_qsig_PartySubaddress },
+ { &hf_qsig_wtmch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_DivertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_DivertArg_sequence, hf_index, ett_qsig_wtmch_DivertArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_InformArg_sequence[] = {
+ { &hf_qsig_wtmch_wtmIdentity, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmIdentity },
+ { &hf_qsig_wtmch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_InformArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_InformArg_sequence, hf_index, ett_qsig_wtmch_InformArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_CurrLocation_sequence[] = {
+ { &hf_qsig_wtmch_visitPINX, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmch_wtmIdentity, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmIdentity },
+ { &hf_qsig_wtmch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_CurrLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_CurrLocation_sequence, hf_index, ett_qsig_wtmch_CurrLocation);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmch_SubscriptionOption_vals[] = {
+ { 0, "noNotification" },
+ { 1, "notificationWithoutDivertedToNr" },
+ { 2, "notificationWithDivertedToNr" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_wtmch_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_CfuActivated_sequence[] = {
+ { &hf_qsig_wtmch_divToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Address },
+ { &hf_qsig_wtmch_divOptions, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmch_SubscriptionOption },
+ { &hf_qsig_wtmch_wtmName , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_wtmch_argExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_WtmiExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_CfuActivated(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_CfuActivated_sequence, hf_index, ett_qsig_wtmch_CfuActivated);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmch_EnquiryRes_vals[] = {
+ { 1, "currLocation" },
+ { 2, "cfuActivated" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmch_EnquiryRes_choice[] = {
+ { 1, &hf_qsig_wtmch_currLocation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_CurrLocation },
+ { 2, &hf_qsig_wtmch_cfuActivated, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_CfuActivated },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_EnquiryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmch_EnquiryRes_choice, hf_index, ett_qsig_wtmch_EnquiryRes,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmch_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmch_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "extension" },
+ { 2, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmch_DummyRes_choice[] = {
+ { 0, &hf_qsig_wtmch_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmch_NULL },
+ { 1, &hf_qsig_wtmch_extension, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_wtmch_sequOfExtn, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmch_DummyRes_choice, hf_index, ett_qsig_wtmch_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmch_T_extension_vals[] = {
+ { 2, "single" },
+ { 3, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmch_T_extension_choice[] = {
+ { 2, &hf_qsig_wtmch_single , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 3, &hf_qsig_wtmch_multiple , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_T_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmch_T_extension_choice, hf_index, ett_qsig_wtmch_T_extension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmch_WtmoArg_sequence[] = {
+ { &hf_qsig_wtmch_destinationNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_wtmch_sendingComplete, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_wtmch_NULL },
+ { &hf_qsig_wtmch_extension_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmch_T_extension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmch_WtmoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmch_WtmoArg_sequence, hf_index, ett_qsig_wtmch_WtmoArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_wtmch_EnquiryArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmch_EnquiryArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_EnquiryArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmch_EnquiryRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmch_EnquiryRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_EnquiryRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmch_DivertArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmch_DivertArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_DivertArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmch_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmch_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmch_InformArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmch_InformArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_InformArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmch_WtmoArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmch_WtmoArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_WtmoArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmch_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmch_qsig_wtmch_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_wtmau_AlternativeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmau_WtmUserId_vals[] = {
+ { 0, "pisnNumber" },
+ { 1, "alternativeId" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmau_WtmUserId_choice[] = {
+ { 0, &hf_qsig_wtmau_pisnNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { 1, &hf_qsig_wtmau_alternativeId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AlternativeId },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtmUserId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmau_WtmUserId_choice, hf_index, ett_qsig_wtmau_WtmUserId,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_AuthChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_AuthResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_DerivedCipherKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_CalculationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_CalcWtatInfoUnit_sequence[] = {
+ { &hf_qsig_wtmau_authChallenge, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthChallenge },
+ { &hf_qsig_wtmau_authResponse, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthResponse },
+ { &hf_qsig_wtmau_derivedCipherKey, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_DerivedCipherKey },
+ { &hf_qsig_wtmau_calculationParam, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_CalculationParam },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_CalcWtatInfoUnit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_CalcWtatInfoUnit_sequence, hf_index, ett_qsig_wtmau_CalcWtatInfoUnit);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_CalcWtatInfo_sequence_of[1] = {
+ { &hf_qsig_wtmau_CalcWtatInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_CalcWtatInfoUnit },
+};
+
+static int
+dissect_qsig_wtmau_CalcWtatInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_CalcWtatInfo_sequence_of, hf_index, ett_qsig_wtmau_CalcWtatInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_wtmau_sequOfExtn_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_wtmau_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_wtmau_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmau_DummyExtension_vals[] = {
+ { 5, "extension" },
+ { 6, "sequOfExtn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmau_DummyExtension_choice[] = {
+ { 5, &hf_qsig_wtmau_extension, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 6, &hf_qsig_wtmau_sequOfExtn, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_DummyExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmau_DummyExtension_choice, hf_index, ett_qsig_wtmau_DummyExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_AuthWtmArg_sequence[] = {
+ { &hf_qsig_wtmau_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_WtmUserId },
+ { &hf_qsig_wtmau_calcWtatInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_CalcWtatInfo },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_AuthWtmArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_AuthWtmArg_sequence, hf_index, ett_qsig_wtmau_AuthWtmArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmau_T_autWtmResValue_vals[] = {
+ { 0, "auth-res-correct" },
+ { 1, "auth-res-incorrect" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_wtmau_T_autWtmResValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_AuthWtmRes_sequence[] = {
+ { &hf_qsig_wtmau_autWtmResValue, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_T_autWtmResValue },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_AuthWtmRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_AuthWtmRes_sequence, hf_index, ett_qsig_wtmau_AuthWtmRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_CanCompute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_WtatParamArg_sequence[] = {
+ { &hf_qsig_wtmau_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_WtmUserId },
+ { &hf_qsig_wtmau_canCompute, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_CanCompute },
+ { &hf_qsig_wtmau_authChallenge, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthChallenge },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtatParamArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_WtatParamArg_sequence, hf_index, ett_qsig_wtmau_WtatParamArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmau_DefinedIDs_vals[] = {
+ { 0, "ct2" },
+ { 1, "dect" },
+ { 2, "gsm" },
+ { 3, "pci" },
+ { 4, "pwt" },
+ { 5, "us-gsm" },
+ { 6, "phs" },
+ { 7, "tetra" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_wtmau_DefinedIDs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_T_param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 93 "qsig.cnf"
+
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_AuthAlgorithm_sequence[] = {
+ { &hf_qsig_wtmau_authAlg , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_DefinedIDs },
+ { &hf_qsig_wtmau_param , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_T_param },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_AuthAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_AuthAlgorithm_sequence, hf_index, ett_qsig_wtmau_AuthAlgorithm);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_AuthSessionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_AuthSessionKeyInfo_sequence[] = {
+ { &hf_qsig_wtmau_authSessionKey, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthSessionKey },
+ { &hf_qsig_wtmau_calculationParam, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_CalculationParam },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_AuthSessionKeyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_AuthSessionKeyInfo_sequence, hf_index, ett_qsig_wtmau_AuthSessionKeyInfo);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_AuthKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_wtmau_INTEGER_1_8(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmau_T_wtatParamInfoChoice_vals[] = {
+ { 1, "authSessionKeyInfo" },
+ { 2, "calcWtatInfo" },
+ { 3, "authKey" },
+ { 4, "challLen" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmau_T_wtatParamInfoChoice_choice[] = {
+ { 1, &hf_qsig_wtmau_authSessionKeyInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_AuthSessionKeyInfo },
+ { 2, &hf_qsig_wtmau_calcWtatInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_CalcWtatInfo },
+ { 3, &hf_qsig_wtmau_authKey , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_AuthKey },
+ { 4, &hf_qsig_wtmau_challLen , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_INTEGER_1_8 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_T_wtatParamInfoChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmau_T_wtatParamInfoChoice_choice, hf_index, ett_qsig_wtmau_T_wtatParamInfoChoice,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_WtatParamInfo_sequence[] = {
+ { &hf_qsig_wtmau_authAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthAlgorithm },
+ { &hf_qsig_wtmau_wtatParamInfoChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_T_wtatParamInfoChoice },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtatParamInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_WtatParamInfo_sequence, hf_index, ett_qsig_wtmau_WtatParamInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_WtatParamRes_sequence[] = {
+ { &hf_qsig_wtmau_wtatParamInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_WtatParamInfo },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtatParamRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_WtatParamRes_sequence, hf_index, ett_qsig_wtmau_WtatParamRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_WtanParamArg_sequence[] = {
+ { &hf_qsig_wtmau_wtmUserId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_WtmUserId },
+ { &hf_qsig_wtmau_authChallenge, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthChallenge },
+ { &hf_qsig_wtmau_authAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthAlgorithm },
+ { &hf_qsig_wtmau_canCompute, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_CanCompute },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtanParamArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_WtanParamArg_sequence, hf_index, ett_qsig_wtmau_WtanParamArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_CalcWtanInfo_sequence[] = {
+ { &hf_qsig_wtmau_authResponse, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_AuthResponse },
+ { &hf_qsig_wtmau_calculationParam, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_CalculationParam },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_CalcWtanInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_CalcWtanInfo_sequence, hf_index, ett_qsig_wtmau_CalcWtanInfo);
+
+ return offset;
+}
+
+
+static const value_string qsig_wtmau_WtanParamInfo_vals[] = {
+ { 1, "authSessionKeyInfo" },
+ { 2, "calcWtanInfo" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_wtmau_WtanParamInfo_choice[] = {
+ { 1, &hf_qsig_wtmau_authSessionKeyInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_AuthSessionKeyInfo },
+ { 2, &hf_qsig_wtmau_calcWtanInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_wtmau_CalcWtanInfo },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtanParamInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_wtmau_WtanParamInfo_choice, hf_index, ett_qsig_wtmau_WtanParamInfo,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_WtanParamRes_sequence[] = {
+ { &hf_qsig_wtmau_wtanParamInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_WtanParamInfo },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_WtanParamRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_WtanParamRes_sequence, hf_index, ett_qsig_wtmau_WtanParamRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_wtmau_ARG_transferAuthParam_sequence[] = {
+ { &hf_qsig_wtmau_wtatParamInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_wtmau_WtatParamInfo },
+ { &hf_qsig_wtmau_dummyExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_wtmau_DummyExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_wtmau_ARG_transferAuthParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_wtmau_ARG_transferAuthParam_sequence, hf_index, ett_qsig_wtmau_ARG_transferAuthParam);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_wtmau_AuthWtmArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_AuthWtmArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_AuthWtmArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_AuthWtmRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_AuthWtmRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_AuthWtmRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_WtatParamArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_WtatParamArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_WtatParamArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_WtatParamRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_WtatParamRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_WtatParamRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_WtanParamArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_WtanParamArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_WtanParamArg_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_WtanParamRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_WtanParamRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_WtanParamRes_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_ARG_transferAuthParam_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_wtmau_ARG_transferAuthParam(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_ARG_transferAuthParam_PDU);
+ return offset;
+}
+static int dissect_qsig_wtmau_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_wtmau_qsig_wtmau_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_sd_BMPStringNormal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sd_BMPStringExtended(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_sd_DisplayString_vals[] = {
+ { 0, "displayStringNormal" },
+ { 1, "displayStringExtended" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sd_DisplayString_choice[] = {
+ { 0, &hf_qsig_sd_displayStringNormal, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sd_BMPStringNormal },
+ { 1, &hf_qsig_sd_displayStringExtended, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_sd_BMPStringExtended },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sd_DisplayString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sd_DisplayString_choice, hf_index, ett_qsig_sd_DisplayString,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sd_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_sd_multipleExtension_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_sd_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_sd_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_sd_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_sd_SDExtension_vals[] = {
+ { 2, "extension" },
+ { 3, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sd_SDExtension_choice[] = {
+ { 2, &hf_qsig_sd_extension_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 3, &hf_qsig_sd_multipleExtension, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_sd_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sd_SDExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sd_SDExtension_choice, hf_index, ett_qsig_sd_SDExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sd_DisplayArg_sequence[] = {
+ { &hf_qsig_sd_displayString, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sd_DisplayString },
+ { &hf_qsig_sd_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sd_SDExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sd_DisplayArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sd_DisplayArg_sequence, hf_index, ett_qsig_sd_DisplayArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sd_KeypadArg_sequence[] = {
+ { &hf_qsig_sd_keypadString, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sd_BMPStringNormal },
+ { &hf_qsig_sd_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sd_SDExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sd_KeypadArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sd_KeypadArg_sequence, hf_index, ett_qsig_sd_KeypadArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_sd_DisplayArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sd_DisplayArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sd_qsig_sd_DisplayArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sd_KeypadArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sd_KeypadArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sd_qsig_sd_KeypadArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sd_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sd_qsig_sd_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_cidl_SwitchingSubDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cidl_SubDomainID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cidl_GloballyUniqueID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_cidl_T_linkageID_vals[] = {
+ { 1, "subDomainID" },
+ { 2, "globallyUniqueID" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cidl_T_linkageID_choice[] = {
+ { 1, &hf_qsig_cidl_subDomainID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_cidl_SubDomainID },
+ { 2, &hf_qsig_cidl_globallyUniqueID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_cidl_GloballyUniqueID },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cidl_T_linkageID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cidl_T_linkageID_choice, hf_index, ett_qsig_cidl_T_linkageID,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_cidl_TimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cidl_CallIdentificationData_sequence[] = {
+ { &hf_qsig_cidl_switchingSubDomainName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cidl_SwitchingSubDomainName },
+ { &hf_qsig_cidl_linkageID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cidl_T_linkageID },
+ { &hf_qsig_cidl_timeStamp , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_cidl_TimeStamp },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cidl_CallIdentificationData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cidl_CallIdentificationData_sequence, hf_index, ett_qsig_cidl_CallIdentificationData);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cidl_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_cidl_sequenceOfExt_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_cidl_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_cidl_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_cidl_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_cidl_ExtensionType_vals[] = {
+ { 3, "extension" },
+ { 4, "sequenceOfExt" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_cidl_ExtensionType_choice[] = {
+ { 3, &hf_qsig_cidl_extension_01, BER_CLASS_CON, 3, 0, dissect_qsig_Extension },
+ { 4, &hf_qsig_cidl_sequenceOfExt, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_cidl_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cidl_ExtensionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_cidl_ExtensionType_choice, hf_index, ett_qsig_cidl_ExtensionType,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cidl_CallIdentificationAssignArg_sequence[] = {
+ { &hf_qsig_cidl_globalCallID, BER_CLASS_CON, 0, 0, dissect_qsig_cidl_CallIdentificationData },
+ { &hf_qsig_cidl_threadID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_cidl_CallIdentificationData },
+ { &hf_qsig_cidl_legID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_cidl_CallIdentificationData },
+ { &hf_qsig_cidl_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cidl_ExtensionType },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cidl_CallIdentificationAssignArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cidl_CallIdentificationAssignArg_sequence, hf_index, ett_qsig_cidl_CallIdentificationAssignArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_cidl_CallIdentificationUpdateArg_sequence[] = {
+ { &hf_qsig_cidl_globalCallID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_cidl_CallIdentificationData },
+ { &hf_qsig_cidl_threadID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_cidl_CallIdentificationData },
+ { &hf_qsig_cidl_legID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_qsig_cidl_CallIdentificationData },
+ { &hf_qsig_cidl_extension , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_cidl_ExtensionType },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_cidl_CallIdentificationUpdateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_cidl_CallIdentificationUpdateArg_sequence, hf_index, ett_qsig_cidl_CallIdentificationUpdateArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_cidl_CallIdentificationAssignArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cidl_CallIdentificationAssignArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cidl_qsig_cidl_CallIdentificationAssignArg_PDU);
+ return offset;
+}
+static int dissect_qsig_cidl_CallIdentificationUpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_cidl_CallIdentificationUpdateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_cidl_qsig_cidl_CallIdentificationUpdateArg_PDU);
+ return offset;
+}
+
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_sms_MessageReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_ProtocolIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_ValidityPeriodRel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_ValidityPeriodAbs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_ValidityPeriodSemi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_EnhancedVP_vals[] = {
+ { 0, "validityPeriodRel" },
+ { 1, "validityPeriodSec" },
+ { 2, "validityPeriodSemi" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_EnhancedVP_choice[] = {
+ { 0, &hf_qsig_sms_validityPeriodRel, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ValidityPeriodRel },
+ { 1, &hf_qsig_sms_validityPeriodSec, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { 2, &hf_qsig_sms_validityPeriodSemi, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ValidityPeriodSemi },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_EnhancedVP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_EnhancedVP_choice, hf_index, ett_qsig_sms_EnhancedVP,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_ValidityPeriodEnh_sequence[] = {
+ { &hf_qsig_sms_singleShotSM, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_enhancedVP , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_EnhancedVP },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ValidityPeriodEnh(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_ValidityPeriodEnh_sequence, hf_index, ett_qsig_sms_ValidityPeriodEnh);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_ValidityPeriod_vals[] = {
+ { 0, "validityPeriodRel" },
+ { 1, "validityPeriodAbs" },
+ { 2, "validityPeriodEnh" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_ValidityPeriod_choice[] = {
+ { 0, &hf_qsig_sms_validityPeriodRel, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ValidityPeriodRel },
+ { 1, &hf_qsig_sms_validityPeriodAbs, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ValidityPeriodAbs },
+ { 2, &hf_qsig_sms_validityPeriodEnh, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ValidityPeriodEnh },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ValidityPeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_ValidityPeriod_choice, hf_index, ett_qsig_sms_ValidityPeriod,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmSubmitParameter_sequence[] = {
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_validityPeriod, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_ValidityPeriod },
+ { &hf_qsig_sms_statusReportRequest, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_replyPath , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_rejectDuplicates, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmSubmitParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmSubmitParameter_sequence, hf_index, ett_qsig_sms_SmSubmitParameter);
+
+ return offset;
+}
+
+
+static const asn_namedbit qsig_sms_SmscControlParameterHeader_bits[] = {
+ { 0, &hf_qsig_sms_SmscControlParameterHeader_sRforTransactionCompleted, -1, -1, "sRforTransactionCompleted", NULL },
+ { 1, &hf_qsig_sms_SmscControlParameterHeader_sRforPermanentError, -1, -1, "sRforPermanentError", NULL },
+ { 2, &hf_qsig_sms_SmscControlParameterHeader_sRforTempErrorSCnotTrying, -1, -1, "sRforTempErrorSCnotTrying", NULL },
+ { 3, &hf_qsig_sms_SmscControlParameterHeader_sRforTempErrorSCstillTrying, -1, -1, "sRforTempErrorSCstillTrying", NULL },
+ { 6, &hf_qsig_sms_SmscControlParameterHeader_cancelSRRforConcatenatedSM, -1, -1, "cancelSRRforConcatenatedSM", NULL },
+ { 7, &hf_qsig_sms_SmscControlParameterHeader_includeOrigUDHintoSR, -1, -1, "includeOrigUDHintoSR", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_qsig_sms_SmscControlParameterHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmscControlParameterHeader_bits, hf_index, ett_qsig_sms_SmscControlParameterHeader,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_Concatenated8BitSMHeader_sequence[] = {
+ { &hf_qsig_sms_concatenated8BitSMReferenceNumber, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { &hf_qsig_sms_maximumNumberOf8BitSMInConcatenatedSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { &hf_qsig_sms_sequenceNumberOf8BitSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_Concatenated8BitSMHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_Concatenated8BitSMHeader_sequence, hf_index, ett_qsig_sms_Concatenated8BitSMHeader);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_INTEGER_0_65536(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_Concatenated16BitSMHeader_sequence[] = {
+ { &hf_qsig_sms_concatenated16BitSMReferenceNumber, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_65536 },
+ { &hf_qsig_sms_maximumNumberOf16BitSMInConcatenatedSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { &hf_qsig_sms_sequenceNumberOf16BitSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_Concatenated16BitSMHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_Concatenated16BitSMHeader_sequence, hf_index, ett_qsig_sms_Concatenated16BitSMHeader);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_ApplicationPort8BitHeader_sequence[] = {
+ { &hf_qsig_sms_destination8BitPort, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { &hf_qsig_sms_originator8BitPort, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ApplicationPort8BitHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_ApplicationPort8BitHeader_sequence, hf_index, ett_qsig_sms_ApplicationPort8BitHeader);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_ApplicationPort16BitHeader_sequence[] = {
+ { &hf_qsig_sms_destination16BitPort, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_65536 },
+ { &hf_qsig_sms_originator16BitPort, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_65536 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ApplicationPort16BitHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_ApplicationPort16BitHeader_sequence, hf_index, ett_qsig_sms_ApplicationPort16BitHeader);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_DataHeaderSourceIndicator_vals[] = {
+ { 1, "originalSender" },
+ { 2, "originalReceiver" },
+ { 3, "sMSC" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_sms_DataHeaderSourceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_WirelessControlHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_GenericUserValue_sequence[] = {
+ { &hf_qsig_sms_parameterValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_INTEGER_0_255 },
+ { &hf_qsig_sms_genericUserData, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_OCTET_STRING },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_GenericUserValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_GenericUserValue_sequence, hf_index, ett_qsig_sms_GenericUserValue);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_UserDataHeaderChoice_vals[] = {
+ { 0, "smscControlParameterHeader" },
+ { 1, "concatenated8BitSMHeader" },
+ { 2, "concatenated16BitSMHeader" },
+ { 3, "applicationPort8BitHeader" },
+ { 4, "applicationPort16BitHeader" },
+ { 5, "dataHeaderSourceIndicator" },
+ { 6, "wirelessControlHeader" },
+ { 99, "genericUserValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_UserDataHeaderChoice_choice[] = {
+ { 0, &hf_qsig_sms_smscControlParameterHeader, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sms_SmscControlParameterHeader },
+ { 1, &hf_qsig_sms_concatenated8BitSMHeader, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_sms_Concatenated8BitSMHeader },
+ { 2, &hf_qsig_sms_concatenated16BitSMHeader, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_sms_Concatenated16BitSMHeader },
+ { 3, &hf_qsig_sms_applicationPort8BitHeader, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ApplicationPort8BitHeader },
+ { 4, &hf_qsig_sms_applicationPort16BitHeader, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ApplicationPort16BitHeader },
+ { 5, &hf_qsig_sms_dataHeaderSourceIndicator, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_qsig_sms_DataHeaderSourceIndicator },
+ { 6, &hf_qsig_sms_wirelessControlHeader, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_sms_WirelessControlHeader },
+ { 99, &hf_qsig_sms_genericUserValue, BER_CLASS_CON, 99, BER_FLAGS_IMPLTAG, dissect_qsig_sms_GenericUserValue },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_UserDataHeaderChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_UserDataHeaderChoice_choice, hf_index, ett_qsig_sms_UserDataHeaderChoice,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_UserDataHeader_sequence_of[1] = {
+ { &hf_qsig_sms_UserDataHeader_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_UserDataHeaderChoice },
+};
+
+static int
+dissect_qsig_sms_UserDataHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_UserDataHeader_sequence_of, hf_index, ett_qsig_sms_UserDataHeader);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_INTEGER_0_3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_ShortMessageTextType_vals[] = {
+ { 0, "iA5Coded" },
+ { 1, "octetCoded" },
+ { 2, "uniCoded" },
+ { 3, "compressedCoded" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_sms_ShortMessageTextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_ShortMessageTextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_ShortMessageText_sequence[] = {
+ { &hf_qsig_sms_shortMessageTextType, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ShortMessageTextType },
+ { &hf_qsig_sms_shortMessageTextData, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ShortMessageTextData },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ShortMessageText(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_ShortMessageText_sequence, hf_index, ett_qsig_sms_ShortMessageText);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_UserData_sequence[] = {
+ { &hf_qsig_sms_userDataHeader, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserDataHeader },
+ { &hf_qsig_sms_class , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_INTEGER_0_3 },
+ { &hf_qsig_sms_compressed , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_shortMessageText, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ShortMessageText },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_UserData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_UserData_sequence, hf_index, ett_qsig_sms_UserData);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_sms_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_sms_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_sms_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_SmsExtension_vals[] = {
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_SmsExtension_choice[] = {
+ { 1, &hf_qsig_sms_single , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_sms_multiple , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_sms_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_SmsExtension_choice, hf_index, ett_qsig_sms_SmsExtension,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsSubmitArg_sequence[] = {
+ { &hf_qsig_sms_destinationAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_originatingAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_messageReference, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_MessageReference },
+ { &hf_qsig_sms_smSubmitParameter, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_SmSubmitParameter },
+ { &hf_qsig_sms_userData , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsSubmitArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsSubmitArg_sequence, hf_index, ett_qsig_sms_SmsSubmitArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_ServiceCentreTimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsSubmitRes_sequence[] = {
+ { &hf_qsig_sms_serviceCentreTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ServiceCentreTimeStamp },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsSubmitRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsSubmitRes_sequence, hf_index, ett_qsig_sms_SmsSubmitRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmDeliverParameter_sequence[] = {
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_serviceCentreTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ServiceCentreTimeStamp },
+ { &hf_qsig_sms_priority , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_moreMessagesToSend, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_statusReportIndication, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_replyPath , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmDeliverParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmDeliverParameter_sequence, hf_index, ett_qsig_sms_SmDeliverParameter);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsDeliverArg_sequence[] = {
+ { &hf_qsig_sms_originatingAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_destinationAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_originatingName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { &hf_qsig_sms_smDeliverParameter, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_SmDeliverParameter },
+ { &hf_qsig_sms_userData , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsDeliverArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsDeliverArg_sequence, hf_index, ett_qsig_sms_SmsDeliverArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_ResChoiceSeq_sequence[] = {
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_UserData },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ResChoiceSeq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_ResChoiceSeq_sequence, hf_index, ett_qsig_sms_ResChoiceSeq);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_SmsDeliverResChoice_vals[] = {
+ { 0, "null" },
+ { 1, "protocolIdentifier" },
+ { 2, "userData" },
+ { 3, "resChoiceSeq" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_SmsDeliverResChoice_choice[] = {
+ { 0, &hf_qsig_sms_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_NULL },
+ { 1, &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { 2, &hf_qsig_sms_userData , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { 3, &hf_qsig_sms_resChoiceSeq, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ResChoiceSeq },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsDeliverResChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_SmsDeliverResChoice_choice, hf_index, ett_qsig_sms_SmsDeliverResChoice,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsDeliverRes_sequence[] = {
+ { &hf_qsig_sms_smsDeliverResponseChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsDeliverResChoice },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsDeliverRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsDeliverRes_sequence, hf_index, ett_qsig_sms_SmsDeliverRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_DischargeTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsStatusReportArg_sequence[] = {
+ { &hf_qsig_sms_messageReference, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_MessageReference },
+ { &hf_qsig_sms_serviceCentreTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ServiceCentreTimeStamp },
+ { &hf_qsig_sms_dischargeTime, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_DischargeTime },
+ { &hf_qsig_sms_recipientAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_recipientName, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_qsig_na_Name },
+ { &hf_qsig_sms_destinationAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_status , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_Status },
+ { &hf_qsig_sms_priority , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_moreMessagesToSend, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_statusReportQualifier, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsStatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsStatusReportArg_sequence, hf_index, ett_qsig_sms_SmsStatusReportArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_SmsStatusReportResponseChoice_vals[] = {
+ { 0, "null" },
+ { 1, "protocolIdentifier" },
+ { 2, "userData" },
+ { 3, "resChoiceSeq" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_SmsStatusReportResponseChoice_choice[] = {
+ { 0, &hf_qsig_sms_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_NULL },
+ { 1, &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { 2, &hf_qsig_sms_userData , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { 3, &hf_qsig_sms_resChoiceSeq, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_sms_ResChoiceSeq },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsStatusReportResponseChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_SmsStatusReportResponseChoice_choice, hf_index, ett_qsig_sms_SmsStatusReportResponseChoice,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsStatusReportRes_sequence[] = {
+ { &hf_qsig_sms_smsStatusReportResponseChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsStatusReportResponseChoice },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsStatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsStatusReportRes_sequence, hf_index, ett_qsig_sms_SmsStatusReportRes);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_CommandType_vals[] = {
+ { 0, "enquiry" },
+ { 1, "cancelSRR" },
+ { 2, "deletePreviouslySubmittedSM" },
+ { 3, "enableSRRrelatingToPreviouslySubmittedSM" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_sms_CommandType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_CommandData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsCommandArg_sequence[] = {
+ { &hf_qsig_sms_destinationAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_messageReference, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_MessageReference },
+ { &hf_qsig_sms_messageNumber, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_MessageReference },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_commandType, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_CommandType },
+ { &hf_qsig_sms_commandData, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_CommandData },
+ { &hf_qsig_sms_statusReportRequest, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_BOOLEAN },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsCommandArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsCommandArg_sequence, hf_index, ett_qsig_sms_SmsCommandArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_SmsCommandRes_sequence[] = {
+ { &hf_qsig_sms_serviceCentreTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ServiceCentreTimeStamp },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_SmsCommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_SmsCommandRes_sequence, hf_index, ett_qsig_sms_SmsCommandRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_ScAlertArg_sequence[] = {
+ { &hf_qsig_sms_originatingAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_sms_SmsExtension },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_ScAlertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_ScAlertArg_sequence, hf_index, ett_qsig_sms_ScAlertArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_sms_DummyRes_vals[] = {
+ { 0, "null" },
+ { 1, "smsExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_sms_DummyRes_choice[] = {
+ { 0, &hf_qsig_sms_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_NULL },
+ { 1, &hf_qsig_sms_smsExtension, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_SmsExtension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_DummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_sms_DummyRes_choice, hf_index, ett_qsig_sms_DummyRes,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_sms_FailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_PAR_smsDeliverError_sequence[] = {
+ { &hf_qsig_sms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_FailureCause },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_scAddressSaved, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_PAR_smsDeliverError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_PAR_smsDeliverError_sequence, hf_index, ett_qsig_sms_PAR_smsDeliverError);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_PAR_smsSubmitError_sequence[] = {
+ { &hf_qsig_sms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_FailureCause },
+ { &hf_qsig_sms_serviceCentreTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ServiceCentreTimeStamp },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_PAR_smsSubmitError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_PAR_smsSubmitError_sequence, hf_index, ett_qsig_sms_PAR_smsSubmitError);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_PAR_smsStatusReportError_sequence[] = {
+ { &hf_qsig_sms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_FailureCause },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { &hf_qsig_sms_scAddressSaved, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_BOOLEAN },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_PAR_smsStatusReportError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_PAR_smsStatusReportError_sequence, hf_index, ett_qsig_sms_PAR_smsStatusReportError);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_sms_PAR_smsCommandError_sequence[] = {
+ { &hf_qsig_sms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_FailureCause },
+ { &hf_qsig_sms_serviceCentreTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_qsig_sms_ServiceCentreTimeStamp },
+ { &hf_qsig_sms_protocolIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_ProtocolIdentifier },
+ { &hf_qsig_sms_userData , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_sms_UserData },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_sms_PAR_smsCommandError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_sms_PAR_smsCommandError_sequence, hf_index, ett_qsig_sms_PAR_smsCommandError);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_sms_SmsSubmitArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsSubmitArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsSubmitArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsSubmitRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsSubmitRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsSubmitRes_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsDeliverArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsDeliverArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsDeliverArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsDeliverRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsDeliverRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsDeliverRes_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsStatusReportArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsStatusReportArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsStatusReportArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsStatusReportRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsStatusReportRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsStatusReportRes_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsCommandArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsCommandArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsCommandArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsCommandRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsCommandRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsCommandRes_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_ScAlertArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_ScAlertArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_ScAlertArg_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_DummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_DummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_PAR_smsDeliverError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_PAR_smsDeliverError(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_PAR_smsDeliverError_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_PAR_smsSubmitError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_PAR_smsSubmitError(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_PAR_smsSubmitError_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_PAR_smsStatusReportError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_PAR_smsStatusReportError(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_PAR_smsStatusReportError_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_PAR_smsCommandError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_PAR_smsCommandError(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_PAR_smsCommandError_PDU);
+ return offset;
+}
+static int dissect_qsig_sms_SmsExtension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_sms_SmsExtension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_sms_qsig_sms_SmsExtension_PDU);
+ return offset;
+}
+
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+
+
+static int
+dissect_qsig_mcr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcr_CallType_vals[] = {
+ { 0, "basicService" },
+ { 1, "cisc" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcr_CallType_choice[] = {
+ { 0, &hf_qsig_mcr_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_cf_BasicService },
+ { 1, &hf_qsig_mcr_cisc , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_NULL },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_CallType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcr_CallType_choice, hf_index, ett_qsig_mcr_CallType,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcr_CorrelationReason_vals[] = {
+ { 0, "unknown" },
+ { 1, "mCACommunication" },
+ { 2, "cTIApplication" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_mcr_CorrelationReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcr_Correlation_sequence[] = {
+ { &hf_qsig_mcr_correlationData, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_qsig_pr_CallIdentity },
+ { &hf_qsig_mcr_correlationReason, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_CorrelationReason },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_Correlation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcr_Correlation_sequence, hf_index, ett_qsig_mcr_Correlation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcr_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_mcr_multiple_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_mcr_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcr_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_mcr_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcr_MCRExtensions_vals[] = {
+ { 0, "none" },
+ { 1, "single" },
+ { 2, "multiple" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcr_MCRExtensions_choice[] = {
+ { 0, &hf_qsig_mcr_none , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_NULL },
+ { 1, &hf_qsig_mcr_single , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_mcr_multiple , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_mcr_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_MCRExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcr_MCRExtensions_choice, hf_index, ett_qsig_mcr_MCRExtensions,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcr_MCRequestArg_sequence[] = {
+ { &hf_qsig_mcr_callType , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcr_CallType },
+ { &hf_qsig_mcr_retainOrigCall, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_BOOLEAN },
+ { &hf_qsig_mcr_destinationAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedAddressUnscreened },
+ { &hf_qsig_mcr_requestingAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedAddressUnscreened },
+ { &hf_qsig_mcr_cooperatingAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedAddressUnscreened },
+ { &hf_qsig_mcr_correlation, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_Correlation },
+ { &hf_qsig_mcr_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcr_MCRExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_MCRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcr_MCRequestArg_sequence, hf_index, ett_qsig_mcr_MCRequestArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcr_MCRequestResult_sequence[] = {
+ { &hf_qsig_mcr_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcr_MCRExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_MCRequestResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcr_MCRequestResult_sequence, hf_index, ett_qsig_mcr_MCRequestResult);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcr_MCInformArg_sequence[] = {
+ { &hf_qsig_mcr_requestingAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedAddressUnscreened },
+ { &hf_qsig_mcr_cooperatingAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_qsig_PresentedAddressUnscreened },
+ { &hf_qsig_mcr_correlation, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_Correlation },
+ { &hf_qsig_mcr_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcr_MCRExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_MCInformArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcr_MCInformArg_sequence, hf_index, ett_qsig_mcr_MCInformArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcr_MCAlertingArg_sequence[] = {
+ { &hf_qsig_mcr_correlation, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcr_Correlation },
+ { &hf_qsig_mcr_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcr_MCRExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcr_MCAlertingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcr_MCAlertingArg_sequence, hf_index, ett_qsig_mcr_MCAlertingArg);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_mcr_MCRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcr_MCRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcr_qsig_mcr_MCRequestArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcr_MCRequestResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcr_MCRequestResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcr_qsig_mcr_MCRequestResult_PDU);
+ return offset;
+}
+static int dissect_qsig_mcr_MCInformArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcr_MCInformArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcr_qsig_mcr_MCInformArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcr_MCAlertingArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcr_MCAlertingArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcr_qsig_mcr_MCAlertingArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcr_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcr_qsig_mcr_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+
+
+static int
+dissect_qsig_mcm_INTEGER_0_65535(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_NumericString_SIZE_1_10(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_MsgCentreId_vals[] = {
+ { 0, "integer" },
+ { 1, "partyNumber" },
+ { 2, "numericString" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_MsgCentreId_choice[] = {
+ { 0, &hf_qsig_mcm_integer , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_INTEGER_0_65535 },
+ { 1, &hf_qsig_mcm_partyNumber, BER_CLASS_CON, 1, 0, dissect_qsig_PartyNumber },
+ { 2, &hf_qsig_mcm_numericString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_NumericString_SIZE_1_10 },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MsgCentreId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_MsgCentreId_choice, hf_index, ett_qsig_mcm_MsgCentreId,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_PartyInfo_sequence[] = {
+ { &hf_qsig_mcm_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_messageCentreID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MsgCentreId },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_PartyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_PartyInfo_sequence, hf_index, ett_qsig_mcm_PartyInfo);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_MessageType_vals[] = {
+ { 0, "allServices" },
+ { 1, "speech" },
+ { 2, "unrestrictedDigitalInformation" },
+ { 3, "audio3100Hz" },
+ { 32, "telephony" },
+ { 33, "teletex" },
+ { 34, "telefaxGroup4Class1" },
+ { 35, "videotextSyntaxBased" },
+ { 36, "videotelephony" },
+ { 37, "telefaxGroup2-3" },
+ { 38, "reservedNotUsed1" },
+ { 39, "reservedNotUsed2" },
+ { 40, "reservedNotUsed3" },
+ { 41, "reservedNotUsed4" },
+ { 42, "reservedNotUsed5" },
+ { 51, "email" },
+ { 52, "video" },
+ { 53, "fileTransfer" },
+ { 54, "shortMessageService" },
+ { 55, "speechAndVideo" },
+ { 56, "speechAndFax" },
+ { 57, "speechAndEmail" },
+ { 58, "videoAndFax" },
+ { 59, "videoAndEmail" },
+ { 60, "faxAndEmail" },
+ { 61, "speechVideoAndFax" },
+ { 62, "speechVideoAndEmail" },
+ { 63, "speechFaxAndEmail" },
+ { 64, "videoFaxAndEmail" },
+ { 65, "speechVideoFaxAndEmail" },
+ { 66, "multimediaUnknown" },
+ { 67, "serviceUnknown" },
+ { 68, "futureReserve1" },
+ { 69, "futureReserve2" },
+ { 70, "futureReserve3" },
+ { 71, "futureReserve4" },
+ { 72, "futureReserve5" },
+ { 73, "futureReserve6" },
+ { 74, "futureReserve7" },
+ { 75, "futureReserve8" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_mcm_MessageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_INTEGER_0_100(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MailboxFullPar_sequence[] = {
+ { &hf_qsig_mcm_messageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_capacityReached, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_INTEGER_0_100 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MailboxFullPar(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MailboxFullPar_sequence, hf_index, ett_qsig_mcm_MailboxFullPar);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MailboxFullFor_sequence_of[1] = {
+ { &hf_qsig_mcm_MailboxFullFor_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MailboxFullPar },
+};
+
+static int
+dissect_qsig_mcm_MailboxFullFor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MailboxFullFor_sequence_of, hf_index, ett_qsig_mcm_MailboxFullFor);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_mcm_multipleExtension_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_mcm_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_mcm_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_MCMExtensions_vals[] = {
+ { 0, "none" },
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_MCMExtensions_choice[] = {
+ { 0, &hf_qsig_mcm_none , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_NULL },
+ { 1, &hf_qsig_mcm_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_mcm_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_MCMExtensions_choice, hf_index, ett_qsig_mcm_MCMExtensions,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMailboxFullArg_sequence[] = {
+ { &hf_qsig_mcm_partyInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_PartyInfo },
+ { &hf_qsig_mcm_mailboxFullFor, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MailboxFullFor },
+ { &hf_qsig_mcm_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MCMExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMailboxFullArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMailboxFullArg_sequence, hf_index, ett_qsig_mcm_MCMailboxFullArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_MCMMode_vals[] = {
+ { 0, "compressed" },
+ { 1, "complete" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_qsig_mcm_MCMMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMServiceInfo_sequence[] = {
+ { &hf_qsig_mcm_messageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_mCMModeNew , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_MCMMode },
+ { &hf_qsig_mcm_mCMModeRetrieved, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_MCMMode },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMServiceInfo_sequence, hf_index, ett_qsig_mcm_MCMServiceInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_SEQUENCE_OF_MCMServiceInfo_sequence_of[1] = {
+ { &hf_qsig_mcm_activateMCM_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MCMServiceInfo },
+};
+
+static int
+dissect_qsig_mcm_SEQUENCE_OF_MCMServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_SEQUENCE_OF_MCMServiceInfo_sequence_of, hf_index, ett_qsig_mcm_SEQUENCE_OF_MCMServiceInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_SEQUENCE_OF_MessageType_sequence_of[1] = {
+ { &hf_qsig_mcm_deactivateMCM_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+};
+
+static int
+dissect_qsig_mcm_SEQUENCE_OF_MessageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_SEQUENCE_OF_MessageType_sequence_of, hf_index, ett_qsig_mcm_SEQUENCE_OF_MessageType);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_MCMChange_vals[] = {
+ { 0, "activateMCM" },
+ { 1, "deactivateMCM" },
+ { 2, "setToDefaultValues" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_MCMChange_choice[] = {
+ { 0, &hf_qsig_mcm_activateMCM, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_MCMServiceInfo },
+ { 1, &hf_qsig_mcm_deactivateMCM, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_MessageType },
+ { 2, &hf_qsig_mcm_setToDefaultValues, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_NULL },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_MCMChange_choice, hf_index, ett_qsig_mcm_MCMChange,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMServiceArg_sequence[] = {
+ { &hf_qsig_mcm_partyInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_PartyInfo },
+ { &hf_qsig_mcm_mCMChange , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MCMChange },
+ { &hf_qsig_mcm_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MCMExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMServiceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMServiceArg_sequence, hf_index, ett_qsig_mcm_MCMServiceArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMInterrogateArg_sequence[] = {
+ { &hf_qsig_mcm_partyInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_PartyInfo },
+ { &hf_qsig_mcm_interrogateInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_SEQUENCE_OF_MessageType },
+ { &hf_qsig_mcm_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MCMExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMInterrogateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMInterrogateArg_sequence, hf_index, ett_qsig_mcm_MCMInterrogateArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMInterrogateRes_sequence[] = {
+ { &hf_qsig_mcm_interrogateResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_SEQUENCE_OF_MCMServiceInfo },
+ { &hf_qsig_mcm_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MCMExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMInterrogateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMInterrogateRes_sequence, hf_index, ett_qsig_mcm_MCMInterrogateRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_NrOfMessages(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_TimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_INTEGER_0_9(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_T_argumentExt_vals[] = {
+ { 6, "extension" },
+ { 7, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_T_argumentExt_choice[] = {
+ { 6, &hf_qsig_mcm_extension , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 7, &hf_qsig_mcm_multipleExtension, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_T_argumentExt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_T_argumentExt_choice, hf_index, ett_qsig_mcm_T_argumentExt,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMNewMsgArg_sequence[] = {
+ { &hf_qsig_mcm_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_specificMessageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_msgCentreId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MsgCentreId },
+ { &hf_qsig_mcm_nrOfMessages, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_NrOfMessages },
+ { &hf_qsig_mcm_originatingNr, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_timestamp , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_TimeStamp },
+ { &hf_qsig_mcm_priority , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_INTEGER_0_9 },
+ { &hf_qsig_mcm_argumentExt, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_T_argumentExt },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMNewMsgArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMNewMsgArg_sequence, hf_index, ett_qsig_mcm_MCMNewMsgArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_T_argumentExt_01_vals[] = {
+ { 3, "extension" },
+ { 4, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_T_argumentExt_01_choice[] = {
+ { 3, &hf_qsig_mcm_extension , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 4, &hf_qsig_mcm_multipleExtension, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_T_argumentExt_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_T_argumentExt_01_choice, hf_index, ett_qsig_mcm_T_argumentExt_01,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMNoNewMsgArg_sequence[] = {
+ { &hf_qsig_mcm_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_specificMessageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_msgCentreId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MsgCentreId },
+ { &hf_qsig_mcm_argumentExt_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_T_argumentExt_01 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMNoNewMsgArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMNoNewMsgArg_sequence, hf_index, ett_qsig_mcm_MCMNoNewMsgArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_AddressHeader_sequence[] = {
+ { &hf_qsig_mcm_originatorNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_timeStamp , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_TimeStamp },
+ { &hf_qsig_mcm_priority_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_Priority },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_AddressHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_AddressHeader_sequence, hf_index, ett_qsig_mcm_AddressHeader);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_CompleteInfo_sequence_of[1] = {
+ { &hf_qsig_mcm_CompleteInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_AddressHeader },
+};
+
+static int
+dissect_qsig_mcm_CompleteInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_CompleteInfo_sequence_of, hf_index, ett_qsig_mcm_CompleteInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_CompressedInfo_sequence[] = {
+ { &hf_qsig_mcm_nrOfMessages, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_NrOfMessages },
+ { &hf_qsig_mcm_lastTimeStamp, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_TimeStamp },
+ { &hf_qsig_mcm_highestPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_Priority },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_CompressedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_CompressedInfo_sequence, hf_index, ett_qsig_mcm_CompressedInfo);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_MessageInfo_vals[] = {
+ { 0, "completeInfo" },
+ { 1, "compressedInfo" },
+ { 2, "noMsgsOfMsgType" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_MessageInfo_choice[] = {
+ { 0, &hf_qsig_mcm_completeInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_CompleteInfo },
+ { 1, &hf_qsig_mcm_compressedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_CompressedInfo },
+ { 2, &hf_qsig_mcm_noMsgsOfMsgType, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_NULL },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MessageInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_MessageInfo_choice, hf_index, ett_qsig_mcm_MessageInfo,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_AllMsgInfo_sequence[] = {
+ { &hf_qsig_mcm_newMsgInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MessageInfo },
+ { &hf_qsig_mcm_retrievedMsgInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MessageInfo },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_AllMsgInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_AllMsgInfo_sequence, hf_index, ett_qsig_mcm_AllMsgInfo);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_UpdateInfo_vals[] = {
+ { 0, "newMsgInfoOnly" },
+ { 1, "retrievedMsgInfoOnly" },
+ { 2, "allMsgInfo" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_UpdateInfo_choice[] = {
+ { 0, &hf_qsig_mcm_newMsgInfoOnly, BER_CLASS_CON, 1, 0, dissect_qsig_mcm_MessageInfo },
+ { 1, &hf_qsig_mcm_retrievedMsgInfoOnly, BER_CLASS_CON, 2, 0, dissect_qsig_mcm_MessageInfo },
+ { 2, &hf_qsig_mcm_allMsgInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_AllMsgInfo },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_UpdateInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_UpdateInfo_choice, hf_index, ett_qsig_mcm_UpdateInfo,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMUpdateArg_sequence[] = {
+ { &hf_qsig_mcm_partyInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_PartyInfo },
+ { &hf_qsig_mcm_messageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_updateInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_UpdateInfo },
+ { &hf_qsig_mcm_moreInfoFollows, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_BOOLEAN },
+ { &hf_qsig_mcm_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MCMExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMUpdateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMUpdateArg_sequence, hf_index, ett_qsig_mcm_MCMUpdateArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_T_argumentExt_02_vals[] = {
+ { 3, "extension" },
+ { 4, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_T_argumentExt_02_choice[] = {
+ { 3, &hf_qsig_mcm_extension , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 4, &hf_qsig_mcm_multipleExtension, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_T_argumentExt_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_T_argumentExt_02_choice, hf_index, ett_qsig_mcm_T_argumentExt_02,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMUpdateReqArg_sequence[] = {
+ { &hf_qsig_mcm_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_specificMessageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_msgCentreId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MsgCentreId },
+ { &hf_qsig_mcm_argumentExt_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_T_argumentExt_02 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMUpdateReqArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMUpdateReqArg_sequence, hf_index, ett_qsig_mcm_MCMUpdateReqArg);
+
+ return offset;
+}
+
+
+static const value_string qsig_mcm_T_argumentExt_03_vals[] = {
+ { 6, "extension" },
+ { 7, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mcm_T_argumentExt_03_choice[] = {
+ { 6, &hf_qsig_mcm_extension , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 7, &hf_qsig_mcm_multipleExtension, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_qsig_mcm_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_T_argumentExt_03(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mcm_T_argumentExt_03_choice, hf_index, ett_qsig_mcm_T_argumentExt_03,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMUpdateReqResElt_sequence[] = {
+ { &hf_qsig_mcm_specificMessageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mcm_msgCentreId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_MsgCentreId },
+ { &hf_qsig_mcm_nrOfMessages, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_NrOfMessages },
+ { &hf_qsig_mcm_originatingNr, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_qsig_PartyNumber },
+ { &hf_qsig_mcm_timestamp , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_TimeStamp },
+ { &hf_qsig_mcm_priority , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qsig_mcm_INTEGER_0_9 },
+ { &hf_qsig_mcm_argumentExt_03, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mcm_T_argumentExt_03 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mcm_MCMUpdateReqResElt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMUpdateReqResElt_sequence, hf_index, ett_qsig_mcm_MCMUpdateReqResElt);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mcm_MCMUpdateReqRes_sequence_of[1] = {
+ { &hf_qsig_mcm_MCMUpdateReqRes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MCMUpdateReqResElt },
+};
+
+static int
+dissect_qsig_mcm_MCMUpdateReqRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mcm_MCMUpdateReqRes_sequence_of, hf_index, ett_qsig_mcm_MCMUpdateReqRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mcm_MCMDummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_qsig_mcm_MCMExtensions(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_mcm_MCMNewMsgArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMNewMsgArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMNewMsgArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMDummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMDummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMDummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMNoNewMsgArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMNoNewMsgArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMNoNewMsgArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMUpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMUpdateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMUpdateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMUpdateReqArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMUpdateReqArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMUpdateReqArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMUpdateReqRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMUpdateReqRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMUpdateReqRes_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMServiceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMServiceArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMServiceArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMInterrogateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMInterrogateArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMInterrogateArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMInterrogateRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMInterrogateRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMInterrogateRes_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_MCMailboxFullArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mcm_MCMailboxFullArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_MCMailboxFullArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mcm_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mcm_qsig_mcm_Extension_PDU);
+ return offset;
+}
+
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+
+static const ber_sequence_t qsig_mid_PartyInfo_sequence[] = {
+ { &hf_qsig_mid_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_PresentedAddressUnscreened },
+ { &hf_qsig_mid_messageType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MessageType },
+ { &hf_qsig_mid_messageCentreID, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_qsig_mcm_MsgCentreId },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mid_PartyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mid_PartyInfo_sequence, hf_index, ett_qsig_mid_PartyInfo);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mid_BMPString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_BMPString,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mid_UTF8String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string qsig_mid_String_vals[] = {
+ { 0, "stringBmp" },
+ { 1, "stringUtf8" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mid_String_choice[] = {
+ { 0, &hf_qsig_mid_stringBmp , BER_CLASS_UNI, BER_UNI_TAG_BMPString, BER_FLAGS_NOOWNTAG, dissect_qsig_mid_BMPString },
+ { 1, &hf_qsig_mid_stringUtf8 , BER_CLASS_UNI, BER_UNI_TAG_UTF8String, BER_FLAGS_NOOWNTAG, dissect_qsig_mid_UTF8String },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mid_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mid_String_choice, hf_index, ett_qsig_mid_String,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mid_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mid_SEQUENCE_OF_Extension_sequence_of[1] = {
+ { &hf_qsig_mid_multipleExtension_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_Extension },
+};
+
+static int
+dissect_qsig_mid_SEQUENCE_OF_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ qsig_mid_SEQUENCE_OF_Extension_sequence_of, hf_index, ett_qsig_mid_SEQUENCE_OF_Extension);
+
+ return offset;
+}
+
+
+static const value_string qsig_mid_MIDExtensions_vals[] = {
+ { 0, "none" },
+ { 1, "extension" },
+ { 2, "multipleExtension" },
+ { 0, NULL }
+};
+
+static const ber_choice_t qsig_mid_MIDExtensions_choice[] = {
+ { 0, &hf_qsig_mid_none , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_qsig_mid_NULL },
+ { 1, &hf_qsig_mid_extension , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_qsig_Extension },
+ { 2, &hf_qsig_mid_multipleExtension, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_qsig_mid_SEQUENCE_OF_Extension },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mid_MIDExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ qsig_mid_MIDExtensions_choice, hf_index, ett_qsig_mid_MIDExtensions,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mid_MIDMailboxAuthArg_sequence[] = {
+ { &hf_qsig_mid_partyInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mid_PartyInfo },
+ { &hf_qsig_mid_servedUserName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { &hf_qsig_mid_mailBox , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qsig_mid_String },
+ { &hf_qsig_mid_password , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mid_String },
+ { &hf_qsig_mid_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mid_MIDExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mid_MIDMailboxAuthArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mid_MIDMailboxAuthArg_sequence, hf_index, ett_qsig_mid_MIDMailboxAuthArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t qsig_mid_MIDMailboxIDArg_sequence[] = {
+ { &hf_qsig_mid_partyInfo , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_qsig_mid_PartyInfo },
+ { &hf_qsig_mid_servedUserName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_qsig_na_Name },
+ { &hf_qsig_mid_mailBox , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mid_String },
+ { &hf_qsig_mid_extensions , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_qsig_mid_MIDExtensions },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_qsig_mid_MIDMailboxIDArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ qsig_mid_MIDMailboxIDArg_sequence, hf_index, ett_qsig_mid_MIDMailboxIDArg);
+
+ return offset;
+}
+
+
+
+static int
+dissect_qsig_mid_MIDDummyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_qsig_mid_MIDExtensions(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static int dissect_qsig_mid_MIDMailboxAuthArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mid_MIDMailboxAuthArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mid_qsig_mid_MIDMailboxAuthArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mid_MIDDummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mid_MIDDummyRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mid_qsig_mid_MIDDummyRes_PDU);
+ return offset;
+}
+static int dissect_qsig_mid_MIDMailboxIDArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_mid_MIDMailboxIDArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mid_qsig_mid_MIDMailboxIDArg_PDU);
+ return offset;
+}
+static int dissect_qsig_mid_Extension_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_qsig_Extension(FALSE, tvb, offset, &asn1_ctx, tree, hf_qsig_mid_qsig_mid_Extension_PDU);
return offset;
}
/*--- End of included file: packet-qsig-fn.c ---*/
-#line 441 "packet-qsig-template.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 },
+#line 321 "packet-qsig-template.c"
+
+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[] = {
+
+/*--- Included file: packet-qsig-table11.c ---*/
+#line 1 "packet-qsig-table11.c"
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list OPERATION */
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+ /* callingName */ { 0, dissect_qsig_na_NameArg_PDU, NULL },
+ /* calledName */ { 1, dissect_qsig_na_NameArg_PDU, NULL },
+ /* connectedName */ { 2, dissect_qsig_na_NameArg_PDU, NULL },
+ /* busyName */ { 3, dissect_qsig_na_NameArg_PDU, NULL },
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+ /* activateDiversionQ */ { 15, dissect_qsig_cf_ARG_activateDiversionQ_PDU, dissect_qsig_cf_RES_activateDiversionQ_PDU },
+ /* deactivateDiversionQ */ { 16, dissect_qsig_cf_ARG_deactivateDiversionQ_PDU, dissect_qsig_cf_RES_deactivateDiversionQ_PDU },
+ /* interrogateDiversionQ */ { 17, dissect_qsig_cf_ARG_interrogateDiversionQ_PDU, dissect_qsig_cf_IntResultList_PDU },
+ /* checkRestriction */ { 18, dissect_qsig_cf_ARG_checkRestriction_PDU, dissect_qsig_cf_RES_checkRestriction_PDU },
+ /* callRerouteing */ { 19, dissect_qsig_cf_ARG_callRerouteing_PDU, dissect_qsig_cf_RES_callRerouteing_PDU },
+ /* divertingLegInformation1 */ { 20, dissect_qsig_cf_ARG_divertingLegInformation1_PDU, NULL },
+ /* divertingLegInformation2 */ { 21, dissect_qsig_cf_ARG_divertingLegInformation2_PDU, NULL },
+ /* divertingLegInformation3 */ { 22, dissect_qsig_cf_ARG_divertingLegInformation3_PDU, NULL },
+ /* cfnrDivertedLegFailed */ { 23, dissect_qsig_cf_ARG_cfnrDivertedLegFailed_PDU, NULL },
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+ /* pathReplaceInvite */ { 86, dissect_qsig_pr_DummyArg_PDU, NULL },
+ /* pathReplacePropose */ { 4, dissect_qsig_pr_PRProposeArg_PDU, NULL },
+ /* pathReplaceSetup */ { 5, dissect_qsig_pr_PRSetupArg_PDU, dissect_qsig_pr_DummyResult_PDU },
+ /* pathReplaceRetain */ { 6, dissect_qsig_pr_PRRetainArg_PDU, dissect_qsig_pr_DummyResult_PDU },
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ /* callTransferIdentify */ { 7, dissect_qsig_ct_DummyArg_PDU, dissect_qsig_ct_CTIdentifyRes_PDU },
+ /* callTransferAbandon */ { 8, dissect_qsig_ct_DummyArg_PDU, NULL },
+ /* callTransferInitiate */ { 9, dissect_qsig_ct_CTInitiateArg_PDU, dissect_qsig_ct_DummyRes_PDU },
+ /* callTransferSetup */ { 10, dissect_qsig_ct_CTSetupArg_PDU, dissect_qsig_ct_DummyRes_PDU },
+ /* callTransferActive */ { 11, dissect_qsig_ct_CTActiveArg_PDU, NULL },
+ /* callTransferComplete */ { 12, dissect_qsig_ct_CTCompleteArg_PDU, NULL },
+ /* callTransferUpdate */ { 13, dissect_qsig_ct_CTUpdateArg_PDU, NULL },
+ /* subaddressTransfer */ { 14, dissect_qsig_ct_SubaddressTransferArg_PDU, NULL },
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+ /* ccbsRequest */ { 40, dissect_qsig_cc_CcRequestArg_PDU, dissect_qsig_cc_CcRequestRes_PDU },
+ /* ccnrRequest */ { 27, dissect_qsig_cc_CcRequestArg_PDU, dissect_qsig_cc_CcRequestRes_PDU },
+ /* ccCancel */ { 28, dissect_qsig_cc_CcOptionalArg_PDU, NULL },
+ /* ccExecPossible */ { 29, dissect_qsig_cc_CcOptionalArg_PDU, NULL },
+ /* ccPathReserve */ { 30, dissect_qsig_cc_CcExtension_PDU, dissect_qsig_cc_CcExtension_PDU },
+ /* ccRingout */ { 31, dissect_qsig_cc_CcExtension_PDU, NULL },
+ /* ccSuspend */ { 32, dissect_qsig_cc_CcExtension_PDU, NULL },
+ /* ccResume */ { 33, dissect_qsig_cc_CcExtension_PDU, NULL },
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+ /* pathRetain */ { 41, dissect_qsig_co_PathRetainArg_PDU, NULL },
+ /* serviceAvailable */ { 42, dissect_qsig_co_ServiceAvailableArg_PDU, NULL },
+ /* callOfferRequest */ { 34, dissect_qsig_co_DummyArg_PDU, dissect_qsig_co_DummyRes_PDU },
+ /* cfbOverride */ { 49, dissect_qsig_co_DummyArg_PDU, NULL },
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+ /* doNotDisturbActivateQ */ { 35, dissect_qsig_dnd_DNDActivateArg_PDU, dissect_qsig_dnd_DNDActivateRes_PDU },
+ /* doNotDisturbDeactivateQ */ { 36, dissect_qsig_dnd_DNDDeactivateArg_PDU, dissect_qsig_dnd_DummyRes_PDU },
+ /* doNotDisturbInterrogateQ */ { 37, dissect_qsig_dnd_DNDInterrogateArg_PDU, dissect_qsig_dnd_DNDInterrogateRes_PDU },
+ /* doNotDisturbOverrideQ */ { 38, dissect_qsig_dnd_DNDOverrideArg_PDU, NULL },
+ /* pathRetain */ { 41, dissect_qsig_dnd_PathRetainArg_PDU, NULL },
+ /* serviceAvailable */ { 42, dissect_qsig_dnd_ServiceAvailableArg_PDU, NULL },
+ /* doNotDisturbOvrExecuteQ */ { 39, dissect_qsig_dnd_DummyArg_PDU, dissect_qsig_dnd_DummyRes_PDU },
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+ /* pathRetain */ { 41, dissect_qsig_ci_PathRetainArg_PDU, NULL },
+ /* serviceAvailable */ { 42, dissect_qsig_ci_ServiceAvailableArg_PDU, NULL },
+ /* callIntrusionRequest */ { 43, dissect_qsig_ci_CIRequestArg_PDU, dissect_qsig_ci_CIRequestRes_PDU },
+ /* callIntrusionGetCIPL */ { 44, dissect_qsig_ci_DummyArg_PDU, dissect_qsig_ci_CIGetCIPLRes_PDU },
+ /* callIntrusionForcedRelease */ { 46, dissect_qsig_ci_DummyArg_PDU, dissect_qsig_ci_DummyRes_PDU },
+ /* callIntrusionIsolate */ { 45, dissect_qsig_ci_DummyArg_PDU, dissect_qsig_ci_DummyRes_PDU },
+ /* callIntrusionWOBRequest */ { 47, dissect_qsig_ci_DummyArg_PDU, dissect_qsig_ci_DummyRes_PDU },
+ /* callIntrusionCompleted */ { 48, dissect_qsig_ci_DummyArg_PDU, NULL },
+ /* cfbOverride */ { 49, dissect_qsig_ci_DummyArg_PDU, NULL },
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+ /* aocRate */ { 63, dissect_qsig_aoc_AocRateArg_PDU, NULL },
+ /* aocInterim */ { 62, dissect_qsig_aoc_AocInterimArg_PDU, NULL },
+ /* aocFinal */ { 61, dissect_qsig_aoc_AocFinalArg_PDU, NULL },
+ /* chargeRequest */ { 59, dissect_qsig_aoc_ChargeRequestArg_PDU, dissect_qsig_aoc_ChargeRequestRes_PDU },
+ /* getFinalCharge */ { 60, dissect_qsig_aoc_DummyArg_PDU, NULL },
+ /* aocComplete */ { 64, dissect_qsig_aoc_AocCompleteArg_PDU, dissect_qsig_aoc_AocCompleteRes_PDU },
+ /* aocDivChargeReq */ { 65, dissect_qsig_aoc_AocDivChargeReqArg_PDU, NULL },
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+ /* recallAlerting */ { 57, dissect_qsig_re_ReAlertingArg_PDU, NULL },
+ /* recallAnswered */ { 58, dissect_qsig_re_ReAnswerArg_PDU, NULL },
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+ /* cintLegInformation1 */ { 66, dissect_qsig_cint_CintInformation1Arg_PDU, NULL },
+ /* cintLegInformation2 */ { 67, dissect_qsig_cint_CintInformation2Arg_PDU, NULL },
+ /* cintCondition */ { 68, dissect_qsig_cint_CintCondArg_PDU, NULL },
+ /* cintDisable */ { 69, dissect_qsig_cint_CintExtension_PDU, NULL },
+ /* cintEnable */ { 70, dissect_qsig_cint_CintExtension_PDU, NULL },
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+ /* cmnRequest */ { 84, dissect_qsig_cmn_DummyArg_PDU, dissect_qsig_cmn_CmnArg_PDU },
+ /* cmnInform */ { 85, dissect_qsig_cmn_CmnArg_PDU, NULL },
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+ /* callInterruptionRequest */ { 87, dissect_qsig_cpi_CPIRequestArg_PDU, NULL },
+ /* callProtectionRequest */ { 88, dissect_qsig_cpi_CPIPRequestArg_PDU, NULL },
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+ /* pumRegistr */ { 89, dissect_qsig_pumr_PumRegistrArg_PDU, dissect_qsig_pumr_PumRegistrRes_PDU },
+ /* pumDelReg */ { 90, dissect_qsig_pumr_PumDelRegArg_PDU, dissect_qsig_pumr_DummyRes_PDU },
+ /* pumDe-reg */ { 91, dissect_qsig_pumr_PumDe_regArg_PDU, dissect_qsig_pumr_DummyRes_PDU },
+ /* pumInterrog */ { 92, dissect_qsig_pumr_PumInterrogArg_PDU, dissect_qsig_pumr_PumInterrogRes_PDU },
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ /* pumiEnquiry */ { 93, dissect_qsig_pumch_EnquiryArg_PDU, dissect_qsig_pumch_EnquiryRes_PDU },
+ /* pumiDivert */ { 94, dissect_qsig_pumch_DivertArg_PDU, dissect_qsig_pumch_DummyRes_PDU },
+ /* pumiInform */ { 95, dissect_qsig_pumch_InformArg_PDU, NULL },
+ /* pumoCall */ { 96, dissect_qsig_pumch_PumoArg_PDU, NULL },
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ /* ssctInitiate */ { 99, dissect_qsig_ssct_SSCTInitiateArg_PDU, dissect_qsig_ssct_DummyRes_PDU },
+ /* ssctSetup */ { 100, dissect_qsig_ssct_SSCTSetupArg_PDU, NULL },
+ /* ssctPostDial */ { 101, dissect_qsig_ssct_DummyArg_PDU, NULL },
+ /* ssctDigitInfo */ { 102, dissect_qsig_ssct_SSCTDigitInfoArg_PDU, NULL },
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+ /* locUpdate */ { 50, dissect_qsig_wtmlr_LocUpdArg_PDU, dissect_qsig_wtmlr_DummyRes_PDU },
+ /* locDelete */ { 51, dissect_qsig_wtmlr_LocDelArg_PDU, dissect_qsig_wtmlr_DummyRes_PDU },
+ /* locDeReg */ { 52, dissect_qsig_wtmlr_LocDeRegArg_PDU, dissect_qsig_wtmlr_DummyRes_PDU },
+ /* pisnEnquiry */ { 53, dissect_qsig_wtmlr_PisnEnqArg_PDU, dissect_qsig_wtmlr_PisnEnqRes_PDU },
+ /* getRRCInf */ { 97, dissect_qsig_wtmlr_GetRRCInfArg_PDU, dissect_qsig_wtmlr_GetRRCInfRes_PDU },
+ /* locInfoCheck */ { 98, dissect_qsig_wtmlr_LocInfoCheckArg_PDU, dissect_qsig_wtmlr_LocInfoCheckRes_PDU },
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ /* wtmiEnquiry */ { 54, dissect_qsig_wtmch_EnquiryArg_PDU, dissect_qsig_wtmch_EnquiryRes_PDU },
+ /* wtmiDivert */ { 55, dissect_qsig_wtmch_DivertArg_PDU, dissect_qsig_wtmch_DummyRes_PDU },
+ /* wtmiInform */ { 56, dissect_qsig_wtmch_InformArg_PDU, NULL },
+ /* wtmoCall */ { 71, dissect_qsig_wtmch_WtmoArg_PDU, NULL },
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+ /* authWtmUser */ { 72, dissect_qsig_wtmau_AuthWtmArg_PDU, dissect_qsig_wtmau_AuthWtmRes_PDU },
+ /* getWtatParam */ { 73, dissect_qsig_wtmau_WtatParamArg_PDU, dissect_qsig_wtmau_WtatParamRes_PDU },
+ /* wtatParamEnq */ { 74, dissect_qsig_wtmau_WtatParamArg_PDU, dissect_qsig_wtmau_WtatParamRes_PDU },
+ /* getWtanParam */ { 75, dissect_qsig_wtmau_WtanParamArg_PDU, dissect_qsig_wtmau_WtanParamRes_PDU },
+ /* wtanParamEnq */ { 76, dissect_qsig_wtmau_WtanParamArg_PDU, dissect_qsig_wtmau_WtanParamRes_PDU },
+ /* transferAuthParam */ { 77, dissect_qsig_wtmau_ARG_transferAuthParam_PDU, NULL },
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+ /* display */ { 103, dissect_qsig_sd_DisplayArg_PDU, NULL },
+ /* keypad */ { 104, dissect_qsig_sd_KeypadArg_PDU, NULL },
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+ /* callIdentificationAssign */ { 105, dissect_qsig_cidl_CallIdentificationAssignArg_PDU, NULL },
+ /* callIdentificationUpdate */ { 106, dissect_qsig_cidl_CallIdentificationUpdateArg_PDU, NULL },
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+ /* smsSubmit */ { 107, dissect_qsig_sms_SmsSubmitArg_PDU, dissect_qsig_sms_SmsSubmitRes_PDU },
+ /* smsDeliver */ { 108, dissect_qsig_sms_SmsDeliverArg_PDU, dissect_qsig_sms_SmsDeliverRes_PDU },
+ /* smsStatusReport */ { 109, dissect_qsig_sms_SmsStatusReportArg_PDU, dissect_qsig_sms_SmsStatusReportRes_PDU },
+ /* smsCommand */ { 110, dissect_qsig_sms_SmsCommandArg_PDU, dissect_qsig_sms_SmsCommandRes_PDU },
+ /* scAlert */ { 111, dissect_qsig_sms_ScAlertArg_PDU, dissect_qsig_sms_DummyRes_PDU },
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+ /* mCRequest */ { 112, dissect_qsig_mcr_MCRequestArg_PDU, dissect_qsig_mcr_MCRequestResult_PDU },
+ /* mCInform */ { 113, dissect_qsig_mcr_MCInformArg_PDU, NULL },
+ /* mCAlerting */ { 114, dissect_qsig_mcr_MCAlertingArg_PDU, NULL },
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+ /* mCMNewMsg */ { 80, dissect_qsig_mcm_MCMNewMsgArg_PDU, dissect_qsig_mcm_MCMDummyRes_PDU },
+ /* mCMNoNewMsg */ { 81, dissect_qsig_mcm_MCMNoNewMsgArg_PDU, dissect_qsig_mcm_MCMDummyRes_PDU },
+ /* mCMUpdate */ { 115, dissect_qsig_mcm_MCMUpdateArg_PDU, dissect_qsig_mcm_MCMDummyRes_PDU },
+ /* mCMUpdateReq */ { 82, dissect_qsig_mcm_MCMUpdateReqArg_PDU, dissect_qsig_mcm_MCMUpdateReqRes_PDU },
+ /* mCMService */ { 116, dissect_qsig_mcm_MCMServiceArg_PDU, dissect_qsig_mcm_MCMDummyRes_PDU },
+ /* mCMInterrogate */ { 117, dissect_qsig_mcm_MCMInterrogateArg_PDU, dissect_qsig_mcm_MCMInterrogateRes_PDU },
+ /* mCMailboxFull */ { 118, dissect_qsig_mcm_MCMailboxFullArg_PDU, NULL },
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+ /* mIDMailboxAuth */ { 119, dissect_qsig_mid_MIDMailboxAuthArg_PDU, dissect_qsig_mid_MIDDummyRes_PDU },
+ /* mIDMailboxID */ { 120, dissect_qsig_mid_MIDMailboxIDArg_PDU, dissect_qsig_mid_MIDDummyRes_PDU },
+
+/*--- End of included file: packet-qsig-table11.c ---*/
+#line 330 "packet-qsig-template.c"
+};
+
+typedef struct _qsig_err_t {
+ gint32 errcode;
+ new_dissector_t err_pdu;
+} qsig_err_t;
+
+static const qsig_err_t qsig_err_tab[] = {
+
+/*--- Included file: packet-qsig-table21.c ---*/
+#line 1 "packet-qsig-table21.c"
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+ /* invalidDivertedToNr */ { 12, NULL },
+ /* specialServiceNr */ { 14, NULL },
+ /* diversionToServedUserNr */ { 15, NULL },
+ /* numberOfDiversionsExceeded */ { 24, NULL },
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* notAuthorized */ { 1007, NULL },
+ /* unspecified */ { 1008, dissect_qsig_cf_Extension_PDU },
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* collision */ { 1001, NULL },
+ /* criteriaPermanentlyUnachievable */ { 1002, NULL },
+ /* criteriaTemporarilyUnachievable */ { 1003, NULL },
+ /* invalidRerouteingNumber */ { 1004, NULL },
+ /* unrecognizedCallIdentity */ { 1005, NULL },
+ /* establishmentFailure */ { 1006, NULL },
+ /* unspecified */ { 1008, dissect_qsig_pr_Extension_PDU },
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_ct_Extension_PDU },
+ /* invalidRerouteingNumber */ { 1004, NULL },
+ /* unrecognizedCallIdentity */ { 1005, NULL },
+ /* establishmentFailure */ { 1006, NULL },
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_cc_Extension_PDU },
+ /* shortTermRejection */ { 1010, NULL },
+ /* longTermRejection */ { 1011, NULL },
+ /* remoteUserBusyAgain */ { 1012, NULL },
+ /* failureToMatch */ { 1013, NULL },
+ /* failedDueToInterworking */ { 1014, NULL },
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+ /* notBusy */ { 1009, NULL },
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* unspecified */ { 1008, dissect_qsig_co_Extension_PDU },
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* notActivated */ { 43, NULL },
+ /* unspecified */ { 1008, dissect_qsig_dnd_Extension_PDU },
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+ /* notBusy */ { 1009, NULL },
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* notAuthorized */ { 1007, NULL },
+ /* unspecified */ { 1008, dissect_qsig_ci_Extension_PDU },
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_aoc_Extension_PDU },
+ /* freeOfCharge */ { 1016, NULL },
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_pumr_Extension_PDU },
+ /* notAuthorized */ { 1007, NULL },
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* pumUserNotSubscribedToThisServiceOpt */ { 1019, NULL },
+ /* pumUserFailedAuthentication */ { 1020, NULL },
+ /* hostingAddrInvalid */ { 1021, NULL },
+ /* pumUserNotRegistered */ { 1022, NULL },
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ /* locationNotKnown */ { 1015, NULL },
+ /* unspecified */ { 1008, dissect_qsig_pumch_Extension_PDU },
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_ssct_Extension_PDU },
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+ /* notAuthorized */ { 1007, NULL },
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* unspecified */ { 1008, dissect_qsig_wtmlr_Extension_PDU },
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_wtmch_Extension_PDU },
+ /* locationNotKnown */ { 1015, NULL },
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+ /* notAuthorized */ { 1007, NULL },
+ /* paramNotAvailable */ { 1017, NULL },
+ /* temporarilyUnavailable */ { 1000, NULL },
+ /* unspecified */ { 1008, dissect_qsig_wtmau_Extension_PDU },
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+ /* unspecified */ { 1008, dissect_qsig_sd_Extension_PDU },
+ /* noDisplayAvailable */ { 1023, NULL },
+ /* displayTemporarilyNotAvailable */ { 1024, NULL },
+ /* notPresentable */ { 1025, NULL },
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+/* Unknown or empty loop list ERROR */
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+ /* smsDeliverError */ { 1026, dissect_qsig_sms_PAR_smsDeliverError_PDU },
+ /* smsSubmitError */ { 1027, dissect_qsig_sms_PAR_smsSubmitError_PDU },
+ /* smsStatusReportError */ { 1028, dissect_qsig_sms_PAR_smsStatusReportError_PDU },
+ /* smsCommandError */ { 1029, dissect_qsig_sms_PAR_smsCommandError_PDU },
+ /* unspecified */ { 1008, dissect_qsig_sms_SmsExtension_PDU },
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+ /* invalidDestinationNumber */ { 1030, NULL },
+ /* invalidCooperationNumber */ { 1031, NULL },
+ /* mCRequestNotAllowed */ { 1032, NULL },
+ /* mCExecutionNotAllowed */ { 1033, NULL },
+ /* mCDestUserBusy */ { 1034, NULL },
+ /* mCCoopUserBusy */ { 1035, NULL },
+ /* mCCoopUserRejected */ { 1036, NULL },
+ /* unspecified */ { 1008, dissect_qsig_mcr_Extension_PDU },
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+ /* mCMModeNotProvided */ { 1037, NULL },
+ /* unspecified */ { 1008, dissect_qsig_mcm_Extension_PDU },
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+ /* invalidMailbox */ { 1039, NULL },
+ /* authorizationFailed */ { 1040, NULL },
+ /* unspecified */ { 1008, dissect_qsig_mid_Extension_PDU },
+
+/*--- End of included file: packet-qsig-table21.c ---*/
+#line 339 "packet-qsig-template.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;
}
@@ -2048,6 +12099,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
@@ -2151,6 +12212,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_) {
@@ -2225,6 +12332,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 }},
@@ -2249,66 +12359,9 @@ void proto_register_qsig(void) {
/*--- Included file: packet-qsig-hfarr.c ---*/
#line 1 "packet-qsig-hfarr.c"
- { &hf_qsig_NameArg_PDU,
- { "NameArg", "qsig.NameArg",
- FT_UINT32, BASE_DEC, VALS(qsig_NameArg_vals), 0,
- "qsig.NameArg", HFILL }},
- { &hf_qsig_ARG_activateDiversionQ_PDU,
- { "ARG-activateDiversionQ", "qsig.ARG_activateDiversionQ",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_activateDiversionQ", HFILL }},
- { &hf_qsig_RES_activateDiversionQ_PDU,
- { "RES-activateDiversionQ", "qsig.RES_activateDiversionQ",
- FT_UINT32, BASE_DEC, VALS(qsig_RES_activateDiversionQ_vals), 0,
- "qsig.RES_activateDiversionQ", HFILL }},
- { &hf_qsig_ARG_deactivateDiversionQ_PDU,
- { "ARG-deactivateDiversionQ", "qsig.ARG_deactivateDiversionQ",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_deactivateDiversionQ", HFILL }},
- { &hf_qsig_RES_deactivateDiversionQ_PDU,
- { "RES-deactivateDiversionQ", "qsig.RES_deactivateDiversionQ",
- FT_UINT32, BASE_DEC, VALS(qsig_RES_deactivateDiversionQ_vals), 0,
- "qsig.RES_deactivateDiversionQ", HFILL }},
- { &hf_qsig_ARG_interrogateDiversionQ_PDU,
- { "ARG-interrogateDiversionQ", "qsig.ARG_interrogateDiversionQ",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_interrogateDiversionQ", HFILL }},
- { &hf_qsig_IntResultList_PDU,
- { "IntResultList", "qsig.IntResultList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "qsig.IntResultList", HFILL }},
- { &hf_qsig_ARG_checkRestriction_PDU,
- { "ARG-checkRestriction", "qsig.ARG_checkRestriction",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_checkRestriction", HFILL }},
- { &hf_qsig_RES_checkRestriction_PDU,
- { "RES-checkRestriction", "qsig.RES_checkRestriction",
- FT_UINT32, BASE_DEC, VALS(qsig_RES_checkRestriction_vals), 0,
- "qsig.RES_checkRestriction", HFILL }},
- { &hf_qsig_ARG_callRerouteing_PDU,
- { "ARG-callRerouteing", "qsig.ARG_callRerouteing",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_callRerouteing", HFILL }},
- { &hf_qsig_RES_callRerouteing_PDU,
- { "RES-callRerouteing", "qsig.RES_callRerouteing",
- FT_UINT32, BASE_DEC, VALS(qsig_RES_callRerouteing_vals), 0,
- "qsig.RES_callRerouteing", HFILL }},
- { &hf_qsig_ARG_divertingLegInformation1_PDU,
- { "ARG-divertingLegInformation1", "qsig.ARG_divertingLegInformation1",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_divertingLegInformation1", HFILL }},
- { &hf_qsig_ARG_divertingLegInformation2_PDU,
- { "ARG-divertingLegInformation2", "qsig.ARG_divertingLegInformation2",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_divertingLegInformation2", HFILL }},
- { &hf_qsig_ARG_divertingLegInformation3_PDU,
- { "ARG-divertingLegInformation3", "qsig.ARG_divertingLegInformation3",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.ARG_divertingLegInformation3", HFILL }},
- { &hf_qsig_ARG_cfnrDivertedLegFailed_PDU,
- { "ARG-cfnrDivertedLegFailed", "qsig.ARG_cfnrDivertedLegFailed",
- FT_UINT32, BASE_DEC, VALS(qsig_ARG_cfnrDivertedLegFailed_vals), 0,
- "qsig.ARG_cfnrDivertedLegFailed", HFILL }},
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
{ &hf_qsig_extensionId,
{ "extensionId", "qsig.extensionId",
FT_OID, BASE_NONE, NULL, 0,
@@ -2425,229 +12478,3076 @@ void proto_register_qsig(void) {
{ "oddCountIndicator", "qsig.oddCountIndicator",
FT_BOOLEAN, 8, NULL, 0,
"qsig.BOOLEAN", HFILL }},
- { &hf_qsig_name,
- { "name", "qsig.name",
- FT_UINT32, BASE_DEC, VALS(qsig_Name_vals), 0,
- "qsig.Name", HFILL }},
- { &hf_qsig_nameSequence,
- { "nameSequence", "qsig.nameSequence",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.T_nameSequence", HFILL }},
- { &hf_qsig_extensionNA,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_NameExtension_vals), 0,
- "qsig.NameExtension", HFILL }},
- { &hf_qsig_single,
- { "single", "qsig.single",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.Extension", HFILL }},
- { &hf_qsig_multiple,
- { "multiple", "qsig.multiple",
- FT_UINT32, BASE_DEC, NULL, 0,
- "qsig.SEQUENCE_OF_Extension", HFILL }},
- { &hf_qsig_multiple_item,
- { "Item", "qsig.multiple_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.Extension", HFILL }},
- { &hf_qsig_namePresentationAllowed,
- { "namePresentationAllowed", "qsig.namePresentationAllowed",
- FT_UINT32, BASE_DEC, VALS(qsig_NamePresentationAllowed_vals), 0,
- "qsig.NamePresentationAllowed", HFILL }},
- { &hf_qsig_namePresentationRestricted,
- { "namePresentationRestricted", "qsig.namePresentationRestricted",
- FT_UINT32, BASE_DEC, VALS(qsig_NamePresentationRestricted_vals), 0,
- "qsig.NamePresentationRestricted", HFILL }},
- { &hf_qsig_nameNotAvailable,
- { "nameNotAvailable", "qsig.nameNotAvailable",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.NameNotAvailable", HFILL }},
- { &hf_qsig_namePresentationAllowedSimple,
- { "namePresentationAllowedSimple", "qsig.namePresentationAllowedSimple",
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_na_qsig_na_NameArg_PDU,
+ { "NameArg", "qsig.na.NameArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_NameArg_vals), 0,
+ "qsig_na.NameArg", HFILL }},
+ { &hf_qsig_na_name,
+ { "name", "qsig.na.name",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_na_nameSequence,
+ { "nameSequence", "qsig.na.nameSequence",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_na.T_nameSequence", HFILL }},
+ { &hf_qsig_na_extensionNA,
+ { "extension", "qsig.na.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_NameExtension_vals), 0,
+ "qsig_na.NameExtension", HFILL }},
+ { &hf_qsig_na_single,
+ { "single", "qsig.na.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_na_multiple,
+ { "multiple", "qsig.na.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_na.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_na_multiple_item,
+ { "Item", "qsig.na.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_na_namePresentationAllowed,
+ { "namePresentationAllowed", "qsig.na.namePresentationAllowed",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_NamePresentationAllowed_vals), 0,
+ "qsig_na.NamePresentationAllowed", HFILL }},
+ { &hf_qsig_na_namePresentationRestricted,
+ { "namePresentationRestricted", "qsig.na.namePresentationRestricted",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_NamePresentationRestricted_vals), 0,
+ "qsig_na.NamePresentationRestricted", HFILL }},
+ { &hf_qsig_na_nameNotAvailable,
+ { "nameNotAvailable", "qsig.na.nameNotAvailable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_na.NameNotAvailable", HFILL }},
+ { &hf_qsig_na_namePresentationAllowedSimple,
+ { "namePresentationAllowedSimple", "qsig.na.namePresentationAllowedSimple",
FT_STRING, BASE_NONE, NULL, 0,
- "qsig.NameData", HFILL }},
- { &hf_qsig_namePresentationAllowedExtended,
- { "namePresentationAllowedExtended", "qsig.namePresentationAllowedExtended",
+ "qsig_na.NameData", HFILL }},
+ { &hf_qsig_na_namePresentationAllowedExtended,
+ { "namePresentationAllowedExtended", "qsig.na.namePresentationAllowedExtended",
FT_NONE, BASE_NONE, NULL, 0,
- "qsig.NameSet", HFILL }},
- { &hf_qsig_namePresentationRestrictedSimple,
- { "namePresentationRestrictedSimple", "qsig.namePresentationRestrictedSimple",
+ "qsig_na.NameSet", HFILL }},
+ { &hf_qsig_na_namePresentationRestrictedSimple,
+ { "namePresentationRestrictedSimple", "qsig.na.namePresentationRestrictedSimple",
FT_STRING, BASE_NONE, NULL, 0,
- "qsig.NameData", HFILL }},
- { &hf_qsig_namePresentationRestrictedExtended,
- { "namePresentationRestrictedExtended", "qsig.namePresentationRestrictedExtended",
+ "qsig_na.NameData", HFILL }},
+ { &hf_qsig_na_namePresentationRestrictedExtended,
+ { "namePresentationRestrictedExtended", "qsig.na.namePresentationRestrictedExtended",
FT_NONE, BASE_NONE, NULL, 0,
- "qsig.NameSet", HFILL }},
- { &hf_qsig_namePresentationRestrictedNull,
- { "namePresentationRestrictedNull", "qsig.namePresentationRestrictedNull",
+ "qsig_na.NameSet", HFILL }},
+ { &hf_qsig_na_namePresentationRestrictedNull,
+ { "namePresentationRestrictedNull", "qsig.na.namePresentationRestrictedNull",
FT_NONE, BASE_NONE, NULL, 0,
- "qsig.NULL", HFILL }},
- { &hf_qsig_nameData,
- { "nameData", "qsig.nameData",
+ "qsig_na.NULL", HFILL }},
+ { &hf_qsig_na_nameData,
+ { "nameData", "qsig.na.nameData",
FT_STRING, BASE_NONE, NULL, 0,
- "qsig.NameData", HFILL }},
- { &hf_qsig_characterSet,
- { "characterSet", "qsig.characterSet",
- FT_UINT32, BASE_DEC, VALS(qsig_CharacterSet_vals), 0,
- "qsig.CharacterSet", HFILL }},
- { &hf_qsig_procedure,
- { "procedure", "qsig.procedure",
- FT_UINT32, BASE_DEC, VALS(qsig_Procedure_vals), 0,
- "qsig.Procedure", HFILL }},
- { &hf_qsig_basicService,
- { "basicService", "qsig.basicService",
- FT_UINT32, BASE_DEC, VALS(qsig_BasicService_vals), 0,
- "qsig.BasicService", HFILL }},
- { &hf_qsig_divertedToAddress,
- { "divertedToAddress", "qsig.divertedToAddress",
+ "qsig_na.NameData", HFILL }},
+ { &hf_qsig_na_characterSet,
+ { "characterSet", "qsig.na.characterSet",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_CharacterSet_vals), 0,
+ "qsig_na.CharacterSet", HFILL }},
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_cf_qsig_cf_ARG_activateDiversionQ_PDU,
+ { "ARG-activateDiversionQ", "qsig.cf.ARG_activateDiversionQ",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_activateDiversionQ", HFILL }},
+ { &hf_qsig_cf_qsig_cf_RES_activateDiversionQ_PDU,
+ { "RES-activateDiversionQ", "qsig.cf.RES_activateDiversionQ",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_RES_activateDiversionQ_vals), 0,
+ "qsig_cf.RES_activateDiversionQ", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_deactivateDiversionQ_PDU,
+ { "ARG-deactivateDiversionQ", "qsig.cf.ARG_deactivateDiversionQ",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_deactivateDiversionQ", HFILL }},
+ { &hf_qsig_cf_qsig_cf_RES_deactivateDiversionQ_PDU,
+ { "RES-deactivateDiversionQ", "qsig.cf.RES_deactivateDiversionQ",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_RES_deactivateDiversionQ_vals), 0,
+ "qsig_cf.RES_deactivateDiversionQ", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_interrogateDiversionQ_PDU,
+ { "ARG-interrogateDiversionQ", "qsig.cf.ARG_interrogateDiversionQ",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_interrogateDiversionQ", HFILL }},
+ { &hf_qsig_cf_qsig_cf_IntResultList_PDU,
+ { "IntResultList", "qsig.cf.IntResultList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cf.IntResultList", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_checkRestriction_PDU,
+ { "ARG-checkRestriction", "qsig.cf.ARG_checkRestriction",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_checkRestriction", HFILL }},
+ { &hf_qsig_cf_qsig_cf_RES_checkRestriction_PDU,
+ { "RES-checkRestriction", "qsig.cf.RES_checkRestriction",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_RES_checkRestriction_vals), 0,
+ "qsig_cf.RES_checkRestriction", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_callRerouteing_PDU,
+ { "ARG-callRerouteing", "qsig.cf.ARG_callRerouteing",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_callRerouteing", HFILL }},
+ { &hf_qsig_cf_qsig_cf_RES_callRerouteing_PDU,
+ { "RES-callRerouteing", "qsig.cf.RES_callRerouteing",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_RES_callRerouteing_vals), 0,
+ "qsig_cf.RES_callRerouteing", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_divertingLegInformation1_PDU,
+ { "ARG-divertingLegInformation1", "qsig.cf.ARG_divertingLegInformation1",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_divertingLegInformation1", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_divertingLegInformation2_PDU,
+ { "ARG-divertingLegInformation2", "qsig.cf.ARG_divertingLegInformation2",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_divertingLegInformation2", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_divertingLegInformation3_PDU,
+ { "ARG-divertingLegInformation3", "qsig.cf.ARG_divertingLegInformation3",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.ARG_divertingLegInformation3", HFILL }},
+ { &hf_qsig_cf_qsig_cf_ARG_cfnrDivertedLegFailed_PDU,
+ { "ARG-cfnrDivertedLegFailed", "qsig.cf.ARG_cfnrDivertedLegFailed",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_ARG_cfnrDivertedLegFailed_vals), 0,
+ "qsig_cf.ARG_cfnrDivertedLegFailed", HFILL }},
+ { &hf_qsig_cf_qsig_cf_Extension_PDU,
+ { "Extension", "qsig.cf.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cf_procedure,
+ { "procedure", "qsig.cf.procedure",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_Procedure_vals), 0,
+ "qsig_cf.Procedure", HFILL }},
+ { &hf_qsig_cf_basicService,
+ { "basicService", "qsig.cf.basicService",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_BasicService_vals), 0,
+ "qsig_cf.BasicService", HFILL }},
+ { &hf_qsig_cf_divertedToAddress,
+ { "divertedToAddress", "qsig.cf.divertedToAddress",
FT_NONE, BASE_NONE, NULL, 0,
"qsig.Address", HFILL }},
- { &hf_qsig_servedUserNr,
- { "servedUserNr", "qsig.servedUserNr",
+ { &hf_qsig_cf_servedUserNr,
+ { "servedUserNr", "qsig.cf.servedUserNr",
FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
"qsig.PartyNumber", HFILL }},
- { &hf_qsig_activatingUserNr,
- { "activatingUserNr", "qsig.activatingUserNr",
+ { &hf_qsig_cf_activatingUserNr,
+ { "activatingUserNr", "qsig.cf.activatingUserNr",
FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
"qsig.PartyNumber", HFILL }},
- { &hf_qsig_extensionAD,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_ADExtension_vals), 0,
- "qsig.ADExtension", HFILL }},
- { &hf_qsig_null,
- { "null", "qsig.null",
+ { &hf_qsig_cf_extensionAD,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_ADExtension_vals), 0,
+ "qsig_cf.ADExtension", HFILL }},
+ { &hf_qsig_cf_single,
+ { "single", "qsig.cf.single",
FT_NONE, BASE_NONE, NULL, 0,
- "qsig.NULL", HFILL }},
- { &hf_qsig_deactivatingUserNr,
- { "deactivatingUserNr", "qsig.deactivatingUserNr",
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cf_multiple,
+ { "multiple", "qsig.cf.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cf.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_cf_multiple_item,
+ { "Item", "qsig.cf.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cf_null,
+ { "null", "qsig.cf.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.NULL", HFILL }},
+ { &hf_qsig_cf_deactivatingUserNr,
+ { "deactivatingUserNr", "qsig.cf.deactivatingUserNr",
FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
"qsig.PartyNumber", HFILL }},
- { &hf_qsig_extensionDD,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_DDExtension_vals), 0,
- "qsig.DDExtension", HFILL }},
- { &hf_qsig_interrogatingUserNr,
- { "interrogatingUserNr", "qsig.interrogatingUserNr",
+ { &hf_qsig_cf_extensionDD,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DDExtension_vals), 0,
+ "qsig_cf.DDExtension", HFILL }},
+ { &hf_qsig_cf_interrogatingUserNr,
+ { "interrogatingUserNr", "qsig.cf.interrogatingUserNr",
FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
"qsig.PartyNumber", HFILL }},
- { &hf_qsig_extensionID,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_IDExtension_vals), 0,
- "qsig.IDExtension", HFILL }},
- { &hf_qsig_divertedToNr,
- { "divertedToNr", "qsig.divertedToNr",
+ { &hf_qsig_cf_extensionID,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_IDExtension_vals), 0,
+ "qsig_cf.IDExtension", HFILL }},
+ { &hf_qsig_cf_divertedToNr,
+ { "divertedToNr", "qsig.cf.divertedToNr",
FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
"qsig.PartyNumber", HFILL }},
- { &hf_qsig_extensionCHR,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_CHRExtension_vals), 0,
- "qsig.CHRExtension", HFILL }},
- { &hf_qsig_rerouteingReason,
- { "rerouteingReason", "qsig.rerouteingReason",
- FT_UINT32, BASE_DEC, VALS(qsig_DiversionReason_vals), 0,
- "qsig.DiversionReason", HFILL }},
- { &hf_qsig_originalRerouteingReason,
- { "originalRerouteingReason", "qsig.originalRerouteingReason",
- FT_UINT32, BASE_DEC, VALS(qsig_DiversionReason_vals), 0,
- "qsig.DiversionReason", HFILL }},
- { &hf_qsig_calledAddress,
- { "calledAddress", "qsig.calledAddress",
+ { &hf_qsig_cf_extensionCHR,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_CHRExtension_vals), 0,
+ "qsig_cf.CHRExtension", HFILL }},
+ { &hf_qsig_cf_rerouteingReason,
+ { "rerouteingReason", "qsig.cf.rerouteingReason",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DiversionReason_vals), 0,
+ "qsig_cf.DiversionReason", HFILL }},
+ { &hf_qsig_cf_originalRerouteingReason,
+ { "originalRerouteingReason", "qsig.cf.originalRerouteingReason",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DiversionReason_vals), 0,
+ "qsig_cf.DiversionReason", HFILL }},
+ { &hf_qsig_cf_calledAddress,
+ { "calledAddress", "qsig.cf.calledAddress",
FT_NONE, BASE_NONE, NULL, 0,
"qsig.Address", HFILL }},
- { &hf_qsig_diversionCounter,
- { "diversionCounter", "qsig.diversionCounter",
+ { &hf_qsig_cf_diversionCounter,
+ { "diversionCounter", "qsig.cf.diversionCounter",
FT_UINT32, BASE_DEC, NULL, 0,
- "qsig.INTEGER_1_15", HFILL }},
- { &hf_qsig_pSS1InfoElement,
- { "pSS1InfoElement", "qsig.pSS1InfoElement",
+ "qsig_cf.INTEGER_1_15", HFILL }},
+ { &hf_qsig_cf_pSS1InfoElement,
+ { "pSS1InfoElement", "qsig.cf.pSS1InfoElement",
FT_BYTES, BASE_HEX, NULL, 0,
"qsig.PSS1InformationElement", HFILL }},
- { &hf_qsig_lastRerouteingNr,
- { "lastRerouteingNr", "qsig.lastRerouteingNr",
+ { &hf_qsig_cf_lastRerouteingNr,
+ { "lastRerouteingNr", "qsig.cf.lastRerouteingNr",
FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberUnscreened_vals), 0,
"qsig.PresentedNumberUnscreened", HFILL }},
- { &hf_qsig_subscriptionOption,
- { "subscriptionOption", "qsig.subscriptionOption",
- FT_UINT32, BASE_DEC, VALS(qsig_SubscriptionOption_vals), 0,
- "qsig.SubscriptionOption", HFILL }},
- { &hf_qsig_callingPartySubaddress,
- { "callingPartySubaddress", "qsig.callingPartySubaddress",
+ { &hf_qsig_cf_subscriptionOption,
+ { "subscriptionOption", "qsig.cf.subscriptionOption",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_SubscriptionOption_vals), 0,
+ "qsig_cf.SubscriptionOption", HFILL }},
+ { &hf_qsig_cf_callingPartySubaddress,
+ { "callingPartySubaddress", "qsig.cf.callingPartySubaddress",
FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
"qsig.PartySubaddress", HFILL }},
- { &hf_qsig_callingNumber,
- { "callingNumber", "qsig.callingNumber",
+ { &hf_qsig_cf_callingNumber,
+ { "callingNumber", "qsig.cf.callingNumber",
FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberScreened_vals), 0,
"qsig.PresentedNumberScreened", HFILL }},
- { &hf_qsig_callingName,
- { "callingName", "qsig.callingName",
- FT_UINT32, BASE_DEC, VALS(qsig_Name_vals), 0,
- "qsig.Name", HFILL }},
- { &hf_qsig_originalCalledNr,
- { "originalCalledNr", "qsig.originalCalledNr",
+ { &hf_qsig_cf_callingName,
+ { "callingName", "qsig.cf.callingName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_cf_originalCalledNr,
+ { "originalCalledNr", "qsig.cf.originalCalledNr",
FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberUnscreened_vals), 0,
"qsig.PresentedNumberUnscreened", HFILL }},
- { &hf_qsig_redirectingName,
- { "redirectingName", "qsig.redirectingName",
- FT_UINT32, BASE_DEC, VALS(qsig_Name_vals), 0,
- "qsig.Name", HFILL }},
- { &hf_qsig_originalCalledName,
- { "originalCalledName", "qsig.originalCalledName",
- FT_UINT32, BASE_DEC, VALS(qsig_Name_vals), 0,
- "qsig.Name", HFILL }},
- { &hf_qsig_extensionCRR,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_CRRExtension_vals), 0,
- "qsig.CRRExtension", HFILL }},
- { &hf_qsig_diversionReason,
- { "diversionReason", "qsig.diversionReason",
- FT_UINT32, BASE_DEC, VALS(qsig_DiversionReason_vals), 0,
- "qsig.DiversionReason", HFILL }},
- { &hf_qsig_nominatedNr,
- { "nominatedNr", "qsig.nominatedNr",
+ { &hf_qsig_cf_redirectingName,
+ { "redirectingName", "qsig.cf.redirectingName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_cf_originalCalledName,
+ { "originalCalledName", "qsig.cf.originalCalledName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_cf_extensionCRR,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_CRRExtension_vals), 0,
+ "qsig_cf.CRRExtension", HFILL }},
+ { &hf_qsig_cf_diversionReason,
+ { "diversionReason", "qsig.cf.diversionReason",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DiversionReason_vals), 0,
+ "qsig_cf.DiversionReason", HFILL }},
+ { &hf_qsig_cf_nominatedNr,
+ { "nominatedNr", "qsig.cf.nominatedNr",
FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
"qsig.PartyNumber", HFILL }},
- { &hf_qsig_extensionDLI1,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_DLI1Extension_vals), 0,
- "qsig.DLI1Extension", HFILL }},
- { &hf_qsig_originalDiversionReason,
- { "originalDiversionReason", "qsig.originalDiversionReason",
- FT_UINT32, BASE_DEC, VALS(qsig_DiversionReason_vals), 0,
- "qsig.DiversionReason", HFILL }},
- { &hf_qsig_divertingNr,
- { "divertingNr", "qsig.divertingNr",
+ { &hf_qsig_cf_extensionDLI1,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DLI1Extension_vals), 0,
+ "qsig_cf.DLI1Extension", HFILL }},
+ { &hf_qsig_cf_originalDiversionReason,
+ { "originalDiversionReason", "qsig.cf.originalDiversionReason",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DiversionReason_vals), 0,
+ "qsig_cf.DiversionReason", HFILL }},
+ { &hf_qsig_cf_divertingNr,
+ { "divertingNr", "qsig.cf.divertingNr",
FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberUnscreened_vals), 0,
"qsig.PresentedNumberUnscreened", HFILL }},
- { &hf_qsig_extensionDLI2,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_DLI2Extension_vals), 0,
- "qsig.DLI2Extension", HFILL }},
- { &hf_qsig_presentationAllowedIndicator,
- { "presentationAllowedIndicator", "qsig.presentationAllowedIndicator",
+ { &hf_qsig_cf_extensionDLI2,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DLI2Extension_vals), 0,
+ "qsig_cf.DLI2Extension", HFILL }},
+ { &hf_qsig_cf_presentationAllowedIndicator,
+ { "presentationAllowedIndicator", "qsig.cf.presentationAllowedIndicator",
FT_BOOLEAN, 8, NULL, 0,
"qsig.PresentationAllowedIndicator", HFILL }},
- { &hf_qsig_redirectionName,
- { "redirectionName", "qsig.redirectionName",
- FT_UINT32, BASE_DEC, VALS(qsig_Name_vals), 0,
- "qsig.Name", HFILL }},
- { &hf_qsig_extensionDLI3,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_DLI3Extension_vals), 0,
- "qsig.DLI3Extension", HFILL }},
- { &hf_qsig_IntResultList_item,
- { "Item", "qsig.IntResultList_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "qsig.IntResult", HFILL }},
- { &hf_qsig_remoteEnabled,
- { "remoteEnabled", "qsig.remoteEnabled",
+ { &hf_qsig_cf_redirectionName,
+ { "redirectionName", "qsig.cf.redirectionName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_cf_extensionDLI3,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_DLI3Extension_vals), 0,
+ "qsig_cf.DLI3Extension", HFILL }},
+ { &hf_qsig_cf_IntResultList_item,
+ { "Item", "qsig.cf.IntResultList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cf.IntResult", HFILL }},
+ { &hf_qsig_cf_remoteEnabled,
+ { "remoteEnabled", "qsig.cf.remoteEnabled",
FT_BOOLEAN, 8, NULL, 0,
- "qsig.BOOLEAN", HFILL }},
- { &hf_qsig_extensionIR,
- { "extension", "qsig.extension",
- FT_UINT32, BASE_DEC, VALS(qsig_IRExtension_vals), 0,
- "qsig.IRExtension", HFILL }},
+ "qsig_cf.BOOLEAN", HFILL }},
+ { &hf_qsig_cf_extensionIR,
+ { "extension", "qsig.cf.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_IRExtension_vals), 0,
+ "qsig_cf.IRExtension", HFILL }},
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_pr_qsig_pr_DummyArg_PDU,
+ { "DummyArg", "qsig.pr.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_pr_DummyArg_vals), 0,
+ "qsig_pr.DummyArg", HFILL }},
+ { &hf_qsig_pr_qsig_pr_PRProposeArg_PDU,
+ { "PRProposeArg", "qsig.pr.PRProposeArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pr.PRProposeArg", HFILL }},
+ { &hf_qsig_pr_qsig_pr_PRSetupArg_PDU,
+ { "PRSetupArg", "qsig.pr.PRSetupArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pr.PRSetupArg", HFILL }},
+ { &hf_qsig_pr_qsig_pr_DummyResult_PDU,
+ { "DummyResult", "qsig.pr.DummyResult",
+ FT_UINT32, BASE_DEC, VALS(qsig_pr_DummyResult_vals), 0,
+ "qsig_pr.DummyResult", HFILL }},
+ { &hf_qsig_pr_qsig_pr_PRRetainArg_PDU,
+ { "PRRetainArg", "qsig.pr.PRRetainArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pr.PRRetainArg", HFILL }},
+ { &hf_qsig_pr_qsig_pr_Extension_PDU,
+ { "Extension", "qsig.pr.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pr_callIdentity,
+ { "callIdentity", "qsig.pr.callIdentity",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_pr.CallIdentity", HFILL }},
+ { &hf_qsig_pr_rerouteingNumber,
+ { "rerouteingNumber", "qsig.pr.rerouteingNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pr_extension,
+ { "extension", "qsig.pr.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_pr_T_extension_vals), 0,
+ "qsig_pr.T_extension", HFILL }},
+ { &hf_qsig_pr_single,
+ { "single", "qsig.pr.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pr_multiple,
+ { "multiple", "qsig.pr.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_pr.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_pr_multiple_item,
+ { "Item", "qsig.pr.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pr_extension_01,
+ { "extension", "qsig.pr.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_pr_T_extension_01_vals), 0,
+ "qsig_pr.T_extension_01", HFILL }},
+ { &hf_qsig_pr_extension_02,
+ { "extension", "qsig.pr.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_pr_T_extension_02_vals), 0,
+ "qsig_pr.T_extension_02", HFILL }},
+ { &hf_qsig_pr_null,
+ { "null", "qsig.pr.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pr.NULL", HFILL }},
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_ct_qsig_ct_DummyArg_PDU,
+ { "DummyArg", "qsig.ct.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_DummyArg_vals), 0,
+ "qsig_ct.DummyArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_CTIdentifyRes_PDU,
+ { "CTIdentifyRes", "qsig.ct.CTIdentifyRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.CTIdentifyRes", HFILL }},
+ { &hf_qsig_ct_qsig_ct_CTInitiateArg_PDU,
+ { "CTInitiateArg", "qsig.ct.CTInitiateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.CTInitiateArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_DummyRes_PDU,
+ { "DummyRes", "qsig.ct.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_DummyRes_vals), 0,
+ "qsig_ct.DummyRes", HFILL }},
+ { &hf_qsig_ct_qsig_ct_CTSetupArg_PDU,
+ { "CTSetupArg", "qsig.ct.CTSetupArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.CTSetupArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_CTActiveArg_PDU,
+ { "CTActiveArg", "qsig.ct.CTActiveArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.CTActiveArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_CTCompleteArg_PDU,
+ { "CTCompleteArg", "qsig.ct.CTCompleteArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.CTCompleteArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_CTUpdateArg_PDU,
+ { "CTUpdateArg", "qsig.ct.CTUpdateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.CTUpdateArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_SubaddressTransferArg_PDU,
+ { "SubaddressTransferArg", "qsig.ct.SubaddressTransferArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.SubaddressTransferArg", HFILL }},
+ { &hf_qsig_ct_qsig_ct_Extension_PDU,
+ { "Extension", "qsig.ct.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ct_null,
+ { "null", "qsig.ct.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ct.NULL", HFILL }},
+ { &hf_qsig_ct_single,
+ { "single", "qsig.ct.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ct_multiple,
+ { "multiple", "qsig.ct.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_ct.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_ct_multiple_item,
+ { "Item", "qsig.ct.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ct_callIdentity,
+ { "callIdentity", "qsig.ct.callIdentity",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_ct.CallIdentity", HFILL }},
+ { &hf_qsig_ct_rerouteingNumber,
+ { "rerouteingNumber", "qsig.ct.rerouteingNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_ct_resultExtension,
+ { "resultExtension", "qsig.ct.resultExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_resultExtension_vals), 0,
+ "qsig_ct.T_resultExtension", HFILL }},
+ { &hf_qsig_ct_argumentExtension,
+ { "argumentExtension", "qsig.ct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_argumentExtension_vals), 0,
+ "qsig_ct.T_argumentExtension", HFILL }},
+ { &hf_qsig_ct_argumentExtension_01,
+ { "argumentExtension", "qsig.ct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_argumentExtension_01_vals), 0,
+ "qsig_ct.T_argumentExtension_01", HFILL }},
+ { &hf_qsig_ct_connectedAddress,
+ { "connectedAddress", "qsig.ct.connectedAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressScreened_vals), 0,
+ "qsig.PresentedAddressScreened", HFILL }},
+ { &hf_qsig_ct_basicCallInfoElements,
+ { "basicCallInfoElements", "qsig.ct.basicCallInfoElements",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig.PSS1InformationElement", HFILL }},
+ { &hf_qsig_ct_connectedName,
+ { "connectedName", "qsig.ct.connectedName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_ct_argumentExtension_02,
+ { "argumentExtension", "qsig.ct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_argumentExtension_02_vals), 0,
+ "qsig_ct.T_argumentExtension_02", HFILL }},
+ { &hf_qsig_ct_endDesignation,
+ { "endDesignation", "qsig.ct.endDesignation",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_EndDesignation_vals), 0,
+ "qsig_ct.EndDesignation", HFILL }},
+ { &hf_qsig_ct_redirectionNumber,
+ { "redirectionNumber", "qsig.ct.redirectionNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberScreened_vals), 0,
+ "qsig.PresentedNumberScreened", HFILL }},
+ { &hf_qsig_ct_redirectionName,
+ { "redirectionName", "qsig.ct.redirectionName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_ct_callStatus,
+ { "callStatus", "qsig.ct.callStatus",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_CallStatus_vals), 0,
+ "qsig_ct.CallStatus", HFILL }},
+ { &hf_qsig_ct_argumentExtension_03,
+ { "argumentExtension", "qsig.ct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_argumentExtension_03_vals), 0,
+ "qsig_ct.T_argumentExtension_03", HFILL }},
+ { &hf_qsig_ct_argumentExtension_04,
+ { "argumentExtension", "qsig.ct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_argumentExtension_04_vals), 0,
+ "qsig_ct.T_argumentExtension_04", HFILL }},
+ { &hf_qsig_ct_redirectionSubaddress,
+ { "redirectionSubaddress", "qsig.ct.redirectionSubaddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_ct_argumentExtension_05,
+ { "argumentExtension", "qsig.ct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ct_T_argumentExtension_05_vals), 0,
+ "qsig_ct.T_argumentExtension_05", HFILL }},
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_cc_qsig_cc_CcRequestArg_PDU,
+ { "CcRequestArg", "qsig.cc.CcRequestArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cc.CcRequestArg", HFILL }},
+ { &hf_qsig_cc_qsig_cc_CcRequestRes_PDU,
+ { "CcRequestRes", "qsig.cc.CcRequestRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cc.CcRequestRes", HFILL }},
+ { &hf_qsig_cc_qsig_cc_CcOptionalArg_PDU,
+ { "CcOptionalArg", "qsig.cc.CcOptionalArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_cc_CcOptionalArg_vals), 0,
+ "qsig_cc.CcOptionalArg", HFILL }},
+ { &hf_qsig_cc_qsig_cc_CcExtension_PDU,
+ { "CcExtension", "qsig.cc.CcExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cc_CcExtension_vals), 0,
+ "qsig_cc.CcExtension", HFILL }},
+ { &hf_qsig_cc_qsig_cc_Extension_PDU,
+ { "Extension", "qsig.cc.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cc_numberA,
+ { "numberA", "qsig.cc.numberA",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberUnscreened_vals), 0,
+ "qsig.PresentedNumberUnscreened", HFILL }},
+ { &hf_qsig_cc_numberB,
+ { "numberB", "qsig.cc.numberB",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_cc_service,
+ { "service", "qsig.cc.service",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig.PSS1InformationElement", HFILL }},
+ { &hf_qsig_cc_subaddrA,
+ { "subaddrA", "qsig.cc.subaddrA",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_cc_subaddrB,
+ { "subaddrB", "qsig.cc.subaddrB",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_cc_can_retain_service,
+ { "can-retain-service", "qsig.cc.can_retain_service",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_cc.BOOLEAN", HFILL }},
+ { &hf_qsig_cc_retain_sig_connection,
+ { "retain-sig-connection", "qsig.cc.retain_sig_connection",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_cc.BOOLEAN", HFILL }},
+ { &hf_qsig_cc_extension,
+ { "extension", "qsig.cc.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cc_CcExtension_vals), 0,
+ "qsig_cc.CcExtension", HFILL }},
+ { &hf_qsig_cc_no_path_reservation,
+ { "no-path-reservation", "qsig.cc.no_path_reservation",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_cc.BOOLEAN", HFILL }},
+ { &hf_qsig_cc_retain_service,
+ { "retain-service", "qsig.cc.retain_service",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_cc.BOOLEAN", HFILL }},
+ { &hf_qsig_cc_fullArg,
+ { "fullArg", "qsig.cc.fullArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cc.T_fullArg", HFILL }},
+ { &hf_qsig_cc_numberA_01,
+ { "numberA", "qsig.cc.numberA",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_cc_extArg,
+ { "extArg", "qsig.cc.extArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_cc_CcExtension_vals), 0,
+ "qsig_cc.CcExtension", HFILL }},
+ { &hf_qsig_cc_none,
+ { "none", "qsig.cc.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cc.NULL", HFILL }},
+ { &hf_qsig_cc_single,
+ { "single", "qsig.cc.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cc_multiple,
+ { "multiple", "qsig.cc.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cc.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_cc_multiple_item,
+ { "Item", "qsig.cc.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_co_qsig_co_PathRetainArg_PDU,
+ { "PathRetainArg", "qsig.co.PathRetainArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_co_PathRetainArg_vals), 0,
+ "qsig_co.PathRetainArg", HFILL }},
+ { &hf_qsig_co_qsig_co_ServiceAvailableArg_PDU,
+ { "ServiceAvailableArg", "qsig.co.ServiceAvailableArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_co_ServiceAvailableArg_vals), 0,
+ "qsig_co.ServiceAvailableArg", HFILL }},
+ { &hf_qsig_co_qsig_co_DummyArg_PDU,
+ { "DummyArg", "qsig.co.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_co_DummyArg_vals), 0,
+ "qsig_co.DummyArg", HFILL }},
+ { &hf_qsig_co_qsig_co_DummyRes_PDU,
+ { "DummyRes", "qsig.co.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_co_DummyRes_vals), 0,
+ "qsig_co.DummyRes", HFILL }},
+ { &hf_qsig_co_qsig_co_Extension_PDU,
+ { "Extension", "qsig.co.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_co_serviceList,
+ { "serviceList", "qsig.co.serviceList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_co.ServiceList", HFILL }},
+ { &hf_qsig_co_extendedServiceList,
+ { "extendedServiceList", "qsig.co.extendedServiceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_co.T_extendedServiceList", HFILL }},
+ { &hf_qsig_co_extension,
+ { "extension", "qsig.co.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_co_extendedServiceList_01,
+ { "extendedServiceList", "qsig.co.extendedServiceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_co.T_extendedServiceList_01", HFILL }},
+ { &hf_qsig_co_null,
+ { "null", "qsig.co.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_co.NULL", HFILL }},
+ { &hf_qsig_co_sequenceOfExtn,
+ { "sequenceOfExtn", "qsig.co.sequenceOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_co.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_co_sequenceOfExtn_item,
+ { "Item", "qsig.co.sequenceOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_co_ServiceList_callOffer,
+ { "callOffer", "qsig.co.callOffer",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_dnd_qsig_dnd_DNDActivateArg_PDU,
+ { "DNDActivateArg", "qsig.dnd.DNDActivateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.DNDActivateArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DNDActivateRes_PDU,
+ { "DNDActivateRes", "qsig.dnd.DNDActivateRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.DNDActivateRes", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DNDDeactivateArg_PDU,
+ { "DNDDeactivateArg", "qsig.dnd.DNDDeactivateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.DNDDeactivateArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DummyRes_PDU,
+ { "DummyRes", "qsig.dnd.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_DummyRes_vals), 0,
+ "qsig_dnd.DummyRes", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DNDInterrogateArg_PDU,
+ { "DNDInterrogateArg", "qsig.dnd.DNDInterrogateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.DNDInterrogateArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DNDInterrogateRes_PDU,
+ { "DNDInterrogateRes", "qsig.dnd.DNDInterrogateRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.DNDInterrogateRes", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DNDOverrideArg_PDU,
+ { "DNDOverrideArg", "qsig.dnd.DNDOverrideArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.DNDOverrideArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_PathRetainArg_PDU,
+ { "PathRetainArg", "qsig.dnd.PathRetainArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_PathRetainArg_vals), 0,
+ "qsig_dnd.PathRetainArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_ServiceAvailableArg_PDU,
+ { "ServiceAvailableArg", "qsig.dnd.ServiceAvailableArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_ServiceAvailableArg_vals), 0,
+ "qsig_dnd.ServiceAvailableArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_DummyArg_PDU,
+ { "DummyArg", "qsig.dnd.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_DummyArg_vals), 0,
+ "qsig_dnd.DummyArg", HFILL }},
+ { &hf_qsig_dnd_qsig_dnd_Extension_PDU,
+ { "Extension", "qsig.dnd.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_dnd_null,
+ { "null", "qsig.dnd.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.NULL", HFILL }},
+ { &hf_qsig_dnd_extension,
+ { "extension", "qsig.dnd.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_dnd_sequenceOfExtn,
+ { "sequenceOfExtn", "qsig.dnd.sequenceOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_dnd.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_dnd_sequenceOfExtn_item,
+ { "Item", "qsig.dnd.sequenceOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_dnd_basicService,
+ { "basicService", "qsig.dnd.basicService",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_BasicService_vals), 0,
+ "qsig_cf.BasicService", HFILL }},
+ { &hf_qsig_dnd_servedUserNr,
+ { "servedUserNr", "qsig.dnd.servedUserNr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_dnd_argumentExtension,
+ { "argumentExtension", "qsig.dnd.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_T_argumentExtension_vals), 0,
+ "qsig_dnd.T_argumentExtension", HFILL }},
+ { &hf_qsig_dnd_status,
+ { "status", "qsig.dnd.status",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_dnd.T_status", HFILL }},
+ { &hf_qsig_dnd_status_item,
+ { "Item", "qsig.dnd.status_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.T_status_item", HFILL }},
+ { &hf_qsig_dnd_dndProtectionLevel,
+ { "dndProtectionLevel", "qsig.dnd.dndProtectionLevel",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_DNDProtectionLevel_vals), 0,
+ "qsig_dnd.DNDProtectionLevel", HFILL }},
+ { &hf_qsig_dnd_resultExtension,
+ { "resultExtension", "qsig.dnd.resultExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_T_resultExtension_vals), 0,
+ "qsig_dnd.T_resultExtension", HFILL }},
+ { &hf_qsig_dnd_argumentExtension_01,
+ { "argumentExtension", "qsig.dnd.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_T_argumentExtension_01_vals), 0,
+ "qsig_dnd.T_argumentExtension_01", HFILL }},
+ { &hf_qsig_dnd_argumentExtension_02,
+ { "argumentExtension", "qsig.dnd.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_T_argumentExtension_02_vals), 0,
+ "qsig_dnd.T_argumentExtension_02", HFILL }},
+ { &hf_qsig_dnd_status_01,
+ { "status", "qsig.dnd.status",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_dnd.T_status_01", HFILL }},
+ { &hf_qsig_dnd_status_item_01,
+ { "Item", "qsig.dnd.status_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.T_status_item_01", HFILL }},
+ { &hf_qsig_dnd_resultExtension_01,
+ { "resultExtension", "qsig.dnd.resultExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_T_resultExtension_01_vals), 0,
+ "qsig_dnd.T_resultExtension_01", HFILL }},
+ { &hf_qsig_dnd_dndoCapabilityLevel,
+ { "dndoCapabilityLevel", "qsig.dnd.dndoCapabilityLevel",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_DNDOCapabilityLevel_vals), 0,
+ "qsig_dnd.DNDOCapabilityLevel", HFILL }},
+ { &hf_qsig_dnd_argumentExtension_03,
+ { "argumentExtension", "qsig.dnd.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_dnd_T_argumentExtension_03_vals), 0,
+ "qsig_dnd.T_argumentExtension_03", HFILL }},
+ { &hf_qsig_dnd_serviceList,
+ { "serviceList", "qsig.dnd.serviceList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_dnd.ServiceList", HFILL }},
+ { &hf_qsig_dnd_extendedServiceList,
+ { "extendedServiceList", "qsig.dnd.extendedServiceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.T_extendedServiceList", HFILL }},
+ { &hf_qsig_dnd_extendedServiceList_01,
+ { "extendedServiceList", "qsig.dnd.extendedServiceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_dnd.T_extendedServiceList_01", HFILL }},
+ { &hf_qsig_dnd_ServiceList_dndo_low,
+ { "dndo-low", "qsig.dnd.dndo-low",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_qsig_dnd_ServiceList_dndo_medium,
+ { "dndo-medium", "qsig.dnd.dndo-medium",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_qsig_dnd_ServiceList_dndo_high,
+ { "dndo-high", "qsig.dnd.dndo-high",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_ci_qsig_ci_PathRetainArg_PDU,
+ { "PathRetainArg", "qsig.ci.PathRetainArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_PathRetainArg_vals), 0,
+ "qsig_ci.PathRetainArg", HFILL }},
+ { &hf_qsig_ci_qsig_ci_ServiceAvailableArg_PDU,
+ { "ServiceAvailableArg", "qsig.ci.ServiceAvailableArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_ServiceAvailableArg_vals), 0,
+ "qsig_ci.ServiceAvailableArg", HFILL }},
+ { &hf_qsig_ci_qsig_ci_CIRequestArg_PDU,
+ { "CIRequestArg", "qsig.ci.CIRequestArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ci.CIRequestArg", HFILL }},
+ { &hf_qsig_ci_qsig_ci_CIRequestRes_PDU,
+ { "CIRequestRes", "qsig.ci.CIRequestRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ci.CIRequestRes", HFILL }},
+ { &hf_qsig_ci_qsig_ci_DummyArg_PDU,
+ { "DummyArg", "qsig.ci.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_DummyArg_vals), 0,
+ "qsig_ci.DummyArg", HFILL }},
+ { &hf_qsig_ci_qsig_ci_CIGetCIPLRes_PDU,
+ { "CIGetCIPLRes", "qsig.ci.CIGetCIPLRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ci.CIGetCIPLRes", HFILL }},
+ { &hf_qsig_ci_qsig_ci_DummyRes_PDU,
+ { "DummyRes", "qsig.ci.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_DummyRes_vals), 0,
+ "qsig_ci.DummyRes", HFILL }},
+ { &hf_qsig_ci_qsig_ci_Extension_PDU,
+ { "Extension", "qsig.ci.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ci_serviceList,
+ { "serviceList", "qsig.ci.serviceList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_ci.ServiceList", HFILL }},
+ { &hf_qsig_ci_extendedServiceList,
+ { "extendedServiceList", "qsig.ci.extendedServiceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ci.T_extendedServiceList", HFILL }},
+ { &hf_qsig_ci_extension,
+ { "extension", "qsig.ci.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ci_extendedServiceList_01,
+ { "extendedServiceList", "qsig.ci.extendedServiceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ci.T_extendedServiceList_01", HFILL }},
+ { &hf_qsig_ci_null,
+ { "null", "qsig.ci.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ci.NULL", HFILL }},
+ { &hf_qsig_ci_sequenceOfExtn,
+ { "sequenceOfExtn", "qsig.ci.sequenceOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_ci.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_ci_sequenceOfExtn_item,
+ { "Item", "qsig.ci.sequenceOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ci_ciCapabilityLevel,
+ { "ciCapabilityLevel", "qsig.ci.ciCapabilityLevel",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_CICapabilityLevel_vals), 0,
+ "qsig_ci.CICapabilityLevel", HFILL }},
+ { &hf_qsig_ci_argumentExtension,
+ { "argumentExtension", "qsig.ci.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_T_argumentExtension_vals), 0,
+ "qsig_ci.T_argumentExtension", HFILL }},
+ { &hf_qsig_ci_ciUnwantedUserStatus,
+ { "ciUnwantedUserStatus", "qsig.ci.ciUnwantedUserStatus",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_CIUnwantedUserStatus_vals), 0,
+ "qsig_ci.CIUnwantedUserStatus", HFILL }},
+ { &hf_qsig_ci_resultExtension,
+ { "resultExtension", "qsig.ci.resultExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_T_resultExtension_vals), 0,
+ "qsig_ci.T_resultExtension", HFILL }},
+ { &hf_qsig_ci_ciProtectionLevel,
+ { "ciProtectionLevel", "qsig.ci.ciProtectionLevel",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_CIProtectionLevel_vals), 0,
+ "qsig_ci.CIProtectionLevel", HFILL }},
+ { &hf_qsig_ci_resultExtension_01,
+ { "resultExtension", "qsig.ci.resultExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ci_T_resultExtension_01_vals), 0,
+ "qsig_ci.T_resultExtension_01", HFILL }},
+ { &hf_qsig_ci_ServiceList_ci_low,
+ { "ci-low", "qsig.ci.ci-low",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_qsig_ci_ServiceList_ci_medium,
+ { "ci-medium", "qsig.ci.ci-medium",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_qsig_ci_ServiceList_ci_high,
+ { "ci-high", "qsig.ci.ci-high",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_aoc_qsig_aoc_AocRateArg_PDU,
+ { "AocRateArg", "qsig.aoc.AocRateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AocRateArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_AocInterimArg_PDU,
+ { "AocInterimArg", "qsig.aoc.AocInterimArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AocInterimArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_AocFinalArg_PDU,
+ { "AocFinalArg", "qsig.aoc.AocFinalArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AocFinalArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_ChargeRequestArg_PDU,
+ { "ChargeRequestArg", "qsig.aoc.ChargeRequestArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.ChargeRequestArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_ChargeRequestRes_PDU,
+ { "ChargeRequestRes", "qsig.aoc.ChargeRequestRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.ChargeRequestRes", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_DummyArg_PDU,
+ { "DummyArg", "qsig.aoc.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_DummyArg_vals), 0,
+ "qsig_aoc.DummyArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_AocCompleteArg_PDU,
+ { "AocCompleteArg", "qsig.aoc.AocCompleteArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AocCompleteArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_AocCompleteRes_PDU,
+ { "AocCompleteRes", "qsig.aoc.AocCompleteRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AocCompleteRes", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_AocDivChargeReqArg_PDU,
+ { "AocDivChargeReqArg", "qsig.aoc.AocDivChargeReqArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AocDivChargeReqArg", HFILL }},
+ { &hf_qsig_aoc_qsig_aoc_Extension_PDU,
+ { "Extension", "qsig.aoc.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_aoc_aocRate,
+ { "aocRate", "qsig.aoc.aocRate",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_aocRate_vals), 0,
+ "qsig_aoc.T_aocRate", HFILL }},
+ { &hf_qsig_aoc_chargeNotAvailable,
+ { "chargeNotAvailable", "qsig.aoc.chargeNotAvailable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.NULL", HFILL }},
+ { &hf_qsig_aoc_aocSCurrencyInfoList,
+ { "aocSCurrencyInfoList", "qsig.aoc.aocSCurrencyInfoList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.AOCSCurrencyInfoList", HFILL }},
+ { &hf_qsig_aoc_rateArgExtension,
+ { "rateArgExtension", "qsig.aoc.rateArgExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_rateArgExtension_vals), 0,
+ "qsig_aoc.T_rateArgExtension", HFILL }},
+ { &hf_qsig_aoc_extension,
+ { "extension", "qsig.aoc.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_aoc_multipleExtension,
+ { "multipleExtension", "qsig.aoc.multipleExtension",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_aoc_multipleExtension_item,
+ { "Item", "qsig.aoc.multipleExtension_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_aoc_interimCharge,
+ { "interimCharge", "qsig.aoc.interimCharge",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_interimCharge_vals), 0,
+ "qsig_aoc.T_interimCharge", HFILL }},
+ { &hf_qsig_aoc_freeOfCharge,
+ { "freeOfCharge", "qsig.aoc.freeOfCharge",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.NULL", HFILL }},
+ { &hf_qsig_aoc_specificCurrency,
+ { "specificCurrency", "qsig.aoc.specificCurrency",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.T_specificCurrency", HFILL }},
+ { &hf_qsig_aoc_recordedCurrency,
+ { "recordedCurrency", "qsig.aoc.recordedCurrency",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.RecordedCurrency", HFILL }},
+ { &hf_qsig_aoc_interimBillingId,
+ { "interimBillingId", "qsig.aoc.interimBillingId",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_InterimBillingId_vals), 0,
+ "qsig_aoc.InterimBillingId", HFILL }},
+ { &hf_qsig_aoc_interimArgExtension,
+ { "interimArgExtension", "qsig.aoc.interimArgExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_interimArgExtension_vals), 0,
+ "qsig_aoc.T_interimArgExtension", HFILL }},
+ { &hf_qsig_aoc_finalCharge,
+ { "finalCharge", "qsig.aoc.finalCharge",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_finalCharge_vals), 0,
+ "qsig_aoc.T_finalCharge", HFILL }},
+ { &hf_qsig_aoc_specificCurrency_01,
+ { "specificCurrency", "qsig.aoc.specificCurrency",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.T_specificCurrency_01", HFILL }},
+ { &hf_qsig_aoc_finalBillingId,
+ { "finalBillingId", "qsig.aoc.finalBillingId",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_FinalBillingId_vals), 0,
+ "qsig_aoc.FinalBillingId", HFILL }},
+ { &hf_qsig_aoc_chargingAssociation,
+ { "chargingAssociation", "qsig.aoc.chargingAssociation",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_ChargingAssociation_vals), 0,
+ "qsig_aoc.ChargingAssociation", HFILL }},
+ { &hf_qsig_aoc_finalArgExtension,
+ { "finalArgExtension", "qsig.aoc.finalArgExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_finalArgExtension_vals), 0,
+ "qsig_aoc.T_finalArgExtension", HFILL }},
+ { &hf_qsig_aoc_AOCSCurrencyInfoList_item,
+ { "Item", "qsig.aoc.AOCSCurrencyInfoList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.AOCSCurrencyInfo", HFILL }},
+ { &hf_qsig_aoc_chargedItem,
+ { "chargedItem", "qsig.aoc.chargedItem",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_ChargedItem_vals), 0,
+ "qsig_aoc.ChargedItem", HFILL }},
+ { &hf_qsig_aoc_rateType,
+ { "rateType", "qsig.aoc.rateType",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_rateType_vals), 0,
+ "qsig_aoc.T_rateType", HFILL }},
+ { &hf_qsig_aoc_durationCurrency,
+ { "durationCurrency", "qsig.aoc.durationCurrency",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.DurationCurrency", HFILL }},
+ { &hf_qsig_aoc_flatRateCurrency,
+ { "flatRateCurrency", "qsig.aoc.flatRateCurrency",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.FlatRateCurrency", HFILL }},
+ { &hf_qsig_aoc_volumeRateCurrency,
+ { "volumeRateCurrency", "qsig.aoc.volumeRateCurrency",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.VolumeRateCurrency", HFILL }},
+ { &hf_qsig_aoc_specialChargingCode,
+ { "specialChargingCode", "qsig.aoc.specialChargingCode",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.SpecialChargingCode", HFILL }},
+ { &hf_qsig_aoc_currencyInfoNotAvailable,
+ { "currencyInfoNotAvailable", "qsig.aoc.currencyInfoNotAvailable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.NULL", HFILL }},
+ { &hf_qsig_aoc_freeOfChargefromBeginning,
+ { "freeOfChargefromBeginning", "qsig.aoc.freeOfChargefromBeginning",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.NULL", HFILL }},
+ { &hf_qsig_aoc_dCurrency,
+ { "dCurrency", "qsig.aoc.dCurrency",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_aoc.Currency", HFILL }},
+ { &hf_qsig_aoc_dAmount,
+ { "dAmount", "qsig.aoc.dAmount",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.Amount", HFILL }},
+ { &hf_qsig_aoc_dChargingType,
+ { "dChargingType", "qsig.aoc.dChargingType",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_ChargingType_vals), 0,
+ "qsig_aoc.ChargingType", HFILL }},
+ { &hf_qsig_aoc_dTime,
+ { "dTime", "qsig.aoc.dTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.Time", HFILL }},
+ { &hf_qsig_aoc_dGranularity,
+ { "dGranularity", "qsig.aoc.dGranularity",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.Time", HFILL }},
+ { &hf_qsig_aoc_fRCurrency,
+ { "fRCurrency", "qsig.aoc.fRCurrency",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_aoc.Currency", HFILL }},
+ { &hf_qsig_aoc_fRAmount,
+ { "fRAmount", "qsig.aoc.fRAmount",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.Amount", HFILL }},
+ { &hf_qsig_aoc_vRCurrency,
+ { "vRCurrency", "qsig.aoc.vRCurrency",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_aoc.Currency", HFILL }},
+ { &hf_qsig_aoc_vRAmount,
+ { "vRAmount", "qsig.aoc.vRAmount",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.Amount", HFILL }},
+ { &hf_qsig_aoc_vRVolumeUnit,
+ { "vRVolumeUnit", "qsig.aoc.vRVolumeUnit",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_VolumeUnit_vals), 0,
+ "qsig_aoc.VolumeUnit", HFILL }},
+ { &hf_qsig_aoc_rCurrency,
+ { "rCurrency", "qsig.aoc.rCurrency",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_aoc.Currency", HFILL }},
+ { &hf_qsig_aoc_rAmount,
+ { "rAmount", "qsig.aoc.rAmount",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.Amount", HFILL }},
+ { &hf_qsig_aoc_currencyAmount,
+ { "currencyAmount", "qsig.aoc.currencyAmount",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.CurrencyAmount", HFILL }},
+ { &hf_qsig_aoc_multiplier,
+ { "multiplier", "qsig.aoc.multiplier",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_Multiplier_vals), 0,
+ "qsig_aoc.Multiplier", HFILL }},
+ { &hf_qsig_aoc_lengthOfTimeUnit,
+ { "lengthOfTimeUnit", "qsig.aoc.lengthOfTimeUnit",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.LengthOfTimeUnit", HFILL }},
+ { &hf_qsig_aoc_scale,
+ { "scale", "qsig.aoc.scale",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_Scale_vals), 0,
+ "qsig_aoc.Scale", HFILL }},
+ { &hf_qsig_aoc_chargeNumber,
+ { "chargeNumber", "qsig.aoc.chargeNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_aoc_chargeIdentifier,
+ { "chargeIdentifier", "qsig.aoc.chargeIdentifier",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.ChargeIdentifier", HFILL }},
+ { &hf_qsig_aoc_adviceModeCombinations,
+ { "adviceModeCombinations", "qsig.aoc.adviceModeCombinations",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_aoc.SEQUENCE_SIZE_0_7_OF_AdviceModeCombination", HFILL }},
+ { &hf_qsig_aoc_adviceModeCombinations_item,
+ { "Item", "qsig.aoc.adviceModeCombinations_item",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_AdviceModeCombination_vals), 0,
+ "qsig_aoc.AdviceModeCombination", HFILL }},
+ { &hf_qsig_aoc_chargeReqArgExtension,
+ { "chargeReqArgExtension", "qsig.aoc.chargeReqArgExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_chargeReqArgExtension_vals), 0,
+ "qsig_aoc.T_chargeReqArgExtension", HFILL }},
+ { &hf_qsig_aoc_adviceModeCombination,
+ { "adviceModeCombination", "qsig.aoc.adviceModeCombination",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_AdviceModeCombination_vals), 0,
+ "qsig_aoc.AdviceModeCombination", HFILL }},
+ { &hf_qsig_aoc_chargeReqResExtension,
+ { "chargeReqResExtension", "qsig.aoc.chargeReqResExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_chargeReqResExtension_vals), 0,
+ "qsig_aoc.T_chargeReqResExtension", HFILL }},
+ { &hf_qsig_aoc_none,
+ { "none", "qsig.aoc.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_aoc.NULL", HFILL }},
+ { &hf_qsig_aoc_chargedUser,
+ { "chargedUser", "qsig.aoc.chargedUser",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_aoc_completeArgExtension,
+ { "completeArgExtension", "qsig.aoc.completeArgExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_completeArgExtension_vals), 0,
+ "qsig_aoc.T_completeArgExtension", HFILL }},
+ { &hf_qsig_aoc_chargingOption,
+ { "chargingOption", "qsig.aoc.chargingOption",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_ChargingOption_vals), 0,
+ "qsig_aoc.ChargingOption", HFILL }},
+ { &hf_qsig_aoc_completeResExtension,
+ { "completeResExtension", "qsig.aoc.completeResExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_completeResExtension_vals), 0,
+ "qsig_aoc.T_completeResExtension", HFILL }},
+ { &hf_qsig_aoc_divertingUser,
+ { "divertingUser", "qsig.aoc.divertingUser",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_aoc_diversionType,
+ { "diversionType", "qsig.aoc.diversionType",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_DiversionType_vals), 0,
+ "qsig_aoc.DiversionType", HFILL }},
+ { &hf_qsig_aoc_aocDivChargeReqArgExt,
+ { "aocDivChargeReqArgExt", "qsig.aoc.aocDivChargeReqArgExt",
+ FT_UINT32, BASE_DEC, VALS(qsig_aoc_T_aocDivChargeReqArgExt_vals), 0,
+ "qsig_aoc.T_aocDivChargeReqArgExt", HFILL }},
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_re_qsig_re_ReAlertingArg_PDU,
+ { "ReAlertingArg", "qsig.re.ReAlertingArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_re.ReAlertingArg", HFILL }},
+ { &hf_qsig_re_qsig_re_ReAnswerArg_PDU,
+ { "ReAnswerArg", "qsig.re.ReAnswerArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_re.ReAnswerArg", HFILL }},
+ { &hf_qsig_re_alertedNumber,
+ { "alertedNumber", "qsig.re.alertedNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberScreened_vals), 0,
+ "qsig.PresentedNumberScreened", HFILL }},
+ { &hf_qsig_re_alertedName,
+ { "alertedName", "qsig.re.alertedName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_re_argumentExtension,
+ { "argumentExtension", "qsig.re.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_re_T_argumentExtension_vals), 0,
+ "qsig_re.T_argumentExtension", HFILL }},
+ { &hf_qsig_re_extension,
+ { "extension", "qsig.re.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_re_multipleExtension,
+ { "multipleExtension", "qsig.re.multipleExtension",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_re.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_re_multipleExtension_item,
+ { "Item", "qsig.re.multipleExtension_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_re_connectedNumber,
+ { "connectedNumber", "qsig.re.connectedNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberScreened_vals), 0,
+ "qsig.PresentedNumberScreened", HFILL }},
+ { &hf_qsig_re_connectedSubaddress,
+ { "connectedSubaddress", "qsig.re.connectedSubaddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_re_connectedName,
+ { "connectedName", "qsig.re.connectedName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_re_argumentExtension_01,
+ { "argumentExtension", "qsig.re.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_re_T_argumentExtension_01_vals), 0,
+ "qsig_re.T_argumentExtension_01", HFILL }},
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_cint_qsig_cint_CintInformation1Arg_PDU,
+ { "CintInformation1Arg", "qsig.cint.CintInformation1Arg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cint.CintInformation1Arg", HFILL }},
+ { &hf_qsig_cint_qsig_cint_CintInformation2Arg_PDU,
+ { "CintInformation2Arg", "qsig.cint.CintInformation2Arg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cint.CintInformation2Arg", HFILL }},
+ { &hf_qsig_cint_qsig_cint_CintCondArg_PDU,
+ { "CintCondArg", "qsig.cint.CintCondArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cint.CintCondArg", HFILL }},
+ { &hf_qsig_cint_qsig_cint_CintExtension_PDU,
+ { "CintExtension", "qsig.cint.CintExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cint_CintExtension_vals), 0,
+ "qsig_cint.CintExtension", HFILL }},
+ { &hf_qsig_cint_interceptionCause,
+ { "interceptionCause", "qsig.cint.interceptionCause",
+ FT_UINT32, BASE_DEC, VALS(qsig_cint_CintCause_vals), 0,
+ "qsig_cint.CintCause", HFILL }},
+ { &hf_qsig_cint_interceptedToNumber,
+ { "interceptedToNumber", "qsig.cint.interceptedToNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_cint_extension,
+ { "extension", "qsig.cint.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cint_CintExtension_vals), 0,
+ "qsig_cint.CintExtension", HFILL }},
+ { &hf_qsig_cint_calledNumber,
+ { "calledNumber", "qsig.cint.calledNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberUnscreened_vals), 0,
+ "qsig.PresentedNumberUnscreened", HFILL }},
+ { &hf_qsig_cint_originalCalledNumber,
+ { "originalCalledNumber", "qsig.cint.originalCalledNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberUnscreened_vals), 0,
+ "qsig.PresentedNumberUnscreened", HFILL }},
+ { &hf_qsig_cint_calledName,
+ { "calledName", "qsig.cint.calledName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_cint_originalCalledName,
+ { "originalCalledName", "qsig.cint.originalCalledName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_cint_interceptionCause_01,
+ { "interceptionCause", "qsig.cint.interceptionCause",
+ FT_UINT32, BASE_DEC, VALS(qsig_cint_Condition_vals), 0,
+ "qsig_cint.Condition", HFILL }},
+ { &hf_qsig_cint_none,
+ { "none", "qsig.cint.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cint.NULL", HFILL }},
+ { &hf_qsig_cint_single,
+ { "single", "qsig.cint.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cint_multiple,
+ { "multiple", "qsig.cint.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cint.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_cint_multiple_item,
+ { "Item", "qsig.cint.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_cmn_qsig_cmn_DummyArg_PDU,
+ { "DummyArg", "qsig.cmn.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_cmn_DummyArg_vals), 0,
+ "qsig_cmn.DummyArg", HFILL }},
+ { &hf_qsig_cmn_qsig_cmn_CmnArg_PDU,
+ { "CmnArg", "qsig.cmn.CmnArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cmn.CmnArg", HFILL }},
+ { &hf_qsig_cmn_featureIdentifier,
+ { "featureIdentifier", "qsig.cmn.featureIdentifier",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_cmn.FeatureIdList", HFILL }},
+ { &hf_qsig_cmn_ssDNDOprotectionLevel,
+ { "ssDNDOprotectionLevel", "qsig.cmn.ssDNDOprotectionLevel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cmn.INTEGER_0_3", HFILL }},
+ { &hf_qsig_cmn_ssCIprotectionLevel,
+ { "ssCIprotectionLevel", "qsig.cmn.ssCIprotectionLevel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cmn.INTEGER_0_3", HFILL }},
+ { &hf_qsig_cmn_equipmentIdentity,
+ { "equipmentIdentity", "qsig.cmn.equipmentIdentity",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cmn.EquipmentId", HFILL }},
+ { &hf_qsig_cmn_partyCategory,
+ { "partyCategory", "qsig.cmn.partyCategory",
+ FT_UINT32, BASE_DEC, VALS(qsig_cmn_PartyCategory_vals), 0,
+ "qsig_cmn.PartyCategory", HFILL }},
+ { &hf_qsig_cmn_extension,
+ { "extension", "qsig.cmn.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cmn_T_extension_vals), 0,
+ "qsig_cmn.T_extension", HFILL }},
+ { &hf_qsig_cmn_single,
+ { "single", "qsig.cmn.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cmn_multiple,
+ { "multiple", "qsig.cmn.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cmn.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_cmn_multiple_item,
+ { "Item", "qsig.cmn.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cmn_null,
+ { "null", "qsig.cmn.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cmn.NULL", HFILL }},
+ { &hf_qsig_cmn_nodeId,
+ { "nodeId", "qsig.cmn.nodeId",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_cmn.IA5String_SIZE_1_10", HFILL }},
+ { &hf_qsig_cmn_groupId,
+ { "groupId", "qsig.cmn.groupId",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_cmn.IA5String_SIZE_1_10", HFILL }},
+ { &hf_qsig_cmn_unitId,
+ { "unitId", "qsig.cmn.unitId",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_cmn.IA5String_SIZE_1_10", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_reserved,
+ { "reserved", "qsig.cmn.reserved",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCFreRoutingSupported,
+ { "ssCFreRoutingSupported", "qsig.cmn.ssCFreRoutingSupported",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCTreRoutingSupported,
+ { "ssCTreRoutingSupported", "qsig.cmn.ssCTreRoutingSupported",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCCBSpossible,
+ { "ssCCBSpossible", "qsig.cmn.ssCCBSpossible",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCCNRpossible,
+ { "ssCCNRpossible", "qsig.cmn.ssCCNRpossible",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCOsupported,
+ { "ssCOsupported", "qsig.cmn.ssCOsupported",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCIforcedRelease,
+ { "ssCIforcedRelease", "qsig.cmn.ssCIforcedRelease",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCIisolation,
+ { "ssCIisolation", "qsig.cmn.ssCIisolation",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssCIwaitOnBusy,
+ { "ssCIwaitOnBusy", "qsig.cmn.ssCIwaitOnBusy",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssAOCsupportChargeRateProvAtGatewPinx,
+ { "ssAOCsupportChargeRateProvAtGatewPinx", "qsig.cmn.ssAOCsupportChargeRateProvAtGatewPinx",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssAOCsupportInterimChargeProvAtGatewPinx,
+ { "ssAOCsupportInterimChargeProvAtGatewPinx", "qsig.cmn.ssAOCsupportInterimChargeProvAtGatewPinx",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssAOCsupportFinalChargeProvAtGatewPinx,
+ { "ssAOCsupportFinalChargeProvAtGatewPinx", "qsig.cmn.ssAOCsupportFinalChargeProvAtGatewPinx",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_anfPRsupportedAtCooperatingPinx,
+ { "anfPRsupportedAtCooperatingPinx", "qsig.cmn.anfPRsupportedAtCooperatingPinx",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_anfCINTcanInterceptImmediate,
+ { "anfCINTcanInterceptImmediate", "qsig.cmn.anfCINTcanInterceptImmediate",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_anfCINTcanInterceptDelayed,
+ { "anfCINTcanInterceptDelayed", "qsig.cmn.anfCINTcanInterceptDelayed",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_anfWTMIreRoutingSupported,
+ { "anfWTMIreRoutingSupported", "qsig.cmn.anfWTMIreRoutingSupported",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_anfPUMIreRoutingSupported,
+ { "anfPUMIreRoutingSupported", "qsig.cmn.anfPUMIreRoutingSupported",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_qsig_cmn_FeatureIdList_ssSSCTreRoutingSupported,
+ { "ssSSCTreRoutingSupported", "qsig.cmn.ssSSCTreRoutingSupported",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_cpi_qsig_cpi_CPIRequestArg_PDU,
+ { "CPIRequestArg", "qsig.cpi.CPIRequestArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cpi.CPIRequestArg", HFILL }},
+ { &hf_qsig_cpi_qsig_cpi_CPIPRequestArg_PDU,
+ { "CPIPRequestArg", "qsig.cpi.CPIPRequestArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cpi.CPIPRequestArg", HFILL }},
+ { &hf_qsig_cpi_cpiCapabilityLevel,
+ { "cpiCapabilityLevel", "qsig.cpi.cpiCapabilityLevel",
+ FT_UINT32, BASE_DEC, VALS(qsig_cpi_CPICapabilityLevel_vals), 0,
+ "qsig_cpi.CPICapabilityLevel", HFILL }},
+ { &hf_qsig_cpi_argumentExtension,
+ { "argumentExtension", "qsig.cpi.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cpi_T_argumentExtension_vals), 0,
+ "qsig_cpi.T_argumentExtension", HFILL }},
+ { &hf_qsig_cpi_extension,
+ { "extension", "qsig.cpi.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cpi_sequenceOfExtn,
+ { "sequenceOfExtn", "qsig.cpi.sequenceOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cpi.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_cpi_sequenceOfExtn_item,
+ { "Item", "qsig.cpi.sequenceOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cpi_cpiProtectionLevel,
+ { "cpiProtectionLevel", "qsig.cpi.cpiProtectionLevel",
+ FT_UINT32, BASE_DEC, VALS(qsig_cpi_CPIProtectionLevel_vals), 0,
+ "qsig_cpi.CPIProtectionLevel", HFILL }},
+ { &hf_qsig_cpi_argumentExtension_01,
+ { "argumentExtension", "qsig.cpi.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cpi_T_argumentExtension_01_vals), 0,
+ "qsig_cpi.T_argumentExtension_01", HFILL }},
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_pumr_qsig_pumr_PumRegistrArg_PDU,
+ { "PumRegistrArg", "qsig.pumr.PumRegistrArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.PumRegistrArg", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_PumRegistrRes_PDU,
+ { "PumRegistrRes", "qsig.pumr.PumRegistrRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.PumRegistrRes", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_PumDelRegArg_PDU,
+ { "PumDelRegArg", "qsig.pumr.PumDelRegArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.PumDelRegArg", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_DummyRes_PDU,
+ { "DummyRes", "qsig.pumr.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_DummyRes_vals), 0,
+ "qsig_pumr.DummyRes", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_PumDe_regArg_PDU,
+ { "PumDe-regArg", "qsig.pumr.PumDe_regArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.PumDe_regArg", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_PumInterrogArg_PDU,
+ { "PumInterrogArg", "qsig.pumr.PumInterrogArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.PumInterrogArg", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_PumInterrogRes_PDU,
+ { "PumInterrogRes", "qsig.pumr.PumInterrogRes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_pumr.PumInterrogRes", HFILL }},
+ { &hf_qsig_pumr_qsig_pumr_Extension_PDU,
+ { "Extension", "qsig.pumr.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumr_pumUserId,
+ { "pumUserId", "qsig.pumr.pumUserId",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_pumUserId_vals), 0,
+ "qsig_pumr.T_pumUserId", HFILL }},
+ { &hf_qsig_pumr_pumNumber,
+ { "pumNumber", "qsig.pumr.pumNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pumr_alternativeId,
+ { "alternativeId", "qsig.pumr.alternativeId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_pumr.AlternativeId", HFILL }},
+ { &hf_qsig_pumr_basicService,
+ { "basicService", "qsig.pumr.basicService",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_BasicService_vals), 0,
+ "qsig_cf.BasicService", HFILL }},
+ { &hf_qsig_pumr_hostingAddr,
+ { "hostingAddr", "qsig.pumr.hostingAddr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pumr_activatingUserAddr,
+ { "activatingUserAddr", "qsig.pumr.activatingUserAddr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pumr_serviceOption,
+ { "serviceOption", "qsig.pumr.serviceOption",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_ServiceOption_vals), 0,
+ "qsig_pumr.ServiceOption", HFILL }},
+ { &hf_qsig_pumr_sessionParams,
+ { "sessionParams", "qsig.pumr.sessionParams",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.SessionParams", HFILL }},
+ { &hf_qsig_pumr_userPin,
+ { "userPin", "qsig.pumr.userPin",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_userPin_vals), 0,
+ "qsig_pumr.T_userPin", HFILL }},
+ { &hf_qsig_pumr_pumUserPin,
+ { "pumUserPin", "qsig.pumr.pumUserPin",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_pumr.UserPin", HFILL }},
+ { &hf_qsig_pumr_activatingUserPin,
+ { "activatingUserPin", "qsig.pumr.activatingUserPin",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_pumr.UserPin", HFILL }},
+ { &hf_qsig_pumr_argExtension,
+ { "argExtension", "qsig.pumr.argExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_PumrExtension_vals), 0,
+ "qsig_pumr.PumrExtension", HFILL }},
+ { &hf_qsig_pumr_null,
+ { "null", "qsig.pumr.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.NULL", HFILL }},
+ { &hf_qsig_pumr_extension,
+ { "extension", "qsig.pumr.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumr_sequOfExtn,
+ { "sequOfExtn", "qsig.pumr.sequOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_pumr.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_pumr_sequOfExtn_item,
+ { "Item", "qsig.pumr.sequOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumr_pumUserId_01,
+ { "pumUserId", "qsig.pumr.pumUserId",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_pumUserId_01_vals), 0,
+ "qsig_pumr.T_pumUserId_01", HFILL }},
+ { &hf_qsig_pumr_pumUserId_02,
+ { "pumUserId", "qsig.pumr.pumUserId",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_pumUserId_02_vals), 0,
+ "qsig_pumr.T_pumUserId_02", HFILL }},
+ { &hf_qsig_pumr_userPin_01,
+ { "userPin", "qsig.pumr.userPin",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_userPin_01_vals), 0,
+ "qsig_pumr.T_userPin_01", HFILL }},
+ { &hf_qsig_pumr_pumUserId_03,
+ { "pumUserId", "qsig.pumr.pumUserId",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_pumUserId_03_vals), 0,
+ "qsig_pumr.T_pumUserId_03", HFILL }},
+ { &hf_qsig_pumr_homeInfoOnly,
+ { "homeInfoOnly", "qsig.pumr.homeInfoOnly",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_pumr.BOOLEAN", HFILL }},
+ { &hf_qsig_pumr_userPin_02,
+ { "userPin", "qsig.pumr.userPin",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumr_T_userPin_02_vals), 0,
+ "qsig_pumr.T_userPin_02", HFILL }},
+ { &hf_qsig_pumr_PumInterrogRes_item,
+ { "Item", "qsig.pumr.PumInterrogRes_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.PumInterrogRes_item", HFILL }},
+ { &hf_qsig_pumr_interrogParams,
+ { "interrogParams", "qsig.pumr.interrogParams",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumr.SessionParams", HFILL }},
+ { &hf_qsig_pumr_durationOfSession,
+ { "durationOfSession", "qsig.pumr.durationOfSession",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "qsig_pumr.INTEGER", HFILL }},
+ { &hf_qsig_pumr_numberOfOutgCalls,
+ { "numberOfOutgCalls", "qsig.pumr.numberOfOutgCalls",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "qsig_pumr.INTEGER", HFILL }},
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_pumch_qsig_pumch_EnquiryArg_PDU,
+ { "EnquiryArg", "qsig.pumch.EnquiryArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.EnquiryArg", HFILL }},
+ { &hf_qsig_pumch_qsig_pumch_EnquiryRes_PDU,
+ { "EnquiryRes", "qsig.pumch.EnquiryRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumch_EnquiryRes_vals), 0,
+ "qsig_pumch.EnquiryRes", HFILL }},
+ { &hf_qsig_pumch_qsig_pumch_DivertArg_PDU,
+ { "DivertArg", "qsig.pumch.DivertArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.DivertArg", HFILL }},
+ { &hf_qsig_pumch_qsig_pumch_DummyRes_PDU,
+ { "DummyRes", "qsig.pumch.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumch_DummyRes_vals), 0,
+ "qsig_pumch.DummyRes", HFILL }},
+ { &hf_qsig_pumch_qsig_pumch_InformArg_PDU,
+ { "InformArg", "qsig.pumch.InformArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.InformArg", HFILL }},
+ { &hf_qsig_pumch_qsig_pumch_PumoArg_PDU,
+ { "PumoArg", "qsig.pumch.PumoArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.PumoArg", HFILL }},
+ { &hf_qsig_pumch_qsig_pumch_Extension_PDU,
+ { "Extension", "qsig.pumch.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumch_pisnNumber,
+ { "pisnNumber", "qsig.pumch.pisnNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pumch_qSIGInfoElement,
+ { "qSIGInfoElement", "qsig.pumch.qSIGInfoElement",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig.PSS1InformationElement", HFILL }},
+ { &hf_qsig_pumch_argExtension,
+ { "argExtension", "qsig.pumch.argExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumch_PumiExtension_vals), 0,
+ "qsig_pumch.PumiExtension", HFILL }},
+ { &hf_qsig_pumch_hostingAddr,
+ { "hostingAddr", "qsig.pumch.hostingAddr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pumch_callingNumber,
+ { "callingNumber", "qsig.pumch.callingNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberScreened_vals), 0,
+ "qsig.PresentedNumberScreened", HFILL }},
+ { &hf_qsig_pumch_pumIdentity,
+ { "pumIdentity", "qsig.pumch.pumIdentity",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumch_PumIdentity_vals), 0,
+ "qsig_pumch.PumIdentity", HFILL }},
+ { &hf_qsig_pumch_callingUserSub,
+ { "callingUserSub", "qsig.pumch.callingUserSub",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_pumch_callingUserName,
+ { "callingUserName", "qsig.pumch.callingUserName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_pumch_pumUserSub,
+ { "pumUserSub", "qsig.pumch.pumUserSub",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_pumch_currLocation,
+ { "currLocation", "qsig.pumch.currLocation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.CurrLocation", HFILL }},
+ { &hf_qsig_pumch_cfuActivated,
+ { "cfuActivated", "qsig.pumch.cfuActivated",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.CfuActivated", HFILL }},
+ { &hf_qsig_pumch_divToAddress,
+ { "divToAddress", "qsig.pumch.divToAddress",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Address", HFILL }},
+ { &hf_qsig_pumch_divOptions,
+ { "divOptions", "qsig.pumch.divOptions",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumch_SubscriptionOption_vals), 0,
+ "qsig_pumch.SubscriptionOption", HFILL }},
+ { &hf_qsig_pumch_pumName,
+ { "pumName", "qsig.pumch.pumName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_pumch_null,
+ { "null", "qsig.pumch.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.NULL", HFILL }},
+ { &hf_qsig_pumch_extension,
+ { "extension", "qsig.pumch.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumch_sequOfExtn,
+ { "sequOfExtn", "qsig.pumch.sequOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_pumch.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_pumch_sequOfExtn_item,
+ { "Item", "qsig.pumch.sequOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumch_alternativeId,
+ { "alternativeId", "qsig.pumch.alternativeId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_pumch.AlternativeId", HFILL }},
+ { &hf_qsig_pumch_both,
+ { "both", "qsig.pumch.both",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.T_both", HFILL }},
+ { &hf_qsig_pumch_destinationNumber,
+ { "destinationNumber", "qsig.pumch.destinationNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_pumch_sendingComplete,
+ { "sendingComplete", "qsig.pumch.sendingComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_pumch.NULL", HFILL }},
+ { &hf_qsig_pumch_extension_01,
+ { "extension", "qsig.pumch.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_pumch_T_extension_vals), 0,
+ "qsig_pumch.T_extension", HFILL }},
+ { &hf_qsig_pumch_single,
+ { "single", "qsig.pumch.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_pumch_multiple,
+ { "multiple", "qsig.pumch.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_pumch.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_pumch_multiple_item,
+ { "Item", "qsig.pumch.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_ssct_qsig_ssct_SSCTInitiateArg_PDU,
+ { "SSCTInitiateArg", "qsig.ssct.SSCTInitiateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ssct.SSCTInitiateArg", HFILL }},
+ { &hf_qsig_ssct_qsig_ssct_DummyRes_PDU,
+ { "DummyRes", "qsig.ssct.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_ssct_DummyRes_vals), 0,
+ "qsig_ssct.DummyRes", HFILL }},
+ { &hf_qsig_ssct_qsig_ssct_SSCTSetupArg_PDU,
+ { "SSCTSetupArg", "qsig.ssct.SSCTSetupArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ssct.SSCTSetupArg", HFILL }},
+ { &hf_qsig_ssct_qsig_ssct_DummyArg_PDU,
+ { "DummyArg", "qsig.ssct.DummyArg",
+ FT_UINT32, BASE_DEC, VALS(qsig_ssct_DummyArg_vals), 0,
+ "qsig_ssct.DummyArg", HFILL }},
+ { &hf_qsig_ssct_qsig_ssct_SSCTDigitInfoArg_PDU,
+ { "SSCTDigitInfoArg", "qsig.ssct.SSCTDigitInfoArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ssct.SSCTDigitInfoArg", HFILL }},
+ { &hf_qsig_ssct_qsig_ssct_Extension_PDU,
+ { "Extension", "qsig.ssct.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ssct_null,
+ { "null", "qsig.ssct.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ssct.NULL", HFILL }},
+ { &hf_qsig_ssct_single,
+ { "single", "qsig.ssct.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ssct_multiple,
+ { "multiple", "qsig.ssct.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_ssct.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_ssct_multiple_item,
+ { "Item", "qsig.ssct.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_ssct_rerouteingNumber,
+ { "rerouteingNumber", "qsig.ssct.rerouteingNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_ssct_transferredAddress,
+ { "transferredAddress", "qsig.ssct.transferredAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressScreened_vals), 0,
+ "qsig.PresentedAddressScreened", HFILL }},
+ { &hf_qsig_ssct_awaitConnect,
+ { "awaitConnect", "qsig.ssct.awaitConnect",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_ssct.AwaitConnect", HFILL }},
+ { &hf_qsig_ssct_transferredName,
+ { "transferredName", "qsig.ssct.transferredName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_ssct_transferringAddress,
+ { "transferringAddress", "qsig.ssct.transferringAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressScreened_vals), 0,
+ "qsig.PresentedAddressScreened", HFILL }},
+ { &hf_qsig_ssct_transferringName,
+ { "transferringName", "qsig.ssct.transferringName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_ssct_argumentExtension,
+ { "argumentExtension", "qsig.ssct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ssct_T_argumentExtension_vals), 0,
+ "qsig_ssct.T_argumentExtension", HFILL }},
+ { &hf_qsig_ssct_argumentExtension_01,
+ { "argumentExtension", "qsig.ssct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ssct_T_argumentExtension_01_vals), 0,
+ "qsig_ssct.T_argumentExtension_01", HFILL }},
+ { &hf_qsig_ssct_reroutingNumber,
+ { "reroutingNumber", "qsig.ssct.reroutingNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_ssct_sendingComplete,
+ { "sendingComplete", "qsig.ssct.sendingComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_ssct.NULL", HFILL }},
+ { &hf_qsig_ssct_argumentExtension_02,
+ { "argumentExtension", "qsig.ssct.argumentExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_ssct_T_argumentExtension_02_vals), 0,
+ "qsig_ssct.T_argumentExtension_02", HFILL }},
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_wtmlr_qsig_wtmlr_LocUpdArg_PDU,
+ { "LocUpdArg", "qsig.wtmlr.LocUpdArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.LocUpdArg", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_DummyRes_PDU,
+ { "DummyRes", "qsig.wtmlr.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmlr_DummyRes_vals), 0,
+ "qsig_wtmlr.DummyRes", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_LocDelArg_PDU,
+ { "LocDelArg", "qsig.wtmlr.LocDelArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.LocDelArg", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_LocDeRegArg_PDU,
+ { "LocDeRegArg", "qsig.wtmlr.LocDeRegArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.LocDeRegArg", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_PisnEnqArg_PDU,
+ { "PisnEnqArg", "qsig.wtmlr.PisnEnqArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.PisnEnqArg", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_PisnEnqRes_PDU,
+ { "PisnEnqRes", "qsig.wtmlr.PisnEnqRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.PisnEnqRes", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_GetRRCInfArg_PDU,
+ { "GetRRCInfArg", "qsig.wtmlr.GetRRCInfArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.GetRRCInfArg", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_GetRRCInfRes_PDU,
+ { "GetRRCInfRes", "qsig.wtmlr.GetRRCInfRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.GetRRCInfRes", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_LocInfoCheckArg_PDU,
+ { "LocInfoCheckArg", "qsig.wtmlr.LocInfoCheckArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.LocInfoCheckArg", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_LocInfoCheckRes_PDU,
+ { "LocInfoCheckRes", "qsig.wtmlr.LocInfoCheckRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.LocInfoCheckRes", HFILL }},
+ { &hf_qsig_wtmlr_qsig_wtmlr_Extension_PDU,
+ { "Extension", "qsig.wtmlr.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmlr_wtmUserId,
+ { "wtmUserId", "qsig.wtmlr.wtmUserId",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmlr_WtmUserId_vals), 0,
+ "qsig_wtmlr.WtmUserId", HFILL }},
+ { &hf_qsig_wtmlr_basicService,
+ { "basicService", "qsig.wtmlr.basicService",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_BasicService_vals), 0,
+ "qsig_cf.BasicService", HFILL }},
+ { &hf_qsig_wtmlr_visitPINX,
+ { "visitPINX", "qsig.wtmlr.visitPINX",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_wtmlr_argExtension,
+ { "argExtension", "qsig.wtmlr.argExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmlr_LrExtension_vals), 0,
+ "qsig_wtmlr.LrExtension", HFILL }},
+ { &hf_qsig_wtmlr_null,
+ { "null", "qsig.wtmlr.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmlr.NULL", HFILL }},
+ { &hf_qsig_wtmlr_extension,
+ { "extension", "qsig.wtmlr.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmlr_sequOfExtn,
+ { "sequOfExtn", "qsig.wtmlr.sequOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmlr.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_wtmlr_sequOfExtn_item,
+ { "Item", "qsig.wtmlr.sequOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmlr_alternativeId,
+ { "alternativeId", "qsig.wtmlr.alternativeId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmlr.AlternativeId", HFILL }},
+ { &hf_qsig_wtmlr_resExtension,
+ { "resExtension", "qsig.wtmlr.resExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmlr_LrExtension_vals), 0,
+ "qsig_wtmlr.LrExtension", HFILL }},
+ { &hf_qsig_wtmlr_rrClass,
+ { "rrClass", "qsig.wtmlr.rrClass",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmlr.RRClass", HFILL }},
+ { &hf_qsig_wtmlr_checkResult,
+ { "checkResult", "qsig.wtmlr.checkResult",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmlr_CheckResult_vals), 0,
+ "qsig_wtmlr.CheckResult", HFILL }},
+ { &hf_qsig_wtmlr_pisnNumber,
+ { "pisnNumber", "qsig.wtmlr.pisnNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_wtmch_qsig_wtmch_EnquiryArg_PDU,
+ { "EnquiryArg", "qsig.wtmch.EnquiryArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.EnquiryArg", HFILL }},
+ { &hf_qsig_wtmch_qsig_wtmch_EnquiryRes_PDU,
+ { "EnquiryRes", "qsig.wtmch.EnquiryRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmch_EnquiryRes_vals), 0,
+ "qsig_wtmch.EnquiryRes", HFILL }},
+ { &hf_qsig_wtmch_qsig_wtmch_DivertArg_PDU,
+ { "DivertArg", "qsig.wtmch.DivertArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.DivertArg", HFILL }},
+ { &hf_qsig_wtmch_qsig_wtmch_DummyRes_PDU,
+ { "DummyRes", "qsig.wtmch.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmch_DummyRes_vals), 0,
+ "qsig_wtmch.DummyRes", HFILL }},
+ { &hf_qsig_wtmch_qsig_wtmch_InformArg_PDU,
+ { "InformArg", "qsig.wtmch.InformArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.InformArg", HFILL }},
+ { &hf_qsig_wtmch_qsig_wtmch_WtmoArg_PDU,
+ { "WtmoArg", "qsig.wtmch.WtmoArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.WtmoArg", HFILL }},
+ { &hf_qsig_wtmch_qsig_wtmch_Extension_PDU,
+ { "Extension", "qsig.wtmch.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmch_pisnNumber,
+ { "pisnNumber", "qsig.wtmch.pisnNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_wtmch_qSIGInfoElement,
+ { "qSIGInfoElement", "qsig.wtmch.qSIGInfoElement",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig.PSS1InformationElement", HFILL }},
+ { &hf_qsig_wtmch_argExtension,
+ { "argExtension", "qsig.wtmch.argExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmch_WtmiExtension_vals), 0,
+ "qsig_wtmch.WtmiExtension", HFILL }},
+ { &hf_qsig_wtmch_visitPINX,
+ { "visitPINX", "qsig.wtmch.visitPINX",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_wtmch_callingNumber,
+ { "callingNumber", "qsig.wtmch.callingNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedNumberScreened_vals), 0,
+ "qsig.PresentedNumberScreened", HFILL }},
+ { &hf_qsig_wtmch_wtmIdentity,
+ { "wtmIdentity", "qsig.wtmch.wtmIdentity",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmch_WtmIdentity_vals), 0,
+ "qsig_wtmch.WtmIdentity", HFILL }},
+ { &hf_qsig_wtmch_callingUserSub,
+ { "callingUserSub", "qsig.wtmch.callingUserSub",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_wtmch_callingName,
+ { "callingName", "qsig.wtmch.callingName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_wtmch_wtmUserSub,
+ { "wtmUserSub", "qsig.wtmch.wtmUserSub",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartySubaddress_vals), 0,
+ "qsig.PartySubaddress", HFILL }},
+ { &hf_qsig_wtmch_currLocation,
+ { "currLocation", "qsig.wtmch.currLocation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.CurrLocation", HFILL }},
+ { &hf_qsig_wtmch_cfuActivated,
+ { "cfuActivated", "qsig.wtmch.cfuActivated",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.CfuActivated", HFILL }},
+ { &hf_qsig_wtmch_divToAddress,
+ { "divToAddress", "qsig.wtmch.divToAddress",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Address", HFILL }},
+ { &hf_qsig_wtmch_divOptions,
+ { "divOptions", "qsig.wtmch.divOptions",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmch_SubscriptionOption_vals), 0,
+ "qsig_wtmch.SubscriptionOption", HFILL }},
+ { &hf_qsig_wtmch_wtmName,
+ { "wtmName", "qsig.wtmch.wtmName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_wtmch_null,
+ { "null", "qsig.wtmch.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.NULL", HFILL }},
+ { &hf_qsig_wtmch_extension,
+ { "extension", "qsig.wtmch.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmch_sequOfExtn,
+ { "sequOfExtn", "qsig.wtmch.sequOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmch.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_wtmch_sequOfExtn_item,
+ { "Item", "qsig.wtmch.sequOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmch_alternativeId,
+ { "alternativeId", "qsig.wtmch.alternativeId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmch.AlternativeId", HFILL }},
+ { &hf_qsig_wtmch_both,
+ { "both", "qsig.wtmch.both",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.T_both", HFILL }},
+ { &hf_qsig_wtmch_destinationNumber,
+ { "destinationNumber", "qsig.wtmch.destinationNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_wtmch_sendingComplete,
+ { "sendingComplete", "qsig.wtmch.sendingComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmch.NULL", HFILL }},
+ { &hf_qsig_wtmch_extension_01,
+ { "extension", "qsig.wtmch.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmch_T_extension_vals), 0,
+ "qsig_wtmch.T_extension", HFILL }},
+ { &hf_qsig_wtmch_single,
+ { "single", "qsig.wtmch.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmch_multiple,
+ { "multiple", "qsig.wtmch.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmch.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_wtmch_multiple_item,
+ { "Item", "qsig.wtmch.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_wtmau_qsig_wtmau_AuthWtmArg_PDU,
+ { "AuthWtmArg", "qsig.wtmau.AuthWtmArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.AuthWtmArg", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_AuthWtmRes_PDU,
+ { "AuthWtmRes", "qsig.wtmau.AuthWtmRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.AuthWtmRes", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_WtatParamArg_PDU,
+ { "WtatParamArg", "qsig.wtmau.WtatParamArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.WtatParamArg", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_WtatParamRes_PDU,
+ { "WtatParamRes", "qsig.wtmau.WtatParamRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.WtatParamRes", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_WtanParamArg_PDU,
+ { "WtanParamArg", "qsig.wtmau.WtanParamArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.WtanParamArg", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_WtanParamRes_PDU,
+ { "WtanParamRes", "qsig.wtmau.WtanParamRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.WtanParamRes", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_ARG_transferAuthParam_PDU,
+ { "ARG-transferAuthParam", "qsig.wtmau.ARG_transferAuthParam",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.ARG_transferAuthParam", HFILL }},
+ { &hf_qsig_wtmau_qsig_wtmau_Extension_PDU,
+ { "Extension", "qsig.wtmau.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmau_wtmUserId,
+ { "wtmUserId", "qsig.wtmau.wtmUserId",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmau_WtmUserId_vals), 0,
+ "qsig_wtmau.WtmUserId", HFILL }},
+ { &hf_qsig_wtmau_calcWtatInfo,
+ { "calcWtatInfo", "qsig.wtmau.calcWtatInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmau.CalcWtatInfo", HFILL }},
+ { &hf_qsig_wtmau_dummyExtension,
+ { "dummyExtension", "qsig.wtmau.dummyExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmau_DummyExtension_vals), 0,
+ "qsig_wtmau.DummyExtension", HFILL }},
+ { &hf_qsig_wtmau_autWtmResValue,
+ { "autWtmResValue", "qsig.wtmau.autWtmResValue",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmau_T_autWtmResValue_vals), 0,
+ "qsig_wtmau.T_autWtmResValue", HFILL }},
+ { &hf_qsig_wtmau_canCompute,
+ { "canCompute", "qsig.wtmau.canCompute",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.CanCompute", HFILL }},
+ { &hf_qsig_wtmau_authChallenge,
+ { "authChallenge", "qsig.wtmau.authChallenge",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.AuthChallenge", HFILL }},
+ { &hf_qsig_wtmau_wtatParamInfo,
+ { "wtatParamInfo", "qsig.wtmau.wtatParamInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.WtatParamInfo", HFILL }},
+ { &hf_qsig_wtmau_authAlgorithm,
+ { "authAlgorithm", "qsig.wtmau.authAlgorithm",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.AuthAlgorithm", HFILL }},
+ { &hf_qsig_wtmau_pisnNumber,
+ { "pisnNumber", "qsig.wtmau.pisnNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_wtmau_alternativeId,
+ { "alternativeId", "qsig.wtmau.alternativeId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.AlternativeId", HFILL }},
+ { &hf_qsig_wtmau_wtanParamInfo,
+ { "wtanParamInfo", "qsig.wtmau.wtanParamInfo",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmau_WtanParamInfo_vals), 0,
+ "qsig_wtmau.WtanParamInfo", HFILL }},
+ { &hf_qsig_wtmau_wtatParamInfoChoice,
+ { "wtatParamInfoChoice", "qsig.wtmau.wtatParamInfoChoice",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmau_T_wtatParamInfoChoice_vals), 0,
+ "qsig_wtmau.T_wtatParamInfoChoice", HFILL }},
+ { &hf_qsig_wtmau_authSessionKeyInfo,
+ { "authSessionKeyInfo", "qsig.wtmau.authSessionKeyInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.AuthSessionKeyInfo", HFILL }},
+ { &hf_qsig_wtmau_authKey,
+ { "authKey", "qsig.wtmau.authKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.AuthKey", HFILL }},
+ { &hf_qsig_wtmau_challLen,
+ { "challLen", "qsig.wtmau.challLen",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmau.INTEGER_1_8", HFILL }},
+ { &hf_qsig_wtmau_calcWtanInfo,
+ { "calcWtanInfo", "qsig.wtmau.calcWtanInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.CalcWtanInfo", HFILL }},
+ { &hf_qsig_wtmau_authSessionKey,
+ { "authSessionKey", "qsig.wtmau.authSessionKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.AuthSessionKey", HFILL }},
+ { &hf_qsig_wtmau_calculationParam,
+ { "calculationParam", "qsig.wtmau.calculationParam",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.CalculationParam", HFILL }},
+ { &hf_qsig_wtmau_CalcWtatInfo_item,
+ { "Item", "qsig.wtmau.CalcWtatInfo_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.CalcWtatInfoUnit", HFILL }},
+ { &hf_qsig_wtmau_authResponse,
+ { "authResponse", "qsig.wtmau.authResponse",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.AuthResponse", HFILL }},
+ { &hf_qsig_wtmau_derivedCipherKey,
+ { "derivedCipherKey", "qsig.wtmau.derivedCipherKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_wtmau.DerivedCipherKey", HFILL }},
+ { &hf_qsig_wtmau_extension,
+ { "extension", "qsig.wtmau.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmau_sequOfExtn,
+ { "sequOfExtn", "qsig.wtmau.sequOfExtn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_wtmau.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_wtmau_sequOfExtn_item,
+ { "Item", "qsig.wtmau.sequOfExtn_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_wtmau_authAlg,
+ { "authAlg", "qsig.wtmau.authAlg",
+ FT_UINT32, BASE_DEC, VALS(qsig_wtmau_DefinedIDs_vals), 0,
+ "qsig_wtmau.DefinedIDs", HFILL }},
+ { &hf_qsig_wtmau_param,
+ { "param", "qsig.wtmau.param",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_wtmau.T_param", HFILL }},
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_sd_qsig_sd_DisplayArg_PDU,
+ { "DisplayArg", "qsig.sd.DisplayArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sd.DisplayArg", HFILL }},
+ { &hf_qsig_sd_qsig_sd_KeypadArg_PDU,
+ { "KeypadArg", "qsig.sd.KeypadArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sd.KeypadArg", HFILL }},
+ { &hf_qsig_sd_qsig_sd_Extension_PDU,
+ { "Extension", "qsig.sd.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_sd_displayString,
+ { "displayString", "qsig.sd.displayString",
+ FT_UINT32, BASE_DEC, VALS(qsig_sd_DisplayString_vals), 0,
+ "qsig_sd.DisplayString", HFILL }},
+ { &hf_qsig_sd_extension,
+ { "extension", "qsig.sd.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_sd_SDExtension_vals), 0,
+ "qsig_sd.SDExtension", HFILL }},
+ { &hf_qsig_sd_displayStringNormal,
+ { "displayStringNormal", "qsig.sd.displayStringNormal",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sd.BMPStringNormal", HFILL }},
+ { &hf_qsig_sd_displayStringExtended,
+ { "displayStringExtended", "qsig.sd.displayStringExtended",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sd.BMPStringExtended", HFILL }},
+ { &hf_qsig_sd_keypadString,
+ { "keypadString", "qsig.sd.keypadString",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sd.BMPStringNormal", HFILL }},
+ { &hf_qsig_sd_extension_01,
+ { "extension", "qsig.sd.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_sd_multipleExtension,
+ { "multipleExtension", "qsig.sd.multipleExtension",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sd.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_sd_multipleExtension_item,
+ { "Item", "qsig.sd.multipleExtension_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_cidl_qsig_cidl_CallIdentificationAssignArg_PDU,
+ { "CallIdentificationAssignArg", "qsig.cidl.CallIdentificationAssignArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cidl.CallIdentificationAssignArg", HFILL }},
+ { &hf_qsig_cidl_qsig_cidl_CallIdentificationUpdateArg_PDU,
+ { "CallIdentificationUpdateArg", "qsig.cidl.CallIdentificationUpdateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cidl.CallIdentificationUpdateArg", HFILL }},
+ { &hf_qsig_cidl_globalCallID,
+ { "globalCallID", "qsig.cidl.globalCallID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cidl.CallIdentificationData", HFILL }},
+ { &hf_qsig_cidl_threadID,
+ { "threadID", "qsig.cidl.threadID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cidl.CallIdentificationData", HFILL }},
+ { &hf_qsig_cidl_legID,
+ { "legID", "qsig.cidl.legID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_cidl.CallIdentificationData", HFILL }},
+ { &hf_qsig_cidl_extension,
+ { "extension", "qsig.cidl.extension",
+ FT_UINT32, BASE_DEC, VALS(qsig_cidl_ExtensionType_vals), 0,
+ "qsig_cidl.ExtensionType", HFILL }},
+ { &hf_qsig_cidl_switchingSubDomainName,
+ { "switchingSubDomainName", "qsig.cidl.switchingSubDomainName",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_cidl.SwitchingSubDomainName", HFILL }},
+ { &hf_qsig_cidl_linkageID,
+ { "linkageID", "qsig.cidl.linkageID",
+ FT_UINT32, BASE_DEC, VALS(qsig_cidl_T_linkageID_vals), 0,
+ "qsig_cidl.T_linkageID", HFILL }},
+ { &hf_qsig_cidl_subDomainID,
+ { "subDomainID", "qsig.cidl.subDomainID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_cidl.SubDomainID", HFILL }},
+ { &hf_qsig_cidl_globallyUniqueID,
+ { "globallyUniqueID", "qsig.cidl.globallyUniqueID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_cidl.GloballyUniqueID", HFILL }},
+ { &hf_qsig_cidl_timeStamp,
+ { "timeStamp", "qsig.cidl.timeStamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_cidl.TimeStamp", HFILL }},
+ { &hf_qsig_cidl_extension_01,
+ { "extension", "qsig.cidl.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_cidl_sequenceOfExt,
+ { "sequenceOfExt", "qsig.cidl.sequenceOfExt",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_cidl.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_cidl_sequenceOfExt_item,
+ { "Item", "qsig.cidl.sequenceOfExt_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_sms_qsig_sms_SmsSubmitArg_PDU,
+ { "SmsSubmitArg", "qsig.sms.SmsSubmitArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsSubmitArg", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsSubmitRes_PDU,
+ { "SmsSubmitRes", "qsig.sms.SmsSubmitRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsSubmitRes", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsDeliverArg_PDU,
+ { "SmsDeliverArg", "qsig.sms.SmsDeliverArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsDeliverArg", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsDeliverRes_PDU,
+ { "SmsDeliverRes", "qsig.sms.SmsDeliverRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsDeliverRes", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsStatusReportArg_PDU,
+ { "SmsStatusReportArg", "qsig.sms.SmsStatusReportArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsStatusReportArg", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsStatusReportRes_PDU,
+ { "SmsStatusReportRes", "qsig.sms.SmsStatusReportRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsStatusReportRes", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsCommandArg_PDU,
+ { "SmsCommandArg", "qsig.sms.SmsCommandArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsCommandArg", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsCommandRes_PDU,
+ { "SmsCommandRes", "qsig.sms.SmsCommandRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmsCommandRes", HFILL }},
+ { &hf_qsig_sms_qsig_sms_ScAlertArg_PDU,
+ { "ScAlertArg", "qsig.sms.ScAlertArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.ScAlertArg", HFILL }},
+ { &hf_qsig_sms_qsig_sms_DummyRes_PDU,
+ { "DummyRes", "qsig.sms.DummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_DummyRes_vals), 0,
+ "qsig_sms.DummyRes", HFILL }},
+ { &hf_qsig_sms_qsig_sms_PAR_smsDeliverError_PDU,
+ { "PAR-smsDeliverError", "qsig.sms.PAR_smsDeliverError",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.PAR_smsDeliverError", HFILL }},
+ { &hf_qsig_sms_qsig_sms_PAR_smsSubmitError_PDU,
+ { "PAR-smsSubmitError", "qsig.sms.PAR_smsSubmitError",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.PAR_smsSubmitError", HFILL }},
+ { &hf_qsig_sms_qsig_sms_PAR_smsStatusReportError_PDU,
+ { "PAR-smsStatusReportError", "qsig.sms.PAR_smsStatusReportError",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.PAR_smsStatusReportError", HFILL }},
+ { &hf_qsig_sms_qsig_sms_PAR_smsCommandError_PDU,
+ { "PAR-smsCommandError", "qsig.sms.PAR_smsCommandError",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.PAR_smsCommandError", HFILL }},
+ { &hf_qsig_sms_qsig_sms_SmsExtension_PDU,
+ { "SmsExtension", "qsig.sms.SmsExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_SmsExtension_vals), 0,
+ "qsig_sms.SmsExtension", HFILL }},
+ { &hf_qsig_sms_destinationAddress,
+ { "destinationAddress", "qsig.sms.destinationAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_sms_originatingAddress,
+ { "originatingAddress", "qsig.sms.originatingAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_sms_messageReference,
+ { "messageReference", "qsig.sms.messageReference",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.MessageReference", HFILL }},
+ { &hf_qsig_sms_smSubmitParameter,
+ { "smSubmitParameter", "qsig.sms.smSubmitParameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmSubmitParameter", HFILL }},
+ { &hf_qsig_sms_userData,
+ { "userData", "qsig.sms.userData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.UserData", HFILL }},
+ { &hf_qsig_sms_smsExtension,
+ { "smsExtension", "qsig.sms.smsExtension",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_SmsExtension_vals), 0,
+ "qsig_sms.SmsExtension", HFILL }},
+ { &hf_qsig_sms_serviceCentreTimeStamp,
+ { "serviceCentreTimeStamp", "qsig.sms.serviceCentreTimeStamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_sms.ServiceCentreTimeStamp", HFILL }},
+ { &hf_qsig_sms_protocolIdentifier,
+ { "protocolIdentifier", "qsig.sms.protocolIdentifier",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.ProtocolIdentifier", HFILL }},
+ { &hf_qsig_sms_originatingName,
+ { "originatingName", "qsig.sms.originatingName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_sms_smDeliverParameter,
+ { "smDeliverParameter", "qsig.sms.smDeliverParameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.SmDeliverParameter", HFILL }},
+ { &hf_qsig_sms_smsDeliverResponseChoice,
+ { "smsDeliverResponseChoice", "qsig.sms.smsDeliverResponseChoice",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_SmsDeliverResChoice_vals), 0,
+ "qsig_sms.SmsDeliverResChoice", HFILL }},
+ { &hf_qsig_sms_dischargeTime,
+ { "dischargeTime", "qsig.sms.dischargeTime",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_sms.DischargeTime", HFILL }},
+ { &hf_qsig_sms_recipientAddress,
+ { "recipientAddress", "qsig.sms.recipientAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_sms_recipientName,
+ { "recipientName", "qsig.sms.recipientName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_sms_status,
+ { "status", "qsig.sms.status",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.Status", HFILL }},
+ { &hf_qsig_sms_priority,
+ { "priority", "qsig.sms.priority",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_moreMessagesToSend,
+ { "moreMessagesToSend", "qsig.sms.moreMessagesToSend",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_statusReportQualifier,
+ { "statusReportQualifier", "qsig.sms.statusReportQualifier",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_smsStatusReportResponseChoice,
+ { "smsStatusReportResponseChoice", "qsig.sms.smsStatusReportResponseChoice",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_SmsStatusReportResponseChoice_vals), 0,
+ "qsig_sms.SmsStatusReportResponseChoice", HFILL }},
+ { &hf_qsig_sms_messageNumber,
+ { "messageNumber", "qsig.sms.messageNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.MessageReference", HFILL }},
+ { &hf_qsig_sms_commandType,
+ { "commandType", "qsig.sms.commandType",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_CommandType_vals), 0,
+ "qsig_sms.CommandType", HFILL }},
+ { &hf_qsig_sms_commandData,
+ { "commandData", "qsig.sms.commandData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sms.CommandData", HFILL }},
+ { &hf_qsig_sms_statusReportRequest,
+ { "statusReportRequest", "qsig.sms.statusReportRequest",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_null,
+ { "null", "qsig.sms.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.NULL", HFILL }},
+ { &hf_qsig_sms_validityPeriod,
+ { "validityPeriod", "qsig.sms.validityPeriod",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_ValidityPeriod_vals), 0,
+ "qsig_sms.ValidityPeriod", HFILL }},
+ { &hf_qsig_sms_replyPath,
+ { "replyPath", "qsig.sms.replyPath",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_rejectDuplicates,
+ { "rejectDuplicates", "qsig.sms.rejectDuplicates",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_statusReportIndication,
+ { "statusReportIndication", "qsig.sms.statusReportIndication",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_resChoiceSeq,
+ { "resChoiceSeq", "qsig.sms.resChoiceSeq",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.ResChoiceSeq", HFILL }},
+ { &hf_qsig_sms_single,
+ { "single", "qsig.sms.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_sms_multiple,
+ { "multiple", "qsig.sms.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_sms_multiple_item,
+ { "Item", "qsig.sms.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_sms_validityPeriodRel,
+ { "validityPeriodRel", "qsig.sms.validityPeriodRel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.ValidityPeriodRel", HFILL }},
+ { &hf_qsig_sms_validityPeriodAbs,
+ { "validityPeriodAbs", "qsig.sms.validityPeriodAbs",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_sms.ValidityPeriodAbs", HFILL }},
+ { &hf_qsig_sms_validityPeriodEnh,
+ { "validityPeriodEnh", "qsig.sms.validityPeriodEnh",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.ValidityPeriodEnh", HFILL }},
+ { &hf_qsig_sms_singleShotSM,
+ { "singleShotSM", "qsig.sms.singleShotSM",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_enhancedVP,
+ { "enhancedVP", "qsig.sms.enhancedVP",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_EnhancedVP_vals), 0,
+ "qsig_sms.EnhancedVP", HFILL }},
+ { &hf_qsig_sms_validityPeriodSec,
+ { "validityPeriodSec", "qsig.sms.validityPeriodSec",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_validityPeriodSemi,
+ { "validityPeriodSemi", "qsig.sms.validityPeriodSemi",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sms.ValidityPeriodSemi", HFILL }},
+ { &hf_qsig_sms_userDataHeader,
+ { "userDataHeader", "qsig.sms.userDataHeader",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.UserDataHeader", HFILL }},
+ { &hf_qsig_sms_class,
+ { "class", "qsig.sms.class",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_3", HFILL }},
+ { &hf_qsig_sms_compressed,
+ { "compressed", "qsig.sms.compressed",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_shortMessageText,
+ { "shortMessageText", "qsig.sms.shortMessageText",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.ShortMessageText", HFILL }},
+ { &hf_qsig_sms_shortMessageTextType,
+ { "shortMessageTextType", "qsig.sms.shortMessageTextType",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_ShortMessageTextType_vals), 0,
+ "qsig_sms.ShortMessageTextType", HFILL }},
+ { &hf_qsig_sms_shortMessageTextData,
+ { "shortMessageTextData", "qsig.sms.shortMessageTextData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sms.ShortMessageTextData", HFILL }},
+ { &hf_qsig_sms_UserDataHeader_item,
+ { "Item", "qsig.sms.UserDataHeader_item",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_UserDataHeaderChoice_vals), 0,
+ "qsig_sms.UserDataHeaderChoice", HFILL }},
+ { &hf_qsig_sms_smscControlParameterHeader,
+ { "smscControlParameterHeader", "qsig.sms.smscControlParameterHeader",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sms.SmscControlParameterHeader", HFILL }},
+ { &hf_qsig_sms_concatenated8BitSMHeader,
+ { "concatenated8BitSMHeader", "qsig.sms.concatenated8BitSMHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.Concatenated8BitSMHeader", HFILL }},
+ { &hf_qsig_sms_concatenated16BitSMHeader,
+ { "concatenated16BitSMHeader", "qsig.sms.concatenated16BitSMHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.Concatenated16BitSMHeader", HFILL }},
+ { &hf_qsig_sms_applicationPort8BitHeader,
+ { "applicationPort8BitHeader", "qsig.sms.applicationPort8BitHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.ApplicationPort8BitHeader", HFILL }},
+ { &hf_qsig_sms_applicationPort16BitHeader,
+ { "applicationPort16BitHeader", "qsig.sms.applicationPort16BitHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.ApplicationPort16BitHeader", HFILL }},
+ { &hf_qsig_sms_dataHeaderSourceIndicator,
+ { "dataHeaderSourceIndicator", "qsig.sms.dataHeaderSourceIndicator",
+ FT_UINT32, BASE_DEC, VALS(qsig_sms_DataHeaderSourceIndicator_vals), 0,
+ "qsig_sms.DataHeaderSourceIndicator", HFILL }},
+ { &hf_qsig_sms_wirelessControlHeader,
+ { "wirelessControlHeader", "qsig.sms.wirelessControlHeader",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sms.WirelessControlHeader", HFILL }},
+ { &hf_qsig_sms_genericUserValue,
+ { "genericUserValue", "qsig.sms.genericUserValue",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_sms.GenericUserValue", HFILL }},
+ { &hf_qsig_sms_concatenated8BitSMReferenceNumber,
+ { "concatenated8BitSMReferenceNumber", "qsig.sms.concatenated8BitSMReferenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_maximumNumberOf8BitSMInConcatenatedSM,
+ { "maximumNumberOf8BitSMInConcatenatedSM", "qsig.sms.maximumNumberOf8BitSMInConcatenatedSM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_sequenceNumberOf8BitSM,
+ { "sequenceNumberOf8BitSM", "qsig.sms.sequenceNumberOf8BitSM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_concatenated16BitSMReferenceNumber,
+ { "concatenated16BitSMReferenceNumber", "qsig.sms.concatenated16BitSMReferenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_65536", HFILL }},
+ { &hf_qsig_sms_maximumNumberOf16BitSMInConcatenatedSM,
+ { "maximumNumberOf16BitSMInConcatenatedSM", "qsig.sms.maximumNumberOf16BitSMInConcatenatedSM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_sequenceNumberOf16BitSM,
+ { "sequenceNumberOf16BitSM", "qsig.sms.sequenceNumberOf16BitSM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_destination8BitPort,
+ { "destination8BitPort", "qsig.sms.destination8BitPort",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_originator8BitPort,
+ { "originator8BitPort", "qsig.sms.originator8BitPort",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_destination16BitPort,
+ { "destination16BitPort", "qsig.sms.destination16BitPort",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_65536", HFILL }},
+ { &hf_qsig_sms_originator16BitPort,
+ { "originator16BitPort", "qsig.sms.originator16BitPort",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_65536", HFILL }},
+ { &hf_qsig_sms_parameterValue,
+ { "parameterValue", "qsig.sms.parameterValue",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.INTEGER_0_255", HFILL }},
+ { &hf_qsig_sms_genericUserData,
+ { "genericUserData", "qsig.sms.genericUserData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "qsig_sms.OCTET_STRING", HFILL }},
+ { &hf_qsig_sms_failureCause,
+ { "failureCause", "qsig.sms.failureCause",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_sms.FailureCause", HFILL }},
+ { &hf_qsig_sms_scAddressSaved,
+ { "scAddressSaved", "qsig.sms.scAddressSaved",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_sms.BOOLEAN", HFILL }},
+ { &hf_qsig_sms_SmscControlParameterHeader_sRforTransactionCompleted,
+ { "sRforTransactionCompleted", "qsig.sms.sRforTransactionCompleted",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_qsig_sms_SmscControlParameterHeader_sRforPermanentError,
+ { "sRforPermanentError", "qsig.sms.sRforPermanentError",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_qsig_sms_SmscControlParameterHeader_sRforTempErrorSCnotTrying,
+ { "sRforTempErrorSCnotTrying", "qsig.sms.sRforTempErrorSCnotTrying",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_qsig_sms_SmscControlParameterHeader_sRforTempErrorSCstillTrying,
+ { "sRforTempErrorSCstillTrying", "qsig.sms.sRforTempErrorSCstillTrying",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_qsig_sms_SmscControlParameterHeader_cancelSRRforConcatenatedSM,
+ { "cancelSRRforConcatenatedSM", "qsig.sms.cancelSRRforConcatenatedSM",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_qsig_sms_SmscControlParameterHeader_includeOrigUDHintoSR,
+ { "includeOrigUDHintoSR", "qsig.sms.includeOrigUDHintoSR",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+ { &hf_qsig_mcr_qsig_mcr_MCRequestArg_PDU,
+ { "MCRequestArg", "qsig.mcr.MCRequestArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.MCRequestArg", HFILL }},
+ { &hf_qsig_mcr_qsig_mcr_MCRequestResult_PDU,
+ { "MCRequestResult", "qsig.mcr.MCRequestResult",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.MCRequestResult", HFILL }},
+ { &hf_qsig_mcr_qsig_mcr_MCInformArg_PDU,
+ { "MCInformArg", "qsig.mcr.MCInformArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.MCInformArg", HFILL }},
+ { &hf_qsig_mcr_qsig_mcr_MCAlertingArg_PDU,
+ { "MCAlertingArg", "qsig.mcr.MCAlertingArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.MCAlertingArg", HFILL }},
+ { &hf_qsig_mcr_qsig_mcr_Extension_PDU,
+ { "Extension", "qsig.mcr.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mcr_callType,
+ { "callType", "qsig.mcr.callType",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcr_CallType_vals), 0,
+ "qsig_mcr.CallType", HFILL }},
+ { &hf_qsig_mcr_retainOrigCall,
+ { "retainOrigCall", "qsig.mcr.retainOrigCall",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_mcr.BOOLEAN", HFILL }},
+ { &hf_qsig_mcr_destinationAddress,
+ { "destinationAddress", "qsig.mcr.destinationAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressUnscreened_vals), 0,
+ "qsig.PresentedAddressUnscreened", HFILL }},
+ { &hf_qsig_mcr_requestingAddress,
+ { "requestingAddress", "qsig.mcr.requestingAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressUnscreened_vals), 0,
+ "qsig.PresentedAddressUnscreened", HFILL }},
+ { &hf_qsig_mcr_cooperatingAddress,
+ { "cooperatingAddress", "qsig.mcr.cooperatingAddress",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressUnscreened_vals), 0,
+ "qsig.PresentedAddressUnscreened", HFILL }},
+ { &hf_qsig_mcr_correlation,
+ { "correlation", "qsig.mcr.correlation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.Correlation", HFILL }},
+ { &hf_qsig_mcr_extensions,
+ { "extensions", "qsig.mcr.extensions",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcr_MCRExtensions_vals), 0,
+ "qsig_mcr.MCRExtensions", HFILL }},
+ { &hf_qsig_mcr_basicService,
+ { "basicService", "qsig.mcr.basicService",
+ FT_UINT32, BASE_DEC, VALS(qsig_cf_BasicService_vals), 0,
+ "qsig_cf.BasicService", HFILL }},
+ { &hf_qsig_mcr_cisc,
+ { "cisc", "qsig.mcr.cisc",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.NULL", HFILL }},
+ { &hf_qsig_mcr_correlationData,
+ { "correlationData", "qsig.mcr.correlationData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_pr.CallIdentity", HFILL }},
+ { &hf_qsig_mcr_correlationReason,
+ { "correlationReason", "qsig.mcr.correlationReason",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcr_CorrelationReason_vals), 0,
+ "qsig_mcr.CorrelationReason", HFILL }},
+ { &hf_qsig_mcr_none,
+ { "none", "qsig.mcr.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcr.NULL", HFILL }},
+ { &hf_qsig_mcr_single,
+ { "single", "qsig.mcr.single",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mcr_multiple,
+ { "multiple", "qsig.mcr.multiple",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcr.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_mcr_multiple_item,
+ { "Item", "qsig.mcr.multiple_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_mcm_qsig_mcm_MCMNewMsgArg_PDU,
+ { "MCMNewMsgArg", "qsig.mcm.MCMNewMsgArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMNewMsgArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMDummyRes_PDU,
+ { "MCMDummyRes", "qsig.mcm.MCMDummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MCMExtensions_vals), 0,
+ "qsig_mcm.MCMDummyRes", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMNoNewMsgArg_PDU,
+ { "MCMNoNewMsgArg", "qsig.mcm.MCMNoNewMsgArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMNoNewMsgArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMUpdateArg_PDU,
+ { "MCMUpdateArg", "qsig.mcm.MCMUpdateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMUpdateArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMUpdateReqArg_PDU,
+ { "MCMUpdateReqArg", "qsig.mcm.MCMUpdateReqArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMUpdateReqArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMUpdateReqRes_PDU,
+ { "MCMUpdateReqRes", "qsig.mcm.MCMUpdateReqRes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.MCMUpdateReqRes", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMServiceArg_PDU,
+ { "MCMServiceArg", "qsig.mcm.MCMServiceArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMServiceArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMInterrogateArg_PDU,
+ { "MCMInterrogateArg", "qsig.mcm.MCMInterrogateArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMInterrogateArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMInterrogateRes_PDU,
+ { "MCMInterrogateRes", "qsig.mcm.MCMInterrogateRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMInterrogateRes", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_MCMailboxFullArg_PDU,
+ { "MCMailboxFullArg", "qsig.mcm.MCMailboxFullArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMailboxFullArg", HFILL }},
+ { &hf_qsig_mcm_qsig_mcm_Extension_PDU,
+ { "Extension", "qsig.mcm.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mcm_partyInfo,
+ { "partyInfo", "qsig.mcm.partyInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.PartyInfo", HFILL }},
+ { &hf_qsig_mcm_mailboxFullFor,
+ { "mailboxFullFor", "qsig.mcm.mailboxFullFor",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.MailboxFullFor", HFILL }},
+ { &hf_qsig_mcm_extensions,
+ { "extensions", "qsig.mcm.extensions",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MCMExtensions_vals), 0,
+ "qsig_mcm.MCMExtensions", HFILL }},
+ { &hf_qsig_mcm_MailboxFullFor_item,
+ { "Item", "qsig.mcm.MailboxFullFor_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MailboxFullPar", HFILL }},
+ { &hf_qsig_mcm_messageType,
+ { "messageType", "qsig.mcm.messageType",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageType_vals), 0,
+ "qsig_mcm.MessageType", HFILL }},
+ { &hf_qsig_mcm_capacityReached,
+ { "capacityReached", "qsig.mcm.capacityReached",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.INTEGER_0_100", HFILL }},
+ { &hf_qsig_mcm_mCMChange,
+ { "mCMChange", "qsig.mcm.mCMChange",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MCMChange_vals), 0,
+ "qsig_mcm.MCMChange", HFILL }},
+ { &hf_qsig_mcm_activateMCM,
+ { "activateMCM", "qsig.mcm.activateMCM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.SEQUENCE_OF_MCMServiceInfo", HFILL }},
+ { &hf_qsig_mcm_activateMCM_item,
+ { "Item", "qsig.mcm.activateMCM_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMServiceInfo", HFILL }},
+ { &hf_qsig_mcm_deactivateMCM,
+ { "deactivateMCM", "qsig.mcm.deactivateMCM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.SEQUENCE_OF_MessageType", HFILL }},
+ { &hf_qsig_mcm_deactivateMCM_item,
+ { "Item", "qsig.mcm.deactivateMCM_item",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageType_vals), 0,
+ "qsig_mcm.MessageType", HFILL }},
+ { &hf_qsig_mcm_setToDefaultValues,
+ { "setToDefaultValues", "qsig.mcm.setToDefaultValues",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.NULL", HFILL }},
+ { &hf_qsig_mcm_mCMModeNew,
+ { "mCMModeNew", "qsig.mcm.mCMModeNew",
+ FT_INT32, BASE_DEC, VALS(qsig_mcm_MCMMode_vals), 0,
+ "qsig_mcm.MCMMode", HFILL }},
+ { &hf_qsig_mcm_mCMModeRetrieved,
+ { "mCMModeRetrieved", "qsig.mcm.mCMModeRetrieved",
+ FT_INT32, BASE_DEC, VALS(qsig_mcm_MCMMode_vals), 0,
+ "qsig_mcm.MCMMode", HFILL }},
+ { &hf_qsig_mcm_interrogateInfo,
+ { "interrogateInfo", "qsig.mcm.interrogateInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.SEQUENCE_OF_MessageType", HFILL }},
+ { &hf_qsig_mcm_interrogateInfo_item,
+ { "Item", "qsig.mcm.interrogateInfo_item",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageType_vals), 0,
+ "qsig_mcm.MessageType", HFILL }},
+ { &hf_qsig_mcm_interrogateResult,
+ { "interrogateResult", "qsig.mcm.interrogateResult",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.SEQUENCE_OF_MCMServiceInfo", HFILL }},
+ { &hf_qsig_mcm_interrogateResult_item,
+ { "Item", "qsig.mcm.interrogateResult_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMServiceInfo", HFILL }},
+ { &hf_qsig_mcm_servedUserNr,
+ { "servedUserNr", "qsig.mcm.servedUserNr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_mcm_specificMessageType,
+ { "specificMessageType", "qsig.mcm.specificMessageType",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageType_vals), 0,
+ "qsig_mcm.MessageType", HFILL }},
+ { &hf_qsig_mcm_msgCentreId,
+ { "msgCentreId", "qsig.mcm.msgCentreId",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MsgCentreId_vals), 0,
+ "qsig_mcm.MsgCentreId", HFILL }},
+ { &hf_qsig_mcm_nrOfMessages,
+ { "nrOfMessages", "qsig.mcm.nrOfMessages",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.NrOfMessages", HFILL }},
+ { &hf_qsig_mcm_originatingNr,
+ { "originatingNr", "qsig.mcm.originatingNr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_mcm_timestamp,
+ { "timestamp", "qsig.mcm.timestamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_mcm.TimeStamp", HFILL }},
+ { &hf_qsig_mcm_priority,
+ { "priority", "qsig.mcm.priority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.INTEGER_0_9", HFILL }},
+ { &hf_qsig_mcm_argumentExt,
+ { "argumentExt", "qsig.mcm.argumentExt",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_T_argumentExt_vals), 0,
+ "qsig_mcm.T_argumentExt", HFILL }},
+ { &hf_qsig_mcm_extension,
+ { "extension", "qsig.mcm.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mcm_multipleExtension,
+ { "multipleExtension", "qsig.mcm.multipleExtension",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_mcm_multipleExtension_item,
+ { "Item", "qsig.mcm.multipleExtension_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mcm_argumentExt_01,
+ { "argumentExt", "qsig.mcm.argumentExt",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_T_argumentExt_01_vals), 0,
+ "qsig_mcm.T_argumentExt_01", HFILL }},
+ { &hf_qsig_mcm_updateInfo,
+ { "updateInfo", "qsig.mcm.updateInfo",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_UpdateInfo_vals), 0,
+ "qsig_mcm.UpdateInfo", HFILL }},
+ { &hf_qsig_mcm_moreInfoFollows,
+ { "moreInfoFollows", "qsig.mcm.moreInfoFollows",
+ FT_BOOLEAN, 8, NULL, 0,
+ "qsig_mcm.BOOLEAN", HFILL }},
+ { &hf_qsig_mcm_argumentExt_02,
+ { "argumentExt", "qsig.mcm.argumentExt",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_T_argumentExt_02_vals), 0,
+ "qsig_mcm.T_argumentExt_02", HFILL }},
+ { &hf_qsig_mcm_MCMUpdateReqRes_item,
+ { "Item", "qsig.mcm.MCMUpdateReqRes_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.MCMUpdateReqResElt", HFILL }},
+ { &hf_qsig_mcm_argumentExt_03,
+ { "argumentExt", "qsig.mcm.argumentExt",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_T_argumentExt_03_vals), 0,
+ "qsig_mcm.T_argumentExt_03", HFILL }},
+ { &hf_qsig_mcm_messageCentreID,
+ { "messageCentreID", "qsig.mcm.messageCentreID",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MsgCentreId_vals), 0,
+ "qsig_mcm.MsgCentreId", HFILL }},
+ { &hf_qsig_mcm_newMsgInfoOnly,
+ { "newMsgInfoOnly", "qsig.mcm.newMsgInfoOnly",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageInfo_vals), 0,
+ "qsig_mcm.MessageInfo", HFILL }},
+ { &hf_qsig_mcm_retrievedMsgInfoOnly,
+ { "retrievedMsgInfoOnly", "qsig.mcm.retrievedMsgInfoOnly",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageInfo_vals), 0,
+ "qsig_mcm.MessageInfo", HFILL }},
+ { &hf_qsig_mcm_allMsgInfo,
+ { "allMsgInfo", "qsig.mcm.allMsgInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.AllMsgInfo", HFILL }},
+ { &hf_qsig_mcm_newMsgInfo,
+ { "newMsgInfo", "qsig.mcm.newMsgInfo",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageInfo_vals), 0,
+ "qsig_mcm.MessageInfo", HFILL }},
+ { &hf_qsig_mcm_retrievedMsgInfo,
+ { "retrievedMsgInfo", "qsig.mcm.retrievedMsgInfo",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageInfo_vals), 0,
+ "qsig_mcm.MessageInfo", HFILL }},
+ { &hf_qsig_mcm_completeInfo,
+ { "completeInfo", "qsig.mcm.completeInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.CompleteInfo", HFILL }},
+ { &hf_qsig_mcm_compressedInfo,
+ { "compressedInfo", "qsig.mcm.compressedInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.CompressedInfo", HFILL }},
+ { &hf_qsig_mcm_noMsgsOfMsgType,
+ { "noMsgsOfMsgType", "qsig.mcm.noMsgsOfMsgType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.NULL", HFILL }},
+ { &hf_qsig_mcm_CompleteInfo_item,
+ { "Item", "qsig.mcm.CompleteInfo_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.AddressHeader", HFILL }},
+ { &hf_qsig_mcm_originatorNr,
+ { "originatorNr", "qsig.mcm.originatorNr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_mcm_timeStamp,
+ { "timeStamp", "qsig.mcm.timeStamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_mcm.TimeStamp", HFILL }},
+ { &hf_qsig_mcm_priority_01,
+ { "priority", "qsig.mcm.priority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.Priority", HFILL }},
+ { &hf_qsig_mcm_lastTimeStamp,
+ { "lastTimeStamp", "qsig.mcm.lastTimeStamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_mcm.TimeStamp", HFILL }},
+ { &hf_qsig_mcm_highestPriority,
+ { "highestPriority", "qsig.mcm.highestPriority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.Priority", HFILL }},
+ { &hf_qsig_mcm_integer,
+ { "integer", "qsig.mcm.integer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mcm.INTEGER_0_65535", HFILL }},
+ { &hf_qsig_mcm_partyNumber,
+ { "partyNumber", "qsig.mcm.partyNumber",
+ FT_UINT32, BASE_DEC, VALS(qsig_PartyNumber_vals), 0,
+ "qsig.PartyNumber", HFILL }},
+ { &hf_qsig_mcm_numericString,
+ { "numericString", "qsig.mcm.numericString",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_mcm.NumericString_SIZE_1_10", HFILL }},
+ { &hf_qsig_mcm_none,
+ { "none", "qsig.mcm.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mcm.NULL", HFILL }},
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+ { &hf_qsig_mid_qsig_mid_MIDMailboxAuthArg_PDU,
+ { "MIDMailboxAuthArg", "qsig.mid.MIDMailboxAuthArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mid.MIDMailboxAuthArg", HFILL }},
+ { &hf_qsig_mid_qsig_mid_MIDDummyRes_PDU,
+ { "MIDDummyRes", "qsig.mid.MIDDummyRes",
+ FT_UINT32, BASE_DEC, VALS(qsig_mid_MIDExtensions_vals), 0,
+ "qsig_mid.MIDDummyRes", HFILL }},
+ { &hf_qsig_mid_qsig_mid_MIDMailboxIDArg_PDU,
+ { "MIDMailboxIDArg", "qsig.mid.MIDMailboxIDArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mid.MIDMailboxIDArg", HFILL }},
+ { &hf_qsig_mid_qsig_mid_Extension_PDU,
+ { "Extension", "qsig.mid.Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mid_partyInfo,
+ { "partyInfo", "qsig.mid.partyInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mid.PartyInfo", HFILL }},
+ { &hf_qsig_mid_servedUserName,
+ { "servedUserName", "qsig.mid.servedUserName",
+ FT_UINT32, BASE_DEC, VALS(qsig_na_Name_vals), 0,
+ "qsig_na.Name", HFILL }},
+ { &hf_qsig_mid_mailBox,
+ { "mailBox", "qsig.mid.mailBox",
+ FT_UINT32, BASE_DEC, VALS(qsig_mid_String_vals), 0,
+ "qsig_mid.String", HFILL }},
+ { &hf_qsig_mid_password,
+ { "password", "qsig.mid.password",
+ FT_UINT32, BASE_DEC, VALS(qsig_mid_String_vals), 0,
+ "qsig_mid.String", HFILL }},
+ { &hf_qsig_mid_extensions,
+ { "extensions", "qsig.mid.extensions",
+ FT_UINT32, BASE_DEC, VALS(qsig_mid_MIDExtensions_vals), 0,
+ "qsig_mid.MIDExtensions", HFILL }},
+ { &hf_qsig_mid_servedUserNr,
+ { "servedUserNr", "qsig.mid.servedUserNr",
+ FT_UINT32, BASE_DEC, VALS(qsig_PresentedAddressUnscreened_vals), 0,
+ "qsig.PresentedAddressUnscreened", HFILL }},
+ { &hf_qsig_mid_messageType,
+ { "messageType", "qsig.mid.messageType",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MessageType_vals), 0,
+ "qsig_mcm.MessageType", HFILL }},
+ { &hf_qsig_mid_messageCentreID,
+ { "messageCentreID", "qsig.mid.messageCentreID",
+ FT_UINT32, BASE_DEC, VALS(qsig_mcm_MsgCentreId_vals), 0,
+ "qsig_mcm.MsgCentreId", HFILL }},
+ { &hf_qsig_mid_stringBmp,
+ { "stringBmp", "qsig.mid.stringBmp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_mid.BMPString", HFILL }},
+ { &hf_qsig_mid_stringUtf8,
+ { "stringUtf8", "qsig.mid.stringUtf8",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "qsig_mid.UTF8String", HFILL }},
+ { &hf_qsig_mid_none,
+ { "none", "qsig.mid.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig_mid.NULL", HFILL }},
+ { &hf_qsig_mid_extension,
+ { "extension", "qsig.mid.extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
+ { &hf_qsig_mid_multipleExtension,
+ { "multipleExtension", "qsig.mid.multipleExtension",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "qsig_mid.SEQUENCE_OF_Extension", HFILL }},
+ { &hf_qsig_mid_multipleExtension_item,
+ { "Item", "qsig.mid.multipleExtension_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "qsig.Extension", HFILL }},
/*--- End of included file: packet-qsig-hfarr.c ---*/
-#line 776 "packet-qsig-template.c"
+#line 614 "packet-qsig-template.c"
};
/* List of subtrees */
@@ -2657,6 +15557,9 @@ void proto_register_qsig(void) {
/*--- Included file: packet-qsig-ettarr.c ---*/
#line 1 "packet-qsig-ettarr.c"
+
+/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
+
&ett_qsig_Extension,
&ett_qsig_PresentedAddressScreened,
&ett_qsig_PresentedAddressUnscreened,
@@ -2670,41 +15573,423 @@ void proto_register_qsig(void) {
&ett_qsig_PrivatePartyNumber,
&ett_qsig_PartySubaddress,
&ett_qsig_UserSpecifiedSubaddress,
- &ett_qsig_NameArg,
- &ett_qsig_T_nameSequence,
- &ett_qsig_NameExtension,
- &ett_qsig_SEQUENCE_OF_Extension,
- &ett_qsig_Name,
- &ett_qsig_NamePresentationAllowed,
- &ett_qsig_NamePresentationRestricted,
- &ett_qsig_NameSet,
- &ett_qsig_ARG_activateDiversionQ,
- &ett_qsig_ADExtension,
- &ett_qsig_RES_activateDiversionQ,
- &ett_qsig_ARG_deactivateDiversionQ,
- &ett_qsig_DDExtension,
- &ett_qsig_RES_deactivateDiversionQ,
- &ett_qsig_ARG_interrogateDiversionQ,
- &ett_qsig_IDExtension,
- &ett_qsig_ARG_checkRestriction,
- &ett_qsig_CHRExtension,
- &ett_qsig_RES_checkRestriction,
- &ett_qsig_ARG_callRerouteing,
- &ett_qsig_CRRExtension,
- &ett_qsig_RES_callRerouteing,
- &ett_qsig_ARG_divertingLegInformation1,
- &ett_qsig_DLI1Extension,
- &ett_qsig_ARG_divertingLegInformation2,
- &ett_qsig_DLI2Extension,
- &ett_qsig_ARG_divertingLegInformation3,
- &ett_qsig_DLI3Extension,
- &ett_qsig_ARG_cfnrDivertedLegFailed,
- &ett_qsig_IntResultList,
- &ett_qsig_IntResult,
- &ett_qsig_IRExtension,
+
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_na_NameArg,
+ &ett_qsig_na_T_nameSequence,
+ &ett_qsig_na_NameExtension,
+ &ett_qsig_na_SEQUENCE_OF_Extension,
+ &ett_qsig_na_Name,
+ &ett_qsig_na_NamePresentationAllowed,
+ &ett_qsig_na_NamePresentationRestricted,
+ &ett_qsig_na_NameSet,
+
+/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_cf_ARG_activateDiversionQ,
+ &ett_qsig_cf_ADExtension,
+ &ett_qsig_cf_SEQUENCE_OF_Extension,
+ &ett_qsig_cf_RES_activateDiversionQ,
+ &ett_qsig_cf_ARG_deactivateDiversionQ,
+ &ett_qsig_cf_DDExtension,
+ &ett_qsig_cf_RES_deactivateDiversionQ,
+ &ett_qsig_cf_ARG_interrogateDiversionQ,
+ &ett_qsig_cf_IDExtension,
+ &ett_qsig_cf_ARG_checkRestriction,
+ &ett_qsig_cf_CHRExtension,
+ &ett_qsig_cf_RES_checkRestriction,
+ &ett_qsig_cf_ARG_callRerouteing,
+ &ett_qsig_cf_CRRExtension,
+ &ett_qsig_cf_RES_callRerouteing,
+ &ett_qsig_cf_ARG_divertingLegInformation1,
+ &ett_qsig_cf_DLI1Extension,
+ &ett_qsig_cf_ARG_divertingLegInformation2,
+ &ett_qsig_cf_DLI2Extension,
+ &ett_qsig_cf_ARG_divertingLegInformation3,
+ &ett_qsig_cf_DLI3Extension,
+ &ett_qsig_cf_ARG_cfnrDivertedLegFailed,
+ &ett_qsig_cf_IntResultList,
+ &ett_qsig_cf_IntResult,
+ &ett_qsig_cf_IRExtension,
+
+/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_pr_PRProposeArg,
+ &ett_qsig_pr_T_extension,
+ &ett_qsig_pr_SEQUENCE_OF_Extension,
+ &ett_qsig_pr_PRSetupArg,
+ &ett_qsig_pr_T_extension_01,
+ &ett_qsig_pr_PRRetainArg,
+ &ett_qsig_pr_T_extension_02,
+ &ett_qsig_pr_DummyResult,
+ &ett_qsig_pr_DummyArg,
+
+/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_ct_DummyArg,
+ &ett_qsig_ct_SEQUENCE_OF_Extension,
+ &ett_qsig_ct_DummyRes,
+ &ett_qsig_ct_CTIdentifyRes,
+ &ett_qsig_ct_T_resultExtension,
+ &ett_qsig_ct_CTInitiateArg,
+ &ett_qsig_ct_T_argumentExtension,
+ &ett_qsig_ct_CTSetupArg,
+ &ett_qsig_ct_T_argumentExtension_01,
+ &ett_qsig_ct_CTActiveArg,
+ &ett_qsig_ct_T_argumentExtension_02,
+ &ett_qsig_ct_CTCompleteArg,
+ &ett_qsig_ct_T_argumentExtension_03,
+ &ett_qsig_ct_CTUpdateArg,
+ &ett_qsig_ct_T_argumentExtension_04,
+ &ett_qsig_ct_SubaddressTransferArg,
+ &ett_qsig_ct_T_argumentExtension_05,
+
+/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_cc_CcRequestArg,
+ &ett_qsig_cc_CcRequestRes,
+ &ett_qsig_cc_CcOptionalArg,
+ &ett_qsig_cc_T_fullArg,
+ &ett_qsig_cc_CcExtension,
+ &ett_qsig_cc_SEQUENCE_OF_Extension,
+
+/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_co_PathRetainArg,
+ &ett_qsig_co_T_extendedServiceList,
+ &ett_qsig_co_ServiceAvailableArg,
+ &ett_qsig_co_T_extendedServiceList_01,
+ &ett_qsig_co_ServiceList,
+ &ett_qsig_co_DummyArg,
+ &ett_qsig_co_SEQUENCE_OF_Extension,
+ &ett_qsig_co_DummyRes,
+
+/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_dnd_DummyArg,
+ &ett_qsig_dnd_SEQUENCE_OF_Extension,
+ &ett_qsig_dnd_DummyRes,
+ &ett_qsig_dnd_DNDActivateArg,
+ &ett_qsig_dnd_T_argumentExtension,
+ &ett_qsig_dnd_DNDActivateRes,
+ &ett_qsig_dnd_T_status,
+ &ett_qsig_dnd_T_status_item,
+ &ett_qsig_dnd_T_resultExtension,
+ &ett_qsig_dnd_DNDDeactivateArg,
+ &ett_qsig_dnd_T_argumentExtension_01,
+ &ett_qsig_dnd_DNDInterrogateArg,
+ &ett_qsig_dnd_T_argumentExtension_02,
+ &ett_qsig_dnd_DNDInterrogateRes,
+ &ett_qsig_dnd_T_status_01,
+ &ett_qsig_dnd_T_status_item_01,
+ &ett_qsig_dnd_T_resultExtension_01,
+ &ett_qsig_dnd_DNDOverrideArg,
+ &ett_qsig_dnd_T_argumentExtension_03,
+ &ett_qsig_dnd_PathRetainArg,
+ &ett_qsig_dnd_T_extendedServiceList,
+ &ett_qsig_dnd_ServiceAvailableArg,
+ &ett_qsig_dnd_T_extendedServiceList_01,
+ &ett_qsig_dnd_ServiceList,
+
+/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_ci_PathRetainArg,
+ &ett_qsig_ci_T_extendedServiceList,
+ &ett_qsig_ci_ServiceAvailableArg,
+ &ett_qsig_ci_T_extendedServiceList_01,
+ &ett_qsig_ci_ServiceList,
+ &ett_qsig_ci_DummyArg,
+ &ett_qsig_ci_SEQUENCE_OF_Extension,
+ &ett_qsig_ci_DummyRes,
+ &ett_qsig_ci_CIRequestArg,
+ &ett_qsig_ci_T_argumentExtension,
+ &ett_qsig_ci_CIRequestRes,
+ &ett_qsig_ci_T_resultExtension,
+ &ett_qsig_ci_CIGetCIPLRes,
+ &ett_qsig_ci_T_resultExtension_01,
+
+/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_aoc_AocRateArg,
+ &ett_qsig_aoc_T_aocRate,
+ &ett_qsig_aoc_T_rateArgExtension,
+ &ett_qsig_aoc_SEQUENCE_OF_Extension,
+ &ett_qsig_aoc_AocInterimArg,
+ &ett_qsig_aoc_T_interimCharge,
+ &ett_qsig_aoc_T_specificCurrency,
+ &ett_qsig_aoc_T_interimArgExtension,
+ &ett_qsig_aoc_AocFinalArg,
+ &ett_qsig_aoc_T_finalCharge,
+ &ett_qsig_aoc_T_specificCurrency_01,
+ &ett_qsig_aoc_T_finalArgExtension,
+ &ett_qsig_aoc_AOCSCurrencyInfoList,
+ &ett_qsig_aoc_AOCSCurrencyInfo,
+ &ett_qsig_aoc_T_rateType,
+ &ett_qsig_aoc_DurationCurrency,
+ &ett_qsig_aoc_FlatRateCurrency,
+ &ett_qsig_aoc_VolumeRateCurrency,
+ &ett_qsig_aoc_RecordedCurrency,
+ &ett_qsig_aoc_Amount,
+ &ett_qsig_aoc_Time,
+ &ett_qsig_aoc_ChargingAssociation,
+ &ett_qsig_aoc_ChargeRequestArg,
+ &ett_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination,
+ &ett_qsig_aoc_T_chargeReqArgExtension,
+ &ett_qsig_aoc_ChargeRequestRes,
+ &ett_qsig_aoc_T_chargeReqResExtension,
+ &ett_qsig_aoc_DummyArg,
+ &ett_qsig_aoc_AocCompleteArg,
+ &ett_qsig_aoc_T_completeArgExtension,
+ &ett_qsig_aoc_AocCompleteRes,
+ &ett_qsig_aoc_T_completeResExtension,
+ &ett_qsig_aoc_AocDivChargeReqArg,
+ &ett_qsig_aoc_T_aocDivChargeReqArgExt,
+
+/* --- Module Recall-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_re_ReAlertingArg,
+ &ett_qsig_re_T_argumentExtension,
+ &ett_qsig_re_SEQUENCE_OF_Extension,
+ &ett_qsig_re_ReAnswerArg,
+ &ett_qsig_re_T_argumentExtension_01,
+
+/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_cint_CintInformation1Arg,
+ &ett_qsig_cint_CintInformation2Arg,
+ &ett_qsig_cint_CintCondArg,
+ &ett_qsig_cint_CintExtension,
+ &ett_qsig_cint_SEQUENCE_OF_Extension,
+
+/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_cmn_CmnArg,
+ &ett_qsig_cmn_T_extension,
+ &ett_qsig_cmn_SEQUENCE_OF_Extension,
+ &ett_qsig_cmn_DummyArg,
+ &ett_qsig_cmn_FeatureIdList,
+ &ett_qsig_cmn_EquipmentId,
+
+/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_cpi_CPIRequestArg,
+ &ett_qsig_cpi_T_argumentExtension,
+ &ett_qsig_cpi_SEQUENCE_OF_Extension,
+ &ett_qsig_cpi_CPIPRequestArg,
+ &ett_qsig_cpi_T_argumentExtension_01,
+
+/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_pumr_PumRegistrArg,
+ &ett_qsig_pumr_T_pumUserId,
+ &ett_qsig_pumr_T_userPin,
+ &ett_qsig_pumr_PumRegistrRes,
+ &ett_qsig_pumr_DummyRes,
+ &ett_qsig_pumr_SEQUENCE_OF_Extension,
+ &ett_qsig_pumr_PumDelRegArg,
+ &ett_qsig_pumr_T_pumUserId_01,
+ &ett_qsig_pumr_PumDe_regArg,
+ &ett_qsig_pumr_T_pumUserId_02,
+ &ett_qsig_pumr_T_userPin_01,
+ &ett_qsig_pumr_PumInterrogArg,
+ &ett_qsig_pumr_T_pumUserId_03,
+ &ett_qsig_pumr_T_userPin_02,
+ &ett_qsig_pumr_PumInterrogRes,
+ &ett_qsig_pumr_PumInterrogRes_item,
+ &ett_qsig_pumr_SessionParams,
+ &ett_qsig_pumr_PumrExtension,
+
+/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_pumch_EnquiryArg,
+ &ett_qsig_pumch_DivertArg,
+ &ett_qsig_pumch_InformArg,
+ &ett_qsig_pumch_EnquiryRes,
+ &ett_qsig_pumch_CurrLocation,
+ &ett_qsig_pumch_CfuActivated,
+ &ett_qsig_pumch_DummyRes,
+ &ett_qsig_pumch_SEQUENCE_OF_Extension,
+ &ett_qsig_pumch_PumiExtension,
+ &ett_qsig_pumch_PumIdentity,
+ &ett_qsig_pumch_T_both,
+ &ett_qsig_pumch_PumoArg,
+ &ett_qsig_pumch_T_extension,
+
+/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_ssct_DummyArg,
+ &ett_qsig_ssct_SEQUENCE_OF_Extension,
+ &ett_qsig_ssct_DummyRes,
+ &ett_qsig_ssct_SSCTInitiateArg,
+ &ett_qsig_ssct_T_argumentExtension,
+ &ett_qsig_ssct_SSCTSetupArg,
+ &ett_qsig_ssct_T_argumentExtension_01,
+ &ett_qsig_ssct_SSCTDigitInfoArg,
+ &ett_qsig_ssct_T_argumentExtension_02,
+
+/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_wtmlr_LocUpdArg,
+ &ett_qsig_wtmlr_DummyRes,
+ &ett_qsig_wtmlr_SEQUENCE_OF_Extension,
+ &ett_qsig_wtmlr_LocDelArg,
+ &ett_qsig_wtmlr_LocDeRegArg,
+ &ett_qsig_wtmlr_PisnEnqArg,
+ &ett_qsig_wtmlr_PisnEnqRes,
+ &ett_qsig_wtmlr_GetRRCInfArg,
+ &ett_qsig_wtmlr_GetRRCInfRes,
+ &ett_qsig_wtmlr_LocInfoCheckArg,
+ &ett_qsig_wtmlr_LocInfoCheckRes,
+ &ett_qsig_wtmlr_WtmUserId,
+ &ett_qsig_wtmlr_LrExtension,
+
+/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_wtmch_EnquiryArg,
+ &ett_qsig_wtmch_DivertArg,
+ &ett_qsig_wtmch_InformArg,
+ &ett_qsig_wtmch_EnquiryRes,
+ &ett_qsig_wtmch_CurrLocation,
+ &ett_qsig_wtmch_CfuActivated,
+ &ett_qsig_wtmch_DummyRes,
+ &ett_qsig_wtmch_SEQUENCE_OF_Extension,
+ &ett_qsig_wtmch_WtmiExtension,
+ &ett_qsig_wtmch_WtmIdentity,
+ &ett_qsig_wtmch_T_both,
+ &ett_qsig_wtmch_WtmoArg,
+ &ett_qsig_wtmch_T_extension,
+
+/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_wtmau_AuthWtmArg,
+ &ett_qsig_wtmau_AuthWtmRes,
+ &ett_qsig_wtmau_WtatParamArg,
+ &ett_qsig_wtmau_WtatParamRes,
+ &ett_qsig_wtmau_WtanParamArg,
+ &ett_qsig_wtmau_WtmUserId,
+ &ett_qsig_wtmau_WtanParamRes,
+ &ett_qsig_wtmau_ARG_transferAuthParam,
+ &ett_qsig_wtmau_WtatParamInfo,
+ &ett_qsig_wtmau_T_wtatParamInfoChoice,
+ &ett_qsig_wtmau_WtanParamInfo,
+ &ett_qsig_wtmau_AuthSessionKeyInfo,
+ &ett_qsig_wtmau_CalcWtatInfo,
+ &ett_qsig_wtmau_CalcWtatInfoUnit,
+ &ett_qsig_wtmau_CalcWtanInfo,
+ &ett_qsig_wtmau_DummyExtension,
+ &ett_qsig_wtmau_SEQUENCE_OF_Extension,
+ &ett_qsig_wtmau_AuthAlgorithm,
+
+/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_sd_DisplayArg,
+ &ett_qsig_sd_DisplayString,
+ &ett_qsig_sd_KeypadArg,
+ &ett_qsig_sd_SDExtension,
+ &ett_qsig_sd_SEQUENCE_OF_Extension,
+
+/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_cidl_CallIdentificationAssignArg,
+ &ett_qsig_cidl_CallIdentificationUpdateArg,
+ &ett_qsig_cidl_CallIdentificationData,
+ &ett_qsig_cidl_T_linkageID,
+ &ett_qsig_cidl_ExtensionType,
+ &ett_qsig_cidl_SEQUENCE_OF_Extension,
+
+/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_sms_SmsSubmitArg,
+ &ett_qsig_sms_SmsSubmitRes,
+ &ett_qsig_sms_SmsDeliverArg,
+ &ett_qsig_sms_SmsDeliverRes,
+ &ett_qsig_sms_SmsStatusReportArg,
+ &ett_qsig_sms_SmsStatusReportRes,
+ &ett_qsig_sms_SmsCommandArg,
+ &ett_qsig_sms_SmsCommandRes,
+ &ett_qsig_sms_ScAlertArg,
+ &ett_qsig_sms_DummyRes,
+ &ett_qsig_sms_SmSubmitParameter,
+ &ett_qsig_sms_SmDeliverParameter,
+ &ett_qsig_sms_SmsDeliverResChoice,
+ &ett_qsig_sms_ResChoiceSeq,
+ &ett_qsig_sms_SmsStatusReportResponseChoice,
+ &ett_qsig_sms_SmsExtension,
+ &ett_qsig_sms_SEQUENCE_OF_Extension,
+ &ett_qsig_sms_ValidityPeriod,
+ &ett_qsig_sms_ValidityPeriodEnh,
+ &ett_qsig_sms_EnhancedVP,
+ &ett_qsig_sms_UserData,
+ &ett_qsig_sms_ShortMessageText,
+ &ett_qsig_sms_UserDataHeader,
+ &ett_qsig_sms_UserDataHeaderChoice,
+ &ett_qsig_sms_SmscControlParameterHeader,
+ &ett_qsig_sms_Concatenated8BitSMHeader,
+ &ett_qsig_sms_Concatenated16BitSMHeader,
+ &ett_qsig_sms_ApplicationPort8BitHeader,
+ &ett_qsig_sms_ApplicationPort16BitHeader,
+ &ett_qsig_sms_GenericUserValue,
+ &ett_qsig_sms_PAR_smsDeliverError,
+ &ett_qsig_sms_PAR_smsSubmitError,
+ &ett_qsig_sms_PAR_smsStatusReportError,
+ &ett_qsig_sms_PAR_smsCommandError,
+
+/* --- Module SS-MCR-Operations-asn97 --- --- --- */
+
+ &ett_qsig_mcr_MCRequestArg,
+ &ett_qsig_mcr_MCRequestResult,
+ &ett_qsig_mcr_MCInformArg,
+ &ett_qsig_mcr_MCAlertingArg,
+ &ett_qsig_mcr_CallType,
+ &ett_qsig_mcr_Correlation,
+ &ett_qsig_mcr_MCRExtensions,
+ &ett_qsig_mcr_SEQUENCE_OF_Extension,
+
+/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_mcm_MCMailboxFullArg,
+ &ett_qsig_mcm_MailboxFullFor,
+ &ett_qsig_mcm_MailboxFullPar,
+ &ett_qsig_mcm_MCMServiceArg,
+ &ett_qsig_mcm_MCMChange,
+ &ett_qsig_mcm_SEQUENCE_OF_MCMServiceInfo,
+ &ett_qsig_mcm_SEQUENCE_OF_MessageType,
+ &ett_qsig_mcm_MCMServiceInfo,
+ &ett_qsig_mcm_MCMInterrogateArg,
+ &ett_qsig_mcm_MCMInterrogateRes,
+ &ett_qsig_mcm_MCMNewMsgArg,
+ &ett_qsig_mcm_T_argumentExt,
+ &ett_qsig_mcm_SEQUENCE_OF_Extension,
+ &ett_qsig_mcm_MCMNoNewMsgArg,
+ &ett_qsig_mcm_T_argumentExt_01,
+ &ett_qsig_mcm_MCMUpdateArg,
+ &ett_qsig_mcm_MCMUpdateReqArg,
+ &ett_qsig_mcm_T_argumentExt_02,
+ &ett_qsig_mcm_MCMUpdateReqRes,
+ &ett_qsig_mcm_MCMUpdateReqResElt,
+ &ett_qsig_mcm_T_argumentExt_03,
+ &ett_qsig_mcm_PartyInfo,
+ &ett_qsig_mcm_UpdateInfo,
+ &ett_qsig_mcm_AllMsgInfo,
+ &ett_qsig_mcm_MessageInfo,
+ &ett_qsig_mcm_CompleteInfo,
+ &ett_qsig_mcm_AddressHeader,
+ &ett_qsig_mcm_CompressedInfo,
+ &ett_qsig_mcm_MsgCentreId,
+ &ett_qsig_mcm_MCMExtensions,
+
+/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
+
+ &ett_qsig_mid_MIDMailboxAuthArg,
+ &ett_qsig_mid_MIDMailboxIDArg,
+ &ett_qsig_mid_PartyInfo,
+ &ett_qsig_mid_String,
+ &ett_qsig_mid_MIDExtensions,
+ &ett_qsig_mid_SEQUENCE_OF_Extension,
/*--- End of included file: packet-qsig-ettarr.c ---*/
-#line 783 "packet-qsig-template.c"
+#line 621 "packet-qsig-template.c"
};
/* Register protocol and dissector */
@@ -2722,17 +16007,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/epan/dissectors/packet-qsig.h b/epan/dissectors/packet-qsig.h
index 534f4b3448..5b4a927236 100644
--- a/epan/dissectors/packet-qsig.h
+++ b/epan/dissectors/packet-qsig.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* .\packet-qsig.h */
-/* ../../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 */
/* Input file: packet-qsig-template.h */
@@ -38,13 +38,16 @@
/*--- Included file: packet-qsig-exp.h ---*/
#line 1 "packet-qsig-exp.h"
-static const value_string qsig_Name_vals[] = {
+/* --- Module Name-Operations-asn1-97 --- --- --- */
+
+
+static const value_string qsig_na_Name_vals[] = {
{ 0, "namePresentationAllowed" },
{ 1, "namePresentationRestricted" },
{ 2, "nameNotAvailable" },
{ 0, NULL }
};
-extern int dissect_qsig_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+extern int dissect_qsig_na_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-qsig-exp.h ---*/
#line 30 "packet-qsig-template.h"
diff --git a/epan/libwireshark.def b/epan/libwireshark.def
index 15f306ecf8..cab7b0fe5a 100644
--- a/epan/libwireshark.def
+++ b/epan/libwireshark.def
@@ -231,7 +231,7 @@ dissect_q932_PresentedNumberScreened
dissect_q932_PresentedNumberUnscreened
dissect_q932_PartyNumber
dissect_q932_PartySubaddress
-dissect_qsig_Name
+dissect_qsig_na_Name
dissect_rpc_array
dissect_rpc_bool
dissect_rpc_bytes
diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py
index 59653f5005..e4757202d3 100755
--- a/tools/asn2wrs.py
+++ b/tools/asn2wrs.py
@@ -551,6 +551,7 @@ class EthCtx:
self.default_containing_variant = '_pdu_new'
self.default_embedded_pdv_cb = None
self.default_external_type_cb = None
+ self.emitted_pdu = {}
self.module = {}
self.module_ord = []
self.all_type_attr = {}
@@ -1190,6 +1191,8 @@ class EthCtx:
nm = asn2c(nm)
if (self.field[f]['pdu']):
nm += '_PDU'
+ if (not self.merge_modules):
+ nm = self.eproto + '_' + nm
t = self.field[f]['type']
if self.type.has_key(t):
ethtype = self.type[t]['ethname']
@@ -1225,7 +1228,7 @@ class EthCtx:
self.eth_hfpdu_ord.append(nm)
else:
self.eth_hf_ord.append(nm)
- fullname = "hf_%s_%s" % (self.eproto, nm)
+ fullname = 'hf_%s_%s' % (self.eproto, nm)
attr = self.eth_get_type_attr(self.field[f]['type']).copy()
attr.update(self.field[f]['attr'])
if (self.NAPI() and attr.has_key('NAME')):
@@ -1728,7 +1731,11 @@ class EthCtx:
fx.write('/*--- PDUs ---*/\n\n')
for f in self.eth_hfpdu_ord:
if (self.eth_hf[f]['pdu']):
- fx.write(out_pdu(f))
+ if (self.emitted_pdu.has_key(f)):
+ fx.write(" /* %s already emitted */\n" % (f))
+ else:
+ fx.write(out_pdu(f))
+ self.emitted_pdu[f] = True
fx.write('\n')
fempty = pos == fx.tell()
self.output.file_close(fx, discard=fempty)
@@ -2698,7 +2705,9 @@ class EthOut:
fx.write('\n')
mstr = "--- "
if self.ectx.groups():
- mstr += "Modules"
+ mstr += "Module"
+ if (len(self.ectx.modules) > 1):
+ mstr += "s"
for (m, p) in self.ectx.modules:
mstr += " %s" % (m)
else:
@@ -3125,8 +3134,10 @@ class Type (Node):
}
if (ectx.eth_type[tname]['tree']):
pars['ETT_INDEX'] = ectx.eth_type[tname]['tree']
- if (not ectx.Per()):
- pars['PINFO'] = 'pinfo'
+ if (ectx.merge_modules):
+ pars['PROTOP'] = ''
+ else:
+ pars['PROTOP'] = ectx.eth_type[tname]['proto'] + '_'
return pars
def eth_type_fn(self, proto, tname, ectx):
@@ -3825,7 +3836,7 @@ class SequenceOfType (SeqOfType):
def eth_type_default_pars(self, ectx, tname):
pars = Type.eth_type_default_pars(self, ectx, tname)
(pars['MIN_VAL'], pars['MAX_VAL'], pars['EXT']) = self.eth_get_size_constr(ectx)
- pars['TABLE'] = '%(TNAME)s_sequence_of'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_sequence_of'
return pars
def eth_type_default_body(self, ectx, tname):
@@ -3882,7 +3893,7 @@ class SetOfType (SeqOfType):
def eth_type_default_pars(self, ectx, tname):
pars = Type.eth_type_default_pars(self, ectx, tname)
(pars['MIN_VAL'], pars['MAX_VAL'], pars['EXT']) = self.eth_get_size_constr(ectx)
- pars['TABLE'] = '%(TNAME)s_set_of'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_set_of'
return pars
def eth_type_default_body(self, ectx, tname):
@@ -3987,7 +3998,7 @@ class SequenceType (SeqType):
def eth_type_default_pars(self, ectx, tname):
pars = Type.eth_type_default_pars(self, ectx, tname)
- pars['TABLE'] = '%(TNAME)s_sequence'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_sequence'
return pars
def eth_type_default_body(self, ectx, tname):
@@ -4032,7 +4043,7 @@ class SetType(SeqType):
def eth_type_default_pars(self, ectx, tname):
pars = Type.eth_type_default_pars(self, ectx, tname)
- pars['TABLE'] = '%(TNAME)s_set'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_set'
return pars
def eth_type_default_body(self, ectx, tname):
@@ -4208,7 +4219,7 @@ class ChoiceType (Type):
def eth_type_default_pars(self, ectx, tname):
pars = Type.eth_type_default_pars(self, ectx, tname)
- pars['TABLE'] = '%(TNAME)s_choice'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_choice'
return pars
def eth_type_default_table(self, ectx, tname):
@@ -4418,7 +4429,7 @@ class EnumeratedType (Type):
pars['EXT'] = ext
pars['EXT_NUM'] = str(ext_num)
if (map_table):
- pars['TABLE'] = '%(TNAME)s_value_map'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_value_map'
else:
pars['TABLE'] = 'NULL'
return pars
@@ -5123,7 +5134,7 @@ class BitStringType (Type):
pars['ETT_INDEX'] = '-1'
pars['TABLE'] = 'NULL'
if self.eth_named_bits():
- pars['TABLE'] = '%(TNAME)s_bits'
+ pars['TABLE'] = '%(PROTOP)s%(TNAME)s_bits'
if self.HasContentsConstraint():
pars['FN_VARIANT'] = ectx.default_containing_variant
t = self.constr.GetContents(ectx)