From 83fb82c3b011570f1680e1cd77305ae743eb8b8e Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 28 Aug 2012 10:30:57 +0200 Subject: [PATCH] gsm: Be able to parse the GSM 48 RR Channel Release --- GSM48.st | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Tests.st | 8 +++++++ 2 files changed, 75 insertions(+) diff --git a/GSM48.st b/GSM48.st index 8e48bb1..294b49d 100644 --- a/GSM48.st +++ b/GSM48.st @@ -673,6 +673,24 @@ GSM48SimpleTag subclass: GSM48CTSPermission [ ] +GSM48SimpleTag subclass: GSM48GroupCipherKeyNumber [ + + + + + + +] + +GSM48SimpleTag subclass: GSM48GPRSResumption [ + + + + + + +] + GSM48SimpleData subclass: GSM48IdentityType [ @@ -1489,6 +1507,33 @@ GSM48DataHolder subclass: GSMBackupBearerCapability [ ] +GSM48DataHolder subclass: GSM48BARange [ + + + + + + +] + +GSM48DataHolder subclass: GSM48GroupChannelDescription [ + + + + + + +] + +GSM48DataHolder subclass: GSM48BAListPref [ + + + + + + +] + Osmo.TLVParserBase subclass: GSM48MSG [ | seq ti | @@ -2224,6 +2269,27 @@ GSM48RRMessage subclass: GSM48RRImmediateAssignCommand [ ] ] +GSM48RRMessage subclass: GSM48RRChannelRelease [ + + + + GSM48RRChannelRelease class [ + messageType [ ^ self msgChannelRelease ] + ] + + GSM48RRChannelRelease class >> tlvDescription [ + + ^ OrderedCollection new + add: GSMRRCause asTLVDescription; + add: (GSM48BARange asTLVDescription beOptional; yourself); + add: (GSM48GroupChannelDescription asTLVDescription beOptional; yourself); + add: (GSM48GroupCipherKeyNumber asTLVDescription beConditional; yourself); + add: (GSM48GPRSResumption asTLVDescription beOptional; yourself); + add: (GSM48BAListPref asTLVDescription beOptional; yourself); + yourself + ] +] + GSM48SSMessage subclass: GSM48SSFacility [ @@ -2288,6 +2354,7 @@ Eval [ GSM48RRAssignmentComplete initialize. GSM48RRImmediateAssignCommand initialize. + GSM48RRChannelRelease initialize. GSM48SSFacility initialize. GSM48SSRegister initialize. diff --git a/Tests.st b/Tests.st index d8f161a..6024958 100644 --- a/Tests.st +++ b/Tests.st @@ -305,6 +305,14 @@ TestCase subclass: GSM48Test [ self assert: dec toMessage asByteArray = inp. ] + testRRChannelRelease [ + | inp dec | + inp := #(16r06 16r0D 16r00) asByteArray. + dec := GSM48MSG decode: inp readStream. + self assert: dec type = GSM48RRChannelRelease messageType. + self assert: dec toMessage asByteArray = inp. + ] + testCalledBCDNumber [ | dec | dec := GSMCalledBCDNumber initWithData: #(145 51 83 102 246) asByteArray.