Send-SMS Cmdlet

Parameters   Output Objects   Config Settings  

The Send-SMS component is used to send SMS messages to cellular phones.

Syntax

Send-SMS [parameters]

Remarks

This cmdlet implements a lightweight message transmission interface using the Short Message Peer-to-Peer Protocol (SMPP), most known for its use in cellular text messaging. This cmdlet will bind as a transmitter, and thus cannot itself receive incoming SMS messages. However, it can send single and multi-recipient messages.

To send a SMS message with this cmdlet, set Server and Port to the server you wish to use, and supply a Credential to authenticate to the server with. Set Message with the text of the message you wish to send, and Recipient with the phone number(s) of the cellular phone(s) you're sending the message to.

The cmdlets support pipeline input for some of their parameters. Prebuilding an object and piping it to the cmdlet is very useful, but should be used with caution to prevent security conflicts. Steps have been taken to decrease the risk of a possibly accidental pipe to the cmdlet, for instance, the Credential parameter cannot be piped to the cmdlet and must be specified manually.

send-sms -server smpp.clickatell.com -port 2345 -cred $mycred -systemtype 123456 -recipient 15555555555 -message "Hello from NetCmdlets"

Connection Handling

This cmdlet supports persistent connections through the Connection parameter. To establish a new SMS connection, use the Connect-SMS cmdlet. To close the connection, use the Disconnect-SMS cmdlet.

Parameter List


The following is the full list of the parameters of the cmdlet with short descriptions. Click on the links for further details.

ConnectionAn already established connection.
LogFileThe location of a file to which debug information is written.
ConfigSpecifies one or more configuration settings.
CredentialThe PSCredential object to use for user/password authentication.
FirewallHostName or IP address of firewall.
FirewallPasswordA password if authentication is to be used when connecting through the firewall.
FirewallPortThe port of the firewall to which to connect.
FirewallTypeDetermines the type of firewall to connect through.
FirewallUserA user name if authentication is to be used connecting through a firewall.
ForceForces the component to accept the default behavior instead of querying the user.
LocalIPThe IP address of the local interface to use.
LogFileThe location of a file to which debug information is written.
MessageThe full text of the message to send (without headers).
PasswordThe password to use for authentication.
PortThe TCP port in the remote host to which to connect.
RecipientThe recipient of the instant message.
SenderAddressThe address of the ESME.
ServerThe address of the Server.
SSLDetermines how the component starts SSL negotiation.
SSLAcceptThe encoded public key of the certificate which is to be trusted explicitly.
SystemTypeThis is a string representing the type of system during a connection.
TimeoutThe maximum time allowed for the operation.
UseHexSpecifies if Message is hex encoded.
UserThe username to use for authentication.

Output Objects


The following is the full list of the output objects returned by the cmdlet with short descriptions. Click on the links for further details.

SMSDeliveryObject which indicates whether the message was received.

Config Settings


The following is a list of config settings for the cmdlet with short descriptions. Click on the links for further details.

AddressRangeSpecifies the addr_range parameter when binding.
BinaryDataCodingWhether or not to binary encode the message when DataCoding is set.
BindAsReceiverCauses the component to bind as a receiver.
BindAsTransmitterCauses the component to bind as a transmitter.
CustomTLVOptional TLV parameters added after the mandatory parameters and before the payload.
DataCodingThe data encoding mechanism to be used for the current message.
DecodeHexStringsWill decode an ascii hex-representation of binary data prior to transmission.
DestinationNPIThe Number Planning Indicator for the destination ESME.
DestinationTONThe Type of Number for the destination ESME.
DoSplitLargeMessagesSplits long messages and returns the UDH and Message Parts.
HexStringA hex-encoded binary string to be sent to the current recipient.
IncomingDestinationAddressReturns the dest_addr field inside the received message.
IntermediateNotificationCauses the component to request intermediate notification.
MaxCIMDSMSLengthIndicates the maximum SMS message length for the CIMD protocol.
MaxSMSLengthIndicates the maximum SMS message length.
MCReceiptThe Type of MC Delivery Receipt requested.
MessageInReceiptedMessageIdThe receipted_message_id field of an incoming deliver_sm PDU.
MessageModeThe Type of Messaging Mode requested.
MessageTypeThe Type of Message.
PDUFormatThe format of the PDU.
ProtocolIdThe protocol identifier.
SMEAcknowledgementThe Type of SME originated acknowledgement requested.
SourceNPIThe Number Planning Indicator for the ESME.
SourceTONThe Type of Number for the ESME.
SplitLargeMessagesDetermines whether large messages are split into multiple parts.
SplitMessageMethodDetermines how large messages are split into multiple parts.
StatusReportRequestDefines in what cases a status report is created by the server.
SubAddrDefines a unique index for application instance.
SynchronousSendCommandControls whether SendCommand behaves synchronously or asynchronously.
SynchronousSendMessageControls whether SendMessage behaves synchronously or asynchronously.
UseGSM7BitEncodingWhether or not to use GSM 7-bit encoding.
UseGSM7bitEncodingCompressionWhether to compress GSM 7-bit encoded characters.
WaitForBannerSpecifies the CIMD2 banner the component will wait for when connecting.
ConnectionTimeoutSets a separate timeout value for establishing a connection.
FirewallAutoDetectTells the component whether or not to automatically detect and use firewall system settings, if available.
FirewallHostName or IP address of firewall (optional).
FirewallPasswordPassword to be used if authentication is to be used when connecting through the firewall.
FirewallPortThe TCP port for the FirewallHost;.
FirewallTypeDetermines the type of firewall to connect through.
FirewallUserA user name if authentication is to be used connecting through a firewall.
KeepAliveIntervalThe retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.
KeepAliveTimeThe inactivity time in milliseconds before a TCP keep-alive packet is sent.
LingerWhen set to True, connections are terminated gracefully.
LingerTimeTime in seconds to have the connection linger.
LocalHostThe name of the local host through which connections are initiated or accepted.
LocalPortThe port in the local host where the component binds.
MaxLineLengthThe maximum amount of data to accumulate when no EOL is found.
MaxTransferRateThe transfer rate limit in bytes per second.
ProxyExceptionsListA semicolon separated list of hosts and IPs to bypass when using a proxy.
TCPKeepAliveDetermines whether or not the keep alive socket option is enabled.
TcpNoDelayWhether or not to delay when sending packets.
UseIPv6Whether to use IPv6.
AbsoluteTimeoutDetermines whether timeouts are inactivity timeouts or absolute timeouts.
FirewallDataUsed to send extra data to the firewall.
InBufferSizeThe size in bytes of the incoming queue of the socket.
OutBufferSizeThe size in bytes of the outgoing queue of the socket.
BuildInfoInformation about the product's build.
CodePageThe system code page used for Unicode to Multibyte translations.
LicenseInfoInformation about the current license.
MaskSensitiveWhether sensitive data is masked in log messages.
UseInternalSecurityAPITells the component whether or not to use the system security libraries or an internal implementation.

LogFile Parameter (Send-SMS Cmdlet)

The location of a file to which debug information is written.

Syntax

Send-SMS -LogFile string

Remarks

When specified, the cmdlet will log debug information to the file. If the file exists, the information will be appended.

Default Value

null

Connection Parameter (Send-SMS Cmdlet)

An existing SMS connection.

Syntax

Send-SMS -Connection SMSConnection

Remarks

Represents an existing, persistent SMS connection to be used. After this cmdlet executes, the connection will remain opened to be used in an another call. New connections can be established using the Connect-SMS cmdlet and closed using the Disconnect-SMS cmdlet.

Default Value

null

Config Property (Send-SMS Cmdlet)

Specifies one or more configuration settings.

Syntax

Send-SMS -Config string[]

Remarks

The Config parameter takes one or more name-value pairs that represent the name of the configuration setting and value, i.e.: -config "Name=Value"

Default Value

null

Credential Property (Send-SMS Cmdlet)

The PSCredential object to use for user/password authentication.

Syntax

Send-SMS -Credential PSCredential

Remarks

Every cmdlet that supports user authentication will expose a Credential parameter. A PSCredential object should be specified for this parameter. Alternatively, the User and Password parameters can be set to represent the credential information.

If the cmdlet supports client key authentication it uses the password field of this object for the certificate's password. This setting is enabled by using public key authentication. Note: Due to security reasons, it is recommended that you use the Credential parameter rather than User and Password to specify the authentication information.

Default Value

null

Parameter Position

1

Parameter Alias

auth

FirewallHost Property (Send-SMS Cmdlet)

Name or IP address of firewall.

Syntax

Send-SMS -FirewallHost string

Remarks

If a FirewallHost is given, requested connections will be authenticated through the specified firewall when connecting.

If the FirewallHost parameter is set to a Domain Name, a DNS request is initiated. Upon successful termination of the request, the FirewallHost parameter is set to the corresponding address. If the search is not successful, an error is returned.

Default Value

""

FirewallPassword Property (Send-SMS Cmdlet)

A password if authentication is to be used when connecting through the firewall.

Syntax

Send-SMS -FirewallPassword string

Remarks

If FirewallHost is specified, the FirewallUser and FirewallPassword properties are used to authenticate against the firewall.

Default Value

""

FirewallPort Property (Send-SMS Cmdlet)

The port of the firewall to which to connect.

Syntax

Send-SMS -FirewallPort int

Remarks

The TCP port for the FirewallHost. See the description of the FirewallHost parameter for details.

Note that the FirewallPort is set automatically when FirewallType is set to a valid value. See the description of the FirewallType parameter for details. Setting this parameter will overwrite the default settings for the firewall port as specified by FirewallType.

Default Value

0

FirewallType Property (Send-SMS Cmdlet)

Determines the type of firewall to connect through.

Syntax

Send-SMS -FirewallType string

Remarks

The applicable values are the following:

None No firewall (default setting).
TunnelConnect through a tunneling proxy. FirewallPort is set to 80.
SOCKS4Connect through a SOCKS4 Proxy. FirewallPort is set to 1080.
SOCKS5Connect through a SOCKS5 Proxy. FirewallPort is set to 1080.

Default Value

0

FirewallUser Property (Send-SMS Cmdlet)

A user name if authentication is to be used connecting through a firewall.

Syntax

Send-SMS -FirewallUser string

Remarks

If FirewallHost is specified, the FirewallUser and FirewallPassword properties are used to authenticate against the firewall.

Default Value

""

Force Property (Send-SMS Cmdlet)

Forces the component to accept the default behavior instead of querying the user.

Syntax

Send-SMS -Force SwitchParameter

Remarks

The Force parameter is especially useful in a script environment where user interaction is not an option. Certain cmdlets that are SSH and SSL based will query the user if the security credentials of the certificate presented by the server are not met. Setting this parameter will force the cmdlet to accept the certificate of the server unconditionally.

Default Value

false

LocalIP Property (Send-SMS Cmdlet)

The IP address of the local interface to use.

Syntax

Send-SMS -LocalIP string

Remarks

This parameter is useful when the cmdlet is running on a machine that has more than one network interface (each with its own IP address and network access privileges).

Default Value

""

Parameter Alias

LocalAddress

LogFile Property (Send-SMS Cmdlet)

The location of a file to which debug information is written.

Syntax

Send-SMS -LogFile string

Remarks

When specified, the cmdlet will log debug information to the file. If the file exists, the information will be appended.

Default Value

""

Message Property (Send-SMS Cmdlet)

The full text of the message to send (without headers).

Syntax

Send-SMS -Message string

Remarks

Message contains the full text of the message.

Default Value

""

Password Property (Send-SMS Cmdlet)

The password to use for authentication.

Syntax

Send-SMS -Password string

Remarks

Every time User, or Password are set, the cmdlet will authenticate with the server. It is recommended that the Credential parameter is set instead of User/Password because of security reasons. If both Credential and this parameter is set, the Credential value is used.

Default Value

""

Port Property (Send-SMS Cmdlet)

The TCP port in the remote host to which to connect.

Syntax

Send-SMS -Port int

Remarks

Port specifies a service port on the remote host to which to connect.

A valid port number (a value between 1 and 65535) is required for the connection to take place.

Default Value

2775

Recipient Property (Send-SMS Cmdlet)

The recipient of the instant message.

Syntax

Send-SMS -Recipient string

Remarks

Recipient specifies the recipient of the instant message.

You may send a message to multiple recipients by separating IDs with a comma.

Default Value

""

Parameter Position

2

Parameter Alias

To

SenderAddress Property (Send-SMS Cmdlet)

The address of the ESME.

Syntax

Send-SMS -SenderAddress string

Remarks

This property contains the address of the ESME. The SMPP protocol allows an External Short Messaging Entity (ESME) to specify its address, whether it is a phone number or an IP address. If This property is not set, the cmdlet will default to the value in LocalHost.

Default Value

""

Server Property (Send-SMS Cmdlet)

The address of the Server.

Syntax

Send-SMS -Server string

Remarks

The cmdlet requires a server address to be provided. Either an IP address or the server host name can be provided.

Default Value

""

Parameter Position

0

This is a required parameter.

SSL Property (Send-SMS Cmdlet)

Determines how the component starts SSL negotiation.

Syntax

Send-SMS -SSL string

Remarks

SSL may have one of the following values:

none (default)No SSL negotiation, no SSL security. All communication will be in plaintext mode.
automaticIf the Port is set to the standard plaintext port of the protocol (where applicable), the cmdlet will behave the same as if SSL is set to explicit. In all other cases, SSL negotiation will be implicit.
implicitThe SSL negotiation will start immediately after the connection is established.
explicitThe cmdlet will first connect in plaintext, and then explicitly start SSL negotiation through a protocol command such as STARTTLS.

Default Value

3

SSLAccept Property (Send-SMS Cmdlet)

The encoded public key of the certificate which is to be trusted explicitly.

Syntax

Send-SMS -SSLAccept string

Remarks

Ordinarily, the certificate presented by the server will be checked against the system certificate stores to see if the Certificate Authority is trusted, and if not, the cmdlet will prompt the user to accept the certificate. Setting this parameter will override the system settings and trust the certificate provided.

After each connection, regardless of whether or not the certificate was trusted, the cmdlet will store the certificate presented by the server in the $SSLServerCertificate session variable. This variable can be inspected to view details of the server's certificate.

If the Force parameter is set, the cmdlet will accept the server's certificate unconditionally.

In cases where the certificate presented by the server is not trusted, a prompt will be shown to the user. This prompt will allow the user to decide whether or not they would like to accept the certificate presented by the server.

There may be cases where you do not want a prompt to be displayed or would like to handle the response supplied directly within your script. This can be done by setting the $SSLAcceptPreference variable prior to running the cmdlet. The available values for this variable are:

None (default)Maintains the default behavior. If the certificate is not trusted by default, the user will be prompted.
AcceptAccepts the certificate without prompting the user, even if it is not trusted by default.
RejectRejects the certificate without prompting the user only if it is not trusted by default. Thus if the certificate is found to be trusted or the Force parameter is set, the connection will still be accepted.

Default Value

""

Parameter Alias

Accept

SystemType Property (Send-SMS Cmdlet)

This is a string representing the type of system during a connection.

Syntax

Send-SMS -SystemType string

Remarks

Some SMS servers require that a system type be supplied during connection. The system type is a string representation, usually as an abbreviation, of a particular kind of system. The string cannot exceed 12 bytes.

Default Value

""

Timeout Property (Send-SMS Cmdlet)

The maximum time allowed for the operation.

Syntax

Send-SMS -Timeout int

Remarks

After the specified interval in seconds, the cmdlet will throw a Timeout error if the operation is not completed.

Default Value

10

UseHex Property (Send-SMS Cmdlet)

Specifies if Message is hex encoded.

Syntax

Send-SMS -UseHex SwitchParameter

Remarks

Setting the UseHex flag causes the cmdlet to treat Message as if it is hex encoded. This can be useful when sending non-ASCII characters. For example: Send-SMS -server $server -user $user -password $password -recipient $recipients -message $hexMessage -config("DataCoding=8") -useHex

Note that when the UseHex flag is set, DataCoding must be set to 8, and the Message should be the UTF-16 hex encoded.

Default Value

false

User Property (Send-SMS Cmdlet)

The username to use for authentication.

Syntax

Send-SMS -User string

Remarks

Every time User and Password are set, the cmdlet will authenticate with the server. It is recommended that the Credential parameter is set instead of User/Password because of security reasons. If both Credential and this parameter is set, the Credential value is used.

Default Value

""

SMSDelivery Output Object (Send-SMS Cmdlet)

Object which indicates whether the message was received.

Syntax

Object SMSDelivery {
   string Server;
   string Recipient;
   bool Success;
}

Remarks

After sending a message, information concerning whether that message was properly received by the Recipient on the indicated Server will be contained in the Success parameter.

Config Settings (Send-SMS Cmdlet)

The cmdlet accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the cmdlet, access to these internal properties is provided through the Config method.

SMPP Config Settings

AddressRange:   Specifies the addr_range parameter when binding.

The addr_range parameter is used when binding as a receiver or transceiver to specify a set of short message entity (SME) addresses serviced by the external SME (ESME) client. A single SME address may be specified in the address_range parameter. UNIX Regular Expression notation should be used to specify a range of addresses. Messages addressed to any destination in this range shall be routed to the ESME.

Note 1: For IP addresses, it is only possible to specify a single IP address. A range of IP addresses is not allowed. IP version 6.0 is not currently supported in this version of the protocol.

Note 2: It is likely that the addr_range field is not supported or deliberately ignored on most Message Centers (MCs). Most carriers will not allow an ESME to control the message routing because this can carry the risk of incorrectly routing messages. In such circumstances, the ESME will be requested to set the field to NULL.

BinaryDataCoding:   Whether or not to binary encode the message when DataCoding is set.

By default, when the DataCoding configuration setting is used, the component will treat the message as binary. This configuration setting can be set to false to send the text user data instead.

BindAsReceiver:   Causes the component to bind as a receiver.

This configuration setting will instruct the component to bind to the SMPP service as a receiver instead of a transceiver.

BindAsTransmitter:   Causes the component to bind as a transmitter.

This configuration setting will instruct the component to bind to the SMPP service as a transmitter instead of a transceiver.

CustomTLV:   Optional TLV parameters added after the mandatory parameters and before the payload.

The format of the tag length value (TLV) parameter is as follows:

  • One two-byte integer containing the parameter type (tag).
  • One two-byte integer indicating the length of the data contained in this parameter.
  • The variable-length parameter data itself.
All of these values must be hex-encoded before setting the CustomTLV configuration setting.

For instance, to add a gn_lookup_userdata parameter, the type/tag is decimal 5633 (that's 0x1601 in hex), and the data in this example is "Hello World", which is 11 characters in length. So the TLV is as follows: 5633 + 11 + "Hello World", or 0x16 0x01 0x00 0x0b and then the ASCII text "Hello World". When hex-encoded, this yields the string "1601000b48656c6c6f20576f726c64". This is the value you would then use to set the CustomTLV configuration setting. You are not restricted to only one optional parameter. Multiple TLV parameters may be concatenated together.

Note: This is advanced functionality, and the cmdlet does not verify the data in this configuration setting before transmission. After the cmdlet internally decodes the string back into binary, it is passed on inside the protocol data unit (PDU) as-is without validation or modification.

This configuration setting is applicable only when using the SendMessage or SendData methods.

DataCoding:   The data encoding mechanism to be used for the current message.

This configuration setting informs the message recipient about how data were encoded. The possible values are as follows:

0MC Specific encoding
1IA5 (CCITT T.50)/ASCII (ANSI X3.4)
2Octet unspecified (8-bit binary)
3Latin 1 (ISO-8859-1)
4Octet unspecified (8-bit binary)
5JIS (X 0208-1990)
6Cyrillic (ISO-8859-5)
7Latin/Hebrew (ISO-8859-8)
8UCS2 (ISO/IEC-10646)
9Pictogram Encoding
10ISO-2022-JP (Music Codes)
11Reserved
12Reserved 2
13Extended Kanji JIS (X 0212-1990)
14KS C 5601
DecodeHexStrings:   Will decode an ascii hex-representation of binary data prior to transmission.

When this configuration setting is True, data sent in the SendCommand method's Payload parameter, SendData method's Data parameter, or SendMessage method's Message parameter will be treated as an ASCII hex-representation of binary data, and will be decoded into raw binary before transmission. For instance, the string "48656C6C6F20576F726C64" will be decoded to "Hello World" when this configuration setting is True. If the string passed to the method parameter is not correctly hex-encoded, the cmdlet will transmit unexpected results. This setting is False by default.

DestinationNPI:   The Number Planning Indicator for the destination ESME.

When sending messages, this configuration setting is used to indicate the numbering plan the destination ESME. For a list of possible values, please see SourceNPI.

DestinationTON:   The Type of Number for the destination ESME.

When sending messages, this configuration setting is used to indicate the Type of Number for the destination ESME. For a list of possible values, please see SourceTON.

DoSplitLargeMessages:   Splits long messages and returns the UDH and Message Parts.

This configuration setting accepts a string that will be the long message to be split into parts. The user data header (UDH) and Message Parts will be returned in hex, in the following format:

[UDH1],[MessagePart1];[UDH2],[MessagePart2];[UDH3],[MessagePart3]
HexString:   A hex-encoded binary string to be sent to the current recipient.

When set, this configuration setting will cause the component to internally call SendMessage with the binary contents of the hex-encoded string. The return value when setting this property is the server-assigned Id of the message. Querying this property will result in an empty string.

Note: When using HexString, DataCoding must be set to 8, and the value provided to this configuration setting should be the UTF-16 hex-encoded message.

IncomingDestinationAddress:   Returns the dest_addr field inside the received message.

This configuration setting is read-only, and it is valid only inside the MessageIn event.

IntermediateNotification:   Causes the component to request intermediate notification.

This configuration setting will request intermediate notification. By default, intermediate notification is not requested.

MaxCIMDSMSLength:   Indicates the maximum SMS message length for the CIMD protocol.

This configuration setting is applicable only when SplitLargeMessages is True and Protocol is set to CIMD2. The configuration setting controls the maximum size of SMS messages before they are split and has a default value of 160.

MaxSMSLength:   Indicates the maximum SMS message length.

This configuration setting is applicable only when SplitLargeMessages is True. The setting controls the maximum size of SMS messages before they are split and has a default value of 140.

MCReceipt:   The Type of MC Delivery Receipt requested.

When sending a message, this configuration setting is used to determine whether or not an MC delivery receipt is requested. This value is 0 by default, and no receipt is requested. The possible values are as follows:

0No MC Delivery Receipt requested (default).
1MC Delivery Receipt is requested after final delivery (success or failure).
2MC Delivery Receipt is requested after a failed delivery.
3MC Delivery Receipt is requested after a successful delivery.
MessageInReceiptedMessageId:   The receipted_message_id field of an incoming deliver_sm PDU.

This configuration setting indicates the Id of the message being receipted in an MC delivery receipt.

Note: This is applicable only within the MessageIn event.

MessageMode:   The Type of Messaging Mode requested.

When sending a message, this configuration setting is used to specify the Messaging Mode in the outgoing request. For incoming messages, this value can be queried from within the MessageIn event. The possible values are as follows:

0Default SMSC Mode (e.g., Store and Forward).
1Datagram mode.
2Forward (i.e., Transaction) mode.
3Store and Forward mode.
MessageType:   The Type of Message.

When sending a message, this configuration setting is used to specify the Message Type in the outgoing request. For incoming messages, this value can be queried from within the MessageIn event. The possible values are as follows:

0Default message Type (i.e., normal message).
1Short Message contains MC Delivery Receipt.
2Short Message contains Intermediate Delivery Notification.
PDUFormat:   The format of the PDU.

Decides the format of the PDU parameter when decoding a PDU for the PITrail event. When set to Hex (1), the PDU will be encoded as a hex string. When set to Verbose (2) the PDU will be a longer hex dump.

0Raw (Default)
1Hex string
2Verbose
ProtocolId:   The protocol identifier.

This configuration setting allows control of the protocol identifier field value used in the outgoing messages.

SMEAcknowledgement:   The Type of SME originated acknowledgement requested.

When sending a message, this configuration setting is used to determine whether or not an SME acknowledgment is requested. This value is 0 by default, and no acknowledgment is requested. The possible values are as follows:

0No SME acknowledgment requested (default).
1SME delivery acknowledgment is requested.
2SME manual/user acknowledgment is requested.
3Both delivery and manual/user acknowledgment is requested.
SourceNPI:   The Number Planning Indicator for the ESME.

When binding, this configuration setting is used to specify the numbering plan of the ESME. Mobiles tend to set this value to 1. Because most ESMEs are mobiles, the default value for SourceNPI is 1. The possible value are as follows:

Unknown (0)
ISDN (1)
Data (3)
Telex (4)
LandMobile (6)
National (8)
Private (9)
ERMES (10)
Internet (14)
WAP (18)
SourceTON:   The Type of Number for the ESME.

When binding, this configuration setting is used to indicate the Type of Number for the ESME address. The possible values are as follows:

Unknown (0)The number type is unknown
International (1)The number includes the international trunk prefix
National (2)The number includes the national trunk prefix
NetworkSpecific (3)The number exists on a network that uses a specific delivery protocol
SubscriberNumber (4)The number is just the subscriber number, without prefixes
Alphanumeric (5)The address is human-readable (contains letters and digits)
Abbreviated (6)The number is abbreviated
SplitLargeMessages:   Determines whether large messages are split into multiple parts.

The default value is False. If set to true and the message is larger than MaxSMSLength (or MaxCIMDSMSLength), the message will automatically be split into parts when SendMessage is called.

Note: This is valid only for GSM networks.

When receiving a message that has been split, the MessageIn event provides parameters to reassemble the message.

SplitMessageMethod:   Determines how large messages are split into multiple parts.

The component can split large messages using either the UDH or segmentation and reassembly (SAR) method. The mode used is determined by this configuration setting. The possible values are as follows:

0UDH (Default)
1SAR

StatusReportRequest:   Defines in what cases a status report is created by the server.

This configuration setting is applicable only when Protocol is set to smppCIMD2. This may be set to request that the server create a status report for the given conditions. The assigned value should be the sum of all desired conditions. For instance, a value of 62 means that a report should be created for all events except for a temporary error. Possible flags are as follows:

1Temporary Error
2Validity Period Expired
4Delivery Failed
8Delivery Successful
16Message Cancelled
32Message Deleted By The Operator
SubAddr:   Defines a unique index for application instance.

This configuration setting is useful for correct delivery of status reports when multiple instances of the same application are connected.

This configuration setting is applicable only when Protocol is set to smppCIMD2.

SynchronousSendCommand:   Controls whether SendCommand behaves synchronously or asynchronously.

The default value is True, which means SendCommand will not return until a response has been received. If set to False, the cmdlet returns and does not wait for a response from the server.

SynchronousSendMessage:   Controls whether SendMessage behaves synchronously or asynchronously.

The default value is True, which means SendMessage will not return until a response has been received. If set to False, the cmdlet returns the sequence number used and does not wait for a response from the server. You may then monitor the PITrail event to match the response from the server to the sent message.

UseGSM7BitEncoding:   Whether or not to use GSM 7-bit encoding.

When set to True (False by default), this will instruct the component to use 7-bit GSM encoding.

UseGSM7bitEncodingCompression:   Whether to compress GSM 7-bit encoded characters.

When set to True (True by default), the component will compress GSM 7-bit encoded characters. Some devices do not support compression. Setting this to False may allow them to be displayed.

This configuration setting applies only when UseGSM7BitEncoding is True.

WaitForBanner:   Specifies the CIMD2 banner the cmdlet will wait for when connecting.

This configuration setting is applicable only when Protocol is set to smppCIMD2. If set, the cmdlet will wait for a banner containing this string to be returned by the server before proceeding with the connection.

TCPClient Config Settings

ConnectionTimeout:   Sets a separate timeout value for establishing a connection.

When set, this configuration setting allows you to specify a different timeout value for establishing a connection. Otherwise, the cmdlet will use Timeout for establishing a connection and transmitting/receiving data.

FirewallAutoDetect:   Tells the cmdlet whether or not to automatically detect and use firewall system settings, if available.

This configuration setting is provided for use by cmdlets that do not directly expose Firewall properties.

FirewallHost:   Name or IP address of firewall (optional).

If a FirewallHost is given, requested connections will be authenticated through the specified firewall when connecting.

If the FirewallHost setting is set to a Domain Name, a DNS request is initiated. Upon successful termination of the request, the FirewallHost setting is set to the corresponding address. If the search is not successful, an error is returned.

Note: This setting is provided for use by cmdlets that do not directly expose Firewall properties.

FirewallPassword:   Password to be used if authentication is to be used when connecting through the firewall.

If FirewallHost is specified, the FirewallUser and FirewallPassword settings are used to connect and authenticate to the given firewall. If the authentication fails, the cmdlet throws an exception.

Note: This setting is provided for use by cmdlets that do not directly expose Firewall properties.

FirewallPort:   The TCP port for the FirewallHost;.

The FirewallPort is set automatically when FirewallType is set to a valid value.

Note: This configuration setting is provided for use by cmdlets that do not directly expose Firewall properties.

FirewallType:   Determines the type of firewall to connect through.

The appropriate values are as follows:

0No firewall (default setting).
1Connect through a tunneling proxy. FirewallPort is set to 80.
2Connect through a SOCKS4 Proxy. FirewallPort is set to 1080.
3Connect through a SOCKS5 Proxy. FirewallPort is set to 1080.
10Connect through a SOCKS4A Proxy. FirewallPort is set to 1080.

Note: This setting is provided for use by cmdlets that do not directly expose Firewall properties.

FirewallUser:   A user name if authentication is to be used connecting through a firewall.

If the FirewallHost is specified, the FirewallUser and FirewallPassword settings are used to connect and authenticate to the Firewall. If the authentication fails, the cmdlet throws an exception.

Note: This setting is provided for use by cmdlets that do not directly expose Firewall properties.

KeepAliveInterval:   The retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.

When set, TCPKeepAlive will automatically be set to True. A TCP keep-alive packet will be sent after a period of inactivity as defined by KeepAliveTime. If no acknowledgment is received from the remote host, the keep-alive packet will be sent again. This configuration setting specifies the interval at which the successive keep-alive packets are sent in milliseconds. This system default if this value is not specified here is 1 second.

Note: This value is not applicable in macOS.

KeepAliveTime:   The inactivity time in milliseconds before a TCP keep-alive packet is sent.

When set, TCPKeepAlive will automatically be set to True. By default, the operating system will determine the time a connection is idle before a Transmission Control Protocol (TCP) keep-alive packet is sent. This system default if this value is not specified here is 2 hours. In many cases, a shorter interval is more useful. Set this value to the desired interval in milliseconds.

Linger:   When set to True, connections are terminated gracefully.

This property controls how a connection is closed. The default is True.

In the case that Linger is True (default), two scenarios determine how long the connection will linger. In the first, if LingerTime is 0 (default), the system will attempt to send pending data for a connection until the default IP timeout expires.

In the second scenario, if LingerTime is a positive value, the system will attempt to send pending data until the specified LingerTime is reached. If this attempt fails, then the system will reset the connection.

The default behavior (which is also the default mode for stream sockets) might result in a long delay in closing the connection. Although the cmdlet returns control immediately, the system could hold system resources until all pending data are sent (even after your application closes).

Setting this property to False forces an immediate disconnection. If you know that the other side has received all the data you sent (e.g., by a client acknowledgment), setting this property to False might be the appropriate course of action.

LingerTime:   Time in seconds to have the connection linger.

LingerTime is the time, in seconds, the socket connection will linger. This value is 0 by default, which means it will use the default IP timeout.

LocalHost:   The name of the local host through which connections are initiated or accepted.

The LocalHost setting contains the name of the local host as obtained by the gethostname() system call, or if the user has assigned an IP address, the value of that address.

In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the cmdlet initiate connections (or accept in the case of server cmdlets) only through that interface.

If the cmdlet is connected, the LocalHost setting shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multi-homed hosts (machines with more than one IP interface).

LocalPort:   The port in the local host where the cmdlet binds.

This must be set before a connection is attempted. It instructs the cmdlet to bind to a specific port (or communication endpoint) in the local machine.

Setting this to 0 (default) enables the system to choose a port at random. The chosen port will be shown by LocalPort after the connection is established.

LocalPort cannot be changed once a connection is made. Any attempt to set this when a connection is active will generate an error.

This; setting is useful when trying to connect to services that require a trusted port in the client side. An example is the remote shell (rsh) service in UNIX systems.

MaxLineLength:   The maximum amount of data to accumulate when no EOL is found.

MaxLineLength is the size of an internal buffer, which holds received data while waiting for an EOL string.

If an EOL string is found in the input stream before MaxLineLength bytes are received, the DataIn event is fired with the EOL parameter set to True, and the buffer is reset.

If no EOL is found, and MaxLineLength bytes are accumulated in the buffer, the DataIn event is fired with the EOL parameter set to False, and the buffer is reset.

The minimum value for MaxLineLength is 256 bytes. The default value is 2048 bytes.

MaxTransferRate:   The transfer rate limit in bytes per second.

This configuration setting can be used to throttle outbound TCP traffic. Set this to the number of bytes to be sent per second. By default, this is not set and there is no limit.

ProxyExceptionsList:   A semicolon separated list of hosts and IPs to bypass when using a proxy.

This configuration setting optionally specifies a semicolon-separated list of hostnames or IP addresses to bypass when a proxy is in use. When requests are made to hosts specified in this property, the proxy will not be used. For instance:

www.google.com;www.nsoftware.com

TCPKeepAlive:   Determines whether or not the keep alive socket option is enabled.

If set to True, the socket's keep-alive option is enabled and keep-alive packets will be sent periodically to maintain the connection. Set KeepAliveTime and KeepAliveInterval to configure the timing of the keep-alive packets.

Note: This value is not applicable in Java.

TcpNoDelay:   Whether or not to delay when sending packets.

When true, the socket will send all data that is ready to send at once. When false, the socket will send smaller buffered packets of data at small intervals. This is known as the Nagle algorithm.

By default, this config is set to false.

UseIPv6:   Whether to use IPv6.

When set to 0 (default), the cmdlet will use IPv4 exclusively. When set to 1, the cmdlet will use IPv6 exclusively. To instruct the cmdlet to prefer IPv6 addresses, but use IPv4 if IPv6 is not supported on the system, this setting should be set to 2. The default value is 0. Possible values are:

0 IPv4 Only
1 IPv6 Only
2 IPv6 with IPv4 fallback

Socket Config Settings

AbsoluteTimeout:   Determines whether timeouts are inactivity timeouts or absolute timeouts.

If AbsoluteTimeout is set to True, any method which does not complete within Timeout seconds will be aborted. By default, AbsoluteTimeout is False, and the timeout is an inactivity timeout.

Note: This option is not valid for UDP ports.

FirewallData:   Used to send extra data to the firewall.

When the firewall is a tunneling proxy, use this property to send custom (additional) headers to the firewall (e.g. headers for custom authentication schemes).

InBufferSize:   The size in bytes of the incoming queue of the socket.

This is the size of an internal queue in the TCP/IP stack. You can increase or decrease its size depending on the amount of data that you will be receiving. Increasing the value of the InBufferSize setting can provide significant improvements in performance in some cases.

Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the cmdlet is activated the InBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small.

OutBufferSize:   The size in bytes of the outgoing queue of the socket.

This is the size of an internal queue in the TCP/IP stack. You can increase or decrease its size depending on the amount of data that you will be sending. Increasing the value of the OutBufferSize setting can provide significant improvements in performance in some cases.

Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the cmdlet is activated the OutBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small.

Base Config Settings

BuildInfo:   Information about the product's build.

When queried, this setting will return a string containing information about the product's build.

CodePage:   The system code page used for Unicode to Multibyte translations.

The default code page is Unicode UTF-8 (65001).

The following is a list of valid code page identifiers:

IdentifierName
037IBM EBCDIC - U.S./Canada
437OEM - United States
500IBM EBCDIC - International
708Arabic - ASMO 708
709Arabic - ASMO 449+, BCON V4
710Arabic - Transparent Arabic
720Arabic - Transparent ASMO
737OEM - Greek (formerly 437G)
775OEM - Baltic
850OEM - Multilingual Latin I
852OEM - Latin II
855OEM - Cyrillic (primarily Russian)
857OEM - Turkish
858OEM - Multilingual Latin I + Euro symbol
860OEM - Portuguese
861OEM - Icelandic
862OEM - Hebrew
863OEM - Canadian-French
864OEM - Arabic
865OEM - Nordic
866OEM - Russian
869OEM - Modern Greek
870IBM EBCDIC - Multilingual/ROECE (Latin-2)
874ANSI/OEM - Thai (same as 28605, ISO 8859-15)
875IBM EBCDIC - Modern Greek
932ANSI/OEM - Japanese, Shift-JIS
936ANSI/OEM - Simplified Chinese (PRC, Singapore)
949ANSI/OEM - Korean (Unified Hangul Code)
950ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC)
1026IBM EBCDIC - Turkish (Latin-5)
1047IBM EBCDIC - Latin 1/Open System
1140IBM EBCDIC - U.S./Canada (037 + Euro symbol)
1141IBM EBCDIC - Germany (20273 + Euro symbol)
1142IBM EBCDIC - Denmark/Norway (20277 + Euro symbol)
1143IBM EBCDIC - Finland/Sweden (20278 + Euro symbol)
1144IBM EBCDIC - Italy (20280 + Euro symbol)
1145IBM EBCDIC - Latin America/Spain (20284 + Euro symbol)
1146IBM EBCDIC - United Kingdom (20285 + Euro symbol)
1147IBM EBCDIC - France (20297 + Euro symbol)
1148IBM EBCDIC - International (500 + Euro symbol)
1149IBM EBCDIC - Icelandic (20871 + Euro symbol)
1200Unicode UCS-2 Little-Endian (BMP of ISO 10646)
1201Unicode UCS-2 Big-Endian
1250ANSI - Central European
1251ANSI - Cyrillic
1252ANSI - Latin I
1253ANSI - Greek
1254ANSI - Turkish
1255ANSI - Hebrew
1256ANSI - Arabic
1257ANSI - Baltic
1258ANSI/OEM - Vietnamese
1361Korean (Johab)
10000MAC - Roman
10001MAC - Japanese
10002MAC - Traditional Chinese (Big5)
10003MAC - Korean
10004MAC - Arabic
10005MAC - Hebrew
10006MAC - Greek I
10007MAC - Cyrillic
10008MAC - Simplified Chinese (GB 2312)
10010MAC - Romania
10017MAC - Ukraine
10021MAC - Thai
10029MAC - Latin II
10079MAC - Icelandic
10081MAC - Turkish
10082MAC - Croatia
12000Unicode UCS-4 Little-Endian
12001Unicode UCS-4 Big-Endian
20000CNS - Taiwan
20001TCA - Taiwan
20002Eten - Taiwan
20003IBM5550 - Taiwan
20004TeleText - Taiwan
20005Wang - Taiwan
20105IA5 IRV International Alphabet No. 5 (7-bit)
20106IA5 German (7-bit)
20107IA5 Swedish (7-bit)
20108IA5 Norwegian (7-bit)
20127US-ASCII (7-bit)
20261T.61
20269ISO 6937 Non-Spacing Accent
20273IBM EBCDIC - Germany
20277IBM EBCDIC - Denmark/Norway
20278IBM EBCDIC - Finland/Sweden
20280IBM EBCDIC - Italy
20284IBM EBCDIC - Latin America/Spain
20285IBM EBCDIC - United Kingdom
20290IBM EBCDIC - Japanese Katakana Extended
20297IBM EBCDIC - France
20420IBM EBCDIC - Arabic
20423IBM EBCDIC - Greek
20424IBM EBCDIC - Hebrew
20833IBM EBCDIC - Korean Extended
20838IBM EBCDIC - Thai
20866Russian - KOI8-R
20871IBM EBCDIC - Icelandic
20880IBM EBCDIC - Cyrillic (Russian)
20905IBM EBCDIC - Turkish
20924IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol)
20932JIS X 0208-1990 & 0121-1990
20936Simplified Chinese (GB2312)
21025IBM EBCDIC - Cyrillic (Serbian, Bulgarian)
21027Extended Alpha Lowercase
21866Ukrainian (KOI8-U)
28591ISO 8859-1 Latin I
28592ISO 8859-2 Central Europe
28593ISO 8859-3 Latin 3
28594ISO 8859-4 Baltic
28595ISO 8859-5 Cyrillic
28596ISO 8859-6 Arabic
28597ISO 8859-7 Greek
28598ISO 8859-8 Hebrew
28599ISO 8859-9 Latin 5
28605ISO 8859-15 Latin 9
29001Europa 3
38598ISO 8859-8 Hebrew
50220ISO 2022 Japanese with no halfwidth Katakana
50221ISO 2022 Japanese with halfwidth Katakana
50222ISO 2022 Japanese JIS X 0201-1989
50225ISO 2022 Korean
50227ISO 2022 Simplified Chinese
50229ISO 2022 Traditional Chinese
50930Japanese (Katakana) Extended
50931US/Canada and Japanese
50933Korean Extended and Korean
50935Simplified Chinese Extended and Simplified Chinese
50936Simplified Chinese
50937US/Canada and Traditional Chinese
50939Japanese (Latin) Extended and Japanese
51932EUC - Japanese
51936EUC - Simplified Chinese
51949EUC - Korean
51950EUC - Traditional Chinese
52936HZ-GB2312 Simplified Chinese
54936Windows XP: GB18030 Simplified Chinese (4 Byte)
57002ISCII Devanagari
57003ISCII Bengali
57004ISCII Tamil
57005ISCII Telugu
57006ISCII Assamese
57007ISCII Oriya
57008ISCII Kannada
57009ISCII Malayalam
57010ISCII Gujarati
57011ISCII Punjabi
65000Unicode UTF-7
65001Unicode UTF-8
The following is a list of valid code page identifiers for Mac OS only:
IdentifierName
1ASCII
2NEXTSTEP
3JapaneseEUC
4UTF8
5ISOLatin1
6Symbol
7NonLossyASCII
8ShiftJIS
9ISOLatin2
10Unicode
11WindowsCP1251
12WindowsCP1252
13WindowsCP1253
14WindowsCP1254
15WindowsCP1250
21ISO2022JP
30MacOSRoman
10UTF16String
0x90000100UTF16BigEndian
0x94000100UTF16LittleEndian
0x8c000100UTF32String
0x98000100UTF32BigEndian
0x9c000100UTF32LittleEndian
65536Proprietary

LicenseInfo:   Information about the current license.

When queried, this setting will return a string containing information about the license this instance of a cmdlet is using. It will return the following information:

  • Product: The product the license is for.
  • Product Key: The key the license was generated from.
  • License Source: Where the license was found (e.g., RuntimeLicense, License File).
  • License Type: The type of license installed (e.g., Royalty Free, Single Server).
  • Last Valid Build: The last valid build number for which the license will work.
MaskSensitive:   Whether sensitive data is masked in log messages.

In certain circumstances it may be beneficial to mask sensitive data, like passwords, in log messages. Set this to true to mask sensitive data. The default is true.

This setting only works on these cmdlets: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.

UseInternalSecurityAPI:   Tells the cmdlet whether or not to use the system security libraries or an internal implementation.

When set to false, the cmdlet will use the system security libraries by default to perform cryptographic functions where applicable. In this case, calls to unmanaged code will be made. In certain environments this is not desirable. To use a completely managed security implementation set this setting to true.

Setting this setting to true tells the cmdlet to use the internal implementation instead of using the system security libraries.

On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.

If using the .NET Standard Library, this setting will be true on all platforms. The .NET Standard library does not support using the system security libraries.

Note: This setting is static. The value set is applicable to all cmdlets used in the application.

When this value is set the product's system DLL is no longer required as a reference, as all unmanaged code is stored in that file.