Help for SMS-Maker Version 0.5 11/30/2002

Table of content: [back home]

1. Introduction
2. Requirements
3. Installation
4. Configuration
  4.1 Port and Speed settings
  4.2 Number of Service Center
  4.3 Sending SMS
  4.4 Logging
5. How to use
  5.1 Using the message browser
  5.2 Send SMS manually
  5.3 Send SMS messages automatically
  5.4 Pre-paid card info
  5.5 Recharge pre-paid card
6. Create SMS files with SMSMAKER.DLL
  6.1 Properties
  6.2 Methods
  6.3 Error numbers and descriptions
7. Tips & Tricks
  7.1 Using SMS-Maker over a local network
  7.2 Using SMS-Maker with Office and VBA
  7.3 Using SMS-Maker on a web server
8. How to get the latest version
9. Contact the author


1. Introduction [back to top]

SMS-Maker is a small program to send SMS messages from your PC through a cellphone connected to a serial port. SMS-Maker consists of two components:

2. Requirements [back to top]

In order to use SMS-Maker, you'll need the following things: To make sure your cellphone works with SMS-Maker, you should first check the communication between cellphone and computer. This is described below.


SMS Maker was tested successfully with the following cellphone models: It should work with any pure GSM modem (for example Nokia N30 or Siemens M20) or cellphones with a built-in GSM modem (Siemens SL45) or any other cellphone with a virtual modem driver (these drivers add a new, virtual COM port to your system).

To find out if your cellphone works with SMS-Maker, try the following: If you tested other cellphones successfully with SMS-Maker, please let me know. I don't have enough money to buy a lot of different cellphones, so I depend on your experiences... ;-)


3. Installation [back to top]

OK, let's try to get SMS-Maker to work, now...

First of all, you should check the connection of your cellphone and the communication between it and your computer as described above.
Alternatively, you can use SMS-Maker to check the cellphone connection. This is described in the Configuration section later.

If you tested the connection successfully, install SMS-Maker. Either start the setup and follow the instructions on your screen or unzip all files to an empty directory of your choice, depending on the package you downloaded before. That's it.


4. Configuration [back to top]

Now, start SMS-Maker. You'll see the main program window on your screen:

Main screen of SMS-Maker

Here, you can check your configurations and access all functions via menu. All required Folders (In, Out, Sent, Arc and Jobs) will be placed in the program directory by default at first startup.

4.1 Port and Speed settings [back to top]

First of all, we'll set the communication parameters for your cellphone. Choose Settings and Port and Speed from the main menu (or press STRG+P) to open this dialog:

Port and Speed settings

Choose your COM port and set the baudrate supported by your cellphone, then test the connection. If SMS-Maker is able to connect to the phone, it'll display a green message at the bottom of this window. Red messages mean there's something wrong...

Port and Speed settings tested successfully

If you can't get a nice, friendly and green message, vary the port speed until your cellphone is happy...
Please remember, your cellphone must be connected to a hardware serial port or to a virtual serial port, installed by a driver. So, if you can't get it to work, maybe there's no COM port available. Consult your cellphone documentation for more details on that or contact your local dealer...

4.2 Number of Service Center [back to top]

In order to send SMS messages from your cellphone, you'll need a so-called service center. This is a phone number in your provider's network, to which all SMS have to be send to. Usually, this number is pre-set in your cellphone and you don't need to set it in SMS-Maker. However, if you want to use a different number than the default one from your phone, select Settings and No. of Service Center from the menu (or press STRG+C) and enter it here:

enter the no. of your service center

Some providers need this number included in every SMS, even if you want to use the default one stored in your phone. If you experience problems sending SMS, check the box send empty Service Center number to cellphone here, otherwise leave it unchecked.

4.3 Sending SMS [back to top]

In order to let SMS-Maker automatically send SMS messages, you'll need to configure a directory for outgoing messages on your computer. This folder is created in the program directory by default but you can change it via this option. SMS-Maker will check this folder periodically for new messages to be send. Select Settings and Sending SMS from the menu or press CTRL+N to enter it.
Optionally you can choose if and in which folder processed messages will be archived in:

sending SMS settings

Furthermore, you can set the timing interval for sending SMS messages. This interval tells SMS-Maker how often it should check the outgoing directory for new messages. The check box sending SMS is active sets the status of SMS-Maker. If checked, SMS-Maker will poll for new messages nd sends them. If not, it won't ;-)) You can also set this from the program menu or from the context menu of SMS-Maker's icon in the taskbar.

Selecting Ignore Errors when sending SMS causes SMS-Maker to skip error messages that are being returned from your mobile phone (e.g. when trying to set message format - some manufacturers like Ericsson don't support setting message format to PDU or text mode). SMS-Maker will ignore these messages and try to send messages anyway. Otherwise SMS-Maker will abort sending SMS as soon an error occurs.


4.4 Job Control [back to top]

coming soon...

4.5 Logging [back to top]

SMS-Maker is able to log all SMS transactions to a log file (SMSMAKER.LOG in program directory). In this file, you can see when, what and to whom SMS-Maker sent SMS messages. To activate or deactivate logging, select Log SMS Transactions from the Settings menu or press STRG+L.

5. How to use [back to top]

With SMS-Maker, you can process messages in various ways:
5.1 Using the Message Browser [back to top]

Choosing Program and Message Browser (or pressing STRG-B) will cause the following window to open:



From here, you can manage your messages:


Furthermore, you can    forward,    edit or    delete any message in any folder. Click    to refresh any listing.


5.2 Send SMS manually [back to top]

Selecting Send SMS now! from the main menu bar will cause the following dialog to appear:



There're two fields to enter the recipient's phone number and the text you want to send. The phone number should be in international format, for example +491707331128 (that's my number):

+49 is the country code for Germany, use yours instead ;-), i.e. +1 or USA or +46 for Sweden etc...
170 is the area code respectively the provider's network code
7331128 is the cellphone number of the recipient

If you don't use international format, you must add a leading 0 (zero) to the area code, for example 01707331128.

Then, enter the text you want to send. SMS messages are limited to 160 characters. If you're using the unregistered version, SMS-Maker will add a short text to every message. That's why you will have less than 160 characters for your message. SMS-Maker shows you how long your text is and doesn't allow to enter more than 160 characters overall.

5.3 Send SMS messages automatically [back to top]

In order to send SMS messages automatically, you have to set up an outgoing directory and a timer interval. See section Configuration for further details. Then, activate sending of SMS messages by selecting Sending Active from the Program menu or by pressing CTRL+S. If sending of SMS is activ, the menu entry will be checked and the antenna pole in the program icon will turn into green.

SMS-Maker will now check your outgoing directory for new files to send. Since version 0.4, there's an ActiveX component included in SMS-Maker which makes creating these messages a breeze. You can use this component from any Windows developing environment which supports ActiveX objects (like Visual Basic, Delphi, etc.) or in VBA from any Office application. See section 6. Create SMS files with SMSMAKER.DLL for further details.

If SMS-Maker finds a file with the correct format in the outgoing directory, it'll send it automatically and delete it after sending it successfully (if an error occured, the file won't be deleted).

To use SMS-Maker on a network, just share this folder and give other computers the right to write files to it, it's that simple :-)



5.4 Pre-paid card info [back to top]

By choosing Program > Pre-paid card info... SMS-Maker will send a query to the service center, requesting your pre-paid card's credit status. Trying this with a regular phone will produce an error ('This is not a pre-paid card').

5.5 Recharge pre-paid card [back to top]

This options allows you to enter a recharge-code into the following dialog:



This code will be sent to the service center which will in return (and if the code correct of course) recharge the card's credit.


6. Create SMS files with SMSMAKER.DLL [back to top]

SMSMAKER.DLL includes a simple, easy-to-use object class with properties and methods to create SMS files from any other developing platform or Office application. It's mainly designed for developers who want to use SMS-Maker with their own program or on their website to send SMS messages.

You can also modify most settings of the SMS-Maker application, for example activate or deactivate sending of SMS messages, set the Service Center phone number or change the interval to check for new SMS files to be send.

To use the SMSMaker library, create an instance of the SMSMaker object class SMSFile. In VB for example, you can do that with the following code:


Dim SMSMaker Set SMSMaker = CreateObject("SMSMaker.SMSFile")

In ASP, just use the same piece of code. The only difference is refering to the built-in ASP Server object:


Dim SMSMaker Set SMSMaker = Server.CreateObject("SMSMaker.SMSFile")

To remove your object from memory after using it, just set it to nothing (same in VB and ASP):


Set SMSMaker = Nothing

For all subsequent properties and methods, I assume that you already created an instance of the SMSFile class as shown above.

6.1 Properties [back to top]

Property name: Version (read-only)
Property description: Returns the DLL's version and revision as a string.
Examples: in ASP:

Response.Write(SMSMaker.Version)

in VB:

MsgBox SMSMaker.Version

Property name: AppPath (read-only)
Property description: Returns the DLL's complete path.
Examples: in ASP:

Response.Write(SMSMaker.AppPath)

in VB:

MsgBox SMSMaker.AppPath

Property name: isRunning (read-only)
Property description: Returns, if SMS-Maker is running on your machine or the remote host. The application writes an entry in the INI file when launched and terminated. This way, the ActiveX component can determine if SMS-Maker is currently running.
Example:

if SMSMaker.isRunning then ... end if

Property name: RegisteredName (read-only)
Property description: Returns the registrant's name.
Example:

MsgBox SMSMaker.RegisteredName

Property name: RegisteredEMail (read-only)
Property description: Returns the registrant's eMail address.
Example:

Response.Write("If you have problems sending SMS messages, contact us at " & SMSMaker.RegisteredName)

Property name: ExpirationDate (read-only)
Property description: Returns the expiration date of SMS-Maker.
Example:

Debug.Print SMSMaker.ExpirationDate

Property name: INI
Property description: Returns or sets the INI file the DLL uses to read and save program settings. This is useful, if the DLL is saved in a different folder (or on a different computer) than the application. By changing this, you can point the DLL to the INI file the program is using and change the settings. For changing this value, use a complete local or UNC path.
Example:

SMSMaker.INI = "C:\Programs\SMSMaker\SMSMaker.ini" Response.Write(SMSMaker.INI)

Property name: OutgoingDirectory
Property description: Returns or sets the outgoing directory. In this directory all SMS files will be saved and the application will check this folder and send all files found here. Use complete local or UNC path to change it.
Example:

SMSMaker.OutgoingDirectory = "\\Server\C$\Programs\SMSMaker\Out" Response.Write(SMSMaker.OutgoingDirectory)

Property name: isSending
Property description: This property returns or sets the status of the application concerning automatic SMS sending. Return values are 'TRUE' for sending is active (application is checking the outgoing directory for new SMS messages to be send) or 'FALSE'.
To set this value, use '1' for activating, and '0' for deactivating SMS transactions.
Example:

X = SMSMaker.isSending SMSMaker.isSending = 1

Property name: Port
Property description: Returns or sets the COM port the application will use for connecting to the cellphone.
Example:

Response.write(SMSMaker.Port) SMSMaker.Port = 2

Property name: Speed
Property description: Sets or returns the baudrate used by the application to talk to the connected cellphone. To set this value, use only standard baudrates (2400, 4800, 9600, 14400, 19200, 38400, 57600).
Example:

MsgBox SMSMaker.Speed SMSMaker.Speed = 19200

Property name: ServiceCenter
Property description: Returns or sets the phone number of the provider's service center. Use international format or local number with leading 0 (before area code), no dashes, spaces or (back)slashes.
Example:

SMSMaker.ServiceCenter = "+49170760000" Response.Write(SMSMaker.ServiceCenter)

Property name: addEmptySCNumber
Property description: Some providers need a ’00’ instead of no service center number (only in PDU mode). This property returns or sets, if an empty SC number is included in messages or not. Use '1' to set it or '0' to ommit it.
Example:

If SMSMaker.addEmptySCNumber Then MsgBox "Empty Number will be send." SMSMaker.addEmptySCNumber = 1

Property name: logSMS
Property description: Returns or sets, if SMS transactions will be logged or not. Returns TRUE or FALSE. Use '1' or '0' to set it.
Example:

Response.Write(SMSMaker.logSMS) SMSMaker.logSMS = 0

Property name: OutTiming
Property description: Returns or sets the interval for checking the outgoing SMS directory for new messages (in seconds).
Example:

SMSMaker.OutTiming = 30 ... Response.Write("Your message will be send in between the next " & SMSMaker.OutTiming & " seconds.")


6.2 Methods [back to top]

Method name: CreateSMS(strRcpNumber, strMessageText [, strSMSFileName])
Method description: This is the method you're looking for ;-)) It creates an SMS file in your outgoing folder.
Method parameters: STRING strRcpNumber: The recipient's phone number
STRING strMessageText: The text of your message (max. 160 Characters)
optional STRING strFileName: Name of SMS file to save the message to. If no name is given, this method will create one from the date and time of the message. File extension must be .SMS, if no filename is given, it will be added.
Return value: TRUE or FALSE.
Examples:

X = SMSMaker.CreateSMS("+491707331128", "This is a test") Y = SMSMaker.CreateSMS("+491707331128", "Another test", "test.sms")

Method name: SaveChanges
Method description: This method saves all changed settings. With this method, you can permanently save any settings remotely from your application or web page. All changes will take effect immediately in SMS-Maker application. If you make any changes while using an instance of the SMSFile class and don't call this method, your changes will be lost after destroying it.
Method parameters: none
Return value: none
Example:

Call SMSMaker.SaveChanges


6.3 Error numbers and descriptions [back to top]

Here's a description of the various error that may occur when using the ActiveX DLL, just in case you want to do some error trapping in your own application and you want to know, what happened:

Err. No. Err. Message Err. description
1 <INI file> not found The specified INI file for application and DLL was not found. It's either not in the same directory as the DLL or you made a mistake when setting it. Check your path and filename and set the property <obj>.INI again.
2 COM port not found The COM port is net set in the INI file. Use property <obj>.Port to set it.
3 COM Speed not found There's no baudrate set in INI file. Use property <obj>.Speed to set it.
200 No number: Recipient number is empty This happens if you want to create an SMS file and idn't supply a recipient number.
201 No text: Message text is empty When saving an SMS file, you forgot to supply a message text.
202 Invalid format: Recipient number must start with '+' or '0' The recipient's number format is wrong. You must use international format, for example +491707331128 or local format with a leading zero, like 01707331128.
203 Invalid format: Recipient number can't contain spaces, dashes or (back)slashes The recipient's number format is wrong. Don't use spaces, dashes or slashes.
204 Message too long: Max. 160 characters for text to be send The message text is too long, max. allowed is 160 characters.
205 Wrong file extension: Use '.sms' only. The filename extension supplied is wrong. SMS-Maker accepts .sms only.

7. Tips & Tricks [back to top]

This sections describes some scenarios how you may want to use SMS-Maker. The most simple way is to use it on your own computer, with a cellphone connected to it. But you can also use it in a more sophisticated way, for example from your Office applications, over a local network or on a web server.

7.1 Using SMS-Maker over a local network [back to top]

The only problem when using SMS-Maker over a network connection is the path to the outgoing message directory. Since the application and the DLL use the same settings from an INI file, you have to take care of the correct path pointing to the location where you want to save all outgoing messages.

You can do this by either creating a new INI file for the DLL or by setting the INI and OutgoingDirectory properties before you save an SMS file from a remote computer.

Example:
If the cellphone is connected to a computer named myMachine, share the program folder on your network, for example as SMS-Maker. This way, you can access it with the name \\myMachine\SMS-Maker from other computers.
Then, copy the DLL to another computer and register it using the file register.bat in the program folder on the 'host' machine. Then, you either create a new INI file for the DLL (same location as the DLL itself) or just copy it from the host machine. If you copy it, you just change the OutDir entry to point to the network directory of the host, in this example it would be \\myMachine\SMS-Maker\Out.
If you don't want to copy any INI file, just set the INI and OutgoingDirectory properties after creating an instance of the object:


SMSMaker.INI="\\myMachine\SMS-Maker\smsmaker.ini" SMSMaker.OutgoingDirectory="\\myMachine\SMS-Maker\Out"

Then, simply create the message by using the CreateSMS method. All other settings will be taken from the specified INI file.


7.2 Using SMS-Maker with Office and VBA [back to top]

You can also use SMS-Maker from any Office application. You only have to create a userform with some textfields and buttons and write code to use the ActiveX DLL functions. I don't want to describe this in detail here, that's why I included a Word document to show you how to do it. Please open SMS-Maker-VBS-Sample.doc in the program folder.

In this document, there's a small icon in the toolbar that opens a dialog to send SMS messages from within Word. If you want to see how this is done, open the Visual Basic Editor in Word by using the menu or pressing ALT+F11.


7.3 Using SMS-Maker on a web server [back to top]

In order to use SMS-Maker on your web server, install the program and the DLL on it. Then, start the program and make all needed settings for your cellphone and activate sending.

From your ASP page, use the ActiveX component to create SMS files:


Dim SMSMaker, RcpNo, MsgText, tmpStatus, X ' create a class instance: Set SMSMaker = Server.CreateObject("SMSMaker.SMSFile") ... ' Code for setting the variables (i.e. from form fields or programmatically) ' Save the current activation status temporarily if SMSMaker.isSending then tmpStatus = 1 else tmpStatus = 0 end if ' The following two lines are to make sure that ' SMS-Maker will be active for sending the message: SMSMaker.isSending = 1 SMSMaker.saveChanges ' Now create the message: X = SMSMaker.CreateSMS(RcpNo, MsgText) if not X then ... ' Code for error reporting end if ' Restore previous Status SMSMaker.isSending = tmpStatus SMSMaker.saveChanges ' Destroy SMS-Maker instance Set SMSMaker = Nothing

Since both the program and the DLL reside on the same computer and use the same INI, you don't need to take care of the settings. The only thing you may want to make sure is to activate SMS-Maker before creating SMS files.
With this, you should be able to create a form as the user-interface and create SMS-files from the user's input.


8. How to get the latest version [back to top]

The latest information on SMS-Maker and downloads are available from http://www.way-x.de/smsmaker


9. Contact the author [back to top]

If you have any problems using SMS-Maker or question concerning setup and use, feel free to drop a message to o.witte@way-x.de. But please, don't ask me specific question about cellphone models... I'm not an expert in this and didn't test many phones, yet, so I won't be able to answer these questions.

But if you tested my program successfully with SMS-Maker, I'd appreciate a short note about your cellphone model and how to set it up. This way, you can help me to improve this program and get a free, unlimited version... ;-))

© Oliver Witte for WAY-X GmbH, 2002. All rights reserved, all wrongs reversed.