Table of Contents

Class SmppClient

Namespace
Inetlab.SMPP
Assembly
Inetlab.SMPP.dll

SMPP protocol client class for connection with an SMSC over a TCP/IP and for sending or receiving short messages to and from the SMSC.

public class SmppClient : SmppClientBase, IDisposable
Inheritance
SmppClient
Implements
Inherited Members

Constructors

SmppClient()

public SmppClient()

Fields

ForceDisconnect

protected bool ForceDisconnect

Field Value

bool

Properties

ClientCertificates

Defines collection of Client Certificates

public X509CertificateCollection ClientCertificates { get; set; }

Property Value

X509CertificateCollection

ConnectionRecovery

Indicates whether the connection should be recovered.

public bool ConnectionRecovery { get; set; }

Property Value

bool

True if connection should be recovered, false if not.

ConnectionRecoveryDelay

Gets or sets the delay before the connection will be recovered. Default is 2 minutes.

public TimeSpan ConnectionRecoveryDelay { get; set; }

Property Value

TimeSpan

The connection recovery delay.

EnabledSslProtocols

Defines enabled versions of SSL Protocols for SMPP client.

public SslProtocols EnabledSslProtocols { get; set; }

Property Value

SslProtocols

Methods

Bind(Bind)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<BindResp> Bind(Bind pdu)

Parameters

pdu Bind

Returns

Task<BindResp>

Bind(string, string, ConnectionMode)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<BindResp> Bind(string systemId, string password, ConnectionMode mode = ConnectionMode.Transceiver)

Parameters

systemId string
password string
mode ConnectionMode

Returns

Task<BindResp>

BindAsync(Bind)

Sends Bind PDU to SMPP Server. Performs authentication on the server.

public Task<BindResp> BindAsync(Bind pdu)

Parameters

pdu Bind

The PDU.

Returns

Task<BindResp>

An asynchronous result that yields a BindResp.

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

BindAsync(string, string, ConnectionMode)

Sends Bind PDU to SMPP Server. Performs authorization on the server.

public Task<BindResp> BindAsync(string systemId, string password, ConnectionMode mode = ConnectionMode.Transceiver)

Parameters

systemId string

Identifier for the system.

password string

The password.

mode ConnectionMode

The connection mode.

Returns

Task<BindResp>

An asynchronous result that yields a BindResp.

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

Cancel(SmeAddress)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<CancelSmResp> Cancel(SmeAddress sourceAddress)

Parameters

sourceAddress SmeAddress

Returns

Task<CancelSmResp>

Cancel(CancelSm)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<CancelSmResp> Cancel(CancelSm cancelSm)

Parameters

cancelSm CancelSm

Returns

Task<CancelSmResp>

Cancel(string, string)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<CancelSmResp> Cancel(string messageId, string serviceType = null)

Parameters

messageId string
serviceType string

Returns

Task<CancelSmResp>

CancelAsync(SmeAddress)

Cancels previously submitted short message that is still pending delivery.

public Task<CancelSmResp> CancelAsync(SmeAddress sourceAddress)

Parameters

sourceAddress SmeAddress

Returns

Task<CancelSmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

CancelAsync(CancelSm)

Cancels previously submitted short message that is still pending delivery.

public Task<CancelSmResp> CancelAsync(CancelSm cancelSm)

Parameters

cancelSm CancelSm

Returns

Task<CancelSmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

CancelAsync(string, string)

Cancels previously submitted short message that is still pending delivery.

public Task<CancelSmResp> CancelAsync(string messageId, string serviceType = null)

Parameters

messageId string
serviceType string

Returns

Task<CancelSmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

Connect(EndPoint)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<bool> Connect(EndPoint endPoint)

Parameters

endPoint EndPoint

Returns

Task<bool>

Connect(string, int)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<bool> Connect(string host, int port)

Parameters

host string
port int

Returns

Task<bool>

ConnectAsync(EndPoint)

Connect to SMSC using EndPoint instance

public Task<bool> ConnectAsync(EndPoint endPoint)

Parameters

endPoint EndPoint

EndPoint instance. Can be IPEndPoint or DnsEndPoint

Returns

Task<bool>

Exceptions

ObjectDisposedException

Thrown when the instance is disposed.

ConnectAsync(string, int)

Connect to SMPP server using hostname and port number.

public Task<bool> ConnectAsync(string host, int port)

Parameters

host string

SMPP server hostname

port int

SMPP port

Returns

Task<bool>

Exceptions

ObjectDisposedException

Thrown when the instance is disposed.

DisconnectAsync()

Disconnects client from remote endpoint

public override Task DisconnectAsync()

Returns

Task

Dispose(bool)

Releases resources used by the Inetlab.SMPP.SmppClient.

protected override void Dispose(bool disposing)

Parameters

disposing bool

True to release both managed and unmanaged resources; false to release only unmanaged resources.

Query(QuerySm)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<QuerySmResp> Query(QuerySm pdu)

Parameters

pdu QuerySm

Returns

Task<QuerySmResp>

Query(string, SmeAddress)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<QuerySmResp> Query(string messageId, SmeAddress sourceAddress = null)

Parameters

messageId string
sourceAddress SmeAddress

Returns

Task<QuerySmResp>

QueryAsync(QuerySm)

Query the status of a previously submitted short message.

public Task<QuerySmResp> QueryAsync(QuerySm pdu)

Parameters

pdu QuerySm

Returns

Task<QuerySmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

QueryAsync(string, SmeAddress)

Query the status of a previously submitted short message.

public Task<QuerySmResp> QueryAsync(string messageId, SmeAddress sourceAddress = null)

Parameters

messageId string
sourceAddress SmeAddress

Returns

Task<QuerySmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

Replace(ReplaceSm)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<ReplaceSmResp> Replace(ReplaceSm pdu)

Parameters

pdu ReplaceSm

Returns

Task<ReplaceSmResp>

ReplaceAsync(ReplaceSm)

Replaces a previously submitted short message that is still pending delivery.

public Task<ReplaceSmResp> ReplaceAsync(ReplaceSm pdu)

Parameters

pdu ReplaceSm

Returns

Task<ReplaceSmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

Submit(IBuilder<SubmitMulti>)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<SubmitMultiResp[]> Submit(IBuilder<SubmitMulti> builder)

Parameters

builder IBuilder<SubmitMulti>

Returns

Task<SubmitMultiResp[]>

Submit(IBuilder<SubmitSm>)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<SubmitSmResp[]> Submit(IBuilder<SubmitSm> builder)

Parameters

builder IBuilder<SubmitSm>

Returns

Task<SubmitSmResp[]>

Submit(SubmitMulti)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<SubmitMultiResp> Submit(SubmitMulti pdu)

Parameters

pdu SubmitMulti

Returns

Task<SubmitMultiResp>

Submit(params SubmitMulti[])

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<SubmitMultiResp[]> Submit(params SubmitMulti[] pduList)

Parameters

pduList SubmitMulti[]

Returns

Task<SubmitMultiResp[]>

Submit(SubmitSm)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<SubmitSmResp> Submit(SubmitSm submitSm)

Parameters

submitSm SubmitSm

Returns

Task<SubmitSmResp>

Submit(params SubmitSm[])

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<SubmitSmResp[]> Submit(params SubmitSm[] pduList)

Parameters

pduList SubmitSm[]

Returns

Task<SubmitSmResp[]>

Submit(IEnumerable<SubmitMulti>)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<IEnumerable<SubmitMultiResp>> Submit(IEnumerable<SubmitMulti> pduList)

Parameters

pduList IEnumerable<SubmitMulti>

Returns

Task<IEnumerable<SubmitMultiResp>>

Submit(IEnumerable<SubmitSm>)

[Obsolete("Use the same method with Async suffix. This method name will be used in version 3.0 for synchronous processing.")]
public Task<IEnumerable<SubmitSmResp>> Submit(IEnumerable<SubmitSm> pduList)

Parameters

pduList IEnumerable<SubmitSm>

Returns

Task<IEnumerable<SubmitSmResp>>

SubmitAsync(IBuilder<SubmitMulti>)

Submits an array of SubmitMulti messages from SMS builder.

public Task<SubmitMultiResp[]> SubmitAsync(IBuilder<SubmitMulti> builder)

Parameters

builder IBuilder<SubmitMulti>

Returns

Task<SubmitMultiResp[]>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

SubmitAsync(IBuilder<SubmitSm>)

Submits an array of SubmitSm messages from SMS builder.

public Task<SubmitSmResp[]> SubmitAsync(IBuilder<SubmitSm> builder)

Parameters

builder IBuilder<SubmitSm>

Returns

Task<SubmitSmResp[]>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

SubmitAsync(SubmitMulti)

Submits a SubmitMulti message to the SMSC

public Task<SubmitMultiResp> SubmitAsync(SubmitMulti pdu)

Parameters

pdu SubmitMulti

Returns

Task<SubmitMultiResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

SubmitAsync(params SubmitMulti[])

Submits an array of SubmitMulti messages to the SMSC.

public Task<SubmitMultiResp[]> SubmitAsync(params SubmitMulti[] pduList)

Parameters

pduList SubmitMulti[]

Returns

Task<SubmitMultiResp[]>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

SubmitAsync(SubmitSm)

Submits a SubmitSm message to the SMSC

public Task<SubmitSmResp> SubmitAsync(SubmitSm submitSm)

Parameters

submitSm SubmitSm

Returns

Task<SubmitSmResp>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

ArgumentNullException

Thrown when request instance is null.

SubmitAsync(params SubmitSm[])

Submits an array of SubmitSm messages to the SMSC.

public Task<SubmitSmResp[]> SubmitAsync(params SubmitSm[] pduList)

Parameters

pduList SubmitSm[]

Returns

Task<SubmitSmResp[]>

SubmitAsync(IEnumerable<SubmitMulti>)

Submits an array of SubmitMulti messages to the SMSC.

public Task<IEnumerable<SubmitMultiResp>> SubmitAsync(IEnumerable<SubmitMulti> pduList)

Parameters

pduList IEnumerable<SubmitMulti>

Returns

Task<IEnumerable<SubmitMultiResp>>

Exceptions

InvalidOperationException

Thrown when PDU serialization is failed.

SubmitAsync(IEnumerable<SubmitSm>)

Submits a collection of SubmitSm messages to the SMSC.

public Task<IEnumerable<SubmitSmResp>> SubmitAsync(IEnumerable<SubmitSm> pduList)

Parameters

pduList IEnumerable<SubmitSm>

Returns

Task<IEnumerable<SubmitSmResp>>

Events

evAlertNotification

Occurs when received AlertNotification PDU

public event AlertNotificationEventHandler evAlertNotification

Event Type

AlertNotificationEventHandler

evDeliverSm

Occurs when receiving DeliverSm PDU

public event DeliverSmEventHandler evDeliverSm

Event Type

DeliverSmEventHandler

evRecoverySucceeded

Occurs when connection recovery is succeeded.

public event BindRespEventHandler evRecoverySucceeded

Event Type

BindRespEventHandler

evServerCertificateValidation

Occurs when validating server certificate

public event EventHandler<CertificateValidationEventArgs> evServerCertificateValidation

Event Type

EventHandler<CertificateValidationEventArgs>