JamaaSMPP
Jamaa SMPP Client is a .NET implementation of the SMPP protocol that focuses on providing an easy-to-use and robust SMPP client library for .NET developers. This project is intended to be used by developers who want to integrate SMS functionalities in their applications as well as students who are learning the SMPP protocol.
Install / Use
/learn @AdhamAwadhi/JamaaSMPPREADME
JamaaSMPP
Jamaa SMPP Client is a .NET implementation of the SMPP protocol that focuses on providing an easy-to-use and robust SMPP client library for .NET developers. This project is intended to be used by developers who want to integrate SMS functionalities in their applications as well as students who are learning the SMPP protocol.
Based On
This is created based on https://jamaasmpp.codeplex.com/
Wiki
NuGet 
Install-Package JamaaSMPP
SMPP Server Simulator
- Downlad from http://www.seleniumsoftware.com/downloads.html
- Read User Guide http://www.seleniumsoftware.com/user-guide.htm
What's new?
v2.0.0
- BREAKING: remove NET40 compatibility
- Added: SegmentIdGenerator
- Fixed:
ReceiptedMessageIdsubmitting - Improved: ResponseHandlers
- Fixed: some Threading issues
- Fixed:
SubmitSmMultiPartHasResponse
v1.11.0
- Added MultiPartTextMessage
v1.10.0
- Improve SmppClient to respect AddressNPI and AddressTON for Source Addresses
- (fix) Fallback Source to Config Value
- Bump .Net Versions
v1.9.1
- Modified: allow some methods to be overridden in
SmppClient
v1.9.0
-
Fixed:
CommandType.AlertNotificationto be0x00000103 -
Fixed: .Net Core Issues #37
v1.8.2
-
Moved to dotnet core
-
Added:
ShortMessage.MessageState -
Added:
ShortMessage.NetworkErrorCode -
Added:
ShortMessage.SubmitUserMessageReferencepropertyIn case you want to use
UserMessageReferencein your app ONLY, and not submit to SMSC. LikeSmppClient.MessageSentevent.
v1.7.5
-
Added
SmppConnectionProperties.UseSeparateConnectionsWhen
null: Depends onSmppConnectionProperties.InterfaceVersion, ifInterfaceVersion.v33will betrue, otherwisefalse.Whentrue: Use two sessions for Receiver (CommandType.BindReceiver) and Transmitter (CommandType.BindTransmitter) Whenfalse: Use one session for Receiver and Transmitter in modeCommandType.BindTransceiver
v1.7.4
-
Support sending concatenated messages
-
~~Fix Unicode Languages issue #2. Allow user to set UCS2 encoding in SMPPEncodingUtil~~ SEE here
-
Add
TextMessagevirtual methodCreateSubmitSm()to allow user to change some properties (like Source address ton)class MyTextMessage : TextMessage { protected override SubmitSm CreateSubmitSm() { var sm = base.CreateSubmitSm(); sm.SourceAddress.Ton = JamaaTech.Smpp.Net.Lib.TypeOfNumber.Aphanumeric; return sm; } } -
Add Message
UserMessageReference, you can now use it onMessageSentevent// set user message reference msg.UserMessageReference = Guid.NewGuid().ToString();on MessageSent event
Console.WriteLine("Message Id {0} Sent to: {1}", e.ShortMessage.UserMessageReference, e.ShortMessage.DestinationAddress); -
Use custom encoding for each
SmppClientinstance
Default encdoing
System.Text.Encoding.BigEndianUnicode
client.SmppEncodingService = new SmppEncodingService(System.Text.Encoding.UTF8);
-
Fix
SMSCDefaultEncodingexception issue #4. There are 2 options here:- GSM Encoding (Default) : Use GSM 03.38 alphabet Wikipedia. (Code from https://github.com/mediaburst/.NET-GSM-Encoding/blob/master/GSMEncoding.cs)
- JamaaSMPP version : Simple version of GSM 03.38 without Greeks alphapet
You can choose between them by setting
UseGsmEncodingproperty totrue(defualt) to use GSM Encoding or tifalseto use the other.JamaaTech.Smpp.Net.Lib.Util.SMSCDefaultEncoding.UseGsmEncoding = true; // or false -
Use Common.Logging for logging purpose
-
PDU TLV collection methods
string GetOptionalParamString(Tag tag)byte[] GetOptionalParamBytes(Tag tag)byte? GetOptionalParamByte(Tag tag)T? GetOptionalParamByte<T>(Tag tag) where T : structvoid SetOptionalParamString(Tag tag, string val, bool nullTerminated = false)void SetOptionalParamByte<T>(Tag tag, T? val) where T : structvoid SetOptionalParamBytes(Tag tag, byte[] val)void RemoveOptionalParameter(Tag tag)
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
400Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
