Page updated 2007-12-03 

ASPSMS Version 1.12 Documentation

(printer friendly version)

About ASPSMS

ASPSMS allows you to send SMS over the TCP/IP protocol from any program that can use ActiveX/OLE components. Features include:

  • Simple SMS
  • Multiple SMS
  • Delivery Notification
  • Alphanumeric Originator
  • Binary SMS
  • Wap Push
  • Arabic & other oriental characters
  • Ringtones
  • Operator Logos
  • VCards
  • Message Waiting Indication
  • Flashing SMS
  • Blinking SMS
  • Encrypted Transmission from your host to ASPSMS.COM
  • Redundant SMS servers (If the primary ASPSMS server is down, the secondary server is used)
  • Multiple concurrent users
  • Multiple SMS accounts on your server
  • Balance check

ASPSMS Installation

IIS (Internet Information Server)

To use this ASP component execute the setup.exe which is delivered in the ASPSMS package.
Current version of ASPSMS:
aspsms112.zip (2,23 MB)

Visual Basic

To use this ASP component execute the setup.exe which is delivered in the VB package.
The package includes the ASPSMS component, a VB demo program and VB examples:
vb-examples.zip (3,7 MB)

Upgrade Instructions

To upgrade the component from a previous version please follow these steps:

  1. Stop all IIS related services such as Gopher, FTP and W3SVC.
    Under IIS 4/5 this means you type "net stop iisadmin /y" from a command prompt.
  2. Execute the relevant setup.exe as described above.
  3. Restart the necessary services or reboot your server if you don't know which services to restart.

About purchasing ASPSMS

There is no registration fee for the component. The software and the source code (ASP/VB) are free of charge. We charge only the amount of SMS that you are going to send over the ASPSMS component. Please register online to set up an account. By the way, we offer a combined registration for aspsms.com and smsbooster.com (an HTTP-Post version of some features from aspsms.com). Please register on the following URL to go ahead: https://www.aspsms.com.

Information about smsbooster.com:

smsbooster.com allows you to post an SMS over an URL with HTTP access. It's the simple HTML-Version for beginners and small portals, which are not used to COM-Objects. Purchased SMS volumes may be used up with smsbooster.com or aspsms.com. You have always a combined account valid for both SMS solutions. It doesn't matter on which website you register.

UserKey

To use the ASPSMS component you need a unique UserKey which is provided by us. After the registration please go to the following page to get the UserKey.

Pricing

Please visit this page for detailed price information.

General

Before accessing the properties and methods of the component, an instance of the component has to be loaded into memory with the "CreateObject"-Command.

Example:

Dim SMS As ASPSMS.Booster
Set SMS = CreateObject("ASPSMS.Booster")

After using the component the instance should be unloaded.

Example:

Set SMS = nothing

Simple SMS Example

Using the component is as simple as
  1. Creating the object
  2. Setting a few properties
  3. Calling the SendTextSMS method
The following code demonstrates how to use ASPSMS from VBScript. In this example Jane from Jane's Drive In wishes to send a SMS to Frank Smith.

    Set SMS = Server.CreateObject("ASPSMS.Booster")
    SMS.Userkey = "I3QHMYKEY6E"
    SMS.Password = "mypassword"
    SMS.Originator = "0041763255533"
    SMS.MessageData = "hello frank, call me back! love, jane"
    SMS.FlashingSMS = False
    SMS.AddRecipient "0044734255533"
    SMS.SendTextSMS
    SMS.DeleteAllRecipients

    ifSMS.ErrorCode<>1 then
      Response.Write "An erroroccured:<br>"
      Response.Write "SMS.Errorcode = " & SMS.ErrorCode &"<br>"
      Response.Write "SMS.ErrorDescription = " & SMS.ErrorDescription
    else
      Response.Write "sms sent."
    end if

Set SMS = Nothing

By testing the result of the SendTextSMS method we can determine if the messaging process was successful or not.

More ASP examples are available to download: asp-examples.zip (4,7 KB) Including examples for multiple SMS, delivery notification, ringtones, operator logos and more.

Arabic & other oriental characters

We support Arabic and other special characters too. You need just to encode a SMS in UCS2/HexEncoded.
Find instructions on: https://www.aspsms.com/de/instruction/characters/


Network Information

List of supported networks

  • https://xml1.aspsms.com:5061/opinfo/networks.xml
  • https://xml2.aspsms.com:5061/opinfo/networks.xml
  • List of Networks with termination fees

  • https://xml1.aspsms.com:5061/opinfo/fees.xml
  • https://xml2.aspsms.com:5061/opinfo/fees.xml


  • ASPSMS Properties

    Property Description
    Userkey Userkey
    Example:
    SMS.Userkey = "IWHGETG3I"
    Password Password
    Example:
    SMS.Password = "3424iew3"
    PasswordFileLocation If you don’t want to place your Username and Passwort directly in the ASP-Code, you have the possibility to retrieve the information out of a local file.

    Example:
    SMS.PasswordfileLocation = "c:/programs/aspsms/mypasswordfile.txt"
    The content of the passwordfile has to be specified in the following format:

    Userkey = <Your Userkey>
    Password = <Your Password>

    Example:
    Username = IWHGETG3I
    Password = 3424iew3

    Originator Specifies an alphanumeric or nummeric originator. It can be a mobile phone number or a short text with a maximum of 11 characters.

    Please be aware, that using this feature is delicate. ANY ABUSES OF THESE NICE FEATURE WILL BE TRACKED AND PROSECUTED ACCORDING TO SERIOUS CIVIL- AND/OR CRIMINAL LAW REGULATIONS. We will close such accounts immediately without prior notification. Thank you for your understanding.

    Example:
    SMS.Originator = "aspsms.com"

    OriginatorUnlockCode

    Specifies the unlock code sent to a specific originator for authorization.

    Usage

    SMS.OriginatorUnlockCode = 65164424
    

    Credits Number of remaining credits, that can be used for sending messages, Read-Only
    Example:
    Dim lTemp
    lTemp = SMS.Credits
    DeferredDeliveryTime If set, specifies when a submitted Message should be sent. The format is "ddmmyyyyhhmmss". If the component is used outside the timezone GMT+1, the property "TimeZone" should also be set.
    LifeTime If an SMS can not be delivered instantly, it remains within the GSM network for a given time. During this timeframe, the network tries to deliver the SMS periodically. The LifeTime property represents this validity period of an SMS in Minutes. Please note that the LifeTime can not be shorter than 3 minutes and can not exceed 1440 minutes (24h). If not specified, the LifeTime is 24h by default.
    MessageData Message that will be sent, can be text or binary hex-coded
    Example:
    SMS.MessageData = "This is a Textmessage"
    SMS.MessageData = "22F81001480E0100000014000000"
    BinaryFileLocation Specifies a file, that stores binary-data. For Logos and Picture-Messages, the format must be *.bmp, for ringtones, a *.ott or *.txt file has to be specified (*.ott =OTA Tone, *.txt =RTTTL format)

    Supported formats:

  • Operator Logos:
    Bitmap 72 * 14 Pixel (*.bmp, black/white)
  • Picture Messages:
    Bitmap 72 * 28 Pixel (*.bmp, black/white)
  • Ringtones:
    The Ringtonefiles have to be compliant to Nokring or Nokia PC Composer

    Example:

    SMS.BinaryFileLocation="c:/files/bitmaps/logo17.bmp"
    SMS.BinaryFileLocation = "http://www.mysite.com/images/logo17.bmp"

    Note: BinaryFileLocation, BinaryFileData and BinaryFileDataHex cannot not be used in combination.

  • BinaryFileData Specifies the content of a file which is already in memory in its original format.

    Example:
    Dim nFileInput As Integer
    Dim sFileContent As String
    nFileInput = FreeFile
    Open sInputFile For Binary As nFileInput
    sFileContent = String(FileLen("c:\mypicture.bmp"), " ")
    Get nFileInput, , sFileContent
    Close
    SMS.BinaryFileData = sFileContent

    Note: BinaryFileLocation, BinaryFileData and BinaryFileDataHex cannot not be used in combination.

    BinaryFileDataHex Specifies the content of a file which is already in memory in hexadecimal representation.

    Example:
    Dim nFileInput As Integer
    Dim sFileContent As String
    nFileInput = FreeFile
    Open sInputFile For Binary As nFileInput
    sFileContent = String(FileLen("c:\mypicture.bmp"), " ")
    Get nFileInput, , sFileContent
    Close
    SMS.BinaryFileDataHex = sFileContent

    Note: BinaryFileLocation, BinaryFileData and BinaryFileDataHex cannot not be used in combination.

    SMS.WAPPushSettings.Description

    The wap push description describes the content of a wap sms. This property has to be set if using the SendWAPPushSMS action.

    Example:
    SMS.WAPPushSettings.Description = "Description"

    SMS.WAPPushSettings.URL

    Specifies the url of the file to be transferred by wap protocol. This property has to be set if using the SendWAPPushSMS action.

    Example:
    SMS.WAPPushSettings.URL = "http://www...."

    FlashingSMS If set to "True", a text-message will displayed directly in the display of the recipient

    Example:
    SMS.FlashingSMS = true

    BlinkingSMS If set to "True", the text-message or parts of it will blink, when the message is displayed on the mobilephone. If used, the total number of used characters is limited to 69 characters. Note: In the moment, this features works only on the Nokia phones Nokia 3210, 3310, 5110, 6110, 6150, 8210, 8810, 8850. With the command<BLINK>, used in the messagetext, it’s possible to control the appearance of the blinking the text. This feature works in conjunction with the methods “SendTextSMS”, “SendVCard” and “SendMessageWaitingIndication”.

    Example 1, complete message is blinking:
    SMS.BlinkingSMS = true
    SMS.MessageData = "Every character in this message blinks"

    Example 2, Message "I love you!", but only the word "love" is blinking
    SMS.BlinkingSMS = true
    SMS.MessageData = "I <BLINK> love </BLINK> you!"

    ReplaceMessage If set to a value ranging from 1 to 7, this allows to overwrite existing messages on a handset with the same ReplaceMessage value.

    Example:
    SMS.ReplaceMessage = 5

    Special information: MCC and MNC

    The Mobile-Country-Code and the Mobile-Network-Code should be specified when sending operator-logos. If these parameters are not set, our system tries to evaluate these parameters with the Recipient-Address. See also example and providerlist. To delete an existing logo from a mobilephone, set both MCC and MNC to -1. After having received and saved a logo sent with this parameters, the logo disappears and the mobilephone is set back to its original state without logo.

    MCC Mobile-Country-Code, should be specified when sending operator-logos
    Example:
    SMS.MCC = 228
    MNC Mobile-Network-Code, should be specified when sending operator-logos
    SMS.MNC = 1
    URLBufferedMessageNotification URL that will be connected when a message is not delivered instantly and is buffered. The value of the submitted TransactionReferenceNumber will be the argument of the URL

    Example:
    SMS.URLBufferedMessageNotification = "http://www.mysite.com/sms/buffered.asp?ID="
    When the TransactionReferenceNumber is e.g. 3152, the URL will be loaded like this:
    http://www.mysite.com/sms/buffered.asp?ID=3152

    Cost: FREE

    URLDeliveryNotification URL that will be connected when a message is delivered instantly.The value of the submitted TransactionReferenceNumber will be the argument of the URL

    Example:
    SMS.URLDeliveryNotification = "http://www.mysite.com/sms/delivered.asp?ID="

    When the TransactionReferenceNumber is e.g. 3152, the URL will be loaded like this:
    http://www.mysite.com/sms/delivered.asp?ID=3152

    Cost: FREE

    URLNonDeliveryNotification URL that will be connected when a message is not delivered. The value of the submitted TransactionReferenceNumber will be the argument of the URL

    Example:
    SMS.URLNonDeliveryNotification = "http://www.mysite.com/sms/notdelivered.asp?ID="

    When the TransactionReferenceNumber is e.g. 3152, the URL will be loaded like this:
    http://www.mysite.com/sms/notdelivered.asp?ID=3152

    Cost: FREE

    Special information: URL properties

    The following instructions do extend the functionality of the URL properties in very powerful way.

    The URL properties may be used like described below:

    URLBufferedMessageNotification =
    "http://www.yourhost.com/Buffered.asp?SCTS=<SCTS>" &_
    "&DSCTS=<DSCTS>&RSN=<RSN>&DST=<DST>&TRN=<TRN>"
    URLDeliveryNotification =
    "http://www.yourhost.com/Delivered.asp?SCTS=<SCTS>" &_
    "&DSCTS=<DSCTS>&RSN=<RSN>&DST=<DST>&TRN=<TRN>"
    URLNonDeliveryNotification =
    "http://www.yourhost.com/NotDelivered.asp?SCTS=<SCTS>" &_
    "&DSCTS=<DSCTS>&RSN=<RSN>&DST=<DST>&TRN=<TRN>"

    The corresponding URLs are loaded by ASPSMS, if the relevant events occur.

    The following tags are placeholders and are being filled with values when loaded.

    • <RCPNT> (Recipient, Mobilenumber)
    • <SCTS> (Servicecenter Timestamp, Submissiondate)
    • <DSCTS> (Delivery Servicecenter Timestamp, Notificationdate)
    • <RSN> (Reasoncode)
    • <DST> (Deliverystatus)
    • <TRN> (Transactionreferencenummer)
    • <CREDITS> (Used credits)

    The tags within the definition of the URL may be placed on any position, the lenght of one URL is limited to 200 chars.

    One URL, which may be called ASPSMS, could look like the following:

    http://www.yourhost.com/Buffered.asp?SCTS=25062002120236&DSCTS=25062002120241&RSN=107&DST=1&TRN=00001

    Explanation:
    Submissiondate: 25.06.2002 12:02:36
    Notificationdate: 25.06.2002 12:02:41
    Reasoncode: 107 (Absent Subscriber)
    Deliverystatus: 1 (Buffered)
    Transactionreferencenumber: 00001

    Please note also that after Deliverystatus 1 (Buffered) nearly always the URL is called a secondtime with Deliverystatus 0 (Delivered, Good) or Deliverystatus 2 (Not delivered, Bad).

    Cost: Specifying the URL properties is for free.

    TimeZone Specifies the Timezone where the component is used. It’s only necessary to set this property when the property DeferredDeliveryTime is used and the component is used outside the timezone GMT +1.

    Example:
    SMS.TimeZone = "0"

    TimeOut Specifies the ammount of seconds, after a connectiontry times out and the component will be unloaded automatically with returning an errorcode.

    Example:
    SMS.TimeOut = 30

    XSer Additional information for binary messages, only used when sending directly to the SMSC gateway. Check examples and UCP specification for additional information

    Example:
    SMS.XSer = "010706050415821582"

    NotificationInquirySettings.Format

    Specifies the format of the returned result of the method InquireDeliveryNotifications.

    The datevalues of Submissiondate and Notificationdate are in the format "ddmmyyyyhhmmss".

    Possible values:
    Format 0 (default)
    Complete information with Carriage Return (Asciicodes 13 and 10) at the Lineend
    TransactionReferenceNumber<Separator>
    DeliveryStatus<Separator>
    SubmissionDate<Separator>
    NotificationDate<Separator>
    Reasoncode<Carriage Return>

    Example of a Result in this format:
    1234567890<Separator>1<Separator>22052001213354<Separator> 2205201213401<Separator>107<Carriage Return>

    Format 1
    Complete information with userdefined separator at the Lineend
    TransactionReferenceNumber<Separator>
    DeliveryStatus<Separator>
    SubmissionDate<Separator>
    NotificationDate<Separator>
    Reasoncode<Separator>

    Example of a Result in this format:
    1234567890<Separator>1<Separator>22052001213354<Separator> 220501213401<Separator>107<Separator>

    Format 2
    Simple information with Carriage Return (Asciicodes 13 and 10) at the Lineend
    TransactionReferenceNumber<Separator>
    DeliveryStatus<Carriage Return>

    Example of a Result in this format:
    TransactionReferenceNumber<Separator>
    DeliveryStatus<Carriage Return>

    Format 3
    Simple information with userdefined separator at the Lineend
    TransactionReferenceNumber<Separator>
    DeliveryStatus<Separator>

    Example of a Result in this format:
    TransactionReferenceNumber<Separator>
    DeliveryStatus<Separator>

    Example: SMS.NotificationInquirySettings.Format = 0

    NotificationInquirySettings.Separator

    Specificies a user defined separator which will be part of the result of the method InquireDeliveryNotifications. Default value is the Tabulatorsign (Asciicode 9)

    Example:
    SMS.NotificationInquirySettings.Separator = ";"

    VCard.Name

    Specifies the Name that will show up in a phonebook entry.

    Example:
    SMS.VCard.Name = “Sandra”

    VCard.PhoneNumber

    Specifies the Phonenumber that will used in a phonebook entry

    Example:
    SMS.VCard.Phonenumber = “+417912345678”

    MessageWaitingIndicationSettings.
    VoiceIndication

    Specifies if a mobilephone will be notified about pending voicemessages.

    Example:
    SMS. MessageWaitingIndicationSettings.VoiceIndication = True

    MessageWaitingIndicationSettings.
    CountVoiceMessages

    Specifies the number of pending voicemessages. Use the value “0” to delete the indicationsymbol on a mobilephone.

    Example: SMS.MessageWaitingIndicationSettings.CountVoiceMessages = 255

    MessageWaitingIndicationSettings.
    FaxIndication

    Specifies if a mobilephone will be notified about pending faxmessages.

    Example:
    SMS.MessageWaitingIndicationSettings.FaxIndication = False

    MessageWaitingIndicationSettings.
    CountFaxMessages

    Specifies the number of pending faxmessages. Use the value “0” to delete the indicationsymbol on a mobilephone.

    Example:
    SMS.MessageWaitingIndicationSettings.CountFaxMessages = 10

    MessageWaitingIndicationSettings.
    EmailIndication

    Specifies if a mobilephone will be notified about pending Emailmessages.

    Example:
    SMS.MessageWaitingIndicationSettings.EmailIndication = True

    MessageWaitingIndicationSettings.
    CountEmailMessages

    Specifies the number of pending EMailmessages. Use the value “0” to delete the indicationsymbol on a mobilephone.

    Example:
    SMS.MessageWaitingIndicationSettings.CountEmailMessages = 0

    MessageWaitingIndicationSettings.
    OtherIndication

    Specifies if a mobilephone will be notified about other pending messages.

    Example:
    SMS.MessageWaitingIndicationSettings.OtherIndication = True

    MessageWaitingIndicationSettings.
    CountOtherMessages

    Specifies the number of other pending messages. Use the value “0” to delete the indicationsymbol on a mobilephone.

    Example:
    SMS.MessageWaitingIndicationSettings.CountOtherMessages = 5

    MessageWaitingIndicationSettings.
    StoreMessage

    Specifies, if a sent Message Waiting Indication Message can be stored in the mobilephone or not.

    Example:
    MessageWaitingIndicationSettings.StoreMessage = false

    AffiliateId

    If you are registered as an affiliate model 1 member you can send the corresponding affiliate id. More information about the affiliate program is available at https://www.aspsms.com/de/affiliates/.

    Example:
    SMS.AffiliateId = 000000
    ErrorCode After invoking a method the property ErrorCode holds a value, related to the last operation. If the operation was successful, ErrorCode is 1. If there was an error, the value is different from 1

    Example:
    SMS.SendRandomLogo
    If SMS.Errorcode = 1 then
      Msgbox "Logo successfully sent"
    else
      Msgbox SMS.ErrorDescription
    End if

    ErrorDescription

    The property ErrorDescription gives specific information, why an error has occured.

    Example:
    Msgbox SMS.ErrorDescription

    Methods

    AddRecipient Adds a Recipient and a TransactionReferencenumber (optional). With the AddRecipient-Method, its possible to send messages to a maximum of 1000 recipients at the same time. If used, the TransactionReferencenumber should be unique to ensure an accurate tracking of the delivery notifications.

    Example:
    SMS.AddRecipient "0041792343541"
    SMS.AddRecipient "0041792343541", "3152"
    SMS.AddRecipient "0041799676834", "3153"
    SMS.AddRecipient "0041798649043", "3154"

    DeleteAllRecipients Deletes all previously added Recipients

    Example:
    SMS.DeleteAllRecipients

    SendRandomLogo Sends a Random-Operatorlogo out of a collection from several hundred logos

    Example:
    SMS.SendRandomLogo

    Cost: 1 Credit / Recipient

    SendTextSMS Sends a Text-Message
    If using messages with overlength, each part will reduced from 160 to 153 chars, because additional information is required for concatenation handling. The messagetext may up to 9 * 153 chars in length.

    Example:
    SMS.SendTextSMS

    Cost: 1 Credit / Recipient and messagepart

    SendPictureMessage Sends a Picture-Message

    Example:
    SMS.SendPictureMessage

    Cost: 3 Credits / Recipient

    SendLogo Sends an Operator-Logo.

    Example:
    SMS.SendLogo

    Cost: 1 Credit / Recipient

    SendGroupLogo

    Sends an Group-Logo.

    Example:
    SMS.SendGroupLogo

    Cost: 1 Credit / Recipient

    SendRingtone

    Sends a Ringtone

    Example:
    SMS.SendRingtone

    Cost: 1 Credit / Recipient

    SendVCard

    Sends a VCard

    Example:
    SMS.SendVCard

    Cost: 1 Credit / Recipient

    SendBinaryData Sends binary-data directly to the gateway, 
    XSer has to be specified too

    Example:
    SMS.SendBinaryData

    Cost: 1 Credit / Recipient

    SMS.SendWAPPushSMS

    Sends a wap push sms. Notice, that the following properties have to be specified: either WAPPushSettings.Description and WAPPushSettings.URL or WAPPushSettings.Description and BinaryFileLocation

    Example 1 (send URL only):
    SMS.WAPPushSettings.Description = "Description"
    SMS.WAPPushSettings.URL = "http://www...."
    SMS.SendWAPPushSMS
    
    Example 2 (send local path with automatic upload):
    SMS.WAPPushSettings.Description = "Description"
    SMS.BinaryFileLocation = "c:\data\....."
    SMS.SendWAPPushSMS
    
    SendMessageWaitingIndication

    Sends a Message Waiting Indication Message
    This feature is reserved for special interest groups and not available publicly.
    Please contact www.aspsms.com for further assistance.

    Example:
    SMS.SendMessageWaitingIndication

    Cost: 1 Credit / Recipient

    AddTransRefNumberForNotificationInquiry

    Adds a Transactionreferencenumber which is used for later use with the method InquireDeliveryNotifications. Up to 1000 TransactionreferenceNumbers may be added at the same time.

    Example: SMS.AddTransRefNumberForNotificationInquiry "3152"

    Note: The submitted TransactionReferencenumber has to be specified before, when the message was sent. e.g. SMS.AddRecipient "0041799676834", "3152"

    InquireDeliveryNotifications

    Inquires the status of sent messages and returns a string, which contains the query result.

    Example:
    Result = SMS.InquireDeliveryNotifications

    Note: Before using this method, AddTransRefNumberForNotificationInquiry has to be called at least one time with a valid TransactionReferenceNumber.

    Cost: 0,25 Credits / TransactionReferenceNumber

    CheckOriginatorAuthorization

    Verifies if a specific numeric originator is authorized for your account.

    Usage

    SMS.Userkey    = "XXXXXXXXXXXX"
    SMS.Password   = "XXXXXX"
    SMS.Originator = "+417912345678"
    SMS.CheckOriginatorAuthorization
    If SMS.ErrorCode <> 1 Then
        'Originator ist allowed.
    Else
        'Originator is not allowed.
    End If
    

    Cost: FREE

    SendOriginatorUnlockCode

    The ASPSMS System creates a random OriginatorUnlockCode and sends it to the specified originator to be unlocked.

    Usage

    SMS.Userkey     = "XXXXXXXXXXXX"
    SMS.Password    = "XXXXXX"
    SMS.MessageData = "Enter <UnlockCode> on http://www.xyz.com/"
    SMS.Originator  = "+417912345678"
    SMS.SendOriginatorUnlockCode
    
    => SMS 'Enter 65164424 on http://www.xyz.com/' is sent to +417912345678
    

    Cost: (1 * termination fee multiplier) Credits

    UnlockOriginator

    Verifies an entered UnlockCode previously sent to a specific Originator. If the UnlockCode matches, the Originator is unlocked.

    Usage

    SMS.Userkey              = "XXXXXXXXXXXX"
    SMS.Password             = "XXXXXX"
    SMS.Originator           = "+417912345678"
    SMS.OriginatorUnlockCode = 65164424
    SMS.UnlockOriginator
    

    Cost: FREE


    Possible values of Delivery status

    The Deliverystatus of a message is part of the returned result of the method InquireDeliveryNotifications.

    -1 Not yet submitted or rejected
    0 Delivered
    1 Buffered
    2 Not Delivered

    Possible values of Reasoncode

    A Reasoncode of a message may part of the returned result of the method InquireDeliveryNotifications.
    Reasoncodes do specify the reason if a message is first beeing buffered or the delivery of message has definitely failed. They are only relevant if the deliverystatus of a message is 1 (Buffered) or 2 (Not delivered)

    000 Unknown subscriber
    001 Service temporary not available
    002 Service temporary not available
    003 Service temporary not available
    004 Service temporary not available
    005

    Service temporary not available

    006 Service temporary not available
    007 Service temporary not available
    008 Service temporary not available
    009 Illegal error code
    010 Network time-out
    100 Facility not supported
    101 Unknown subscriber
    102 Facility not provided
    103 Call barred
    104 Operation barred
    105 SC congestion
    106 Facility not supported
    107 Absent subscriber
    108 Delivery fail
    109 SC congestion
    110 Protocol error
    111 MS not equipped
    112 Unknown SC
    113 SC congestion
    114 Illegal MS
    115 MS not a subscriber
    116 Error in MS
    117 SMS lower layer not provisioned
    118 System fail
    119 PLMN system failure
    120 HLR system failure
    121 VLR system failure
    122 Previous VLR system failure
    123 Controlling MSC system failure
    124 VMSC system failure
    125 EIR system failure
    126 System failure
    127 Unexpected data value
    200 Error in address service centre
    201 Invalid absolute Validity Period
    202 Short message exceeds maximum
    203 Unable to Unpack GSM message
    204 Unable to convert to IA5 ALPHABET
    205 Invalid validity period format
    206 Invalid destination address
    207 Duplicate message submit
    208 Invalid message type indicator

    Most occuring Reasoncodes

    In cases of failures, several reasoncodes do occur quite often, others very seldom.
    The following reasoncodes are most the occuring reasoncodes in our system and therefore listed here.

    Reasoncode
    Reason
    Possible explanation
    000 Unknown Subscriber It was tried to send an SMS to a number which is not existing or no longer exists
    103 Call Barred It was tried to send an SMS to a number which has been blocked by the provider. This reasoncode also has already occured in cases of empty prepaidcards which were not able to receive messages
    107 Absent Subscriber It was tried to send an SMS to a mobilephone which is switched off or does not have network coverage
    108 (Buffered) Delivery Fail This reasoncode often occurs when a mobilephone is out of memory. If the recipient deletes one or more SMS, the message probabely will be delivered at the end
    108 (Not delivered) Delivery Fail External partner has definitely given up to deliver message after a maximum period of 72 hours
    110 Protocol Error Mobilephone damaged or not capable to receive message, may occur if a mobilephone has to receive multiple messages at the same time. This reasoncode already has occured by using alphanumeric originators and Nokia 91xx mobilephones
    111 MS not equipped Mobilephone damaged or not capable to receive message, e.g. if a logo has been sent
    118 System fail Indicates serious problems within mobilephone and/or network of the recipient. This reasoncode already has occured in combination with not reachable or congested networks and warlike events.
    119 PLMN Failure Public Land Mobile Network Failure - Indicates serious problems within network of the recipient
    120 HLR system Failure Home Location Register Failure - Indicates serious problems within network of the recipient. This reasoncode already has occured by sending messages to networks which are not reachable by ASPSMS. Usually after exceeding the validity period, a definite Delivery Fail (Code 108) will be returned.
    121 VLR system Failure Visiting Location Register Failure - Indicates problems within the network of the recipient. This reasoncode has already occured in combination with roamingproblems, e.g. if the recipient was abroad and the foreign network has not negociated an SMS roamingagreement with his home network.