Skip to content

Repository files navigation

SIGTRAN.NET

SIGTRAN.NET is the first open-source .NET 10 SDK dedicated to SIGTRAN and SS7-over-IP protocol engineering.

The project brings telecom signaling infrastructure to the modern .NET ecosystem, with an engineering focus on M3UA, SCTP, SCCP, TCAP, MAP, byte-level protocol validation, interoperability evidence, and production-oriented release governance.

SIGTRAN.NET is open source under the Apache-2.0 license and welcomes contributors from the telecom, protocol engineering, Linux networking, and .NET communities.

Repository: https://github.com/araditc/sigtran.net


Status

SIGTRAN.NET is currently in a public release-candidate track. Version 1.0.0-rc.1 has been published and restored from NuGet.org. Source builds now default to the unpublished 1.0.0-rc.2 candidate so ordinary packing cannot accidentally create a stable package.

Native Linux SCTP, external SCTP/M3UA, and cross-implementation full-stack MAP SMS traffic evidence are retained. Stateful M3UA, M2PA, SCCP, TCAP, and MAP SMS runtimes are available. Full stable-product readiness remains gated on operator/vendor profile interoperability, independent M2PA evidence, 20K peak and operator-sized multi-host performance evidence, representative Kubernetes SCTP validation, trusted signing, and stable release execution.

For release history and governance, see:

RC notice: use the package for controlled integration and lab traffic. Do not claim a complete operator-grade SS7 stack until the remaining runtime, protocol, capacity, and stable-release gates are closed.


Why SIGTRAN.NET?

SS7 and SIGTRAN remain important in telecom signaling, mobile messaging, roaming, interconnection, and carrier-grade integration.

The .NET ecosystem has historically had limited native, open-source tooling for this domain. SIGTRAN.NET is designed to close that gap by providing a standards-oriented, testable, and maintainable SDK for SS7-over-IP protocol engineering in C# and .NET 10.


Current Engineering Focus

The current RC engineering track focuses on:

  • M3UA framing, parsing, routing, diagnostics, and ASP state handling.
  • Transport abstraction for SIGTRAN workloads.
  • Official layer contracts from SCTP through MAP SMS for dependency-injected applications.
  • Linux native SCTP production transport with retained stream/PPID metadata, reconnect, metrics, and graceful-shutdown evidence.
  • External SCTP/M3UA peer validation with PCAP, SDK trace, peer log, and TShark comparison evidence.
  • Cross-implementation MAP SMS traffic through TCAP, SCCP, M3UA, and native SCTP with retained PCAP, traces, field comparison, and digest evidence.
  • Full-stack performance and resilience tooling with a retained 62,000-operation baseline, latency/resource metrics, SCTP failover, and zero-loss recovery.
  • Executable health probes, OpenTelemetry-compatible tracing and metrics, structured JSONL events, validated node configuration, and a containerized M3UA operations host with Kubernetes probes.
  • Stateful SCCP, TCAP, and MAP SMS service layers.
  • M2PA as a parallel MTP2 path.
  • Byte-level tests and protocol validation.
  • Wireshark-friendly diagnostics and trace-oriented tooling.
  • Interoperability lab planning and external peer validation.
  • NuGet/package readiness, documentation, and release governance.

Protocol Scope

Area Current Direction
M3UA Codec, routing, ASP state, long-running IMtp3Network runtime, bounded queues, heartbeat supervision, reconnect/failover hooks, diagnostics, and external peer evidence are available.
SCTP Native Linux SCTP evidence validates stream id, PPID, receive metadata, reconnect, metrics, graceful shutdown, and external peer traffic.
M2PA RFC 4165 codec and stateful IMtp2Link runtime provide alignment, proving, 24-bit sequencing, acknowledgement, retrieval retention, congestion handling, processor-outage recovery, metrics, and transport replacement. Independent peer evidence remains.
SCCP Stateful ISccpService supports UDT/XUDT/LUDT, GT translation, routing, bounded segmentation/reassembly, UDTS return policy, metrics, cancellation, and MTP3 receive ownership. Independent C-peer UDT evidence is retained; operator/vendor profile evidence remains.
TCAP Concurrent TcapDialogueManager provides transaction correlation, Begin/Continue/End/Abort, tracked invokes, Result/Error/Reject outcomes, shared timeout scanning, bounded queues, cleanup, snapshots, and metrics. Independent C-peer transaction evidence is retained; operator/vendor profile evidence remains.
MAP Stateful client/server SMS workflows cover SRI-SM, MO/MT ForwardSM, ReportSM-DeliveryStatus, and AlertServiceCentre with operation profiles, result/error correlation, typed dispatch, cancellation, and metrics. All five operations have cross-implementation repository-profile evidence; operator/vendor profile evidence remains.
Performance The retained WSL baseline completed 62,000 full-stack operations without protocol loss at about 13.5K sustained/peak TPS. The 20K peak and multi-host operator qualification gates remain open.
Operations Runtime health probes, BCL telemetry, structured events, validated configuration, live/ready/metrics endpoints, container manifests, and recovery/upgrade runbooks are available.
Tooling Byte-level tests, protocol diagnostics, trace comparison, and interoperability evidence are core project principles.

Requirements

  • .NET 10 SDK
  • Git
  • Windows or Linux for development
  • Linux for native SCTP validation and production-oriented transport testing

Build and Test

dotnet build src\Sigtran.NET.sln
dotnet run --project src\Sigtran.NET.Tests\Sigtran.NET.Tests.csproj
dotnet pack src\Sigtran.NET\Sigtran.NET.csproj -c Release

Public API XML comments are required. Missing public documentation is treated as a build-quality issue so that generated packages remain usable by downstream developers.


M3UA Example

using Sigtran.NET.Layers.M3UA;

Span<byte> buffer = stackalloc byte[256];
M3uaAffectedPointCode[] affected =
[
    new(mask: 0, pointCode: 0x00112233)
];

bool built = M3uaMessageBuilder.BuildSignallingCongestion(
    buffer,
    networkAppearance: 7,
    routingContexts: [0x55],
    affectedPointCodes: affected,
    concernedDestination: new M3uaAffectedPointCode(0, 0x0000AAAA),
    congestionLevel: 2,
    infoString: "scon"u8,
    out int written,
    out string? error);

if (!built)
{
    throw new InvalidOperationException(error);
}

M3uaMessage message = new();
if (!message.TryDecode(buffer[..written], out error))
{
    throw new InvalidOperationException(error);
}

if (!M3uaTypedMessageParser.TryParseSignallingCongestion(
        message,
        out M3uaSignallingCongestionMessage? scon,
        out error))
{
    throw new InvalidOperationException(error);
}

Documentation

Start here:

Release and governance:


Contributing

Contributions are welcome.

You can contribute through:

  • Code changes.
  • Protocol review.
  • M3UA validation.
  • SCTP testing on Linux.
  • SCCP, TCAP, and MAP standards alignment.
  • ASN.1 BER validation.
  • Wireshark trace comparison.
  • Interoperability lab results.
  • Documentation and examples.
  • Performance and memory-allocation review.
  • Issue reports and design discussions.

Good first contribution areas include documentation improvements, protocol test vectors, validation reports, issue triage, and small focused M3UA test cases.

Please open an issue or pull request if you want to help. Telecom protocol expertise, .NET infrastructure experience, and real-world signaling validation are especially valuable.


Production-Readiness Policy

SIGTRAN.NET is being developed with a conservative production-readiness model.

Stable production support requires:

  • Retained Linux SCTP verification evidence.
  • External SIGTRAN peer interoperability evidence.
  • Independent M2PA peer evidence.
  • Stateful SCCP, TCAP, and MAP SMS service validation.
  • Operator/vendor-profile end-to-end protocol trace validation.
  • Operator-sized capacity and resilience evidence.
  • Trusted package signing and provenance.
  • Stable package publication evidence.
  • Stable API lifecycle validation.
  • A machine-evaluated GO stable release decision.
  • Security, release, compliance, and operations review.

The Linux SCTP, external M3UA, repository-profile full-stack traffic, and controlled performance execution gates are complete. Until the remaining gates are complete, the package should be treated as release-candidate infrastructure for controlled integrations.


License

SIGTRAN.NET is licensed under the Apache License 2.0.

About

SIGTRAN.NET is the first open-source .NET 10 SDK for building SS7-over-IP applications. The project is being shaped from an early proof of concept into a standards-oriented, open-source SDK with stable public APIs, documented protocol behavior, and byte-level tests.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages