diff options
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) |