Inetlab.SMPP 2.9.33

There is a newer version of this package available.
See the version list below for details.

Requires NuGet 2.12 or higher.

dotnet add package Inetlab.SMPP --version 2.9.33                
NuGet\Install-Package Inetlab.SMPP -Version 2.9.33                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Inetlab.SMPP" Version="2.9.33" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Inetlab.SMPP --version 2.9.33                
#r "nuget: Inetlab.SMPP, 2.9.33"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Inetlab.SMPP as a Cake Addin
#addin nuget:?package=Inetlab.SMPP&version=2.9.33

// Install Inetlab.SMPP as a Cake Tool
#tool nuget:?package=Inetlab.SMPP&version=2.9.33                

Inetlab.SMPP Client/Server Library

SMPP protocol Client/Server library

Features

SMPP Client

  • Sending long Text messages as concatenated parts
  • Sending Binary messages
  • Sending Flash SMS
  • Sending WAP Push
  • Receiving SMS messages from mobile phones
  • Intuitive SMS building with fluent interface
  • Connection recovery with SMPP server
  • Working with any language including Arabic, Chinese, Hebrew, Russian, Greek and Unicode messages support
  • Reliable bulk SMS-sending more than 1000 messages per second rate
  • SSL/TLS support
  • Diagnostic Metrics

SMPP Server

  • Multiple concurrent client connections support
  • Receiving SMS messages from connected clients
  • Sending Concatenated Text messages
  • Sending Delivery receipts
  • Message status query support
  • Message rate limit and throttling
  • Ability to forward received messages to next SMPP server
  • SSL/TLS support
  • Diagnostic Metrics
  • Tests availability of client with enquiry_link command
  • Proxy Protocol for load-balancing support

TRIAL VERSION.

The Trial version is intended solely for private evaluation purposes. Developers can test the functionality of Inetlab.SMPP without incurring any licensing costs. The Software should not be deployed in any internet or intranet project until a valid license has been purchased.

The message text will be marked with "[TRIAL]" to indicate its trial status. This version does not have any time limitations.

For production use, it is necessary to acquire a license from our official website.

Purchase

Documentation

Support Forum

Stack Overflow

Contact Us

Sample

You can access a variety of samples in the GIT repository located at https://gitlab.com/inetlab/smpp-samples/

Send SMS with SmppClient class

public static async Task SendHelloWorld()
{
    LogManager.SetLoggerFactory(new ConsoleLogFactory(LogLevel.Verbose));

    using (SmppClient client = new SmppClient())
    {
        try
        {
            if (await client.ConnectAsync(new DnsEndPoint("smpp.server", 7777, AddressFamily.InterNetwork)))
            {
                BindResp bindResp = await client.BindAsync("username", "password");

                if (bindResp.Header.Status == CommandStatus.ESME_ROK)
                {
                    var submitResp = await client.SubmitAsync(
                        SMS.ForSubmit()
                            .From("short code")
                            .To("436641234567")
                            .Coding(DataCodings.UCS2)
                            .Text("Hello World!"));

                    if (submitResp.All(x => x.Header.Status == CommandStatus.ESME_ROK))
                    {
                        Console.WriteLine("The message has been sent.");
                    }
                }

                await client.DisconnectAsync();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("ERROR: Failed to send the message", ex);
        }
    }
}

Receive multipart SMS with SmppClient

private readonly MessageComposer _composer = new MessageComposer();

private void client_evDeliverSm(object sender, DeliverSm data)
{
    try
    {
        //Check if we received Delivery Receipt
        if (data.MessageType == MessageTypes.SMSCDeliveryReceipt)
        {
            //Get MessageId of delivered message
            string messageId = data.Receipt.MessageId;
            MessageState deliveryStatus = data.Receipt.State;
        }
        else
        {
            // Receive incoming message and try to concatenate all parts
            if (data.Concatenation != null)
            {
                _composer.AddMessage(data);

                _log.Info(
                    "DeliverSm part received : Sequence: {0} SourceAddr: {1} Concatenation ( {2} ) Coding: {3} Text: {4}",
                    data.Header.Sequence, data.SourceAddress, data.Concatenation, data.DataCoding,
                    _client.EncodingMapper.GetMessageText(data));


                if (_composer.IsLastSegment(data))
                {
                    string fullMessage = _composer.GetFullMessage(data);
                    _log.Info("Full message: " + fullMessage);
                }
            }
            else
            {
                _log.Info("DeliverSm received : Sequence: {0} SourceAddr : {1} Coding : {2} MessageText : {3}",
                    data.Header.Sequence, data.SourceAddress, data.DataCoding,
                    _client.EncodingMapper.GetMessageText(data));
            }
        }
    }
    catch (Exception ex)
    {
        data.Response.Header.Status = CommandStatus.ESME_RX_T_APPN;
        _log.Error("Failed to process DeliverSm", ex);
    }
}

HOW TO INSTALL LICENSE FILE

You can generate license file in your Inetlab Account at https://account.inetlab.com

The license file is named as "Inetlab.SMPP.license". Add this file to the project where you have a reference on Inetlab.SMPP.dll. Change "Build Action" of the license file to "Embedded Resource".

Set license before using Inetlab.SMPP classes in your code:

Inetlab.SMPP.LicenseManager.SetLicense(this.GetType().Assembly.GetManifestResourceStream(this.GetType(), "Inetlab.SMPP.license" ));

read more

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.6.1

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.
  • net6.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Inetlab.SMPP:

Package Downloads
Codecamp.SMPP

This library is for make developer easy to use SMPP protocol

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.9.35 757 10/12/2024
2.9.33 858 9/4/2024
2.9.32 8,077 1/26/2024
2.9.31 218 1/17/2024
2.9.30 9,393 10/27/2023
2.9.29 1,860 9/12/2023
2.9.28 4,286 8/2/2023
2.9.27 9,535 4/3/2023
2.9.26 10,616 11/25/2022
2.9.25 488 11/13/2022
2.9.24 2,710 10/3/2022
2.9.23 617 9/28/2022
2.9.22 4,114 8/29/2022
2.9.21 16,771 8/17/2022
2.9.20 901 8/9/2022
2.9.19 9,129 6/6/2022
2.9.18 2,660 5/19/2022
2.9.17 6,178 4/13/2022
2.9.16 4,466 1/20/2022
2.9.15 507 1/12/2022
2.9.14 6,674 8/31/2021
2.9.13 5,689 7/30/2021
2.9.12 4,366 7/1/2021
2.9.11 1,758 6/24/2021
2.9.10 2,841 6/12/2021
2.9.9 3,151 5/13/2021
2.9.8 4,593 4/28/2021
2.9.7 2,484 4/12/2021
2.9.6 482 4/9/2021
2.9.5 716 3/18/2021
2.9.4 3,344 2/6/2021
2.9.3 474 2/4/2021
2.9.2 756 2/1/2021
2.9.1 560 1/29/2021
2.9.0 569 1/25/2021
2.8.6 6,113 11/19/2020
2.8.5 632 11/12/2020
2.8.4 581 11/11/2020
2.8.3 1,539 11/3/2020
2.8.2 3,271 9/1/2020
2.8.1 5,909 6/16/2020
2.8.0 7,069 4/2/2020
2.7.1 7,495 1/23/2020
2.7.0 6,280 12/11/2019
2.6.13 23,802 8/14/2019
2.6.12 3,207 7/26/2019
2.6.10 8,974 4/19/2019
2.6.9 759 4/15/2019
2.6.7 1,133 3/27/2019
2.6.5 704 3/18/2019
2.6.4 728 3/15/2019
2.6.3 6,629 3/4/2019
2.6.2 3,242 2/7/2019
2.6.1 822 2/4/2019
2.6.0 1,123 1/14/2019
2.4.1 6,669 6/27/2018
1.3.1 5,109 7/4/2018
1.3.0 1,144 6/19/2018
1.2.11 6,594 1/2/2018
1.2.8 1,456 11/6/2017
1.2.6 1,168 10/4/2017
1.2.5 3,054 8/12/2017
1.2.1 1,691 5/22/2017
1.1.29.1 2,857 3/14/2017
1.1.29 1,378 1/27/2017
1.1.28 1,178 1/23/2017
1.1.27.6 1,290 1/10/2017
1.1.27.5 1,107 12/30/2016
1.1.25 4,707 10/24/2016
1.1.23.2 1,188 10/6/2016
1.1.23.1 1,124 9/29/2016
1.1.23 1,101 9/28/2016
1.1.22.7 9,367 8/2/2016
1.1.22.6 3,030 6/29/2016
1.1.22.4 1,116 6/24/2016
1.1.22.3 1,151 6/21/2016
1.1.22.2 1,612 6/8/2016
1.1.22 1,362 5/13/2016
1.1.20 3,855 4/27/2015
1.1.16.1 1,561 10/13/2014

Fixed
- The DisconnectAsync method in the SmppClient is encountering a hanging issue when used with SSL connections in the .NET Framework.