ipa: First version that emulates both MSC and BSC up to ASSIGNMENT REQ
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index b030072..274f42e 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -11,7 +11,9 @@
spare := '0000000'B,
dlci := omit,
lengthIndicator := 0, /* overwritten by codec */
- pdu := ?
+ pdu := {
+ bssmap := ?
+ }
}
template PDU_BSSAP tr_BSSAP_BSSMAP := {
@@ -24,6 +26,27 @@
}
}
+template PDU_BSSAP ts_BSSAP_DTAP := {
+ discriminator := '1'B,
+ spare := '0000000'B,
+ dlci := omit,
+ lengthIndicator := 0, /* overwritten by codec */
+ pdu := {
+ dtap := ?
+ }
+}
+
+template PDU_BSSAP tr_BSSAP_DTAP := {
+ discriminator := '1'B,
+ spare := '0000000'B,
+ dlci := omit,
+ lengthIndicator := ?,
+ pdu := {
+ dtap := ?
+ }
+}
+
+
template (value) BSSMAP_IE_Cause ts_BSSMAP_IE_Cause(BssmapCause val) := {
elementIdentifier := '04'O,
lengthIndicator := 0,
@@ -238,4 +261,119 @@
}
}
+template PDU_BSSAP tr_BSSMAP_AssignmentCmd modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ assignmentRequest := {
+ messageType :='01'O, /* overwritten */
+ channelType := ?,
+ layer3HeaderInfo := *,
+ priority := *,
+ circuitIdentityCode := ?,
+ downLinkDTX_Flag := *,
+ interferenceBandToBeUsed := *,
+ classmarkInformationType2 := *,
+ groupCallReference := *,
+ talkerFlag := *,
+ configurationEvolutionIndication := *,
+ lsaAccesControlSuppression := *,
+ serviceHandover := *,
+ encryptionInformation := *,
+ talkerPriority := *,
+ aoIPTransportLayer := *,
+ codecList := *,
+ callIdentifier := *,
+ kC128 := *,
+ globalCallReference := *,
+ lCLS_Configuration := *,
+ lCLS_ConnectionStatusControl := *,
+ lCLS_CorrelationNotNeeded := *
+ }
+ }
+ }
+}
+
+template (value) PDU_BSSAP ts_BSSMAP_AssignmentComplete(BSSMAP_IE_CircuitIdentityCode cic)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ assignmentComplete := {
+ messageType :='02'O, /* overwritten */
+ circuitIdentityCode := cic,
+ cellIdentifier := omit,
+ chosenChannel := omit,
+ chosenEncryptionAlgorithm := omit,
+ circuitPool := omit,
+ speechVersion := omit,
+ lSAIdentifier := omit,
+ talkerPriority := omit,
+ aoIPTransportLayer := omit,
+ speechCodec := omit,
+ codecList := omit,
+ lCLS_BSS_Status := omit
+ }
+ }
+ }
+}
+
+template PDU_BSSAP tr_BSSMAP_AssignmentComplete modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ assignmentComplete := {
+ messageType := '02'O, /* overwritten */
+ circuitIdentityCode := ?,
+ cellIdentifier := *,
+ chosenChannel := *,
+ chosenEncryptionAlgorithm := *,
+ circuitPool := *,
+ speechVersion := *,
+ lSAIdentifier := *,
+ talkerPriority := *,
+ aoIPTransportLayer := *,
+ speechCodec := *,
+ codecList := *,
+ lCLS_BSS_Status := *
+ }
+ }
+ }
+}
+
+template (value) PDU_BSSAP ts_BSSMAP_ClearCommand(BssmapCause cause)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ clearCommand := {
+ messageType := '20'O, /* overwritten */
+ layer3HeaderInfo := omit,
+ cause := ts_BSSMAP_IE_Cause(cause),
+ cSFB_Indication := omit
+ }
+ }
+ }
+}
+
+template PDU_BSSAP tr_BSSMAP_ClearCommand modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ clearCommand := {
+ messageType := '20'O, /* overwritten */
+ layer3HeaderInfo := *,
+ cause := ?,
+ cSFB_Indication := *
+ }
+ }
+ }
+}
+
+template (value) PDU_BSSAP ts_BSSMAP_ClearComplete
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ clearComplete := {
+ messageType := '21'O /* overwritten */
+ }
+ }
+ }
+}
+
}