Arad.SMPP by Ammar Heidari

<PackageReference Include="Arad.SMPP" Version="1.0.9" />

 SmppClientBase

public abstract class SmppClientBase : IDisposable
Base class that provides common members for AradSmppClient and SmppServerClient
public TimeSpan ConnectionTimeout { get; set; }

Gets or sets the time to wait while trying to establish a connection before terminating the attempt.

public EncodingMapper EncodingMapper { get; set; }

Gets or sets encoding mapper that manage relation between SMPP Data Coding and .NET Encoding

public TimeSpan EnquireLinkInterval { get; set; }

Specifies a period of time when SMPP session status will be checked with EnquireLink command.

public SmeAddress EsmeAddress { get; set; }

The ESME address range. In Address property can be specified a single SME address or a range of SME addresses using UNIX Regular Expression notation.

public byte InterfaceVersion { get; set; }

Indicates the version of the SMPP protocol supported by the ESME.

public EndPoint LocalEndPoint { get; protected set; }

Gets or sets the local end point.

public ILog Logger { get; set; }

public ISmppClientMetrics Metrics { get; }

Gets metrics for sent and received PDUs.

public string Name { get; set; }

Name of the client. Used for logging.

public int? ReceiveBufferSize { get; set; }

Gets or sets a value that specifies the size of the receive buffer of the Socket.

public int ReceivedRequestQueueLimit { get; set; }

Specifies a maximum number of SMPP requests in receive queue. Default is 0 which means not limited.

public LimitRate ReceiveSpeedLimit { get; set; }

Specifies a number of messages per second that can be received from remote side. Default is NoLimit, that means unlimited number of messages.

public TaskScheduler ReceiveTaskScheduler { get; set; }

Gets or sets the Task scheduler that handles received messages from remote side. By default SmppClientBase class starts 3 worker threads using WorkersTaskScheduler> class.

public EndPoint RemoteEndPoint { get; protected set; }

Gets the remote endpoint.

public TimeSpan ResponseTimeout { get; set; }

Gets or sets the time to wait for a Response on submitted SMPP request.

public int? SendBufferSize { get; set; }

Gets or sets a value that specifies the size of the send buffer of the Socket.

public int SendQueueLimit { get; set; }

Limits the number of SMPP requests waiting for response from remote side. Default is 0 which means not limited.

public LimitRate SendSpeedLimit { get; set; }

Specifies a number of messages per time unit that client sends to the server . Default is NoLimit, that means unlimited number of messages.

Gets or sets sequence number generator for correlation purposes in SMPP protocol.

public ConnectionStatus Status { get; protected set; }

Client connection status

public string SystemID { get; protected set; }

Gets ID of the client

public string SystemType { get; set; }

Identifies the type requesting to bind with the SMSC.

public object Tag { get; set; }

Gets or sets an object that contains data to associate with the client.

Occurs when receiving DataSm PDU

Occurs when client disconnects

Occurs when received EnquireLink PDU

Occurs before processing PDU received from remote endpoint

Occurs before sending PDU to remote endpoint

Occurs when Unbind packet received from SMSC

protected SmppClientBase(string name)

public virtual Task Disconnect()

public virtual Task DisconnectAsync()

Disconnects client from remote endpoint

public void Dispose()

protected virtual void Dispose(bool disposing)

Check of the communication path between an ESME and an SMSC.

Check of the communication path between an ESME and an SMSC.

protected void OnPduReceiving(SmppPDU pdu)

protected void OnPduSending(SmppPDU pdu)

public virtual Task SendResponseAsync(SmppResponse response, CancellationToken cancellationToken = default)

Sends a response on request PDU.

public Task<DataSmResp[]> SubmitData(DataSm[] pduList)

Sends DATA_SM message

public Task<DataSmResp[]> SubmitDataAsync(DataSm[] pduList)

Sends several DATA_SM message

Creates and sends several DATA_SM messages

Unregister client from SMSC