Introduction
The article will give you the very basic thing for sending SMS from your computer to any phone over GSM modem.
Using the Code
#region Private Declaration for the main thread
private Thread m_MailThread = null;
#endregion
#region Constructor
public MySmsService()
{
InitializeComponent();
}
#endregion
#region OnStart Event of the service
protected override void OnStart(string[] args)
{
EvtlgSmsService.WriteEntry("MySmsService started!!");
if (m_MailThread == null)
m_MailThread = new Thread(new ThreadStart(SMSThread));
m_MailThread.Start();
}
#endregion
#region OnStop Event of the service
protected override void OnStop()
{
EvtlgSmsService.WriteEntry("MySmsService stopped !!.");
if (serialPort1.IsOpen)
serialPort1.Close();
m_MailThread.Abort();
}
#endregion
#region Sms Main thread
private void SMSThread()
{
do
{
Thread.Sleep(30000);
SendSMS();
}
while (1 == 1);
}
#endregion
#region Send Sms function
private void SendSMS()
{
SendSMS("+91000000000", "Hello This is a test message");
}
#endregion
#region Function for sending the Sms
private void SendSMS(String phoneNumber, String message)
{
try
{
if (!serialPort1.IsOpen)
serialPort1.Open();
serialPort1.Write("AT+CMGF=1" + (Char)13);
serialPort1.Write(String.Format("AT+CMGS=\"{0}\"" + (Char)13, phoneNumber));
serialPort1.Write(String.Format("{0}" + (Char)26 + (Char)13, message));
EvtlgSmsService.WriteEntry("SMS sent successfully");
}
catch (Exception e)
{
EvtlgSmsService.WriteEntry("SMS sending failed:" + e.Message);
}
}
#endregion
}
Just cut the above code and paste it in the Service
class of your Windows service. Add a serial port component and an event log in the designer. Connect the GSM phone or modem to your computer. Check to which port the modem connects - that port should be given in the SerialPort1.portname
. You should also make sure that your modem should support commands in the text mode. Check your modem by using the hyperterminal with the AT commands.
History
- 13th December, 2007: Initial post