You are on page 1of 42

SMS Based Information System

DDU Profile

Dharmsinh Desai University, earlier known as D. D. I. T., was established in June 1968 by Late Dharmsinh Desai (Member of Parliament), with the view to provide quality education in Engineering and Technology to the youth of Gujarat and was affiliated to Gujarat University, Started with Diploma and Degree course in Chemical Engineering it has grow as a best Institute of Gujarat offering Graduates and Post-Graduates level courses in various disciplines and ultimately has become a State University in the year 2005. The institute became autonomous in 1999 with approval from UGC and Government of Gujarat and became a Deemed University accredited by N. B. A. in the year 2000. This University offers Graduates and Post-Graduates level courses in various disciplines and Master of Computer Applications (MCA) is being run under Facility of Technology. The University has also received ISO 9001:2000 Certification from ISOQAR. Dharmsinh Desai University believes not only in providing quality education, but also in overall development of its students in the form of, to be disciplined, socially accountable to the society and responsible citizen of our country. Dharmsinh Desai University is being guided by the vision of its founding Chairman Late Shri Dharmsinh Desai, the present Chairman Dr. Narendra Desai Under the strong and dynamic leadership of Vice-Chancellor Dr. H.M. Desai.

23

2008

SMS Based Information System

Project Name

SMS Based Information System

Project Description:

This System is the knowledge based Remote Application which includes Database of information, The User can get the Information on their mobile handsets by a single SMS. e.g. User sends SMS to find the meaning of Culture word then Our System will Response by sending the meaning of that word. (MCA-60)

Development Team: Jaldip G. Vala Chintan G. Kanabar (MCA-23) Nishant P. Shah (MCA-47) Internal Guide : Mr. J. J. Shah Lecturer, MCA Department, DDU Nadiad. Platform :

1. Visual Studio .NET 2005 (Enterprise Architecture / Enterprise Developer / Professional) VB.NET. (SP2)

2. Microsoft Windows XP Professional 3. mCore Messaging Tools 4. MS Access Methodology : OOSD

Tools Used : 1) Microsoft Visio 2003 2) Nokia AT commands

23

2008

Project Profile

SMS Based Information System

Planning
Project Definition: This system is the knowledge based Remote Application which includes database of information. The user can get the information on their mobile handsets by a single SMS. e.g. User sends SMS as Dignity to our System then System will Response by sending the meaning of that word. . Preliminary Investigation: Project Feasibility: Technical Feasibility:This project requires one computer connected through Mobile phone which has connecting facility. Economic Feasibility:This project is economically feasible as no new computers or hardware has to be installed in the computer. Operational Feasibility:As we are using VB.NET 2005 which provides a very good look and feel to the user and SMS Based Information System is used by all the peoples who wants to get information via SMS from their mobile phones
2008

23

SMS Based Information System

Develop Work plan:

Activity Chart

ID 1 2 3 4 5 6

Task Name Requirement and Analysis Design Coding Testing Implementation Documentation

Start 7/7/2008 7/30/2008 8/22/2008 10/24/2008 11/7/2008 7/29/2008

Finish 7/29/2008 8/21/2008 10/23/2008 11/6/2008 11/17/2008 11/17/2008

Duration 17d 17d 45d 10d 7d 80d

Jul 2008
7/6 7/13 7/20 7/27 8/3

Aug 2008
8/10 8/17 8/24 8/31

Sep 2008
9/7 9/14 9/21 9/28

Oct 2008
10/5 10/12 10/19 10/26

23

2008
Nov 2008
11/2 11/9

SMS Based Information System

System Analysis
Requirement Determination: 1) Use Case Diagram
2008
Sender Sends Message Receive Message
User

Perform Search

System

Send Reply

23

SMS Based Information System

2) Sequence Diagram

User

Mobile

System

Search

Send Message

Pass Message

Query Message

Generate Pass Query

Send Reply

Send Reply to User

23

2008

SMS Based Information System

3) Collaboration Diagram

User
6:Send Reply 1:Send Message

Mobile
2:Pass Message

5:Send Reply

System
4:Pass Result 3:Query Message

Search

23

2008

SMS Based Information System

Requirement Specification:
2008

Hardware Requirement:
Main Memory: 256 MB RAM or More. Secondary Me mory : 40 GB Hard drive. Processor: above 1.0 GHz Intel or AMD processor Any Nokia Connectivit y enabled Mobile Connecting Cable like FSBUS cable

Software Requirement:
Visual Studio 2005 MS Access mCore Messaging Librar y and Tools Nokia PC Suite .NET Framework to execute Application

23

SMS Based Information System

Features of Tools being used


Visual Basic.NET:
Microsoft Visual Basic (called VB) is a new programming language designed for building a wide range of enterprise applications that run on the .NET Framework. An evolution of Microsoft Visual Basic, Visual Basic .NET is simple, modern, type safe, and object oriented. Visual Basic .NET code is compiled as managed code, which means it benefits from the services of the common language runtime. These services include language interoperability, garbage collection, enhanced security, and improved versioning support. Visual Basic .NET leverages the Microsoft .NET Framework to provide a rich set of built-in types that you can use when building your own classes. A subset of these types can be used for interacting with other .NET languages. The .NET Framework also provides an extensive class library that you can use and extend with Visual Basic .NET. As with all object-oriented languages, Visual Basic .NET promotes reuse through classes. A class defines a type as well as the methods and properties that are used to interact with instances of the type. For example, a class that represents an animal might include methods that represent the animals activities (such as eating and sleeping) and properties that represent its characteristics (such as color or size). The main design goal of Visual Basic .NET is simplicity rather than pure power. You do give up a little processing power, but you get cool stuff like type safety and automatic garbage collection in return. Visual Basic .NET can make your code more stable and productive overall, meaning that you can more than make up that lost power in the long run. Visual Basic .NET offers several key benefits for programmers: o Simplicity o Consistency o Modernity

23

2008

SMS Based Information System


o o o o o o Object-orientation Type-safety Scalability Version support Compatibility Flexibility

mCore Messaging Tools: mCore .NET SMS Library is a powerful and easy to use class library that can be used to build powerful .NET applications for mobile messaging using GSM mobile phones or GSM modems connected to serial port or infrared port. Using mCore .NET SMS Library in your applications allows you to:

Send text messages Read incoming text messages Send WAP Push over SMS Send vCard over SMS Send vCalendar over SMS Set various messaging and network parameters (PIN, SMSC, Message Memory etc) Read modem and network information (Manufacturer, IMEI, Model, Signal Strength etc)

Rich set of properties, methods and its compatibility with wide range of GSM mobile phones and GSM modems makes mCore .NET SMS Library the best choice for any type of mobile messaging application. Key Features: 1. Send Text Messages

Send text messages by simply specifying the destination mobile number and the text message. Send text messages with delivery report request. Can send 160 character messages with default 7-bit character encoding (as per ETSI GSM 03.38) and 140 character messages with 8-bit encoding. Can send 70 character messages in international languages using 16-bit Unicode (UCS2) encoding. Allows delivery format selection for long messages (e.g. Truncate, Split, Concatenate and Formatted Split). Can send flash (alert) messages that are immediately displayed on destination phone screen. Specify validity period of the text message. Allows changing of SMSC stored in modem or phone. Supports destination numbers and SMSC number in international as well as national format. Allows setting of minimum time delay interval two consecutive messages to avoid delivery failure during a network busy period.

23

2008

SMS Based Information System

Specify maximum number of retries in case of delivery failure when sending text message.

2. Send WAP Push


Send WAP Push (Service Indication) over SMS through GSM Modem or Phone by specifying URL and text message as per WAP-167-ServiceInd-20010731-a specification. Option to specify action type (e.g. signal-low, signal-medium, signal-high etc). Option to specify content created or last modified date and time. Option to specify si-expires attribute i.e. a date and time when the WAP Push link will expire.

3. Send vCard

Send vCard over SMS through GSM Modem or Phone by specifying Name, Home Contact Details, Business Contact Details etc as vCard version 2.1 specification. Option to specify Home Phone, Business Phone & Mobile Phone numbers separately. Option to specify Home Street Address and Business Street Address separately. Option to specify other vCard details viz. Email, Website, Comment etc.

4. Send vCalendar

Send vCalendar over SMS through GSM Modem or Phone by specifying Event Description & Summary, Event Location, Start Date & Time, End Date & Time etc as per vCalendar version 1.0 specification. Option to specify Event Date & Time or Event Duration. Option to specify Event description and/or Event summary. Automatically picks up GMT Time-Zone settings of the sending computer to ensure that the vCalendar is saved in recipient's mobile device as per its Time-Zone settings.

5. General Features

All members (properties & methods) that require serial communication are completely thread safe and are queued inside the library for sequential execution. Extensive use of enumerators to simplify programming. Well categorized and structured exceptions. Connect to GSM Modem or Phone through physical serial port or virtual serial port (e.g. Infrared, USB to Serial Converter, Bluetooth etc). Specify serial communication parameters like COM Port, Baud Rate, Stop Bits, Parity, Flow Control etc. Specify PIN for connecting to network using PIN protected SIM card. Read various network information (e.g. GSM Signal Strength, Network Identification etc) Extensive error handling with error codes and descriptions to easily identify error cause.

23

2008

SMS Based Information System


Option to selectively display error message box with customization of message box title. Log option with option to log only error messages or logging of errors as well as status. Automatically checks if modem can send messages in PDU mode. Send modem initialization AT commands
2008

System Design

1) Activity Diagram:

23

SMS Based Information System


Request Sent by User Request sent to the System Performed Search

Send the Response to mobile

Send Error Message to mobile

Send to user

23

2008

SMS Based Information System

2) Database Design
2008

Table Name:

Dictionary

Field Name Word Description

Data Type Char Char

Size 25 300

Constrains Primary Key Not Null

23

SMS Based Information System

User Interface: 1) Settings


2008

23

SMS Based Information System

2) Sends SMS

23

2008

SMS Based Information System

3) Incoming SMS

23

2008

SMS Based Information System

Coding:

Public Class frmMain Private WithEvents objSMS As New mCore.SMS Private strMyAppName As String = "mCore (VB.NET Demo)" Private blnFormLoaded As Boolean = False Private Sub frmMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed objSMS.Dispose() objSMS = Nothing End Sub Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer

cboPort.Items.Add("Select Port") For i = 1 To 256 cboPort.Items.Add("COM" & i.ToString) Next cboPort.SelectedIndex = 0 With cboBaudRate .Items.Add("110") .Items.Add("300") .Items.Add("1200") .Items.Add("2400") .Items.Add("4800") .Items.Add("9600") .Items.Add("14400")

23

2008

Implementation

SMS Based Information System


.Items.Add("19200") .Items.Add("38400") .Items.Add("57600") .Items.Add("115200") .Items.Add("230400") .Items.Add("460800") .Items.Add("921600") End With cboBaudRate.SelectedIndex = cboBaudRate.FindString(CType(objSMS.BaudRate, Integer).ToString)

With cboDataBits .Items.Add("4") .Items.Add("5") .Items.Add("6") .Items.Add("7") .Items.Add("8") End With cboDataBits.SelectedIndex = cboDataBits.FindString(CType(objSMS.DataBits, Integer).ToString) With cboParity .Items.Add("None") .Items.Add("Odd") .Items.Add("Even") .Items.Add("Mark") .Items.Add("Space") End With cboParity.SelectedIndex = CType(objSMS.Parity, Integer) With cboStopBits .Items.Add("1") .Items.Add("2") .Items.Add("1.5") End With cboStopBits.SelectedIndex = CType(objSMS.StopBits, Integer) - 1 With cboFlowControl .Items.Add("None") .Items.Add("Hardware") .Items.Add("Xon/Xoff") End With 23

2008

SMS Based Information System


cboFlowControl.SelectedIndex = CType(objSMS.FlowControl, Integer) txtSendDelay.Text = (objSMS.SendDelay / 1000).ToString txtSendRetry.Text = objSMS.SendRetry.ToString txtTimeout.Text = (objSMS.Timeout / 1000).ToString chkDisableCheckPIN.Checked = objSMS.DisableCheckPIN objSMS.ReadIntervalTimeout = 100 objSMS.DelayAfterPIN = 20000 chkIncomingCall.Checked = objSMS.IncomingCallIndication objSMS.Queue.Enabled = True chkQueue.Checked = objSMS.Queue.Enabled With cboMsgMemory .Items.Add("SIM") .Items.Add("Phone") .Items.Add("SIM+Phone") End With cboMsgMemory.SelectedIndex = 0
2008

With cboLongMsg .Items.Add("Truncate") .Items.Add("Simple Split") .Items.Add("Formatted Split") .Items.Add("Concatenate") End With cboLongMsg.SelectedIndex = CType(objSMS.LongMessage, Integer) With cboEncoding .Items.Add("Default Alphabet") .Items.Add("ANSI (8-Bit)") .Items.Add("Unicode (16-Bit)") End With cboencoding.SelectedIndex=CType(objSMS.Encoding, Integer) lblNoteSMS.Text = "NOTE: For non-english language messages you must select encoding type as Unicode (16-Bit)." & vbCrLf & "Use a suitable keyboard/IME to type non-english messages." txtValidity.Text = "24" With cboValidity 23

SMS Based Information System


.Items.Add("Min") .Items.Add("Hour") .Items.Add("Day") .Items.Add("Week") End With cboValidity.SelectedIndex = 1 With cboSMSQPriority .Items.Add("High") .Items.Add("Normal") .Items.Add("Low") End With cboSMSQPriority.SelectedIndex = 1 chkSMSQueue.Checked = False cboSMSQPriority.Enabled = False lblSMSQPriority.Enabled = False

End Sub Private Sub cmdConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdConnect.Click Try If cboPort.SelectedIndex = 0 Then MsgBox("Select a serial port", MsgBoxStyle.Critical, strMyAppName) Exit Sub End If cmdConnect.Text = "Please Wait..." cmdConnect.Enabled = False cmdDisconnect.Enabled = False SetCommParameters() If objSMS.Connect() Then cmdConnect.Enabled = False cmdDisconnect.Enabled = True txtSMSC.Text = objSMS.SMSC 23

2008

SMS Based Information System

MsgBox("Connection successful", MsgBoxStyle.Information, strMyAppName) Else MsgBox("Connection error", MsgBoxStyle.Critical, strMyAppName) cmdConnect.Enabled = True cmdDisconnect.Enabled = False End If MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try Try cmdConnect.Text = "Connect" If objSMS.IsConnected Then cmdConnect.Enabled = False cmdDisconnect.Enabled = True Else cmdConnect.Enabled = True cmdDisconnect.Enabled = False End If Catch ex As Exception End Try End Sub

23

2008

Select Case objSMS.MessageMemory Case mCore.SMS.EnumMessageMemory.SM : cboMsgMemory.SelectedIndex = 0 Case mCore.SMS.EnumMessageMemory.ME : cboMsgMemory.SelectedIndex = 1 Case mCore.SMS.EnumMessageMemory.MT : cboMsgMemory.SelectedIndex = 2 End Select

SMS Based Information System


Private Sub cmdDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDisconnect.Click cmdDisconnect.Text = "Please Wait..." cmdDisconnect.Enabled = False cmdConnect.Enabled = False Try objSMS.Disconnect() cmdConnect.Enabled = True cmdDisconnect.Enabled = False Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try cmdDisconnect.Text = "Disconnect" End Sub Private Sub cmdRefreshSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRefreshSettings.Click Try If cboPort.SelectedIndex = 0 Then MsgBox("Select a serial port", MsgBoxStyle.Critical, strMyAppName) Exit Sub End If cmdRefreshSettings.Text = "Please Wait..." cmdRefreshSettings.Enabled = False cmdApplySettings.Enabled = False objSMS.PIN = txtPIN.Text.Trim chkDisableCheckPIN.Checked = objSMS.DisableCheckPIN txtSendRetry.Text = objSMS.SendRetry.ToString 23

2008

SMS Based Information System


txtSendDelay.Text = (objSMS.SendDelay / 1000).ToString txtTimeout.Text = (objSMS.Timeout / 1000).ToString System.Windows.Forms.Application.DoEvents() SetCommParameters() txtSMSC.Text = objSMS.SMSC Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try cmdRefreshSettings.Text = "Refresh" cmdRefreshSettings.Enabled = True cmdApplySettings.Enabled = True End Sub Private Sub cmdApplySettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdApplySettings.Click Try If cboPort.SelectedIndex = 0 Then MsgBox("Select a serial port", MsgBoxStyle.Critical, strMyAppName) Exit Sub End If cmdApplySettings.Text = "Please Wait..." cmdApplySettings.Enabled = False cmdRefreshSettings.Enabled = False objSMS.PIN = txtPIN.Text.Trim objSMS.SendDelay = CInt(CDbl(txtSendDelay.Text) * 1000) objSMS.SendRetry = CInt(txtSendRetry.Text) 23
2008

SMS Based Information System

objSMS.Timeout = CLng(CDbl(txtTimeout.Text) * 1000) SetCommParameters() objSMS.SMSC = txtSMSC.Text Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try cmdApplySettings.Text = "Apply" cmdApplySettings.Enabled = True cmdRefreshSettings.Enabled = True End Sub

Private Sub cboMsgMemory_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboMsgMemory.SelectedIndexChanged If cboPort.SelectedIndex = 0 Then tabMessaging.SelectedIndex = 0 Exit Sub End If Try cboMsgMemory.Enabled = False lblMsgCount.Text = "Setting message memory... Please wait..." System.Windows.Forms.Application.DoEvents() SetCommParameters() Select Case cboMsgMemory.SelectedIndex Case 0 : objSMS.MessageMemory = mCore.SMS.EnumMessageMemory.SM 23

2008

SMS Based Information System


Case 1 : objSMS.MessageMemory = mCore.SMS.EnumMessageMemory.ME Case 2 : objSMS.MessageMemory = mCore.SMS.EnumMessageMemory.MT End Select Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try lblMsgCount.Text = vbNullString cboMsgMemory.Enabled = True End Sub Private Sub cmdInboxRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdInboxRefresh.Click RefreshInbox() End Sub Private Sub lstInbox_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstInbox.DoubleClick Dim i As Integer, objInbox As mCore.Inbox = objSMS.Inbox Dim Msg As mCore.Message Try For i = 1 To lstInbox.Items.Count Msg = objInbox.Message(i) If lstInbox.Items.Item(i - 1).Selected Then MsgBox(Msg.TimeStampRFC & vbCrLf & vbCrLf & Msg.Text, , "From: " & Msg.Phone) Exit For End If Next If lstInbox.Items.Item(i - 1).Checked Then lstInbox.Items.Item(i - 1).Checked = False 23
2008

SMS Based Information System


End If Catch ex As mCore.SMSReadException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try End Sub Private Sub cmdMsgDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMsgDelete.Click Dim i As Integer Try cmdMsgDelete.Enabled = False If MsgBox("Delete selected message(s)?", MsgBoxStyle.YesNo, strMyAppName) = MsgBoxResult.Yes Then lblMsgCount.Text = "Deleting selected messages..." For i = lstInbox.Items.Count To 1 Step -1 If lstInbox.Items.Item(i - 1).Checked Then objSMS.Inbox.Message(i).Delete() End If Next lstInbox.Items.Clear() FillInboxList() End If lblMsgCount.Text = "Total Messages: " & objSMS.Inbox.Count If objSMS.Inbox.Count > 0 Then lblMsgCount.Text = lblMsgCount.Text & vbCrLf & "(double click on a message to view)"

23

2008

SMS Based Information System


Catch ex As mCore.SMSDeleteException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try cmdMsgDelete.Enabled = True End Sub Private Sub RefreshInbox() Dim objInbox As mCore.Inbox = objSMS.Inbox() SetCommParameters() lblMsgCount.Text = "Reading messages... Please wait..." System.Windows.Forms.Application.DoEvents() Try cmdInboxRefresh.Enabled = False cmdMsgDelete.Enabled = False cboMsgMemory.Enabled = False objInbox.Refresh(mCore.Inbox.EnumMessageType.ReceivedUnreadMessages) objInbox.Refresh(mCore.Inbox.EnumMessageType.ReceivedReadMessages) Catch ex As mCore.SMSReadException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try
2008

23

SMS Based Information System


Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try lblMsgCount.Text = "Total Messages: " & objSMS.Inbox.Count If objSMS.Inbox.Count > 0 Then lblMsgCount.Text = lblMsgCount.Text & vbCrLf & "(double click on a message to view)" End If cmdMsgDelete.Enabled = True cmdInboxRefresh.Enabled = True cboMsgMemory.Enabled = True End Sub Private Sub FillInboxList() Dim i As Integer Dim Msg As mCore.Message, objInbox As mCore.Inbox = objSMS.Inbox Try i=0 For Each Msg In objInbox With lstInbox .Items.Add(Msg.Phone) .Items.Item(i).SubItems.Add(Msg.Text) .Items.Item(i).SubItems.Add(Msg.TimeStamp.ToString) i += 1 End With Next
2008

Catch ex As mCore.SMSReadException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try

23

SMS Based Information System


Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try End Sub
2008

Private Sub objSMS_NewDeliveryReport(ByVal sender As Object, ByVal e As mCore.NewDeliveryReportEventArgs) Handles objSMS.NewDeliveryReport If e.Status Then MsgBox("MESSAGE DELIVERED" & vbCrLf & vbCrLf & "TO: " & e.Phone & vbCrLf & vbCrLf & "SENT DATE/TIME: " & e.SentTimeStamp.ToString & vbCrLf & vbCrLf & "DELIVERY DATE/TIME: " & e.DeliveryTimeStamp & vbCrLf & vbCrLf & "[Message Ref.: " & e.MessageReference.ToString & "]", MsgBoxStyle.Information, "DELIVERY REPORT...") Else MsgBox("MESSAGE DELIVERY FAILED" & vbCrLf & vbCrLf & "TO: " & e.Phone & vbCrLf & vbCrLf & "SENT DATE/TIME: " & e.SentTimeStamp.ToString & vbCrLf & vbCrLf & "REPORT DATE/TIME: " & e.DeliveryTimeStamp & vbCrLf & vbCrLf & "[Message Ref.: " & e.MessageReference.ToString & "]", MsgBoxStyle.Critical, "DELIVERY REPORT...") End If End Sub Private Sub objSMS_NewIncomingCall(ByVal sender As Object, ByVal e As mCore.NewIncomingCallEventArgs) Handles objSMS.NewIncomingCall MsgBox("Incoming call from: " & e.CallerID, MsgBoxStyle.Information, "INCOMING CALL...") End Sub Private Sub chkDeliveryReport_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkDeliveryReport.CheckedChanged Try chkDeliveryReport.Enabled = False SetCommParameters() 23

SMS Based Information System


objSMS.DeliveryReport = chkDeliveryReport.Checked Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) chkDeliveryReport.Checked = objSMS.DeliveryReport End Try chkDeliveryReport.Enabled = True End Sub Private Sub cboLongMsg_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboLongMsg.SelectedIndexChanged Try objSMS.LongMessage = CType(cboLongMsg.SelectedIndex, mCore.SMS.EnumLongMessage) Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Catch ex As Exception End Try End Sub Private Sub cboEncoding_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboEncoding.SelectedIndexChanged Try objSMS.Encoding = CType(cboEncoding.SelectedIndex, mCore.SMS.EnumEncoding) Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) End Try End Sub

23

2008

SMS Based Information System


Private Sub cmdSendMsg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSendMsg.Click Dim strSendResult As String, strKey As String If txtPhone.Text.Trim.Length = 0 Then MsgBox("Destination phone number is required!", vbExclamation, strMyAppName) Exit Sub End If cmdSendMsg.Text = "Sending SMS...Please Wait..." cmdSendMsg.Enabled = False System.Windows.Forms.Application.DoEvents() Try SetCommParameters() objSMS.Validity = txtValidity.Text & cboValidity.Text.Substring(0, 1) If chkSMSQueue.Checked Then strKey = objSMS.SendSMSToQueue(txtPhone.Text, txtMessage.Text, CType(cboSMSQPriority.SelectedIndex + 1, mCore.SMS.EnumQueuePriority), chkAlert.Checked) lblQueueCount.Text = "Messages in queue: " & objSMS.Queue.Count.ToString MsgBox("Message sent to queue!" & vbCrLf & vbCrLf & "[Message Queue Key: " & strKey & "]", MsgBoxStyle.Information, strMyAppName) Else strSendResult = objSMS.SendSMS(txtPhone.Text, txtMessage.Text, chkAlert.Checked) MsgBox("Message sent!" & vbCrLf & vbCrLf & "[Message Ref.: " & strSendResult & "]", MsgBoxStyle.Information, strMyAppName) End If Catch ex As mCore.SMSSendException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try Catch ex As Exception 23
2008

SMS Based Information System


MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) Exit Try End Try cmdSendMsg.Text = "Send Message" cmdSendMsg.Enabled = True End Sub Public Sub SetCommParameters() Try If Not objSMS.IsConnected And cboPort.SelectedIndex > 0 Then objSMS.Port = cboPort.Text objSMS.BaudRate = CType(CInt(cboBaudRate.Text), mCore.SMS.EnumBaudRate) objSMS.DataBits = CType(CInt(cboDataBits.Text), mCore.SMS.EnumDataBits) objSMS.Parity = CType(cboParity.SelectedIndex, mCore.SMS.EnumParity) objSMS.StopBits = CType(cboStopBits.SelectedIndex + 1, mCore.SMS.EnumStopBits) objSMS.FlowControl = CType(cboFlowControl.SelectedIndex, mCore.SMS.EnumFlowControl) objSMS.PIN = txtPIN.Text objSMS.DisableCheckPIN = chkDisableCheckPIN.Checked End If Catch ex As mCore.GeneralException MsgBox(ex.Message, MsgBoxStyle.Critical, strMyAppName) End Try End Sub
2008

Private Sub chkIncomingCall_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkIncomingCall.CheckedChanged chkIncomingCall.Enabled = False Try objSMS.IncomingCallIndication = chkIncomingCall.Checked Catch ex As Exception Exit Try 23

SMS Based Information System


End Try chkIncomingCall.Checked = objSMS.IncomingCallIndication chkIncomingCall.Enabled = True End Sub
2008

Private Sub chkSMSQueue_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkSMSQueue.CheckedChanged If chkSMSQueue.Checked Then cboSMSQPriority.Enabled = True lblSMSQPriority.Enabled = True Else cboSMSQPriority.Enabled = False lblSMSQPriority.Enabled = False End If End Sub Private Sub objSMS_QueueSMSSent(ByVal sender As Object, ByVal e As mCore.QueueSMSSentEventArgs) Handles objSMS.QueueSMSSent Control.CheckForIllegalCrossThreadCalls = False lblQueueStatus.Text = "" lblQueueCount.Text = "Messages in queue: " & objSMS.Queue.Count.ToString Control.CheckForIllegalCrossThreadCalls = True Windows.Forms.Application.DoEvents() If e.ErrorCode > 0 Then MsgBox("Message sending from queue failed to " & e.DestinationNumber & vbCrLf & "[Queue Message Key: " & e.QueueMessageKey & "]" & vbCrLf & "ERROR " & e.ErrorCode.ToString & ": " & e.ErrorDescription, MsgBoxStyle.Critical, "Message Sending FAILED") Else MsgBox("Message from queue sent to: " & e.DestinationNumber & vbCrLf & "[Queue Message Key: " & e.QueueMessageKey & "]", MsgBoxStyle.Information, "Message SENT") End If End Sub Private Sub objSMS_QueueSMSSending(ByVal sender As Object, ByVal e As mCore.QueueSMSSendingEventArgs) Handles objSMS.QueueSMSSending Control.CheckForIllegalCrossThreadCalls = False lblQueueStatus.Text = "Sending to:" & e.DestinationNumber & vbCrLf & "[Key:" & e.QueueMessageKey & "]" Control.CheckForIllegalCrossThreadCalls = True 23

SMS Based Information System


Windows.Forms.Application.DoEvents() End Sub Private Sub cmdClearQueue_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClearQueue.Click objSMS.Queue.Clear() Control.CheckForIllegalCrossThreadCalls = False lblQueueCount.Text = "Messages in queue: " & objSMS.Queue.Count.ToString Control.CheckForIllegalCrossThreadCalls = True Windows.Forms.Application.DoEvents() End Sub Private Sub chkDisableCheckPIN_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkDisableCheckPIN.CheckedChanged objSMS.DisableCheckPIN = chkDisableCheckPIN.Checked End Sub

Private Sub grpPortSettings_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles grpPortSettings.Enter End Sub End Class

23

2008

SMS Based Information System

User Manual
This SMS Based Information System is help in many areas if we take it to at Enterprise world, This System simply serve the user to getting information at a single SMS, Like, If User want to find the meaning of any word from dictionary then He / She has to type Simple Message from their mobile phone that DIC WORD and send that message to our given number and then this system replying you with the meaning of the word.
2008

23

SMS Based Information System


This systems options are shown in the following figure and also explain the all the field of that form.

23

2008

SMS Based Information System

Buttons:

Connects:

when all fields has been filled and we apply the settings then press this button Program simply connects the computer with the mobile phones Refresh will simply Refreshing all the settings

Refresh:

Disconnect: when user want to disconnect this button is used. Apply: When user set all settings by this button user can apply the settings.

Tabs:

Settings: This tab is used for settings the mobile and computer connections Incoming SMS: This tab is give the information related to Incoming SMS Send SMS: This Tab shows the control regarding sending the SMS

23

2008

Port: When we connect the mobile it shows the connected port Baud Rate: It is selecting the baud rate of mobile modem Data bit: It is used to show the how the packets of the bits default value is 8. Parity: it is used here for the checking the Parity technique for error handling Stop Bits: it is for the last bit which shows the last bit Flow Control: This is the flow control techniques like hardware or controlled by some other PIN: It automatically takes the PIN of the mobile phone SMSC: It shows SMS Centre number Send Delay: It shows the how many minutes u want to delay the message Send Retry: If the sending is fail then how many times u retry Timeout: If the message is time out then message is not sends

SMS Based Information System

Phone number: For Entering the Phone Number Text Message: For typing the text message Message Delivery Report: If admin wants the delivery report then check this check button Long Message: Here this combo box having different types of messaging Schemes like Short Message, Long Message or Concatenate message Encoding: This shows the different Encoding Schemes like Unicode-16 bits, 8-bits Validity Period: This is used to set the Validity period of the message Message Queuing: if admin want to Message Queuing facility then it must be checked

23

2008

SMS Based Information System

Message Memory: This Combo Box is used to select the Storage Device to store the Received messages, it has three values that are SIM, Memory Card, and SIM+Memory card both. Incoming Message Data Grid: Its having 3 fields that are from which number we receive the message, and the content of the message, and the date and time of the Receiving messages

23

2008

SMS Based Information System

1) The system should be connected to the Internet and can transmit the messages FREE. 2) With proper use of indexes in the Database design the searching process can be made faster.

3) In the Application mCore is the demo version. It can be upgraded & buy the full Version to get the full services for the lifetime

23

2008

Future Enhancements

SMS Based Information System

Bibliography

Reference of the books


VB.net:

Microsoft Visual Basic.NET Mickey Williams - Microsoft Press

Reference of websites

www.msdn.microsoft.com www.mcorelib.com www.getacoder.com www.nokia.asia.com

Other resources
MSDN Library - 2005

23

2008