# Patent

## Title
System and method of creating and providing SMS HTTP tagging

## Abstract

A system and method for sending text messages and, more particularly, a system and method for forcing SMS capable devices to communicate via SMS using, for example, SS7 protocol. A method includes providing a tag forcing a return text message to be sent via SS7 protocol. In use, the system and method is configured to force the use of SMS messages via the SS7 protocol. The system and method can be implemented over any network, for example, and any existing mobile device and related infrastructure can be modified to take advantage of the benefits and functionality of the system and method of the invention.

## Background
FIELD OF THE INVENTION
The invention generally relates to a system and method for sending text messages and, more particularly, the invention relates to a system and method for forcing SMS capable devices to communicate via SMS using, for example, SS7 protocol.
BACKGROUND OF THE INVENTION
Technology is ubiquitous in modern life, often taking the place of human interaction. For example, computing networks such as text messaging, email, blogs, etc. have begun to supplant face to face interactions between people. Often this has the advantage of increasing productivity and efficiency.
One type of technology is Short Message Service (SMS), which is a service available on mobile telephones and other mobile devices that permits the sending of short messages, e.g., text messaging. The term text messaging and its variants are commonly used to describe SMS. Text messages are also used to interact with automated systems, such as ordering products and services or participating in contests or polls.
Transmission of the short messages can be performed through different protocols such as SS7 (Signaling System #7) within the standard GSM MAP. SS7 is a set of telephony signaling protocols used by the telephone network to exchange information. That is, SS7 provides a universal structure for telephony network signaling, messaging, interfacing, network maintenance, establishment of a call, exchanging user information, call routing, billing structures, and supporting Intelligent network (IN) services, amongst other functions. SS7 messages can convey information such as:

    
    
        “I am forwarding to a call placed from 202-555-5555 to 212-555-6666. Look for it on trunk 067 . . . . Release the call and play a busy tone. The route to XXX is congested. Do not send any messages unless they are a priority.”
    
    


In practice, SMS messages are sent with a forward_short_message, whose payload length is limited by the constraints of the signaling protocol to precisely 140 bytes (140 bytes=140*8 bits=1120 bits). This translates to 160 7-bit characters, 140 8-bit characters, or 70 16-bit characters. However, larger messages can be segmented over multiple messages, in which case the receiving party is responsible for reassembling the message.
SMS is widely used for delivering digital content such as news alerts, financial information, logos and ringtones. Such messages are also known as premium-rated short messages (PSMS). The subscribers are charged extra for receiving this premium content, in addition to the charge for regular text messaging. Premium short messages are increasingly being used for services such as vending machines (i.e., for payment for items). In this case, payment is sent by a premium-rated short message and the cost of the item is added to the user's phone bill. In other implementations, Cingular®, for example, has implemented a SMS powered voting service for a popular television show. (Cingular is a trademark of Cingular in the United States, other countries, or both.) In this implementation, a message is sent to a user, perhaps via TCP/IP or SS7. The recipient can then view the message and vote for a particular contestant by sending a text message. This is accomplished by the recipient manually entering a telephone message with the text message to be sent.
However, with SMS, as noted above, in any type of application, the user must text a message to a certain number, but this interaction is error prone. It relies on the user to properly enter the SMS message, telephone number, etc. and send it to the correct address. In addition, in an example of voting, the user may not remember all the choices during the polling time, thus leading to an incorrect entry.
Accordingly, there exists a need in the art to overcome the deficiencies and limitations described hereinabove.
SUMMARY OF THE INVENTION
In a first aspect of the invention, a method comprises providing a tag forcing a return text message to be sent via SS7 protocol.
In another aspect of the invention, a system for deploying an application in a computing environment comprises a computer infrastructure operable to provide an xml or html tag having information forcing a response to be sent via a telephony protocol.
In another aspect of the invention, a computer program product comprising a computer usable medium having readable program code embodied in the medium is provided. The computer program product includes at least one component to perform the steps of the invention. For example, the computer program product includes at least one component to provide a message to a recipient which links a tag having coding forcing a return text message to be sent over telephony.
In another aspect, a method for deploying an application in a computing environment, comprising a computer infrastructure is operable to force a return text message to be sent over telephony.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an illustrative environment for implementing the steps in accordance with the invention;
FIGS. 2a and 2b show diagrams implementing steps in accordance with the invention; and
FIGS. 3-7 show various exemplary graphical user displays representative of an SMS based messaging system in accordance with aspects of the invention.



DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
The invention generally relates to a system and method for sending text messages and, more particularly, the invention relates to a system and method for forcing SMS capable devices to communicate via SMS using, for example, SS7 protocol. In use, the system and method of the invention is configured to force the use of SMS messages via the SS7 protocol. As should be known to those of skill in the art, SS7 bandwidth is a low usage bandwidth. The system and method of the invention can be implemented over any network, for example, and any existing mobile device and related infrastructure can be modified to take advantage of the benefits and functionality of the system and method of the invention.
In implementation, the system and method of the invention uses an SMS tag in html to allow the user to send SMS messages on a SS7 capable device and receive binary SMS messages that are both SMS and http capable. The advantage of the SMS capable html is the ability to send messages to an SMS queue. This allows for a User Datagram Protocol (UDP) type message or MQ type message, where the telephone does not wait for a response from the service. In embodiments, the use of an SMS tag inside of html forces the SMS capable devices to communicate via SMS. This can be applicable over a wide variety of applications including, for example, voting, polling, and in use with premium-rated short messages.
IBM WebSphere® MQ delivers reliable application integration for applications and Web services, allowing the user to fully leverage existing software and hardware investments. WebSphere MQ provides a messaging backbone for deploying an enterprise service bus (ESB) as the connectivity layer of a service-orientated architecture (SOA). WebSphere MQ also increases flexibility and offers increased transparency, reliability and audit ability of data movement compared to file transfer protocol (FTP) based approaches. Moreover, WebSphere MQ supports both de facto interface MQI and industry standard JMS V1.1 interface, with integrated publish-and-subscribe support, in addition to supporting secure Internet communication with industry standard Secure Sockets Layer (SSL). (IBM and WebSphere are trademarks of IBM Corporation in the United States, other countries, or both.)
By way of a non-limiting illustrative example, an SMS address tag can be used inside an xml or html to force a message to be sent via SMS. For example, an SMS tag can be:

    
    
        <sms href=“sms://404.555.5555”>Here is my sms link </sms>

The “href” tag informs the system it is a hyperlink and the “sms://” informs the system to use SS7 protocol on the device, the latter of which forces the message to be sent via SMS over SS7. In this example, the tag forces the system to dial “404.555.5555”. From this example, several advantages can be realized including, amongst other advantages:

        The correct sending number will always be used since the number is placed within the tag;
        Additional revenue can be assured by the mobile provider or other third party since the SMS will always be pushed through the SS7 protocol; and
        Polling becomes more accurate since the contestant information can be provided directly to the recipient.
    
    


In further embodiments, the SMS address tag can include body information such as, for example, user information, user requests, voting information (e.g., “I vote for Matt as being the worst singer”). Additionally, the body information can include polling options, e.g., choose the best contestant “Matt”, “Mark”, “Jessica” or “Chris”. In this latter situation, the user can select one of these contestants and send such selection back to the originator.
In still further implementations, an SMS message can be pushed to the user with the tagging information such that the recipient can respond automatically to the message without the need to enter any numbers. This is due to the coding in the message tag. In further implementations, an SMS message can be pushed to the user with a hyperlink, linking to a website via the web browser (i.e., using TCP/IP) on the mobile device. In this implementation, the user can link to the website and respond to a question, poll or send other messages via SS7 protocol, by having such response linked to the tag described above. For example, based on the coding of the tag, the response will be forced through SS7, bypassing TCP/IP. In further implementations, any website can be coded or linked to the coding (via a database, for example) to a particular selection such that sending a communication (e.g., polling, voting, etc.) will be forced through SS7, through the tagging described herein.
System Environment
FIG. 1 shows an illustrative environment 10 for managing the processes in accordance with the invention. The illustrative environment may be any computing device such as, for example, a server or workstation and may represent both a local system and a remote system implementing the processes of the invention. In one preferred embodiment, the illustrative environment is implemented with any mobile telephone or device 18 using any known operating system. The device 18 may also be a non-mobile device, in embodiments.
The environment includes computer infrastructure 12 having computing device 14. More specifically, computing device 14 includes program 16 which is configured and structured to, amongst other features, force messages to be sent via SMS. In implementation, this program may be resident on a sending computer, which would send a tag to a mobile device 18, capable of text messaging. The program can store computer code which includes the SMS tag such as, for example:

    
    
        <sms href=“sms://404.555.5555”? singer=Matt>Here is my sms link </sms>

This tag will be sent to the mobile device 18, forcing the mobile device to respond in SMS, using the telephone number “404.555.5555.” In this manner, the return message will be sent over SS7 protocol to the sender or other designated number.

    
    


Additionally, in further embodiments, program 16 includes executable code, which may be stored temporarily or permanently in memory 22A. As should be understood by those of skill in the art, the executable code can be configured to implement the above functions.
In examples, the SMS tag is preferably sent via an SMS; however, it should be understood that the system and method of the invention works equal well when the recipient (mobile device) 18 is provided with a hyperlink (without the SMS tag), which directs the recipient 18 to a website. The website may be downloaded via a web browser on the device. The website may include certain “response” options, any of which are linked to the SMS tag of the invention. In embodiments, the website may be hard coded with the response and, in alternate embodiments, the website may obtain the SMS code via a link to an external database storing such tag and being associated with the response. In the latter example, the “webmaster” or administrator of the website can readily change the tagging information. Also, in these embodiments, the tag does not have to be sent to the recipient; instead, the tag is associated with a response.
Still referring to FIG. 1, memory 22A can include local memory employed during actual execution of program code, bulk storage, and cache memories which provide temporary storage of at least some program to reduce the number of times code must be retrieved from bulk storage during execution. Computer infrastructure 12 further includes processor 20, input/output (I/O) interface 24, a bus 26, Storage “S”, ROM, RAM and external I/O device/resource 28.
External I/O device/resource 28 may be a keyboard, display, pointing device, or any device that enables computer infrastructure 12 to communicate with one or more other computing devices using any type of communications link 30. Communications link 30 can be, for example, wired and/or wireless links; one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.); and/or any known transmission techniques and protocols such as, for example, TCP/IP.
Processor 20 executes the computer program code and logic of the system and method of the invention, which is stored in memory 22A. While executing the computer program code, etc., processor 20 can read and/or write data to/from memory 22A, storage system 22B, and/or I/O interface 24. Bus 26 provides a communications link between each of the components in computing device 14.
Flow Diagram Implementing Steps of the Invention
FIG. 2a represents a swim lane diagram implementing steps of various embodiments of the invention. FIG. 2b represents a flow diagram implementing steps in accordance with the invention. The steps of FIGS. 2a and 2b may be implemented in the environment of FIG. 1, using the graphical displays of FIGS. 3-7, and implemented, in practice using any type of mobile device which is configured to be compatible with SMS. The steps of the invention may equally represent a high-level block diagram of the invention.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. The software elements may be firmware, resident software, microcode, etc. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
In embodiments, the invention provides a business method that performs the steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider, such as a Solution Integrator, could offer to perform the processes described herein. In this case, the service provider can create, maintain, deploy, support, etc., a computer infrastructure that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising content to one or more third parties.
In FIG. 2a, at step 200, a user opens the browser function of the device and starts the application. At step 205, the device displays a message or post which, in one example, may be a survey. The message includes the SMS tag, as discussed herein. At step 210, a determination is made as to whether the message is sent via SMS. If not, at step 212, the message is determined to be sent via the Internet, using TCP/IP. In this case, the device may open a website, via a web browser. The website may have certain responses which can be selected by the recipient, by way of “clicking”. Each selection or a combination thereof may include the SMS tag information such that upon selection, the response will be an SMS response sent via SS7, at step 215 (an onwards as discussed below).
If the message is determined to be SMS, at step 215, the response is sent via SS7 using the number in the SMS tag. As discussed above, the received message (or any response) includes an SMS tag which forces any response to be sent SS7. This SMS tag may also include body information thus allowing the recipient to send a message such as, for example, a vote for a particular contestant, etc. along with the message. At step 220, the message gateway routes the message to a server (originating system, referred generally as “system”). At step 225, the system unpacks the message.
Steps 230 to 275 are optional steps. At step 230, the system creates a response and, in further embodiments, optionally compresses the text message response (step 235) using any known compression, such as mini-gzip. At step 240, the system creates a response header and sends the message to the recipient. The message can be sent to the recipient since the incoming message included “return information”, via SS7. At step 245, the message gateway routes the message to the recipient, via the cell tower, for example. At step 250, the message is sent via SS7. At step 255, the recipient receives the message and checks the SMS header. At step 260, a decision is made as to whether the header indicates that the response is compressed. If not, at step 265, the message is displayed. If so, at step 270, the message is unzipped or uncompressed, and displayed at step 275. It should be understood that the response may be a hyperlink to a website, viewable via a web browser on the device.
In yet another alternative, much like the system side, the SMS message sent to the system may be compressed, depending on its length. By way of example, in the case of more than the maximum allowable characters, the mobile device (or system) may include compression software which compresses the text message into a more manageable size. In one embodiment, the device or system is configured to determine the size of the text message. When the text message is over a certain length, e.g., 225 characters, the compression software compresses the message into a mini zip file so that it can be sent in one package. The zip file can then be sent via SS7 and uncompressed on the receiving side, as discussed above.
In addition, FIG. 2b shows an example when the message is broken into separate parts due to its length. In this example, the header may include an identifier indicating that N number of packets is to be received from the sender. In each header of each packet, for example, a number may be provided indicating the number of the packet, in the sequence, e.g., N+1 of 30 of packets.
In the embodiment of FIG. 2b, at step 300, the process will determine the length of the message. At step 305, the process will create N number packets for the message, and segment the message into the N number packets. At step 310, the process will populate the header information of each N number of packets. The header information may include, for example, the packet number and the number of packets which will be sent. At step 315, the packets will be sent to the recipient. It should be understood by those of skill in the art that the packet formation may be performed by the mobile device, server or other computer infrastructure such as that of a service provider for a fee.
At step 320, the recipient will receive the packets and open the header to determine the number of the sent packet(s) and the number of packets which are to be received. At step 325, the process will determine which packets have not been received. Step 325 may be iterative in that this step may be repeated any number of times during the receipt of the message. At step 330, if all of the packets are received, the recipient's device will reassemble the message for display. However, if all of the packets are not received, the process may query the sender or other device or infrastructure to determine the status of the packets, at step 335. After a predetermined amount of time or attempts to retrieve the undelivered packets, the system and method of the invention may discard the entire message if all of the packets have not yet been received, at step 340. This may be after a maximum amount of attempts to retrieve all of the packets. If all the packets are received, the message will be reassembled and displayed at step 330.
Exemplary Graphical Displays
FIG. 3-7 show exemplary graphical displays of an application using the system and method of the invention. The exemplary graphical displays of FIGS. 3-7 are representative of a polling scenario of a popular television show. It should be understood, though, that the graphical user displays can be used in other applications in accordance with the invention.
More particularly, FIG. 3 shows a graphical user display on a portable device in which the user accesses an SMS survey. In this example, an SMS message may have been sent to the device, with a hyperlink to a website. The web browser of the mobile device is shown displaying a website associated with the hyperlink. In an alternative method, the sender can send a website via TCP/IP. In this graphical user display, the user can select “Start Now!” option from the application menu to be taken to the survey screen of FIG. 4.
In FIG. 4, several selections are shown. In this graphical user display, the user is prompted to vote for a favorite performer. By default, the first selection is highlighted. The user may scroll the list using any known mechanism. In the example of FIG. 4, each selection has an SMS tag associated therewith so that, upon a selection, an SMS message is sent to the originating system, which includes the name of the selected contestant.
In FIG. 5, the user has scrolled to the desired selection, e.g., “Mike Smith”. The user can then select the “Cast Vote!” option from the application menu. In embodiments, the user is then brought to a confirmation page as shown in FIG. 6. In embodiments, the graphical user display can include a message such as, “Are you sure you wish to vote for Mike Smith”. In any scenario, the coding of this graphical user display can be, for example, “Are you sure you wish to vote for <selected contestant>”. The user may then select the “Yes-Vote” selection or, alternatively, may return to a previous screen to change the selection.
In the case of the “Yes-Vote”, the display of FIG. 7 shows a success message and confirms that the message was sent. In the invention, since the selection included the SMS tag, the selection was automatically sent to a desired number via SMS over SS7 protocol. The user may select the “OK” selection to return to the default screen of the device.
As should be recognized, the graphical user interfaces may be a website, but can equally be a text message having the SMS tag. For example, the graphical display of FIG. 3 may be a display of a message or post which, in one example, may be a survey. The message may include the SMS tag, may include a hyperlink forwarding the user to a website, or may be a website which is provided to the device via TCP/IP. The displays of FIGS. 4-6 may be websites, working over TCP/IP. However, the graphical display of FIG. 5, for example, includes SMS tags associated with each of the contestants such that upon selection of a contestant, the vote (response) will automatically be sent to a recipient using the coding within the SMS tag, i.e., telephone number, calling information from the sender, selection, etc. The SMS tag thus forces the response to be sent via SMS over SS7, regardless of whether the user is on a website which is received via TCP/IP or an SMS message. In an optional step, as shown in FIG. 7, the user may receive a message, in return, indicating that the vote (or other message) was received.
While the invention has been described in terms of embodiments, those skilled in the art will recognize that the invention can be practiced with modifications and in the spirit and scope of the appended claims.

## Claims

1. A method implemented in a computer infrastructure having computer executable code tangibly embodied on a computer readable storage medium having programming instructions operable to:
determine whether a message on a device was sent via SMS, the message including an SMS tag which comprises a telephone number, an indicator to use SS7 protocol, and at least one selection option for a survey; and
send a response message which is responsive to the message by indicating that the at least one selection option has been selected for the survey via the SS7 protocol using the telephone number included within the SMS tag when the message is determined to be sent via SMS,
wherein the message includes the at least one selection option that is selectable by a user, and
each response of the survey includes a different SMS tag configured to force a return message which indicates that a response on a website has been selected for the survey to be sent via the SS7 protocol to a different number than remaining responses,
wherein the programming instructions are further operable to receive a confirmation from the different number that the selection for the survey has been received.

2. The method of claim 1, wherein the programming instructions are further operable to determine the message to have been sent via the Internet when the message is determined to not have been sent via SMS.

3. The method of claim 2, wherein the programming instructions are further operable to open the website on the device via a browser function, the website comprising responses that are selectable by the user for the survey when the message is determined to have been sent via the Internet.

4. The method of claim 3, wherein the return message is indicative of the response selected by the user.

5. The method of claim 1, wherein the programming instructions are further operable to:
receive the message at the device; and
check an SMS header of the message to determine whether the message is compressed.

6. The method of claim 5, wherein the programming instructions are further operable to unzip or uncompress the message and then display the message when the message is uncompressed.

7. The method of claim 1, wherein a return message is indicative of the response selected by the user.

8. The method of claim 1, wherein the message further comprises one of an xml and html which comprises the SMS tag.

9. A system comprising:
a CPU, a computer readable memory and a non-transitory computer usable storage medium;
program instructions to determine whether a message on a device was sent via SMS, the message including an SMS tag which comprises a hyperlink for a survey;
program instructions to determine the message to have been sent via the Internet when the message is determined to not have been sent via SMS; and
program instructions to open a website on the device via a browser function using the hyperlink in the SMS tag when the message is determined to have been sent via the Internet, the website comprising responses that are selectable by a user for the survey,
wherein the program instructions are stored on the non-transitory computer usable storage medium for execution by the CPU via the computer readable memory,
each response of the survey includes a different SMS tag configured to force a return message which indicates that a response on a website has been selected for the survey to be sent via the SS7 protocol to a different number than remaining responses, and
receiving a confirmation from the different number that the selection for the survey has been received.

10. The system of claim 9, wherein a return message is indicative of the response selected by the user.

11. The system of claim 9, wherein the message comprises the SMS tag without an xml or html.

12. The method of claim 1, wherein the programming instructions are further operable to:
determine a character size of the message; and
compress the message in response to the message being greater than a predefined character length.

13. The method of claim 12, wherein the predefined character length is 225 characters.

14. The system of claim 9, further comprising program instructions to determine a character size of the message and separate the message into a plurality of packets in response to the message being greater than a predefined character length.

15. The system of claim 9, further comprising program instructions to determine a character size of the message and compress the message in response to the message being greater than a predefined character length.

16. The system of claim 15, wherein the predefined character length is 225 characters.