OZEKI
NG SMS Gateway
"The World's most reliable SMS gateway software!"
info@ozekisms.com
Tel.: 00 36 52 532 731
Overview Quick start Download Manual How to buy FAQ Contact Us
OZEKI NG SMS Gateway - Product Guide

ASP with built in webserver C# Contents | Searchwwwroot

Home > Product Manual > Developers Guide > ASP SMS API > ASP.NET Example

SMS Gateway SMS Gateway Home

  Product Manual
  Introduction
  SMS technology
  Installation Guide
  User Guide
  Developers Guide
  Tutorials
  ASP SMS API
  Overview
  SMS API for ASP developers
  ASP with built in webserver C#
  ASP.NET Example
  wwwroot
  Data field change
  Checking if Server is running
  Run the example code
  Checking the sending
  Partners
  ASP Example
  ASP with built in webserver
  PHP SMS API
  HTTP SMS API
  SQL SMS API
  C Sharp SMS API
  AJAX SMS API
  Delphi SMS API
  Cpp SMS API
  Java SMS API
  VB.NET SMS API
  Python SMS API
  Perl SMS API
  TCL/TK SMS API
  Coldfusion SMS API
  VB 6 SMS API
  Examples and Solutions
  Appendix
  FAQ
  Feature list
  Commercial Information
  Search
 


Automated phone calls?
Ozeki Phone System XE VoIP PBX software is an advanced PBX built for automated voice calls and 2 way SMS messaging. It has outstanding APIs for software developers. It can be used for:

Phone calls from SQL
Phone calls from HTTP
Voice and SMS applications

Callcenter developers
If you are working on telephone solutions, please check out the Ozeki VoIP SIP SDK.
It can be used to create VoIP client and server software.

Contact Us!
If you wish to get further information, do not hesitate to contact us!

E-mail: info@ozekisms.com

If you have a technical question, please submit a support request on-line.

Sending SMS using ASP.NET (C#) through HTTP


Download source code

download full project (1.9 kB)

Introduction

This article is about sending SMS using ASP.NET through HTTP. It is intended for web developers with a basic knowledge of the ASP.NET technology. The reader should be familiar with Microsoft Visual Studio and the C# programming language. The page contains a downloadable source code (see above), a list of aims you can achieve using the code, a list of prerequisites, a description and depiction of the architecture and operation of the system, step-by-step instructions about how to use the code and a detailed interpretation. It also includes a brief summary, answers to frequently asked questions, as well as links to related information.

When to use this code

This code is particularly useful for those who wish to

  • add SMS functionality to a website.
  • add SMS functionality to a corporate Intranet.
  • create automated SMS notifications.
  • increase website security by adding SMS login.

Prerequisites

The following table lists the software requirements of the system. Note that you can download Ozeki NG - SMS Gateway and .NET Framework 3.5 on the download page.

Operating system: Windows XP, Windows 2003 or Windows Vista
Other software requirements: Internet Information Services (IIS)
.NET Framework 3.5
Ozeki NG-SMS gateway
Development platform: Microsoft Visual Studio .NET

How it works

To send SMS messages from ASP.NET applications, you need to install Ozeki NG SMS Gateway on your computer. Ozeki NG - SMS Gateway will use a GSM phone/modem attached to your PC (with a phone-to-PC data cable) or an IP SMS connection to send messages. Your ASP.NET application will perform an HTTP request to send messages using the Ozeki NG program. For a better understanding of how it works, please look at the following diagram (Figure 1).


Figure 1 - Sending SMS from an ASP.NET application

In the diagram you can see an Internet user, a web server with the ASP.NET application, Ozeki NG - SMS Gateway, a mobile phone attached to the server computer and mobile user receiving the message. Wherever the Internet user is, if they know the IP address or URL of the computer running the ASP script, and if they are authorized to log in, they can compose and send messages to any recipients. After the Internet user's action, the ASP.NET application initiates the process by posting an SMS message to the built-in web server of Ozeki NG - SMS Gateway. Ozeki NG will forward the message to the GSM network through a mobile phone attached to the PC using a data cable, and the mobile user will receive the SMS message.

Using the code

To use the downloaded ASP code, follow these steps:

Step 1: Unpack the downloaded zip file.
Step 2: Copy the smssend.aspx and smssend.aspx.cs files into the "C:\Inetpub\wwwroot\" directory (the main directory of the IIS Server). Picture help
Step 3: Set/Change the fixed data in the smssend.aspx.cs file (e.g., ozSURL, ozSPort, ozUser, ozPassw). Picture help
Step 4: Start the Ozeki NG - SMS Gateway Server (if not running). Picture help
Step 5: Start a web browser application (IE, Firefox, etc.) and enter this: http://127.0.0.1/smssend.aspx (127.0.0.1 means that the smssend.aspx and smssend.aspx.cs files reside on the same computer on which the browser has been opened). Picture help
Step 6: Fill in the necessary fields, and then click the "Send" button. Picture help
Step 7: Verify the message being sent in the Ozeki NG - SMS Gateway Server. Picture help

Understanding the code

The downloadable sample script tells Ozeki NG - SMS Gateway Server to send an SMS message to the given phone number with the given content. Inside the script you have to set the URL of the Ozeki NG Server with the port number, the username (specifying who can log in to the Ozeki NG Server) with the password and the type of the SMS message.

The source code of the example application is structured in the following way:

smssend.aspx:
   In this file there are page builder asp elements (text boxes, labels, etc.).

smssend.aspx.cs:
   Page_Load(...): does some basic settings.
   buttonSendOnClick(...): creates and sends the sms from the given data.

Description of the process depicted in Figure 1 above:

Step 1: Create the HTML form
In the smssend.aspx file, you create the form that requests the sms data. The Internet user fills in the necessaries. Label and textbox pairs will be displayed. Labels identify the requested data for the Internet user, and they will type it in textboxes. The user will be asked to fill in the Recipient and Message text fields. A multiline textbox is used to inform the Internet user about error(s) or result(s) of sending the message. At first, the error box will be invisible (it will be set in the smssend.aspx.cs file).

smssend.aspx
...
<form id="smsdata" runat="server">
    <asp:Table id="smstable" runat="server" style="text-align:left; border-width:thin;
      border-color:Silver;" BorderStyle="Solid">
        <asp:TableRow>
            <asp:TableCell ColumnSpan="2">
                 <b>Compose a message:</b>
                 <br />
                 <br />
            </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
            <asp:TableCell HorizontalAlign="Left" VerticalAlign="Top">
                 <asp:Label ID="labelRecipient" runat="server" Text="Recipient: ">
                 </asp:Label>
            </asp:TableCell>
            <asp:TableCell>
                 <asp:TextBox ID="textboxRecipient" runat="server">
                 </asp:TextBox>
            </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
            <asp:TableCell HorizontalAlign="Left" VerticalAlign="Top">
                 <asp:Label ID="labelMessage" runat="server" Text="Message Text: ">
                 </asp:Label>
        </asp:TableCell>
            <asp:TableCell>
                 <asp:TextBox ID="textboxMessage" runat="server" TextMode="MultiLine">
                 </asp:TextBox>
            </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
            <asp:TableCell ColumnSpan="2" HorizontalAlign="Center">
                <asp:Button ID="buttonSend" runat="server" Text="Send Message"
                  OnClick="buttonSendOnClick" />
            </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
            <asp:TableCell ColumnSpan="2" HorizontalAlign="Center">
                <asp:TextBox ID="textboxError" runat="server" BorderStyle="None"
                  TextMode="MultiLine"></asp:TextBox>
            </asp:TableCell>
        </asp:TableRow>
    </asp:Table>
</form>
...
            


In the "protected void Page_Load(object sender, EventArgs e)" procedure (in smssend.aspx.cs), you set the width of textboxes and the error box height in rows. The text of the error box is red, and the first is invisible and empty. If using the net browser the page is downloaded for the first time, fill in the recipient and message boxes with predefined texts.

smssend.aspx.cs
...
protected void Page_Load(object sender, EventArgs e)
{
    textboxRecipient.Width = 400;
    textboxMessage.Width = 450;
    textboxMessage.Rows = 10;
    textboxError.Width = 400;
    textboxError.Rows = 5;

    textboxError.ForeColor = System.Drawing.Color.Red;
    textboxError.Visible = false;
    textboxError.Text = "";

    if (!Page.IsPostBack)
    {
        textboxRecipient.Text = "+441234567";
        textboxMessage.Text = "Hello World!";
    }
}
...
            

Step 2: Processing data coming from the HTML form
After filling in the fields and clicking the Send button , the ASP server receives the information about the form. In the smssend.aspx.cs file, the "protected void buttonSendOnClick(object sender, EventArgs e)" procedure is called. At the beginning of the procedure, check the data of the textbox fields. The Recipient box is mandatory. If it is empty, the processing will be aborted, and the Internet user will be shown the error. If the checking is successful, you will create the URL that will tell the Ozeki NG - SMS Gateway Server the requested information. We need the following: the URL of the computer running Ozeki NG - SMS Gateway Server the default URL is http://127.0.0.1/httpapi (127.0.0.1 means that Ozeki NG - SMS Gateway Server is installed on the same computer on which the ASP.NET script is running), the port number on which the server listens, the username, which is authorized to log in to the Ozeki NG - SMS Gateway Server and to send messages (the default username is admin), the user's password (the default is abc123), the message type (the default is SMS:TEXT), the recipient and the message data. The following values must be URL-encoded: username, password, recipient and message data.

smssend.aspx.cs
...
protected void buttonSendOnClick(object sender, EventArgs e)
{
    //fields are required to be filled in:
    if (textboxRecipient.Text == "")
    {
        textboxError.Text += "Recipient(s) field must not be empty!\n";
        textboxError.Visible = true;
        return;
    }

    //we are creating the necessary URL string:
    string ozSURL = "http://127.0.0.1"; //where Ozeki NG SMS Gateway is running
    string ozSPort = "9501"; //port number where Ozeki NG SMS Gateway is listening
    string ozUser = HttpUtility.UrlEncode("admin"); //username for successful login
    string ozPassw = HttpUtility.UrlEncode("abc123"); //user's password
    string ozMessageType = "SMS:TEXT"; //type of message
    string ozRecipients = HttpUtility.UrlEncode(textboxRecipient.Text); //who
    will get the message
    string ozMessageData = HttpUtility.UrlEncode(textboxMessage.Text); //body
    of message

    string createdURL = ozSURL + ":" + ozSPort + "/httpapi" +
        "?action=sendMessage" +
        "&username=" + ozUser +
        "&password=" + ozPassw +
        "&messageType=" + ozMessageType +
        "&recipient=" + ozRecipients +
        "&messageData=" + ozMessageData;
    ...
}
...
            

Step 3: Sending a request to the SMS Gateway and receiving the answer
In the code you send a request to the Ozeki NG - SMS Gateway Server with the data of the message. It will create an SMS and send it to the recipient (mobile user) using a GSM modem/phone (if the given data is correct) and send you the result.
You create a request to the Ozeki NG - SMS Gateway Server at the URL created above. When it is done, you will receive a response from the Ozeki NG - SMS Gateway Server. The information will be retrieved from it and shown to the Internet user. Whatever problem you have, it is because the Ozeki NG - SMS Gateway Server is not running at the moment of sending data.

smssend.aspx.cs
...
protected void buttonSendOnClick(object sender, EventArgs e)
{
...
    try
    {
        //Create the request and send data to Ozeki NG SMS Gateway Server by
        HTTP connection
        HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(createdURL);

        //Get response from Ozeki NG SMS Gateway Server and read the answer
        HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
        System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
        string responseString = respStreamReader.ReadToEnd();
        respStreamReader.Close();
        myResp.Close();

        //inform the user
        textboxError.Text = responseString;
        textboxError.Visible = true;
    }
    catch (Exception)
    {
        //if sending request or getting response is not successful, Ozeki NG - SMS Gateway Server may not be running
        textboxError.Text = "Ozeki NG SMS Gateway Server is not running!";
        textboxError.Visible = true;
    }
}
...
            

Summary

In the article it has been explained how you can add SMS functionality to your website by using the downloadable ASP.NET example code. You can freely use and modify that script. Using ASP.NET scripts (and the Ozeki NG - SMS Gateway Server) you can create a lot of useful services(e.g.: you can add SMS functionality to a website or a corporate Intranet, create automated SMS notifications, increase website security by adding SMS login, etc.).

Frequently asked questions

Question: How can I send the same message to different phone numbers?
Answer: Separate the phone numbers with the comma character (,).
   For example:
   
...
string ozRecipients = HttpUtility.UrlEncode("+441234567,+447654321");
...


Question: How can I send different message types?
Answer: For example a Wap push message:
   
...
string ozMessageType = "SMS:WAPPUSH"; //change the message type
...
string messageText = "<si>" +
  "<indication href="http://target_address" action="signal-high" >" +
  "text of description" +
  "</indication>" +
  "</si>";
string ozMessageData = HttpUtility.UrlEncode(messageText);
...

action can be: signal-high, signal-medium, signal-low, signal-none, signal-delete

Question: Can I run the ASP script on a computer different from the one running the Ozeki NG - SMS Gateway Server?
Answer: Yes, you can. In the script you have to set the URL and the port number of the computer running the Ozeki NG - SMS Gateway Server.

Question: Can I set the phone number so that the recipient can see where the sms comes from?
Answer: Yes, you can. In the script you have to set an originator field and include it in the URL string you have created. It works only if you have IP SMS connection.
   
...
protected void buttonSendOnClick(object sender, EventArgs e)
{
    ...
    //we creating the necessary URL string:
    string ozSURL = "http://127.0.0.1"; //where Ozeki NG SMS Gateway is running
    string ozSPort = "9501"; //port number where Ozeki NG SMS Gateway is listening
    string ozUser = HttpUtility.UrlEncode("admin"); //username for successful login
    string ozPassw = HttpUtility.UrlEncode("abc123"); //user's password
    string ozOriginator = HttpUtility.UrlEncode("+449998887");//originator of the message
    
    string ozMessageType = "SMS:TEXT"; //type of message
    string ozRecipients = HttpUtility.UrlEncode(textboxRecipient.Text); //who will get the message
    string ozMessageData = HttpUtility.UrlEncode(textboxMessage.Text); //body of message

    string createdURL = ozSURL + ":" + ozSPort + "/httpapi" +
        "?action=sendMessage" +
        "&username=" + ozUser +
        "&password=" + ozPassw +
        "&originator=" + ozOriginator +
        "&messageType=" + ozMessageType +
        "&recipient=" + ozRecipients +
        "&messageData=" + ozMessageData;
    ...
}
...
            

Dig deeper!
People who read this also read...


Ozeki NG Installation Guide
SMS Message Types
RS232 Serial Cable and Industrial Modems
IP SMS Gateway
Supported phones and GSM devices
IIS Installing



Next page: wwwroot
Copyright © 2000 - 2014 Ozeki Informatics Ltd.
All rights reserved

Software PBX for Windows | VoIP SDK   |   Legal information   |   Privacy policy   |   Terms of use
Please, address your inquiries to info@ozekisms.com