1
0
Fork 0

misc: Add categories to a lot of class methods

This commit is contained in:
Holger Hans Peter Freyther 2012-02-20 19:20:38 +01:00
parent cdad29f032
commit 886a7c10aa
10 changed files with 999 additions and 886 deletions

View File

@ -1,5 +1,5 @@
"
(C) 2010 by Holger Hans Peter Freyther
(C) 2010-2012 by Holger Hans Peter Freyther
All Rights Reserved
This program is free software: you can redistribute it and/or modify
@ -20,38 +20,49 @@ Object subclass: IPAConstants [
<category: 'OsmoNetwork-IPA'>
<comment: 'I have the constants for the IPA protocol.'>
IPAConstants class >> protocolRSL [ ^ 16r00 ]
IPAConstants class >> protocolMGCP [ ^ 16rFC ]
IPAConstants class >> protocolSCCP [ ^ 16rFD ]
IPAConstants class >> protocolIPA [ ^ 16rFE ]
IPAConstants class >> protocolOML [ ^ 16rFF ]
IPAConstants class >> protocolOSMO [ ^ 16rEE ]
IPAConstants class >> protocolRSL [ <category: 'constants'> ^ 16r00 ]
IPAConstants class >> protocolMGCP [ <category: 'constants'> ^ 16rFC ]
IPAConstants class >> protocolSCCP [ <category: 'constants'> ^ 16rFD ]
IPAConstants class >> protocolIPA [ <category: 'constants'> ^ 16rFE ]
IPAConstants class >> protocolOML [ <category: 'constants'> ^ 16rFF ]
IPAConstants class >> protocolOSMO [ <category: 'constants'> ^ 16rEE ]
IPAConstants class >> msgPing [ ^ 16r00 ]
IPAConstants class >> msgPong [ ^ 16r01 ]
IPAConstants class >> msgIdGet [ ^ 16r04 ]
IPAConstants class >> msgIdResp [ ^ 16r05 ]
IPAConstants class >> msgIdAck [ ^ 16r06 ]
IPAConstants class >> msgSCCP [ ^ 16rFF ]
IPAConstants class >> msgPing [ <category: 'constants'> ^ 16r00 ]
IPAConstants class >> msgPong [ <category: 'constants'> ^ 16r01 ]
IPAConstants class >> msgIdGet [ <category: 'constants'> ^ 16r04 ]
IPAConstants class >> msgIdResp [ <category: 'constants'> ^ 16r05 ]
IPAConstants class >> msgIdAck [ <category: 'constants'> ^ 16r06 ]
IPAConstants class >> msgSCCP [ <category: 'constants'> ^ 16rFF ]
IPAConstants class >> idtagSernr [ ^ 16r00 ]
IPAConstants class >> idtagUnitName [ ^ 16r01 ]
IPAConstants class >> idtagLocation1 [ ^ 16r02 ]
IPAConstants class >> idtagLocation2 [ ^ 16r03 ]
IPAConstants class >> idtagEquipVer [ ^ 16r04 ]
IPAConstants class >> idtagSwVersion [ ^ 16r05 ]
IPAConstants class >> idtagIpaddr [ ^ 16r06 ]
IPAConstants class >> idtagMacaddr [ ^ 16r07 ]
IPAConstants class >> idtagUnit [ ^ 16r08 ]
IPAConstants class >> idtagSernr [ <category: 'constants'> ^ 16r00 ]
IPAConstants class >> idtagUnitName [ <category: 'constants'> ^ 16r01 ]
IPAConstants class >> idtagLocation1 [ <category: 'constants'> ^ 16r02 ]
IPAConstants class >> idtagLocation2 [ <category: 'constants'> ^ 16r03 ]
IPAConstants class >> idtagEquipVer [ <category: 'constants'> ^ 16r04 ]
IPAConstants class >> idtagSwVersion [ <category: 'constants'> ^ 16r05 ]
IPAConstants class >> idtagIpaddr [ <category: 'constants'> ^ 16r06 ]
IPAConstants class >> idtagMacaddr [ <category: 'constants'> ^ 16r07 ]
IPAConstants class >> idtagUnit [ <category: 'constants'> ^ 16r08 ]
"Extensions in Osmocom coming with the OsmoExtension header"
IPAConstants class >> osmoCtrl [ ^ 16r00 ]
IPAConstants class >> osmoMgcp [ ^ 16r01 ]
IPAConstants class >> osmoLac [ ^ 16r02 ]
IPAConstants class >> osmoCtrl [ <category: 'constants'> ^ 16r00 ]
IPAConstants class >> osmoMgcp [ <category: 'constants'> ^ 16r01 ]
IPAConstants class >> osmoLac [ <category: 'constants'> ^ 16r02 ]
IPAConstants class >> protocolOsmoCTRL [ ^ {self protocolOSMO. self osmoCtrl} ]
IPAConstants class >> protocolOsmoMGCP [ ^ {self protocolOSMO. self osmoMgcp} ]
IPAConstants class >> protocolOsmoLAC [ ^ {self protocolOSMO. self osmoLac} ]
IPAConstants class >> protocolOsmoCTRL [
<category: 'constants'>
^ {self protocolOSMO. self osmoCtrl}
]
IPAConstants class >> protocolOsmoMGCP [
<category: 'constants'>
^ {self protocolOSMO. self osmoMgcp}
]
IPAConstants class >> protocolOsmoLAC [
<category: 'constants'>
^ {self protocolOSMO. self osmoLac}
]
]
CPackedStruct subclass: IPASCCPState [

View File

@ -24,6 +24,7 @@ Object subclass: IPADemuxer [
me the socket and I read from it and provide you a tuple.'>
IPADemuxer class >> initOn: aSocket [
<category: 'creation'>
^ (self new)
socket: aSocket;
yourself.
@ -63,6 +64,7 @@ Object subclass: IPAMuxer [
data you provide me with.'>
IPAMuxer class >> initOn: aSocket [
<category: 'creation'>
^ (self new)
socket: aSocket;
yourself.

306
ISUP.st
View File

@ -21,162 +21,162 @@ Object subclass: ISUPConstants [
<category: 'OsmoNetwork-ISUP'>
ISUPConstants class [
msgAPT [ ^ 2r01000001 ] " Application transport"
msgACM [ ^ 2r00000110 ] " Address complete"
msgAMN [ ^ 2r00001001 ] " Answer"
msgBLA [ ^ 2r00010101 ] " Blocking acknowledgement"
msgBLO [ ^ 2r00010011 ] " Blocking"
msgCCR [ ^ 2r00010001 ] " Continuity check request"
msgCFN [ ^ 2r00101111 ] " Confusion"
msgCGB [ ^ 2r00011000 ] " Circuit group blocking"
msgCGBA [ ^ 2r00011010 ] " Circuit group blocking acknowledgement"
msgCGU [ ^ 2r00011001 ] " Circuit group unblocking"
msgCGUA [ ^ 2r00011011 ] " Circuit group unblocking acknowledgement"
msgCON [ ^ 2r00000111 ] " Connect"
msgCOT [ ^ 2r00000101 ] " Continuity"
msgCPG [ ^ 2r00101100 ] " Call progress"
msgCRG [ ^ 2r00110001 ] " Charge information"
msgCQM [ ^ 2r00101010 ] " Circuit group query"
msgCQR [ ^ 2r00101011 ] " Circuit group query response"
msgDRS [ ^ 2r00100111 ] " Delayed release (reserved used in 1988 version)"
msgFAC [ ^ 2r00110011 ] " Facility"
msgFAA [ ^ 2r00100000 ] " Facility accepted"
msgFAR [ ^ 2r00011111 ] " Facility request"
msgFOT [ ^ 2r00001000 ] " Forward transfer"
msgFRJ [ ^ 2r00100001 ] " Facility reject"
msgGRA [ ^ 2r00101001 ] " Circuit group reset acknowledgement"
msgGRS [ ^ 2r00010111 ] " Circuit group reset"
msgIDR [ ^ 2r00110110 ] " Identification request"
msgIDS [ ^ 2r00110111 ] " Identification response"
msgIAM [ ^ 2r00000001 ] " Initial address"
msgINF [ ^ 2r00000100 ] " Information"
msgINR [ ^ 2r00000011 ] " Information request"
msgLPA [ ^ 2r00100100 ] " Loop back acknowledgement"
msgLPR [ ^ 2r01000000 ] " Loop prevention"
msgOLM [ ^ 2r00110000 ] " Overload"
msgPAM [ ^ 2r00101000 ] " Pass-along"
msgREL [ ^ 2r00001100 ] " Release"
msgRES [ ^ 2r00001110 ] " Resume"
msgRLC [ ^ 2r00010000 ] " Release complete"
msgRSC [ ^ 2r00010010 ] " Reset circuit"
msgSAM [ ^ 2r00000010 ] " Subsequent address"
msgSUS [ ^ 2r00001101 ] " Suspend"
msgUBL [ ^ 2r00010100 ] " Unblocking"
msgUBA [ ^ 2r00010110 ] " Unblocking acknowledgement"
msgUCIC [ ^ 2r00101110 ] " Unequipped circuit identification code"
msgUSR [ ^ 2r00101101 ] " User-to-user information"
msgNRM [ ^ 2r00110010 ] " Network resource management"
msgPRI [ ^ 2r01000010 ] " Pre-release information"
msgSAN [ ^ 2r01000011 ] " Subsequent Directory Number"
msgSEG [ ^ 2r00111000 ] " Segmentation"
msgUPA [ ^ 2r00110100 ] " User Part available"
msgUPT [ ^ 2r00110100 ] " User Part test"
msgAPT [ <category: 'constants'> ^ 2r01000001 ] " Application transport"
msgACM [ <category: 'constants'> ^ 2r00000110 ] " Address complete"
msgAMN [ <category: 'constants'> ^ 2r00001001 ] " Answer"
msgBLA [ <category: 'constants'> ^ 2r00010101 ] " Blocking acknowledgement"
msgBLO [ <category: 'constants'> ^ 2r00010011 ] " Blocking"
msgCCR [ <category: 'constants'> ^ 2r00010001 ] " Continuity check request"
msgCFN [ <category: 'constants'> ^ 2r00101111 ] " Confusion"
msgCGB [ <category: 'constants'> ^ 2r00011000 ] " Circuit group blocking"
msgCGBA [ <category: 'constants'> ^ 2r00011010 ] " Circuit group blocking acknowledgement"
msgCGU [ <category: 'constants'> ^ 2r00011001 ] " Circuit group unblocking"
msgCGUA [ <category: 'constants'> ^ 2r00011011 ] " Circuit group unblocking acknowledgement"
msgCON [ <category: 'constants'> ^ 2r00000111 ] " Connect"
msgCOT [ <category: 'constants'> ^ 2r00000101 ] " Continuity"
msgCPG [ <category: 'constants'> ^ 2r00101100 ] " Call progress"
msgCRG [ <category: 'constants'> ^ 2r00110001 ] " Charge information"
msgCQM [ <category: 'constants'> ^ 2r00101010 ] " Circuit group query"
msgCQR [ <category: 'constants'> ^ 2r00101011 ] " Circuit group query response"
msgDRS [ <category: 'constants'> ^ 2r00100111 ] " Delayed release (reserved used in 1988 version)"
msgFAC [ <category: 'constants'> ^ 2r00110011 ] " Facility"
msgFAA [ <category: 'constants'> ^ 2r00100000 ] " Facility accepted"
msgFAR [ <category: 'constants'> ^ 2r00011111 ] " Facility request"
msgFOT [ <category: 'constants'> ^ 2r00001000 ] " Forward transfer"
msgFRJ [ <category: 'constants'> ^ 2r00100001 ] " Facility reject"
msgGRA [ <category: 'constants'> ^ 2r00101001 ] " Circuit group reset acknowledgement"
msgGRS [ <category: 'constants'> ^ 2r00010111 ] " Circuit group reset"
msgIDR [ <category: 'constants'> ^ 2r00110110 ] " Identification request"
msgIDS [ <category: 'constants'> ^ 2r00110111 ] " Identification response"
msgIAM [ <category: 'constants'> ^ 2r00000001 ] " Initial address"
msgINF [ <category: 'constants'> ^ 2r00000100 ] " Information"
msgINR [ <category: 'constants'> ^ 2r00000011 ] " Information request"
msgLPA [ <category: 'constants'> ^ 2r00100100 ] " Loop back acknowledgement"
msgLPR [ <category: 'constants'> ^ 2r01000000 ] " Loop prevention"
msgOLM [ <category: 'constants'> ^ 2r00110000 ] " Overload"
msgPAM [ <category: 'constants'> ^ 2r00101000 ] " Pass-along"
msgREL [ <category: 'constants'> ^ 2r00001100 ] " Release"
msgRES [ <category: 'constants'> ^ 2r00001110 ] " Resume"
msgRLC [ <category: 'constants'> ^ 2r00010000 ] " Release complete"
msgRSC [ <category: 'constants'> ^ 2r00010010 ] " Reset circuit"
msgSAM [ <category: 'constants'> ^ 2r00000010 ] " Subsequent address"
msgSUS [ <category: 'constants'> ^ 2r00001101 ] " Suspend"
msgUBL [ <category: 'constants'> ^ 2r00010100 ] " Unblocking"
msgUBA [ <category: 'constants'> ^ 2r00010110 ] " Unblocking acknowledgement"
msgUCIC [ <category: 'constants'> ^ 2r00101110 ] " Unequipped circuit identification code"
msgUSR [ <category: 'constants'> ^ 2r00101101 ] " User-to-user information"
msgNRM [ <category: 'constants'> ^ 2r00110010 ] " Network resource management"
msgPRI [ <category: 'constants'> ^ 2r01000010 ] " Pre-release information"
msgSAN [ <category: 'constants'> ^ 2r01000011 ] " Subsequent Directory Number"
msgSEG [ <category: 'constants'> ^ 2r00111000 ] " Segmentation"
msgUPA [ <category: 'constants'> ^ 2r00110100 ] " User Part available"
msgUPT [ <category: 'constants'> ^ 2r00110100 ] " User Part test"
"TABLE C-4/Q.767" "This requires a review...."
parAccessDeliveryInformation [ ^ 2r00101110 ]
parAccessTransport [ ^ 2r00000011 ]
parApplicationTransportParameter [ ^ 2r01111000 ]
parAutomaticCongestionLevel [ ^ 2r00100111 ]
parBackwardCallIndicators [ ^ 2r00010001 ]
parBackwardGVNS [ ^ 2r01001101 ]
parCallDiversionInformation [ ^ 2r00110110 ]
parCallDiversionTreatmentIndicators [ ^ 2r01101110 ]
parCallHistoryInformation [ ^ 2r00101101 ]
parCallOfferingTreatmentIndicators [ ^ 2r01110000 ]
parCallReference [ ^ 2r00000001 ]
parCallTransferNumber [ ^ 2r01000101 ]
parCallTransferReference [ ^ 2r01000011 ]
parCalledINNumber [ ^ 2r01101111 ]
parCalledDirectoryNumber [ ^ 2r01111101 ]
parCalledPartyNumber [ ^ 2r00000100 ]
parCallingGeodeticLocation [ ^ 2r10000001 ]
parCallingPartyNumber [ ^ 2r00001010 ]
parCallingPartysCategory [ ^ 2r00001001 ]
parCauseIndicators [ ^ 2r00010010 ]
parCCNRPossibleIndicator [ ^ 2r01111010 ]
parCCSS [ ^ 2r01001011 ]
parChargedPartyIdentification [ ^ 2r01110001 ]
parCircuitAssignmentMap [ ^ 2r00100101 ]
parCircuitGroupSupervisionMessageType [ ^ 2r00010101 ]
parCircuitStateIndicator [ ^ 2r00100110 ]
parClosedUserGroupInterlockCode [ ^ 2r00011010 ]
parCollectCallRequest [ ^ 2r01111001 ]
parConferenceTreatmentIndicators [ ^ 2r01110010 ]
parConnectedNumber [ ^ 2r00100001 ]
parConnectionRequest [ ^ 2r00001101 ]
parContinuityIndicators [ ^ 2r00010000 ]
parCorrelationId [ ^ 2r01100101 ]
parDisplayInformation [ ^ 2r01110011 ]
parEchoControlInformation [ ^ 2r00110111 ]
parEndOfOptionalParameters [ ^ 2r00000000 ]
parEventInformation [ ^ 2r00100100 ]
parFacilityIndicator [ ^ 2r00011000 ]
parForwardCallIndicators [ ^ 2r00000111 ]
parForwardGVNS [ ^ 2r01001100 ]
parGenericDigits [ ^ 2r11000001 ]
parGenericNotificationIndicator [ ^ 2r00101100 ]
parGenericNumber [ ^ 2r11000000 ]
parGenericReference [ ^ 2r10000010 ]
parHTRInformation [ ^ 2r10000010 ]
parHopCounter [ ^ 2r00111101 ]
parInformationIndicators [ ^ 2r00001111 ]
parInformationRequestIndicators [ ^ 2r00001110 ]
parLocationNumber [ ^ 2r00111111 ]
parLoopPreventionIndicators [ ^ 2r01000100 ]
parMCIDRequestIndicators [ ^ 2r00111011 ]
parMCIDResponseIndicators [ ^ 2r00111100 ]
parMessageCompatibilityInformation [ ^ 2r00111000 ]
parMLPPPrecedence [ ^ 2r00111010 ]
parNatureOfConnectionIndicators [ ^ 2r00000110 ]
parNetworkManagementControls [ ^ 2r01011011 ]
parNetworkRoutingNumber [ ^ 2r10000100 ]
parNetworkSpecificFacility [ ^ 2r00101111 ]
parNumberPortabilityForwardInformation [ ^ 2r10001101 ]
parOptionalBackwardCallIndicators [ ^ 2r00101001 ]
parOptionalForwardCallIndicators [ ^ 2r00001000 ]
parOriginalCalledNumber [ ^ 2r00101000 ]
parOriginalCalledINNumber [ ^ 2r01111111 ]
parOriginationISCPointCode [ ^ 2r00101011 ]
parParameterCompatibilityInformation [ ^ 2r00111001 ]
parPivotCapability [ ^ 2r01111011 ]
parPivotCounter [ ^ 2r10000111 ]
parPivotRoutingBackwardInformation [ ^ 2r10001001 ]
parPivotRoutingForwardInformation [ ^ 2r10001000 ]
parPivotRoutingIndicators [ ^ 2r01111100 ]
parPivotStatus [ ^ 2r10000110 ]
parPropagationDelayCounter [ ^ 2r00110001 ]
parQoRCapability [ ^ 2r10000101 ]
parRange [ ^ 2r00010110 ]
parRangeAndStatus [ ^ 2r00010110 ]
parRedirectBackwardInformation [ ^ 2r10001100 ]
parRedirectCapability [ ^ 2r01001110 ]
parRedirectCounter [ ^ 2r01110111 ]
parRedirectForwardInformation [ ^ 2r10001011 ]
parRedirectStatus [ ^ 2r10001010 ]
parRedirectingNumber [ ^ 2r00001011 ]
parRedirectionInformation [ ^ 2r00010011 ]
parRedirectionNumber [ ^ 2r00001100 ]
parRedirectionNumberRestriction [ ^ 2r01000000 ]
parRemoteOperations [ ^ 2r00110010 ]
parSCFId [ ^ 2r01100110 ]
parServiceActivation [ ^ 2r00110011 ]
parSignallingPointCode [ ^ 2r00011110 ]
parSubsequentNumber [ ^ 2r00000101 ]
parSuspendResumeIndicators [ ^ 2r00100010 ]
parTransitNetworkSelection [ ^ 2r00100011 ]
parTransmissionMediumRequirement [ ^ 2r00000010 ]
parTransmissionMediumRequirementPrime [ ^ 2r00111110 ]
parTransmissionMediumUsed [ ^ 2r00110101 ]
parUIDActionIndicators [ ^ 2r01110100 ]
parUIDCapabilityIndicators [ ^ 2r01110101 ]
parUserServiceInformation [ ^ 2r00011101 ]
parUserServiceInformationPrime [ ^ 2r00110000 ]
parUserTeleserviceInformation [ ^ 2r00110100 ]
parUserToUserIndicators [ ^ 2r00101010 ]
parUserToUserInformation [ ^ 2r00100000 ]
parAccessDeliveryInformation [ <category: 'constants'> ^ 2r00101110 ]
parAccessTransport [ <category: 'constants'> ^ 2r00000011 ]
parApplicationTransportParameter [ <category: 'constants'> ^ 2r01111000 ]
parAutomaticCongestionLevel [ <category: 'constants'> ^ 2r00100111 ]
parBackwardCallIndicators [ <category: 'constants'> ^ 2r00010001 ]
parBackwardGVNS [ <category: 'constants'> ^ 2r01001101 ]
parCallDiversionInformation [ <category: 'constants'> ^ 2r00110110 ]
parCallDiversionTreatmentIndicators [ <category: 'constants'> ^ 2r01101110 ]
parCallHistoryInformation [ <category: 'constants'> ^ 2r00101101 ]
parCallOfferingTreatmentIndicators [ <category: 'constants'> ^ 2r01110000 ]
parCallReference [ <category: 'constants'> ^ 2r00000001 ]
parCallTransferNumber [ <category: 'constants'> ^ 2r01000101 ]
parCallTransferReference [ <category: 'constants'> ^ 2r01000011 ]
parCalledINNumber [ <category: 'constants'> ^ 2r01101111 ]
parCalledDirectoryNumber [ <category: 'constants'> ^ 2r01111101 ]
parCalledPartyNumber [ <category: 'constants'> ^ 2r00000100 ]
parCallingGeodeticLocation [ <category: 'constants'> ^ 2r10000001 ]
parCallingPartyNumber [ <category: 'constants'> ^ 2r00001010 ]
parCallingPartysCategory [ <category: 'constants'> ^ 2r00001001 ]
parCauseIndicators [ <category: 'constants'> ^ 2r00010010 ]
parCCNRPossibleIndicator [ <category: 'constants'> ^ 2r01111010 ]
parCCSS [ <category: 'constants'> ^ 2r01001011 ]
parChargedPartyIdentification [ <category: 'constants'> ^ 2r01110001 ]
parCircuitAssignmentMap [ <category: 'constants'> ^ 2r00100101 ]
parCircuitGroupSupervisionMessageType [ <category: 'constants'> ^ 2r00010101 ]
parCircuitStateIndicator [ <category: 'constants'> ^ 2r00100110 ]
parClosedUserGroupInterlockCode [ <category: 'constants'> ^ 2r00011010 ]
parCollectCallRequest [ <category: 'constants'> ^ 2r01111001 ]
parConferenceTreatmentIndicators [ <category: 'constants'> ^ 2r01110010 ]
parConnectedNumber [ <category: 'constants'> ^ 2r00100001 ]
parConnectionRequest [ <category: 'constants'> ^ 2r00001101 ]
parContinuityIndicators [ <category: 'constants'> ^ 2r00010000 ]
parCorrelationId [ <category: 'constants'> ^ 2r01100101 ]
parDisplayInformation [ <category: 'constants'> ^ 2r01110011 ]
parEchoControlInformation [ <category: 'constants'> ^ 2r00110111 ]
parEndOfOptionalParameters [ <category: 'constants'> ^ 2r00000000 ]
parEventInformation [ <category: 'constants'> ^ 2r00100100 ]
parFacilityIndicator [ <category: 'constants'> ^ 2r00011000 ]
parForwardCallIndicators [ <category: 'constants'> ^ 2r00000111 ]
parForwardGVNS [ <category: 'constants'> ^ 2r01001100 ]
parGenericDigits [ <category: 'constants'> ^ 2r11000001 ]
parGenericNotificationIndicator [ <category: 'constants'> ^ 2r00101100 ]
parGenericNumber [ <category: 'constants'> ^ 2r11000000 ]
parGenericReference [ <category: 'constants'> ^ 2r10000010 ]
parHTRInformation [ <category: 'constants'> ^ 2r10000010 ]
parHopCounter [ <category: 'constants'> ^ 2r00111101 ]
parInformationIndicators [ <category: 'constants'> ^ 2r00001111 ]
parInformationRequestIndicators [ <category: 'constants'> ^ 2r00001110 ]
parLocationNumber [ <category: 'constants'> ^ 2r00111111 ]
parLoopPreventionIndicators [ <category: 'constants'> ^ 2r01000100 ]
parMCIDRequestIndicators [ <category: 'constants'> ^ 2r00111011 ]
parMCIDResponseIndicators [ <category: 'constants'> ^ 2r00111100 ]
parMessageCompatibilityInformation [ <category: 'constants'> ^ 2r00111000 ]
parMLPPPrecedence [ <category: 'constants'> ^ 2r00111010 ]
parNatureOfConnectionIndicators [ <category: 'constants'> ^ 2r00000110 ]
parNetworkManagementControls [ <category: 'constants'> ^ 2r01011011 ]
parNetworkRoutingNumber [ <category: 'constants'> ^ 2r10000100 ]
parNetworkSpecificFacility [ <category: 'constants'> ^ 2r00101111 ]
parNumberPortabilityForwardInformation [ <category: 'constants'> ^ 2r10001101 ]
parOptionalBackwardCallIndicators [ <category: 'constants'> ^ 2r00101001 ]
parOptionalForwardCallIndicators [ <category: 'constants'> ^ 2r00001000 ]
parOriginalCalledNumber [ <category: 'constants'> ^ 2r00101000 ]
parOriginalCalledINNumber [ <category: 'constants'> ^ 2r01111111 ]
parOriginationISCPointCode [ <category: 'constants'> ^ 2r00101011 ]
parParameterCompatibilityInformation [ <category: 'constants'> ^ 2r00111001 ]
parPivotCapability [ <category: 'constants'> ^ 2r01111011 ]
parPivotCounter [ <category: 'constants'> ^ 2r10000111 ]
parPivotRoutingBackwardInformation [ <category: 'constants'> ^ 2r10001001 ]
parPivotRoutingForwardInformation [ <category: 'constants'> ^ 2r10001000 ]
parPivotRoutingIndicators [ <category: 'constants'> ^ 2r01111100 ]
parPivotStatus [ <category: 'constants'> ^ 2r10000110 ]
parPropagationDelayCounter [ <category: 'constants'> ^ 2r00110001 ]
parQoRCapability [ <category: 'constants'> ^ 2r10000101 ]
parRange [ <category: 'constants'> ^ 2r00010110 ]
parRangeAndStatus [ <category: 'constants'> ^ 2r00010110 ]
parRedirectBackwardInformation [ <category: 'constants'> ^ 2r10001100 ]
parRedirectCapability [ <category: 'constants'> ^ 2r01001110 ]
parRedirectCounter [ <category: 'constants'> ^ 2r01110111 ]
parRedirectForwardInformation [ <category: 'constants'> ^ 2r10001011 ]
parRedirectStatus [ <category: 'constants'> ^ 2r10001010 ]
parRedirectingNumber [ <category: 'constants'> ^ 2r00001011 ]
parRedirectionInformation [ <category: 'constants'> ^ 2r00010011 ]
parRedirectionNumber [ <category: 'constants'> ^ 2r00001100 ]
parRedirectionNumberRestriction [ <category: 'constants'> ^ 2r01000000 ]
parRemoteOperations [ <category: 'constants'> ^ 2r00110010 ]
parSCFId [ <category: 'constants'> ^ 2r01100110 ]
parServiceActivation [ <category: 'constants'> ^ 2r00110011 ]
parSignallingPointCode [ <category: 'constants'> ^ 2r00011110 ]
parSubsequentNumber [ <category: 'constants'> ^ 2r00000101 ]
parSuspendResumeIndicators [ <category: 'constants'> ^ 2r00100010 ]
parTransitNetworkSelection [ <category: 'constants'> ^ 2r00100011 ]
parTransmissionMediumRequirement [ <category: 'constants'> ^ 2r00000010 ]
parTransmissionMediumRequirementPrime [ <category: 'constants'> ^ 2r00111110 ]
parTransmissionMediumUsed [ <category: 'constants'> ^ 2r00110101 ]
parUIDActionIndicators [ <category: 'constants'> ^ 2r01110100 ]
parUIDCapabilityIndicators [ <category: 'constants'> ^ 2r01110101 ]
parUserServiceInformation [ <category: 'constants'> ^ 2r00011101 ]
parUserServiceInformationPrime [ <category: 'constants'> ^ 2r00110000 ]
parUserTeleserviceInformation [ <category: 'constants'> ^ 2r00110100 ]
parUserToUserIndicators [ <category: 'constants'> ^ 2r00101010 ]
parUserToUserInformation [ <category: 'constants'> ^ 2r00100000 ]
addrNAT_NATIONAL [ ^ 2r0000011 ] " National (significant) number"
addrNAT_INTERNATIONAL [ ^ 2r0000100 ] " International number"
addrNAT_NATIONAL [ <category: 'constants'> ^ 2r0000011 ] " National (significant) number"
addrNAT_INTERNATIONAL [ <category: 'constants'> ^ 2r0000100 ] " International number"
]
]

View File

@ -20,9 +20,10 @@ Osmo.LogArea subclass: LogAreaSCCP [
<category: 'OsmoNetwork-SCCP'>
<comment: 'I am the debug area for SCCP.'>
LogAreaSCCP class >> areaName [ ^ #sccp ]
LogAreaSCCP class >> areaDescription [ ^ 'SCCP related' ]
LogAreaSCCP class >> areaName [ <category: 'accessing'> ^ #sccp ]
LogAreaSCCP class >> areaDescription [ <category: 'accessing'> ^ 'SCCP related' ]
LogAreaSCCP class >> default [
<category: 'creation'>
^ self new
enabled: true;
minLevel: Osmo.LogLevel debug;
@ -34,9 +35,10 @@ Osmo.LogArea subclass: LogAreaIPA [
<category: 'OsmoNetwork-IPA'>
<comment: 'I am the debug area for IPA messages.'>
LogAreaIPA class >> areaName [ ^ #ipa ]
LogAreaIPA class >> areaDescription [ ^ 'IPA related' ]
LogAreaIPA class >> areaName [ <category: 'accessing'> ^ #ipa ]
LogAreaIPA class >> areaDescription [ <category: 'accessing'> ^ 'IPA related' ]
LogAreaIPA class >> default [
<category: 'creation'>
^ self new
enabled: true;
minLevel: Osmo.LogLevel debug;
@ -48,9 +50,10 @@ Osmo.LogArea subclass: LogAreaM2UA [
<category: 'OsmoNetwork-M2UA'>
<comment: 'I am the debug area for M2UA messages'>
LogAreaM2UA class >> areaName [ ^ #m2ua ]
LogAreaM2UA class >> areaDescription [ ^ 'MTP2 User Adaption' ]
LogAreaM2UA class >> areaName [ <category: 'accessing'> ^ #m2ua ]
LogAreaM2UA class >> areaDescription [ <category: 'accessing'> ^ 'MTP2 User Adaption' ]
LogAreaM2UA class >> default [
<category: 'creation'>
^ self new
enabled: true;
minLevel: Osmo.LogLevel debug;

310
M2UA.st
View File

@ -35,79 +35,79 @@ Object subclass: UAConstants [
<comment: 'I hold the mapping from M2UA constants to their
numeric representation.'>
UAConstants class >> clsMgmt [ ^ 0 ]
UAConstants class >> clsTrans [ ^ 1 ]
UAConstants class >> clsSSMN [ ^ 2 ]
UAConstants class >> clsASPSM [ ^ 3 ]
UAConstants class >> clsASPTM [ ^ 4 ]
UAConstants class >> clsQPTM [ ^ 5 ]
UAConstants class >> clsMAUP [ ^ 6 ]
UAConstants class >> clsSUA_LESS [ ^ 7 ]
UAConstants class >> clsSUA_CONN [ ^ 8 ]
UAConstants class >> clsRKM [ ^ 9 ]
UAConstants class >> clasIIM [ ^ 10 ]
UAConstants class >> clsMgmt [ <category: 'constants'> ^ 0 ]
UAConstants class >> clsTrans [ <category: 'constants'> ^ 1 ]
UAConstants class >> clsSSMN [ <category: 'constants'> ^ 2 ]
UAConstants class >> clsASPSM [ <category: 'constants'> ^ 3 ]
UAConstants class >> clsASPTM [ <category: 'constants'> ^ 4 ]
UAConstants class >> clsQPTM [ <category: 'constants'> ^ 5 ]
UAConstants class >> clsMAUP [ <category: 'constants'> ^ 6 ]
UAConstants class >> clsSUA_LESS [ <category: 'constants'> ^ 7 ]
UAConstants class >> clsSUA_CONN [ <category: 'constants'> ^ 8 ]
UAConstants class >> clsRKM [ <category: 'constants'> ^ 9 ]
UAConstants class >> clasIIM [ <category: 'constants'> ^ 10 ]
UAConstants class >> maupReserved [ ^ 0 ]
UAConstants class >> maupData [ ^ 1 ]
UAConstants class >> maupEstReq [ ^ 2 ]
UAConstants class >> maupEstCon [ ^ 3 ]
UAConstants class >> maupRelReq [ ^ 4 ]
UAConstants class >> maupRelCon [ ^ 5 ]
UAConstants class >> maupRelInd [ ^ 6 ]
UAConstants class >> maupStateReq [ ^ 7 ]
UAConstants class >> maupStateCon [ ^ 8 ]
UAConstants class >> maupStateInd [ ^ 9 ]
UAConstants class >> maupDRetrReq [ ^ 10 ]
UAConstants class >> maupDRetrCon [ ^ 11 ]
UAConstants class >> maupDRetrInd [ ^ 12 ]
UAConstants class >> maupDRetrCompl [ ^ 13 ]
UAConstants class >> maupCongInd [ ^ 14 ]
UAConstants class >> maupDataAck [ ^ 15 ]
UAConstants class >> maupReserved [ <category: 'constants'> ^ 0 ]
UAConstants class >> maupData [ <category: 'constants'> ^ 1 ]
UAConstants class >> maupEstReq [ <category: 'constants'> ^ 2 ]
UAConstants class >> maupEstCon [ <category: 'constants'> ^ 3 ]
UAConstants class >> maupRelReq [ <category: 'constants'> ^ 4 ]
UAConstants class >> maupRelCon [ <category: 'constants'> ^ 5 ]
UAConstants class >> maupRelInd [ <category: 'constants'> ^ 6 ]
UAConstants class >> maupStateReq [ <category: 'constants'> ^ 7 ]
UAConstants class >> maupStateCon [ <category: 'constants'> ^ 8 ]
UAConstants class >> maupStateInd [ <category: 'constants'> ^ 9 ]
UAConstants class >> maupDRetrReq [ <category: 'constants'> ^ 10 ]
UAConstants class >> maupDRetrCon [ <category: 'constants'> ^ 11 ]
UAConstants class >> maupDRetrInd [ <category: 'constants'> ^ 12 ]
UAConstants class >> maupDRetrCompl [ <category: 'constants'> ^ 13 ]
UAConstants class >> maupCongInd [ <category: 'constants'> ^ 14 ]
UAConstants class >> maupDataAck [ <category: 'constants'> ^ 15 ]
UAConstants class >> aspsmReserved [ ^ 0 ]
UAConstants class >> aspsmUp [ ^ 1 ]
UAConstants class >> aspsmDown [ ^ 2 ]
UAConstants class >> aspsmBeat [ ^ 3 ]
UAConstants class >> aspsmUpAck [ ^ 4 ]
UAConstants class >> aspsmDownAck [ ^ 5 ]
UAConstants class >> aspsmBeatAck [ ^ 6 ]
UAConstants class >> aspsmReserved [ <category: 'constants'> ^ 0 ]
UAConstants class >> aspsmUp [ <category: 'constants'> ^ 1 ]
UAConstants class >> aspsmDown [ <category: 'constants'> ^ 2 ]
UAConstants class >> aspsmBeat [ <category: 'constants'> ^ 3 ]
UAConstants class >> aspsmUpAck [ <category: 'constants'> ^ 4 ]
UAConstants class >> aspsmDownAck [ <category: 'constants'> ^ 5 ]
UAConstants class >> aspsmBeatAck [ <category: 'constants'> ^ 6 ]
UAConstants class >> asptmReserved [ ^ 0 ]
UAConstants class >> asptmActiv [ ^ 1 ]
UAConstants class >> asptmInactiv [ ^ 2 ]
UAConstants class >> asptmActivAck [ ^ 3 ]
UAConstants class >> asptmInactivAck [ ^ 4 ]
UAConstants class >> asptmReserved [ <category: 'constants'> ^ 0 ]
UAConstants class >> asptmActiv [ <category: 'constants'> ^ 1 ]
UAConstants class >> asptmInactiv [ <category: 'constants'> ^ 2 ]
UAConstants class >> asptmActivAck [ <category: 'constants'> ^ 3 ]
UAConstants class >> asptmInactivAck [ <category: 'constants'> ^ 4 ]
UAConstants class >> mgmtError [ ^ 0 ]
UAConstants class >> mgmtNtfy [ ^ 1 ]
UAConstants class >> mgmtError [ <category: 'constants'> ^ 0 ]
UAConstants class >> mgmtNtfy [ <category: 'constants'> ^ 1 ]
UAConstants class >> iimReserved [ ^ 0 ]
UAConstants class >> iimRegReq [ ^ 1 ]
UAConstants class >> iimRegRsp [ ^ 2 ]
UAConstants class >> iimDeregReq [ ^ 3 ]
UAConstants class >> iimDeregResp [ ^ 4 ]
UAConstants class >> iimReserved [ <category: 'constants'> ^ 0 ]
UAConstants class >> iimRegReq [ <category: 'constants'> ^ 1 ]
UAConstants class >> iimRegRsp [ <category: 'constants'> ^ 2 ]
UAConstants class >> iimDeregReq [ <category: 'constants'> ^ 3 ]
UAConstants class >> iimDeregResp [ <category: 'constants'> ^ 4 ]
UAConstants class >> tagReserved [ ^ 0 ]
UAConstants class >> tagIdentInt [ ^ 1 ]
UAConstants class >> tagUnused1 [ ^ 2 ]
UAConstants class >> tagIdentText [ ^ 3 ]
UAConstants class >> tagInfo [ ^ 4 ]
UAConstants class >> tagUnused2 [ ^ 5 ]
UAConstants class >> tagUnused3 [ ^ 6 ]
UAConstants class >> tagDiagInf [ ^ 7 ]
UAConstants class >> tagIdentRange [ ^ 8 ]
UAConstants class >> tagBeatData [ ^ 9 ]
UAConstants class >> tagUnused4 [ ^ 10 ]
UAConstants class >> tagTraMode [ ^ 11 ]
UAConstants class >> tagErrCode [ ^ 12 ]
UAConstants class >> tagStatus [ ^ 13 ]
UAConstants class >> tagUnused5 [ ^ 14 ]
UAConstants class >> tagUnused6 [ ^ 15 ]
UAConstants class >> tagUnused7 [ ^ 16 ]
UAConstants class >> tagAspIdent [ ^ 17 ]
UAConstants class >> tagUnused8 [ ^ 18 ]
UAConstants class >> tagCorrelId [ ^ 19 ]
UAConstants class >> tagReserved [ <category: 'constants'> ^ 0 ]
UAConstants class >> tagIdentInt [ <category: 'constants'> ^ 1 ]
UAConstants class >> tagUnused1 [ <category: 'constants'> ^ 2 ]
UAConstants class >> tagIdentText [ <category: 'constants'> ^ 3 ]
UAConstants class >> tagInfo [ <category: 'constants'> ^ 4 ]
UAConstants class >> tagUnused2 [ <category: 'constants'> ^ 5 ]
UAConstants class >> tagUnused3 [ <category: 'constants'> ^ 6 ]
UAConstants class >> tagDiagInf [ <category: 'constants'> ^ 7 ]
UAConstants class >> tagIdentRange [ <category: 'constants'> ^ 8 ]
UAConstants class >> tagBeatData [ <category: 'constants'> ^ 9 ]
UAConstants class >> tagUnused4 [ <category: 'constants'> ^ 10 ]
UAConstants class >> tagTraMode [ <category: 'constants'> ^ 11 ]
UAConstants class >> tagErrCode [ <category: 'constants'> ^ 12 ]
UAConstants class >> tagStatus [ <category: 'constants'> ^ 13 ]
UAConstants class >> tagUnused5 [ <category: 'constants'> ^ 14 ]
UAConstants class >> tagUnused6 [ <category: 'constants'> ^ 15 ]
UAConstants class >> tagUnused7 [ <category: 'constants'> ^ 16 ]
UAConstants class >> tagAspIdent [ <category: 'constants'> ^ 17 ]
UAConstants class >> tagUnused8 [ <category: 'constants'> ^ 18 ]
UAConstants class >> tagCorrelId [ <category: 'constants'> ^ 19 ]
]
@ -115,109 +115,109 @@ UAConstants subclass: M2UAConstants [
<category: 'OsmoNetwork-M2UA'>
<comment: 'I hold the M2UA specific constants'>
M2UAConstants class >> version [ ^ 1 ]
M2UAConstants class >> spare [ ^ 0 ]
M2UAConstants class >> version [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> spare [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> tagData [ ^ 768 ]
M2UAConstants class >> tagDataTTC [ ^ 769 ]
M2UAConstants class >> tagStateReq [ ^ 770 ]
M2UAConstants class >> tagStateEvent [ ^ 771 ]
M2UAConstants class >> tagCongStatus [ ^ 772 ]
M2UAConstants class >> tagDiscStatus [ ^ 773 ]
M2UAConstants class >> tagAction [ ^ 774 ]
M2UAConstants class >> tagSeqNo [ ^ 775 ]
M2UAConstants class >> tagRetrRes [ ^ 776 ]
M2UAConstants class >> tagLinkKey [ ^ 777 ]
M2UAConstants class >> tagLocLinkeyIdent [ ^ 778 ]
M2UAConstants class >> tagSDT [ ^ 779 ]
M2UAConstants class >> tagSDL [ ^ 780 ]
M2UAConstants class >> tagRegRes [ ^ 781 ]
M2UAConstants class >> tagRegStatus [ ^ 782 ]
M2UAConstants class >> tagDeregRes [ ^ 783 ]
M2UAConstants class >> tagDeregStatus [ ^ 784 ]
M2UAConstants class >> tagData [ <category: 'constants'> ^ 768 ]
M2UAConstants class >> tagDataTTC [ <category: 'constants'> ^ 769 ]
M2UAConstants class >> tagStateReq [ <category: 'constants'> ^ 770 ]
M2UAConstants class >> tagStateEvent [ <category: 'constants'> ^ 771 ]
M2UAConstants class >> tagCongStatus [ <category: 'constants'> ^ 772 ]
M2UAConstants class >> tagDiscStatus [ <category: 'constants'> ^ 773 ]
M2UAConstants class >> tagAction [ <category: 'constants'> ^ 774 ]
M2UAConstants class >> tagSeqNo [ <category: 'constants'> ^ 775 ]
M2UAConstants class >> tagRetrRes [ <category: 'constants'> ^ 776 ]
M2UAConstants class >> tagLinkKey [ <category: 'constants'> ^ 777 ]
M2UAConstants class >> tagLocLinkeyIdent [ <category: 'constants'> ^ 778 ]
M2UAConstants class >> tagSDT [ <category: 'constants'> ^ 779 ]
M2UAConstants class >> tagSDL [ <category: 'constants'> ^ 780 ]
M2UAConstants class >> tagRegRes [ <category: 'constants'> ^ 781 ]
M2UAConstants class >> tagRegStatus [ <category: 'constants'> ^ 782 ]
M2UAConstants class >> tagDeregRes [ <category: 'constants'> ^ 783 ]
M2UAConstants class >> tagDeregStatus [ <category: 'constants'> ^ 784 ]
M2UAConstants class >> statusLpoSet [ ^ 0 ]
M2UAConstants class >> statusLpoClear [ ^ 1 ]
M2UAConstants class >> statusEmergSet [ ^ 2 ]
M2UAConstants class >> statusEmergClear [ ^ 3 ]
M2UAConstants class >> statusFlushBufs [ ^ 4 ]
M2UAConstants class >> statusContinue [ ^ 5 ]
M2UAConstants class >> statusClearRTB [ ^ 6 ]
M2UAConstants class >> statusAudit [ ^ 7 ]
M2UAConstants class >> statusCongCleared[ ^ 8 ]
M2UAConstants class >> statusCongAccept [ ^ 9 ]
M2UAConstants class >> statusCongDisc [ ^ 10 ]
M2UAConstants class >> statusLpoSet [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> statusLpoClear [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> statusEmergSet [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> statusEmergClear [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> statusFlushBufs [ <category: 'constants'> ^ 4 ]
M2UAConstants class >> statusContinue [ <category: 'constants'> ^ 5 ]
M2UAConstants class >> statusClearRTB [ <category: 'constants'> ^ 6 ]
M2UAConstants class >> statusAudit [ <category: 'constants'> ^ 7 ]
M2UAConstants class >> statusCongCleared[ <category: 'constants'> ^ 8 ]
M2UAConstants class >> statusCongAccept [ <category: 'constants'> ^ 9 ]
M2UAConstants class >> statusCongDisc [ <category: 'constants'> ^ 10 ]
M2UAConstants class >> eventRPOEnter [ ^ 1 ]
M2UAConstants class >> eventRPOExit [ ^ 2 ]
M2UAConstants class >> eventLPOEnter [ ^ 3 ]
M2UAConstants class >> eventLPOExit [ ^ 4 ]
M2UAConstants class >> eventRPOEnter [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> eventRPOExit [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> eventLPOEnter [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> eventLPOExit [ <category: 'constants'> ^ 4 ]
M2UAConstants class >> congLevelNone [ ^ 0 ]
M2UAConstants class >> congLevel1 [ ^ 1 ]
M2UAConstants class >> congLevel2 [ ^ 2 ]
M2UAConstants class >> congLevel3 [ ^ 3 ]
M2UAConstants class >> congLevelNone [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> congLevel1 [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> congLevel2 [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> congLevel3 [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> actionRtrvBSN [ ^ 0 ]
M2UAConstants class >> actionRtrvMSGs [ ^ 1 ]
M2UAConstants class >> actionRtrvBSN [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> actionRtrvMSGs [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> resultSuccess [ ^ 0 ]
M2UAConstants class >> resultFailure [ ^ 1 ]
M2UAConstants class >> resultSuccess [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> resultFailure [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> traOverride [ ^ 1 ]
M2UAConstants class >> traLoadShare [ ^ 2 ]
M2UAConstants class >> traBroadcast [ ^ 3 ]
M2UAConstants class >> traOverride [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> traLoadShare [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> traBroadcast [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> errInvalidVersion [ ^ 1 ]
M2UAConstants class >> errInvalidIdent [ ^ 2 ]
M2UAConstants class >> errUnsMsgClass [ ^ 3 ]
M2UAConstants class >> errUnsMsgType [ ^ 4 ]
M2UAConstants class >> errUnsTraMode [ ^ 5 ]
M2UAConstants class >> errUneMsg [ ^ 6 ]
M2UAConstants class >> errProtocolError [ ^ 7 ]
M2UAConstants class >> errUnsInterIdentInt [ ^ 8 ]
M2UAConstants class >> errInvalidStreamIdent[ ^ 9 ]
M2UAConstants class >> errUnsued1 [ ^ 10 ]
M2UAConstants class >> errUnsued2 [ ^ 11 ]
M2UAConstants class >> errUnsued3 [ ^ 12 ]
M2UAConstants class >> errRefused [ ^ 13 ]
M2UAConstants class >> errAspIdentRequired [ ^ 14 ]
M2UAConstants class >> errInvalidAspIdent [ ^ 15 ]
M2UAConstants class >> errAspActForIdent [ ^ 16 ]
M2UAConstants class >> errInvalidParamVal [ ^ 17 ]
M2UAConstants class >> errParamFieldError [ ^ 18 ]
M2UAConstants class >> errUnexpParam [ ^ 19 ]
M2UAConstants class >> errUnused4 [ ^ 20 ]
M2UAConstants class >> errUnused5 [ ^ 21 ]
M2UAConstants class >> errMissingParam [ ^ 22 ]
M2UAConstants class >> errInvalidVersion [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> errInvalidIdent [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> errUnsMsgClass [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> errUnsMsgType [ <category: 'constants'> ^ 4 ]
M2UAConstants class >> errUnsTraMode [ <category: 'constants'> ^ 5 ]
M2UAConstants class >> errUneMsg [ <category: 'constants'> ^ 6 ]
M2UAConstants class >> errProtocolError [ <category: 'constants'> ^ 7 ]
M2UAConstants class >> errUnsInterIdentInt [ <category: 'constants'> ^ 8 ]
M2UAConstants class >> errInvalidStreamIdent[ <category: 'constants'> ^ 9 ]
M2UAConstants class >> errUnsued1 [ <category: 'constants'> ^ 10 ]
M2UAConstants class >> errUnsued2 [ <category: 'constants'> ^ 11 ]
M2UAConstants class >> errUnsued3 [ <category: 'constants'> ^ 12 ]
M2UAConstants class >> errRefused [ <category: 'constants'> ^ 13 ]
M2UAConstants class >> errAspIdentRequired [ <category: 'constants'> ^ 14 ]
M2UAConstants class >> errInvalidAspIdent [ <category: 'constants'> ^ 15 ]
M2UAConstants class >> errAspActForIdent [ <category: 'constants'> ^ 16 ]
M2UAConstants class >> errInvalidParamVal [ <category: 'constants'> ^ 17 ]
M2UAConstants class >> errParamFieldError [ <category: 'constants'> ^ 18 ]
M2UAConstants class >> errUnexpParam [ <category: 'constants'> ^ 19 ]
M2UAConstants class >> errUnused4 [ <category: 'constants'> ^ 20 ]
M2UAConstants class >> errUnused5 [ <category: 'constants'> ^ 21 ]
M2UAConstants class >> errMissingParam [ <category: 'constants'> ^ 22 ]
M2UAConstants class >> ntfyKindStateChange [ ^ 1 ]
M2UAConstants class >> ntfyKindOther [ ^ 2 ]
M2UAConstants class >> ntfyKindStateChange [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> ntfyKindOther [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> ntfyStateASInactive [ ^ 2 ]
M2UAConstants class >> ntfyStateASActive [ ^ 3 ]
M2UAConstants class >> ntfyStateASPending [ ^ 4 ]
M2UAConstants class >> ntfyStateASInactive [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> ntfyStateASActive [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> ntfyStateASPending [ <category: 'constants'> ^ 4 ]
M2UAConstants class >> ntfyOtherInsuffRes [ ^ 1 ]
M2UAConstants class >> ntfyOtherAltAspActiv [ ^ 2 ]
M2UAConstants class >> ntfyOtherAspFailure [ ^ 3 ]
M2UAConstants class >> ntfyOtherInsuffRes [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> ntfyOtherAltAspActiv [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> ntfyOtherAspFailure [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> regSuccess [ ^ 0 ]
M2UAConstants class >> regErrorUnknown [ ^ 1 ]
M2UAConstants class >> regErrorInvSDLI [ ^ 2 ]
M2UAConstants class >> regErrorInvSDTI [ ^ 3 ]
M2UAConstants class >> regErrorInvLinkKey [ ^ 4 ]
M2UAConstants class >> regErrorPermDenied [ ^ 5 ]
M2UAConstants class >> regErrorOverlapKey [ ^ 6 ]
M2UAConstants class >> regErrorNotProvisioned [ ^ 7 ]
M2UAConstants class >> regErrorInsuffRes [ ^ 8 ]
M2UAConstants class >> regSuccess [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> regErrorUnknown [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> regErrorInvSDLI [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> regErrorInvSDTI [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> regErrorInvLinkKey [ <category: 'constants'> ^ 4 ]
M2UAConstants class >> regErrorPermDenied [ <category: 'constants'> ^ 5 ]
M2UAConstants class >> regErrorOverlapKey [ <category: 'constants'> ^ 6 ]
M2UAConstants class >> regErrorNotProvisioned [ <category: 'constants'> ^ 7 ]
M2UAConstants class >> regErrorInsuffRes [ <category: 'constants'> ^ 8 ]
M2UAConstants class >> deregSuccess [ ^ 0 ]
M2UAConstants class >> deregErrorUnknown [ ^ 1 ]
M2UAConstants class >> deregErrorInvIdent [ ^ 2 ]
M2UAConstants class >> deregErrorPermDenied [ ^ 3 ]
M2UAConstants class >> deregErrorNotReg [ ^ 4 ]
M2UAConstants class >> deregSuccess [ <category: 'constants'> ^ 0 ]
M2UAConstants class >> deregErrorUnknown [ <category: 'constants'> ^ 1 ]
M2UAConstants class >> deregErrorInvIdent [ <category: 'constants'> ^ 2 ]
M2UAConstants class >> deregErrorPermDenied [ <category: 'constants'> ^ 3 ]
M2UAConstants class >> deregErrorNotReg [ <category: 'constants'> ^ 4 ]
]
Object subclass: M2UATag [

View File

@ -1,5 +1,5 @@
"
(C) 2010 by Holger Hans Peter Freyther
(C) 2010-2012 by Holger Hans Peter Freyther
All Rights Reserved
This program is free software: you can redistribute it and/or modify
@ -23,6 +23,7 @@ Collection subclass: MessageBuffer [
<comment: 'A network buffer/creation class. Modeled after the msgb of osmocore'>
MessageBuffer class >> new [
<category: 'creation'>
^ (super new)
initialize;
yourself

View File

@ -37,11 +37,13 @@ Object subclass: MSGStructure [
<comment: 'Attempt to have a DSL for messages'>
MSGStructure class >> initWith: aType [
<category: 'creation'>
^ self new
instVarNamed: #type put: aType; yourself
]
MSGStructure class >> findStructure: aType [
<category: 'creation'>
self allSubclassesDo: [:each | | struct |
struct := each structure.
struct type = aType ifTrue: [
@ -54,6 +56,7 @@ Object subclass: MSGStructure [
MSGStructure class >> decodeByteStream: aStream type: aType [
| structure |
<category: 'parsing'>
"This is a generic decoding method that works by finding the
message structure and then following the structure and will
return an OrderedCollection with tuples."
@ -64,6 +67,7 @@ Object subclass: MSGStructure [
MSGStructure class >> encodeCollection: aCollection type: aType [
| structure |
<category: 'encoding'>
"This is a generic encoding method that will put the collection
onto a MessageBuffer class."
@ -341,10 +345,12 @@ Object subclass: MSGField [
<comment: 'The description of an Information Element'>
MSGField class >> isCompatible: aField [
<category: 'parsing'>
^ aField isKindOf: self.
]
MSGField class >> readVariableFrom: aStream length: aLength [
<category: 'parsing'>
"I verify that I am allowed to read that much and then will read it"
aLength < self octalLength ifTrue: [
^ self error: 'The data is too short. %1 < %2' % {aLength. self octalLength}.
@ -383,11 +389,13 @@ Object subclass: MSGField [
]
MSGField class >> isVarible [
<category: 'kind'>
"If this field is variable in length"
^ self subclassResponsibility
]
MSGField class >> isFixed [
<category: 'kind'>
"If this field is of a fixed length"
^ self subclassResponsibility
]
@ -412,16 +420,18 @@ MSGField subclass: MSGFixedField [
<category: 'OsmoNetwork-MSG'>
<comment: 'I represent a fixed length field.'>
MSGFixedField class >> isVarible [ ^ false ]
MSGFixedField class >> isFixed [ ^ true ]
MSGFixedField class >> isVarible [ <category: 'kind'> ^ false ]
MSGFixedField class >> isFixed [ <category: 'kind'> ^ true ]
MSGFixedField class >> readFixedFrom: aStream [
<category: 'parsing'>
^ self new
data: (aStream next: self octalLength);
yourself
]
MSGFixedField class >> readVariableFrom: aStream length: aLength [
<category: 'parsing'>
aLength = self octalLength ifFalse: [
^ self error: 'The size needs to be exact'.
].
@ -434,6 +444,6 @@ MSGField subclass: MSGVariableField [
<category: 'OsmoNetwork-MSG'>
<comment: 'I represent a variable sized field.'>
MSGVariableField class >> isVarible [ ^ true ]
MSGVariableField class >> isFixed [ ^ false ]
MSGVariableField class >> isVarible [ <category: 'kind'> ^ true ]
MSGVariableField class >> isFixed [ <category: 'kind'> ^ false ]
]

169
SCCP.st
View File

@ -21,41 +21,44 @@ Object subclass: SCCPHelper [
<comment: 'I hold the SCCP message class constants and provide
an easy way to create specific messages.'>
SCCPHelper class >> msgCr [ ^ 16r01 ]
SCCPHelper class >> msgCc [ ^ 16r02 ]
SCCPHelper class >> msgCref [ ^ 16r03 ]
SCCPHelper class >> msgRlsd [ ^ 16r04 ]
SCCPHelper class >> msgRlc [ ^ 16r05 ]
SCCPHelper class >> msgDt1 [ ^ 16r06 ]
SCCPHelper class >> msgDt2 [ ^ 16r07 ]
SCCPHelper class >> msgAk [ ^ 16r08 ]
SCCPHelper class >> msgUdt [ ^ 16r09 ]
SCCPHelper class >> msgUdts [ ^ 16r0A ]
SCCPHelper class >> msgEd [ ^ 16r0B ]
SCCPHelper class >> msgEa [ ^ 16r0C ]
SCCPHelper class >> msgRsr [ ^ 16r0D ]
SCCPHelper class >> msgRsc [ ^ 16r0E ]
SCCPHelper class >> msgErr [ ^ 16r0F ]
SCCPHelper class >> msgIt [ ^ 16r10 ]
SCCPHelper class >> msgXudt [ ^ 16r11 ]
SCCPHelper class >> msgXudts[ ^ 16r12 ]
SCCPHelper class >> msgLudt [ ^ 16r13 ]
SCCPHelper class >> msgLudts[ ^ 16r14 ]
SCCPHelper class >> msgCr [ <category: 'constants'> ^ 16r01 ]
SCCPHelper class >> msgCc [ <category: 'constants'> ^ 16r02 ]
SCCPHelper class >> msgCref [ <category: 'constants'> ^ 16r03 ]
SCCPHelper class >> msgRlsd [ <category: 'constants'> ^ 16r04 ]
SCCPHelper class >> msgRlc [ <category: 'constants'> ^ 16r05 ]
SCCPHelper class >> msgDt1 [ <category: 'constants'> ^ 16r06 ]
SCCPHelper class >> msgDt2 [ <category: 'constants'> ^ 16r07 ]
SCCPHelper class >> msgAk [ <category: 'constants'> ^ 16r08 ]
SCCPHelper class >> msgUdt [ <category: 'constants'> ^ 16r09 ]
SCCPHelper class >> msgUdts [ <category: 'constants'> ^ 16r0A ]
SCCPHelper class >> msgEd [ <category: 'constants'> ^ 16r0B ]
SCCPHelper class >> msgEa [ <category: 'constants'> ^ 16r0C ]
SCCPHelper class >> msgRsr [ <category: 'constants'> ^ 16r0D ]
SCCPHelper class >> msgRsc [ <category: 'constants'> ^ 16r0E ]
SCCPHelper class >> msgErr [ <category: 'constants'> ^ 16r0F ]
SCCPHelper class >> msgIt [ <category: 'constants'> ^ 16r10 ]
SCCPHelper class >> msgXudt [ <category: 'constants'> ^ 16r11 ]
SCCPHelper class >> msgXudts[ <category: 'constants'> ^ 16r12 ]
SCCPHelper class >> msgLudt [ <category: 'constants'> ^ 16r13 ]
SCCPHelper class >> msgLudts[ <category: 'constants'> ^ 16r14 ]
SCCPHelper class >> pncData [ ^ 16r0F ]
SCCPHelper class >> pncEoO [ ^ 16r00 ]
SCCPHelper class >> pncData [ <category: 'constants'> ^ 16r0F ]
SCCPHelper class >> pncEoO [ <category: 'constants'> ^ 16r00 ]
SCCPHelper class >> createCR: src dest: dest data: aData [
<category: 'creation'>
^ (SCCPConnectionRequest initWith: src dest: dest data: aData)
toMessage.
]
SCCPHelper class >> createRLSD: src dest: dest cause: cause [
<category: 'creation'>
^ (SCCPConnectionReleased initWith: src dest: dest cause: cause)
toMessage.
]
SCCPHelper class >> createDT1: dst data: data [
<category: 'creation'>
^ (SCCPConnectionData initWith: dst data: data)
toMessage.
]
@ -70,6 +73,7 @@ Object subclass: SCCPPNC [
SCCPPNC class >> parseFrom: aPnc [
| dict pnc |
<category: 'parsing'>
pnc := aPnc.
dict := Dictionary new.
@ -138,36 +142,38 @@ Object subclass: SCCPGTI [
<comment: 'I represent the Global Title of Q.713.'>
"gti indicator in the Addr header"
SCCPGTI class >> gtiIndNoGTI [ ^ 0 ]
SCCPGTI class >> gtiIndGTI [ ^ 1 ]
SCCPGTI class >> gtiIndTransOnlyGTI [ ^ 2 ]
SCCPGTI class >> gtiIndTransNumbrPlanAndEnc [ ^ 3 ]
SCCPGTI class >> gtiIndTransNumbrAndMore [ ^ 4 ]
SCCPGTI class >> gtiIndNoGTI [ <category: 'creation'> ^ 0 ]
SCCPGTI class >> gtiIndGTI [ <category: 'creation'> ^ 1 ]
SCCPGTI class >> gtiIndTransOnlyGTI [ <category: 'creation'> ^ 2 ]
SCCPGTI class >> gtiIndTransNumbrPlanAndEnc [ <category: 'creation'> ^ 3 ]
SCCPGTI class >> gtiIndTransNumbrAndMore [ <category: 'creation'> ^ 4 ]
"nai type"
SCCPGTI class >> naiUnknown [ ^ 0 ]
SCCPGTI class >> naiSubscriber [ ^ 1 ]
SCCPGTI class >> naiReservedNational [ ^ 2 ]
SCCPGTI class >> naiNationalSign [ ^ 3 ]
SCCPGTI class >> naiInternationalNumber [ ^ 4 ]
SCCPGTI class >> naiUnknown [ <category: 'creation'> ^ 0 ]
SCCPGTI class >> naiSubscriber [ <category: 'creation'> ^ 1 ]
SCCPGTI class >> naiReservedNational [ <category: 'creation'> ^ 2 ]
SCCPGTI class >> naiNationalSign [ <category: 'creation'> ^ 3 ]
SCCPGTI class >> naiInternationalNumber [ <category: 'creation'> ^ 4 ]
"numbering plan"
SCCPGTI class >> npUnknown [ ^ 0 ]
SCCPGTI class >> npISDN [ ^ 1 ]
SCCPGTI class >> npGeneric [ ^ 2 ]
SCCPGTI class >> npData [ ^ 3 ]
SCCPGTI class >> npTelex [ ^ 4 ]
SCCPGTI class >> npMaritime [ ^ 5 ]
SCCPGTI class >> npLand [ ^ 6 ]
SCCPGTI class >> npMobile [ ^ 7 ]
SCCPGTI class >> npUnknown [ <category: 'creation'> ^ 0 ]
SCCPGTI class >> npISDN [ <category: 'creation'> ^ 1 ]
SCCPGTI class >> npGeneric [ <category: 'creation'> ^ 2 ]
SCCPGTI class >> npData [ <category: 'creation'> ^ 3 ]
SCCPGTI class >> npTelex [ <category: 'creation'> ^ 4 ]
SCCPGTI class >> npMaritime [ <category: 'creation'> ^ 5 ]
SCCPGTI class >> npLand [ <category: 'creation'> ^ 6 ]
SCCPGTI class >> npMobile [ <category: 'creation'> ^ 7 ]
"encoding scheme"
SCCPGTI class >> esUnknown [ ^ 0 ]
SCCPGTI class >> esBCDOdd [ ^ 1 ]
SCCPGTI class >> esBCDEven [ ^ 2 ]
SCCPGTI class >> esNational [ ^ 3 ]
SCCPGTI class >> esUnknown [ <category: 'creation'> ^ 0 ]
SCCPGTI class >> esBCDOdd [ <category: 'creation'> ^ 1 ]
SCCPGTI class >> esBCDEven [ <category: 'creation'> ^ 2 ]
SCCPGTI class >> esNational [ <category: 'creation'> ^ 3 ]
SCCPGTI class >> initWith: gti_ind data: gti [
<category: 'creation'>
self allSubclassesDo: [:each |
each subType = gti_ind
ifTrue: [
@ -179,6 +185,7 @@ Object subclass: SCCPGTI [
]
SCCPGTI class >> map: aDigit [
<category: 'creation'>
^ (aDigit >= 0 and: [aDigit <= 9])
ifTrue: [ (aDigit + 48) asCharacter ]
ifFalse: [ $N ]
@ -186,6 +193,7 @@ Object subclass: SCCPGTI [
SCCPGTI class >> unmap: aChar [
| digit |
<category: 'parsing'>
digit := aChar asInteger.
^ (digit >= 48 and: [digit <= 57])
ifTrue: [ digit - 48 ]
@ -194,6 +202,7 @@ Object subclass: SCCPGTI [
SCCPGTI class >> parseAddr: data encoding: aEnc [
| odd split |
<category: 'parsing'>
(aEnc = 1 or: [aEnc = 2]) ifFalse: [
^ self error: 'Only BCD number encoding supported.'
].
@ -214,6 +223,7 @@ Object subclass: SCCPGTI [
SCCPGTI class >> formatAddr: aNumber on: data [
| nr odd |
<category: 'creation'>
nr := OrderedCollection new.
odd := aNumber size odd.
@ -241,9 +251,11 @@ SCCPGTI subclass: SCCPGTITranslation [
<comment: 'I represent the global title translation specific
encoing of a SCCP header.'>
SCCPGTITranslation class >> subType [ ^ 4 ]
SCCPGTITranslation class >> subType [ <category: 'constants'> ^ 4 ]
SCCPGTITranslation class >> initWith: data [
| enc |
<category: 'creation'>
enc := (data at: 2) bitAnd: 16r0F.
^ self new
translation: (data at: 1);
@ -335,23 +347,24 @@ Object subclass: SCCPAddress [
<comment: 'I represent the SCCP Address including the
SSN, GTI if present.'>
SCCPAddress class >> ssnNotKnown [ ^ 0 ]
SCCPAddress class >> ssnSCCPMgnt [ ^ 1 ]
SCCPAddress class >> ssnITURsrvd [ ^ 2 ]
SCCPAddress class >> ssnISUP [ ^ 3 ]
SCCPAddress class >> ssnOMA [ ^ 4 ]
SCCPAddress class >> ssnMAP [ ^ 5 ]
SCCPAddress class >> ssnHLR [ ^ 6 ]
SCCPAddress class >> ssnVLR [ ^ 7 ]
SCCPAddress class >> ssnMSC [ ^ 8 ]
SCCPAddress class >> ssnEIC [ ^ 9 ]
SCCPAddress class >> ssnAUC [ ^ 10 ]
SCCPAddress class >> ssnISUPSRV [ ^ 11 ]
SCCPAddress class >> ssnReserved [ ^ 12 ]
SCCPAddress class >> ssnBroadISDN[ ^ 13 ]
SCCPAddress class >> ssnTCTest [ ^ 14 ]
SCCPAddress class >> ssnNotKnown [ <category: 'constants'> ^ 0 ]
SCCPAddress class >> ssnSCCPMgnt [ <category: 'constants'> ^ 1 ]
SCCPAddress class >> ssnITURsrvd [ <category: 'constants'> ^ 2 ]
SCCPAddress class >> ssnISUP [ <category: 'constants'> ^ 3 ]
SCCPAddress class >> ssnOMA [ <category: 'constants'> ^ 4 ]
SCCPAddress class >> ssnMAP [ <category: 'constants'> ^ 5 ]
SCCPAddress class >> ssnHLR [ <category: 'constants'> ^ 6 ]
SCCPAddress class >> ssnVLR [ <category: 'constants'> ^ 7 ]
SCCPAddress class >> ssnMSC [ <category: 'constants'> ^ 8 ]
SCCPAddress class >> ssnEIC [ <category: 'constants'> ^ 9 ]
SCCPAddress class >> ssnAUC [ <category: 'constants'> ^ 10 ]
SCCPAddress class >> ssnISUPSRV [ <category: 'constants'> ^ 11 ]
SCCPAddress class >> ssnReserved [ <category: 'constants'> ^ 12 ]
SCCPAddress class >> ssnBroadISDN[ <category: 'constants'> ^ 13 ]
SCCPAddress class >> ssnTCTest [ <category: 'constants'> ^ 14 ]
SCCPAddress class >> createWith: ssn [
<category: 'creation'>
^ (SCCPAddress new)
ssn: ssn;
routedOnSSN: true;
@ -359,6 +372,7 @@ Object subclass: SCCPAddress [
]
SCCPAddress class >> createWith: ssn poi: aPoi [
<category: 'creation'>
^ SCCPAddress new
ssn: ssn;
routedOnSSN: true;
@ -368,6 +382,7 @@ Object subclass: SCCPAddress [
SCCPAddress class >> parseFrom: aByteArray [
| routed_ssn gti_ind gti len ai ssn poi dat |
<category: 'parsing'>
poi := nil.
len := aByteArray at: 1.
ai := aByteArray at: 2.
@ -515,6 +530,7 @@ Object subclass: SCCPAddrReference [
SCCPAddrReference class >> store: anAddress on: aMsg [
"Store the threee bytes of an sccp address on a messagebuffer"
<category: 'encoding'>
aMsg putByte: ((anAddress bitAnd: 16r000000FF) bitShift: -0).
aMsg putByte: ((anAddress bitAnd: 16r0000FF00) bitShift: -8).
@ -522,9 +538,10 @@ Object subclass: SCCPAddrReference [
]
SCCPAddrReference class >> fromCData: anArray [
"Parse from an CArray"
| oct1 oct2 oct3 |
"Parse from an CArray"
<category: 'encoding'>
oct1 := (anArray at: 0) bitShift: 0.
oct2 := (anArray at: 1) bitShift: 8.
oct3 := (anArray at: 2) bitShift: 16.
@ -533,8 +550,10 @@ Object subclass: SCCPAddrReference [
]
SCCPAddrReference class >> fromByteArray: anArray [
"Parse from a ByteArray"
| oct1 oct2 oct3 |
"Parse from a ByteArray"
<category: 'encoding'>
oct1 := (anArray at: 1) bitShift: 0.
oct2 := (anArray at: 2) bitShift: 8.
oct3 := (anArray at: 3) bitShift: 16.
@ -551,6 +570,7 @@ Object subclass: SCCPMessage [
SCCPMessage class >> decode: aByteArray [
| type |
<category: 'parsing'>
type := aByteArray at: 1.
SCCPMessage allSubclassesDo: [:each |
@ -596,6 +616,8 @@ SCCPMessage subclass: SCCPConnectionRequest [
SCCPConnectionRequest class >> parseFrom: aMsg [
| src addr proto variable optional pnc |
<category: 'parsing'>
src := SCCPAddrReference fromByteArray: (aMsg copyFrom: 2 to: 4).
proto := (aMsg at: 5) asInteger.
variable := (aMsg at: 6) asInteger.
@ -675,6 +697,7 @@ SCCPMessage subclass: SCCPConnectionConfirm [
]
SCCPConnectionConfirm class >> initWithSrc: aSrc dst: aDst [
<category: 'creation'>
^ self new
src: aSrc dst: aDst;
yourself
@ -682,6 +705,8 @@ SCCPMessage subclass: SCCPConnectionConfirm [
SCCPConnectionConfirm class >> parseFrom: aMsg [
| src dst proto optional |
<category: 'parsing'>
dst := SCCPAddrReference fromByteArray: (aMsg copyFrom: 2 to: 4).
src := SCCPAddrReference fromByteArray: (aMsg copyFrom: 5 to: 7).
proto := aMsg at: 8.
@ -738,6 +763,7 @@ SCCPMessage subclass: SCCPConnectionData [
]
SCCPConnectionData class >> initWith: dst data: data [
<category: 'creation'>
^ (self new)
dst: dst;
data: data;
@ -746,6 +772,8 @@ SCCPMessage subclass: SCCPConnectionData [
SCCPConnectionData class >> parseFrom: aByteArray [
| more_data var_start addr size data |
<category: 'parsing'>
addr := SCCPAddrReference fromByteArray: (aByteArray copyFrom: 2).
more_data := aByteArray at: 5.
more_data = 0 ifFalse: [
@ -812,6 +840,8 @@ SCCPMessage subclass: SCCPConnectionReleased [
]
SCCPConnectionReleased class >> initWithDst: aDst src: aSrc cause: aCause [
<category: 'creation'>
^ self new
dst: aDst;
src: aSrc;
@ -821,6 +851,7 @@ SCCPMessage subclass: SCCPConnectionReleased [
SCCPConnectionReleased class >> parseFrom: aByteArray [
| dst src cause |
<category: 'parsing'>
dst := SCCPAddrReference fromByteArray: (aByteArray copyFrom: 2).
src := SCCPAddrReference fromByteArray: (aByteArray copyFrom: 5).
@ -883,16 +914,19 @@ SCCPMessage subclass: SCCPConnectionReleaseComplete [
<comment: 'I hold the data of a released connection.'>
SCCPConnectionReleaseComplete class >> msgType [
<category: 'fields'>
^ SCCPHelper msgRlc.
]
SCCPConnectionReleaseComplete class >> initWithDst: aDst src: aSrc [
<category: 'creation'>
^ self new
dst: aDst; src: aSrc;
yourself
]
SCCPConnectionReleaseComplete class >> parseFrom: aByteArray [
<category: 'parsing'>
^ self new
dst: (SCCPAddrReference fromByteArray: (aByteArray copyFrom: 2 to: 4));
src: (SCCPAddrReference fromByteArray: (aByteArray copyFrom: 5 to: 7));
@ -934,10 +968,12 @@ SCCPMessage subclass: SCCPUDT [
<comment: 'I hold the data of a connection less data message.'>
SCCPUDT class >> msgType [
<category: 'fields'>
^ SCCPHelper msgUdt
]
SCCPUDT class >> initWith: aCalled calling: aCalling data: aData [
<category: 'creation'>
^ self new
calledAddr: aCalled;
callingAddr: aCalling;
@ -947,6 +983,7 @@ SCCPMessage subclass: SCCPUDT [
SCCPUDT class >> parseFrom: aByteArray [
| called calledData calling callingData data dataData dataSize |
<category: 'parsing'>
called := aByteArray at: 3.
calledData := aByteArray copyFrom: (3 + called).
@ -1047,12 +1084,12 @@ SCCPMessage subclass: SCCPInactivityTest [
<comment: 'I hold the data of an inactivity test.'>
SCCPInactivityTest class >> msgType [
<category: 'factory'>
<category: 'field'>
^ SCCPHelper msgIt
]
SCCPInactivityTest class >> initWithDst: aDst src: aSrc [
<category: 'factory'>
<category: 'creation'>
^ self new
dst: aDst;
src: aSrc;
@ -1061,7 +1098,7 @@ SCCPMessage subclass: SCCPInactivityTest [
SCCPInactivityTest class >> parseFrom: aByteArray [
| dst src proto seq credit |
<category: 'factory'>
<category: 'parsing'>
dst := SCCPAddrReference fromByteArray: (aByteArray copyFrom: 2).
src := SCCPAddrReference fromByteArray: (aByteArray copyFrom: 5).

View File

@ -184,7 +184,7 @@ Object subclass: StructCreator [
len <= 0 ifTrue: [
len := 0.
tag_only := '
%1 class >> lengthLength [ ^ 0 ]
%1 class >> lengthLength [ <category: ''field''> ^ 0 ]
' % {aDef className}.
].
@ -193,10 +193,10 @@ Object subclass: StructCreator [
<category: ''OsmoNetwork-ISUP''>
<comment: ''I am an auto generated ISUP fixed field.''>
%1 class >> parameterName [ ^ ''%2'' ]
%1 class >> parameterValue [ ^ ISUPConstants par%3 ]
%1 class >> octalLength [ ^ %4 ]
%1 class >> spec [ ^ ''%5'' ]%6
%1 class >> parameterName [ <category: ''field''> ^ ''%2'' ]
%1 class >> parameterValue [ <category: ''field''> ^ ISUPConstants par%3 ]
%1 class >> octalLength [ <category: ''field''> ^ %4 ]
%1 class >> spec [ <category: ''field''> ^ ''%5'' ]%6
]' % {aDef className. aDef commentName. aDef param. len. aDef ref. tag_only.}.
self addType: aDef ref struct: type.
@ -219,11 +219,11 @@ Object subclass: StructCreator [
<category: ''OsmoNetwork-ISUP''>
<comment: ''I am an auto generated ISUP variable.''>
%1 class >> parameterName [ ^ ''%2'' ]
%1 class >> parameterValue [ ^ ISUPConstants par%3 ]
%1 class >> octalLength [ ^ %4 ]
%1 class >> maxLength [ ^ %5 ]
%1 class >> spec [ ^ ''%6'' ]
%1 class >> parameterName [ <category: ''field''> ^ ''%2'' ]
%1 class >> parameterValue [ <category: ''field''> ^ ISUPConstants par%3 ]
%1 class >> octalLength [ <category: ''field''> ^ %4 ]
%1 class >> maxLength [ <category: ''field''> ^ %5 ]
%1 class >> spec [ <category: ''field''> ^ ''%6'' ]
]' % {aDef className. aDef commentName. aDef param. minLen. maxLen. aDef ref}.
self addType: aDef ref struct: type.
@ -238,6 +238,7 @@ ISUPMessage subclass: ISUP%1 [
<comment: ''I am auto-generated ISUP message.''>
ISUP%1 class >> structure [
<category: ''field''>
^ (self initWith: ISUPConstants msg%1)' % {structName. }.
^ true
].
@ -281,6 +282,7 @@ ISUP%1 subclass: ISUP%2 [
<comment: ''I am an auto generated ISUP message.''>
ISUP%2 class >> structure [
<category: ''field''>
^ (super structure)
type: ISUPConstants msg%2; yourself
]

File diff suppressed because it is too large Load Diff