You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| MAP SMS service |`IMapSmsService`|`ITcapDialogues`|
18
19
19
20
Upper layers should depend on the public contract of the layer below them, not on concrete classes such as a specific socket adapter, session implementation, or lab runner.
@@ -36,9 +37,16 @@ can implement the same contract.
36
37
37
38
`ISccpService` exposes SCCP Unitdata primitives over `IMtp3Network`. `SccpConnectionlessService` provides a connectionless UDT implementation.
38
39
39
-
`ITcapDialogues` exposes Begin, Continue, End, and Receive dialogue primitives over `ISccpService`. `TcapDialogueService` provides a stateful dialogue service over SCCP Unitdata.
40
+
`ITcapDialogues` exposes Begin, Continue, End, and Receive dialogue primitives
41
+
over `ISccpService`. `ITcapComponentDialogues` extends that boundary with
and Abort. `TcapDialogueManager` implements both contracts.
40
44
41
-
`IMapSmsService` exposes SMS-oriented MAP operations over `ITcapDialogues`. `MapSmsService` composes the existing MAP SMS TCAP builder with the dialogue contract.
45
+
`IMapSmsService` exposes SMS-oriented MAP operations over `ITcapDialogues`.
46
+
Fire-and-forget compatibility methods work with the base contract; correlated
47
+
stateful methods require the `ITcapComponentDialogues` capability without
48
+
depending on a concrete dialogue manager. `MapSmsServer` also consumes that
Copy file name to clipboardExpand all lines: docs/MAP.md
+79-6Lines changed: 79 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,38 @@
1
-
# MAP SMS Profile
1
+
# MAP SMS Service
2
2
3
-
Phase 5 builds MAP SMS operation models and BER bindings on top of the TCAP foundation.
3
+
SIGTRAN.NET provides typed MAP SMS codecs, correlated client workflows, and an
4
+
asynchronous inbound operation server over TCAP.
4
5
5
6
## Service Contract
6
7
7
-
`IMapSmsService` is the official SMS-oriented MAP service boundary. It depends on `ITcapDialogues` and exposes operation-level methods for MO-ForwardSM, MT-ForwardSM, and SendRoutingInfoForSM.
8
+
`IMapSmsService` is the official SMS-oriented MAP service boundary. It depends
9
+
on `ITcapDialogues` and exposes all five supported operations:
8
10
9
-
`MapSmsService` composes `MapSmsTcapClient` with the TCAP dialogue contract, allowing applications to inject alternate TCAP dialogue managers without changing MAP SMS code.
11
+
-`sendRoutingInfoForSM`
12
+
-`mo-ForwardSM`
13
+
-`mt-ForwardSM`
14
+
-`reportSM-DeliveryStatus`
15
+
-`alertServiceCentre`
16
+
17
+
The `Send*Async` methods retain fire-and-forget compatibility. The
18
+
`Invoke*Async` methods require `ITcapComponentDialogues`, correlate the invoke
19
+
with ReturnResult, ReturnError, Reject, timeout, or dialogue closure, and return
The facade hides TCAP transaction-id, invoke-id, dialogue portion, and component wrapping while keeping the encoded transaction available for lower-level routing.
155
196
197
+
## Inbound Operation Server
198
+
199
+
`MapSmsServer` dispatches decoded inbound invokes to operation-specific async
200
+
handlers. It validates the operation and payload before calling application
201
+
code, returns `MistypedComponent` for malformed parameters, returns
202
+
`UnrecognizedComponent` when no profile or handler exists, maps handler
203
+
responses to ReturnResult, ReturnError, or Reject, and reports processing
Only one application consumer should own the inbound TCAP component stream for
221
+
an endpoint. `TcapDialogueManager` keeps correlated outbound outcomes on their
222
+
invoke completion path, so they cannot accumulate in the inbound server queue.
223
+
156
224
## Evidence Vectors
157
225
158
226
`MapSmsEvidenceVectors.GetVectors()` exposes deterministic byte-level vectors for MO-ForwardSM, MT-ForwardSM, SendRoutingInfoForSM, ReportSM-DeliveryStatus, and AlertServiceCentre operation parameters.
@@ -166,6 +234,11 @@ Each vector stores literal BER-shaped expected bytes and validates the current o
166
234
167
235
## Readiness
168
236
169
-
`MapSmsReadiness.GetReport()` reports the current MAP SMS profile status. The foundation is complete when operation metadata, address primitives, ForwardSM codecs, SRI-SM, delivery status, AlertServiceCentre, errors/extensions, and the TCAP client facade are present.
237
+
`MapSmsReadiness.GetReport()` reports twelve implemented service capabilities:
238
+
operation metadata, address primitives, five operation codecs, errors and
239
+
extensions, the TCAP facade, operation profiles, correlated client workflows,
240
+
typed server dispatch, and operational controls.
170
241
171
-
Production readiness remains false until external MAP SMS interoperability vectors and operator-profile validation are added.
242
+
The in-process paired-stack tests exercise all five workflows and MAP error
243
+
mapping. Production readiness remains false until independent end-to-end MAP
244
+
SMS traces and operator-profile validation are retained.
0 commit comments