Download ActiveXperts SMS Messaging Server 5.0  (7590 KB - .exe file)
Case studies - How SMS Messaging Server is used by existing customers
Case Study - St. Joseph College and ActiveXperts SMS Messaging Server
1. Background
2. Problem Statement
3. Goals of the new System
4. ActiveXperts SMS Messaging Solution
1. Background
St. Joseph College is an educational secundary school for boys and girls. The age of the students range from 12-19.
St. Joseph College has 1500 students, divided over 3 different locations.
All students, teachers, computers etc. are part of one single Active Directory domain: STJOSEPH.DOM. The Active Directory is not accessible from the Internet.
Each student has a Mobile Number defined in Active Directory, as well as an external e-mail address.
St. Joseph College has a system to notify student via e-mail for special things, for instance:
- When a teacher has become sick and lessons are cancelled;
- When a lesson is set to a different time;
- When a lesson is teached on a different location;
- Special event information.
This Case Study concentrates on a sending out small notification messages to students and teachers, via SMS and via e-mail.
A working demo of this case study is included with the ActiveXperts SMS Messaging Server installation.
2. Problem Statement
St. Joseph College has an old-fashioned way of notifying students via e-mail.
It is done by an MS Excel macro. E-mail addresses all listed in an Excel document. There's a macro that actually sends out the e-mail notifications.
E-mail addresses are manually synchronized with Active Directory. E-mail is the only way to notify the students.
This manual system has some drawbacks:
- It is not possible to get the students immediate attention. SMS would make this possible;
- It is not possible to schedule notification messages;
- There's no logging, so it is not possible to see whether a message was delivered successfully to a student or not;
- Manual synchronization with Active Directory often results in missing or duplicate e-mail entries in the Excel worksheet;
3. Goals of the new System
The current notification system must be replaced by a new, better system. Goals of the new system:
- SMS must become the primary notification message type. It must still be possible to notify students with an e-mail message;
- SMS and e-mail addresses must be retrieved from Active Directory;
- No more Excel macro's for the notification system;
- It must be possible to schedule message broadcast hours and days in advance;
- It may not take more than 5 minutes to send out SMS messages to a hundred students;
- All notifications must be logged
4. ActiveXperts SMS Messaging Server Solution
The software departement of the College has written an application to replace the old notification system.
The application is written in Visual Basic 6. Its task is to retrieve student contact information and store messages in the ActiveXperts SMS Messaging Server database.
ActiveXperts SMS Messaging Server is responsible for the delivery of the messages.
Their VB6 based application uses the following components and techniques:
- It uses LDAP to query the Active Directory users. Actually, Organizational Units are selected through LDAP, and students are fetched one by one from the Organizational Unit object;
- The Active Directory User properties Mobile and Mail are used to determine the students SMS and e-mail information;
- New outgoing SMS and e-mail messages are stored in the Message Database of ActiveXperts SMS Messaging Server. ActiveXperts SMS Messaging Server is responsible for delivering these messages to the students;
- The program uses the ActiveXperts AxMmServer.Messages object to access the Message Database of the SMS Messaging Server;
Figure 1. shows a screenshot of the application.
| |
 |
| |
Figure 1: St. Joseph College Student Notification application |
The ActiveXperts SMS Messaging Server service will notice any new messages in the Message Database and will send them out immediately.
ActiveXperts SMS Messaging Server
The St. Joseph College runs ActiveXperts SMS Messaging Server on a Windows 2003 Server. This server is member of the STJOSEPH.DOM domain.
One of the requirements is throughput: it may not take more than 5 minutes to send out an SMS message to hundred students.
This throughput cannot be achieved with a GSM Modem (a GSM can send out only 1 message per 5 seconds maximum).
Therefore, St. Joseph College subscribed with an SMPP provider (Clickatell). It's throughput is around 10 messages/second.
ActiveXperts SMS Messaging Server is configured to use SMPP service of Clickatell. This was done in the following way:
- In the 'Configuration', all channels were disabled;
- A new SMPP channel was created, and the appropriate Clickatell account information was entered.
VB6 source code
The software departement of the College wrote the application in Visual Basic 6. The application consists of one modal dialog with the following fields:
- LDAP String text field - This indicates the LDAP path to the OU where the students (or class of students) are organized in Active Directory;
- Count Students and Show Students buttons - Use these buttons to test the LDAP String;
- Message Body and Message Subject text fields - Actual body of the SMS- or e-mail message. The 'Message Subject' is only used for e-mail messages;
- SMS and E-mail check boxes - Indicate what type of notification to send: SMS, e-mail or both;
- Schedule Time text field - Indicates when the ActiveXperts SMS Messaging Server should deliver the messages;
- Submit button - Send out the SMS/e-mail message(s).
Complete source code of the St. Joseph College Student Notification program
Option Explicit
Dim g_Constants, g_MessageDB
Private Sub BTN_COUNTSTUDENTS_Click()
On Error Resume Next
Dim objOU, numCount, objStudent
MousePointer = vbHourglass
Set objOU = GetObject(TXT_LDAPSTRING)
If (objOU Is Nothing) Then
MsgBox "Unable to access the OU on the specified Domain Controller.", vbCritical, "St. Joseph"
Else
numCount = 0
For Each objStudent In objOU
numCount = numCount + 1
Next
MsgBox "Number of students in selected OU: " & numCount, vbOKOnly, "St. Joseph"
Set objOU = Nothing
End If
MousePointer = vbDefault
End Sub
Private Sub BTN_SHOWSTUDENTS_Click()
On Error Resume Next
Dim objOU, strStudents, objStudent
MousePointer = vbHourglass
Set objOU = GetObject(TXT_LDAPSTRING)
If (objOU Is Nothing) Then
MsgBox "Unable to access the OU on the specified Domain Controller.", vbCritical, "St. Joseph"
Else
strStudents = ""
For Each objStudent In objOU
strStudents = strStudents & objStudent.Name & " (" & _
"Mobile:" & objStudent.Mobile & "; " & _
"E-mail:" & objStudent.Mail & ")" & vbCrLf
Next
MsgBox "Students in selected OU: " & vbCrLf & _
"============================" & vbCrLf & vbCrLf & _
strStudents, vbOKOnly, "St. Joseph"
Set objOU = Nothing
End If
MousePointer = vbDefault
End Sub
Private Sub BTN_SUBMIT_Click()
On Error Resume Next
Dim objOU, objStudent, objMessageOut, numSmsMessages, numEmailMessages
numSmsMessages = 0
numEmailMessages = 0
MousePointer = vbHourglass
Set objOU = GetObject(TXT_LDAPSTRING)
MousePointer = vbDefault
If (objOU Is Nothing) Then
MsgBox "Unable to access the OU on the specified Domain Controller.", vbCritical, "St. Joseph"
Else
For Each objStudent In objOU
If (RB_SENDSMS.Value <> 0 And objStudent.Mobile <> "") Then
Set objMessageOut = g_MessageDB.Create
If (g_MessageDB.LastError = 0) Then
objMessageOut.Direction = g_Constants.MESSAGEDIRECTION_OUT
objMessageOut.Type = g_Constants.MESSAGETYPE_SMS
objMessageOut.Status = g_Constants.MESSAGESTATUS_OUT_SCHEDULED
objMessageOut.To = objStudent.Mobile
objMessageOut.ChannelID = 0 ' First available SMS channel
objMessageOut.Body = TXT_MESSAGEBODY
objMessageOut.ScheduleTime = TXT_SCHEDULE
objMessageOut.Save
End If
numSmsMessages = numSmsMessages + 1
End If
If (RB_SENDEMAIL.Value <> 0 And objStudent.Mail <> "") Then
Set objMessageOut = g_MessageDB.Create
If (g_MessageDB.LastError = 0) Then
objMessageOut.Direction = g_Constants.MESSAGEDIRECTION_OUT
objMessageOut.Type = g_Constants.MESSAGETYPE_EMAIL
objMessageOut.Status = g_Constants.MESSAGESTATUS_OUT_SCHEDULED
objMessageOut.To = objStudent.Mail
objMessageOut.ChannelID = 0 ' First available SMS channel
objMessageOut.Body = TXT_MESSAGEBODY
objMessageOut.ScheduleTime = TXT_SCHEDULE
objMessageOut.Save
End If
numEmailMessages = numEmailMessages + 1
End If
Next
Set objOU = Nothing
End If
MousePointer = vbDefault
MsgBox "#SMS Messages created: " & numSmsMessages & vbCrLf & _
"#E-mail messages created: " & numEmailMessages, vbInformation, "St. Joseph"
End Sub
Private Sub Form_Load()
TXT_LDAPSTRING = "LDAP://dell04/ou=students,dc=activexperts,dc=dom"
Set g_Constants = CreateObject("AxMmServer.Constants")
Set g_MessageDB = CreateObject("AxMmServer.Messages")
RB_SENDSMS.Value = 1
RB_SENDEMAIL.Value = 0
TXT_MESSAGEBODY = "All lessons from teacher Mr. Jones are cancelled on " & Date
TXT_MESSAGESUBJECT = "Notification from St. Joseph College"
TXT_MESSAGESUBJECT.Enabled = False
TXT_SCHEDULE = "+0d0h5m"
End Sub
Private Sub RB_SENDEMAIL_Click()
If (RB_SENDEMAIL.Value <> 0) Then
TXT_MESSAGESUBJECT.Enabled = True
Else
TXT_MESSAGESUBJECT.Enabled = False
End If
End Sub
|