Inetlab.SMPP
2.9.35
Requires NuGet 2.12 or higher.
dotnet add package Inetlab.SMPP --version 2.9.35
NuGet\Install-Package Inetlab.SMPP -Version 2.9.35
<PackageReference Include="Inetlab.SMPP" Version="2.9.35" />
paket add Inetlab.SMPP --version 2.9.35
#r "nuget: Inetlab.SMPP, 2.9.35"
// Install Inetlab.SMPP as a Cake Addin #addin nuget:?package=Inetlab.SMPP&version=2.9.35 // Install Inetlab.SMPP as a Cake Tool #tool nuget:?package=Inetlab.SMPP&version=2.9.35
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.
Links
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" ));
Product | Versions 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. |
-
.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 | 806 | 10/12/2024 |
2.9.33 | 868 | 9/4/2024 |
2.9.32 | 8,235 | 1/26/2024 |
2.9.31 | 232 | 1/17/2024 |
2.9.30 | 9,437 | 10/27/2023 |
2.9.29 | 1,860 | 9/12/2023 |
2.9.28 | 4,300 | 8/2/2023 |
2.9.27 | 9,536 | 4/3/2023 |
2.9.26 | 10,622 | 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,120 | 8/29/2022 |
2.9.21 | 16,775 | 8/17/2022 |
2.9.20 | 901 | 8/9/2022 |
2.9.19 | 9,133 | 6/6/2022 |
2.9.18 | 2,662 | 5/19/2022 |
2.9.17 | 6,194 | 4/13/2022 |
2.9.16 | 4,470 | 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,374 | 7/1/2021 |
2.9.11 | 1,760 | 6/24/2021 |
2.9.10 | 2,847 | 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,503 | 1/23/2020 |
2.7.0 | 6,280 | 12/11/2019 |
2.6.13 | 23,842 | 8/14/2019 |
2.6.12 | 3,209 | 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,647 | 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,125 | 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,693 | 5/22/2017 |
1.1.29.1 | 2,859 | 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,193 | 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,856 | 4/27/2015 |
1.1.16.1 | 1,561 | 10/13/2014 |
Fixed
- issue with the new SessionInitTimeout where it was not functioning correctly.