# Patent

## Title
Web gateway multi-carrier support

## Abstract

The present invention provides multi-carrier support in a wireless Internet gateway (WIG) that allows the WIG to send messages to any number of ‘peer’ gateways on the Internet in a conveniently reconfigurable manner. The disclosed embodiments include a ‘Message Distribution Center’ (MDC), through which short messages can be routed to the gateways of other wireless carriers based on carrier formats stored in an abstracted carrier format table. The conventional technique of separate classes written for each carrier is replaced by entries in a look-up table format, to provide a more easily adaptable wireless gateway. Thus, occasional updates of the carrier format table need only be updated, rather than the wireless Internet gateway program, reducing down time for updates, reducing the complexity of updates, and improving the reliability of a wireless Internet gateway in the face of changes for one or more carriers in a wireless network.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to wireless carriers, Internet service providers (ISPs), and information content delivery services/providers. More particularly, it relates to gateways between a wireless network and the Internet for routing messages to wireless devices.
2. Background of Related Art
Short Message Service Centers (SMSCs) deliver short messages through wireless networks. Typically they operate on highly valuable server platforms that are protected deep within a wireless carrier's network, and communicate via specialized protocols.
FIG. 5 shows a conventional gateway providing Internet access to a wireless network through a short message service center (SMSC).
In particular, as shown in FIG. 5, a gateway 900 implemented in a wireless network translates HTTP protocol messages, and/or email messages from Internet clients to protocols recognized by an SMSC, such as SMPP. Each wireless carrier typically its own Internet gateway that is able to communicate with its own SMSC(s).
Conventional gateway 900 architecture provides a communication path between fixed protocol types, e.g., between HTTP protocol messages and SMPP protocol messages, based on known formats of destination Carriers. Separate gateway application programming interfaces (APIs) are developed to communicate with other protocol types, and those separate API's are conventionally ‘hard-coded’ into the gateway 900.
Carriers typically have no easy way to pass messages into other carrier's networks. Inter-carrier messages is typically accomplished through roaming agreements on their SS7 networks.
A more cost-effective mechanism for cross-carrier messaging support is to utilize a public TCP/IP network, such as the Internet. This multi-carrier support can be utilized either among carriers for inter-network messaging, or from a service bureau that wishes to provide a single point of entry for routing messages to multiple carriers. In order to route messages to multiple carriers, the originating server must understand how to deliver messages to each gateway for each carrier. Each Gateway will typically receive messages in different ways. Even if a common protocol is used, such as HTTP, the implementation is different for carriers.
For instance, to pass communications from devices in the wireless network 130 serviced by a first carrier to devices in another wireless network serviced by another carrier, the gateway 900 formats the messages in a way which is known to conform to the needs of the other carrier using the internet client 971.
Unfortunately, as any particular wireless carrier's resources change, software updates may be required in a transmitting gateway to conform to the format of the newly changed receiving carrier's gateway. This requires the sending gateways to undergo a tremendous amount of development work as a result of the addition of new network elements, particularly wireless network elements.
In conventional systems, custom delivery software must be written for every carrier to which a short message may be transmitted. Thus, if there are, e.g., one hundred (100) carriers accessible from a particular wireless network, then the gateway application code will necessarily include, e.g., one hundred (100) software modules, one for each carrier.
Of course, as time goes on, some new carriers may enter a wireless network, some existing carriers may change configurations, and still other carriers may leave a wireless network. Each of these events relating to any of the carriers requires new or updated source code (e.g., new java code) in the sending gateway relating to a change in the relevant class file. This results in additional effort and/or down time in the gateways of one or all gateways between wireless networks and the Internet to accommodate the changes and/or additions to adjust the relevant application program class files.
There is a need for a technique and architecture to provide a unified means for routing message destinations to the gateways of other wireless carriers.
SUMMARY OF THE INVENTION
In accordance with the principles of the present invention, a short message distribution center comprises an incoming message queue, a carrier format table, and a destination link. The carrier format table comprises information relating to a plurality of different carrier formats each relating to a destination gateway of a relevant destination carrier.
A method of abstracting destination carrier format from a wireless Internet gateway in accordance with yet another aspect of the present invention comprises receiving an incoming short message. Destination carrier information is retrieved from the incoming short message. Destination carrier format information is retrieved from a carrier format table based on a match to the retrieved destination carrier information.



BRIEF DESCRIPTION OF THE DRAWINGS
Features and advantages of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings, in which:
FIG. 1 shows an exemplary message distribution center in a wireless gateway including a carrier format table and destination link, in accordance with the principles of the present invention.
FIG. 2 shows an exemplary overview of message flow relating to the message distribution center shown in FIG. 1.
FIG. 3 shows an exemplary destination link and related modules of a wireless gateway such as that shown in FIG. 1.
FIG. 4 shows an exemplary implementation of the destination link and related modules shown in FIG. 3.
FIG. 5 shows a conventional gateway providing Internet access to a wireless network through a short message service center (SMSC).



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
Multi-Carrier support is a feature of a wireless Internet gateway (WIG) that allows the WIG to send messages to any number of ‘peer’ gateways on the Internet in a conveniently reconfigurable manner. In accordance with the principles of the present invention, the WIG includes a ‘Message Distribution Center’ (MDC), through which short messages can be routed to the gateways of other wireless carriers based on carrier formats stored in an abstracted carrier format table. The conventional technique of separate delivery modules written for each carrier is replaced by entries in a look-up table format, to provide a more easily adaptable wireless gateway.
Thus, in accordance with the principles of the present invention, occasional updates of the carrier format table need only be updated, rather than the wireless Internet gateway program, reducing down time for updates, reducing the complexity of updates, and improving the reliability of a wireless Internet gateway in the face of changes for one or more carriers in a wireless network.
A suitable wireless Internet gateway is disclosed in co-owned U.S. application Ser. No. 09/630,762, filed Aug. 2, 2000, entitled “Wireless Internet Gateway”, now U.S. Pat. No. 7,228,333, to Richard Smith, the entirety of which is expressly incorporated herein by reference.
The present invention enables a WIG to communicate with the gateways of other carriers (particularly other wireless carriers) having different and occasionally changing kinds of message destinations using different and occasionally changing protocols.
In accordance with the principles of the present invention, information regarding other carriers (i.e., destinations) may be added, changed, and/or removed from a wireless short messaging system network by simply modifying a configuration property file relating to message formats for each other carrier, rather than the technique of providing each carrier with its own delivery module, avoiding the conventional need to reprogram relevant sending gateways.
FIG. 1 shows an exemplary message distribution center in a wireless gateway including a carrier format table and destination link, in accordance with the principles of the present invention.
In particular, as shown in FIG. 1, short messages of various protocols are received by respective protocol receivers 130-132, and fed into a message queue 120. The various protocol receivers may relate, e.g., to email, HTTP, TAP, SMPP, etc. A message distribution center 102 portion of a wireless Internet gateway receives the queued short messages from the message queue 120, e.g., on a first come-first served basis.
The queued messages are interrogated by the message distribution center 102 to determine their destination carrier. One appropriate interrogation method is, e.g., in the case of a page or voice message, to map the area code and exchange number of the destination telephone number to a particular carrier. This is performed in the area code/exchange mapper 104, in communication with the message distribution center 102.
The WIG may determine the destination gateway by the area code and exchange of the destination device (NPA/NXX). For example, short messages to numbers beginning with 443994 are automatically routed to AT&T Wireless ServicesTM. For devices with non-10 digit destination numbers (e.g., some pagers), standard numbers are prefixed to the actual destination in order to make it 10 digits.
In accordance with the principles of the present invention, once a carrier is determined from the short message, the preferred format and other carrier specific information is determined from a carrier format table 100. Then, given the carrier specific information obtained from the carrier format table 100, the messages are sent to a destination link 106 for transmission via the appropriate protocol to the appropriate destination via the Internet 110.
In the disclosed embodiments, the carrier format table 100 includes a carrier property configuration file or carrier format file, e.g., ‘GWDEST.properties’. The GWDEST.properties file is used to define carriers in a wireless short messaging system, together with the particular properties that go along with each carrier.
While the present embodiment describes a carrier property file named GWDEST.properties, the carrier format table may have any name within the scope of the present invention. The GWDEST.properties file specifies the various settings that are necessary to support a particular carrier.
The internal queue 120 simply sends messages to a generic Interface, which can be implemented in any number of ways. The interface defines basic messaging requirements, such as ‘sendTextMessage’ and ‘makeConnection’.
A WIG in accordance with the principles of the present invention is able to support multiple destinations (carriers) in an easily updatable fashion because the potential carrier destinations are internally abstracted away from their associated protocols. For the multi-carrier support feature in accordance with the principles of the present invention, the destination link interface 106 transparently routes short messages to other destination objects representing each possible peer gateway. Peer gateway objects are created from classes that capture the underlying protocol to use. For example, SMTP, HTTP Post and HTTP Get.
The carrier format table 100 configuration file preferably includes the universal resource locator (URL) and form field names, together with information regarding whether the carrier is communicated with, e.g., using HTTP GET, HTTP POST, or Email.
In the disclosed embodiment, carrier specific properties of all carriers in a network are entered into the carrier format table, e.g., into the GWDEST.properties file. The GWDEST.properties file may be updated on a periodic basis as necessary, without the need to affect other operations of the gateway.
The following is an example configuration file called GWDEST.properties, including destination information for seven (7) carriers. Of course, the principles of the present invention relate to a configuration file containing fewer or many, many more carrier entries, e.g., hundreds. Note that the number of entries for each carrier may change, depending upon the particular carrier.
numOfCarriers=7
0_className=tcs.ain.smsgw.gwdest.GWDestHttpGet
0_carrierName=AT
0_carrierNameLong=AirTouch
0_baseURL=http://webmsg.airtouch.com/cgi-bin/smspowerband_parse_genmail
0_maxLen=120
0_numFields=3
0_fieldNum0=min NUM
0_fieldNum1=callback from
0_fieldNum2=message MSG
1_className=tcs.ain.smsgw.gwdest.GWDestHttpGet
1_carrierName=AMT
1_carrierNameLong=Ameritech
1_baseURL=http://paging.acswireless.com/cgi-bin/page.cgi
1_maxLen=120
1_numFields=5
1_fieldNum0=miscVar template=paging
1_fieldNum1=miscVar email=httpd@ameritech.exmachina.comm
1_fieldNum2=min pin
1_fieldNum3=callback from
1_fieldNum4=message message
2_className=tcs.ain.smsgw.gwdest.GWDestHttpPost
2_carrierName=ATT
2_carrierNameLong=AT&T Wireless
2_baseURL=http://www.mobile.att.net/mc/mc_pagersend.cgi
2_maxLen=110
2_numFields=5
2_fieldNum0=miscVar htmlsource=nonMsg.html
2_fieldNum1=min pin
2_fieldNum2=miscVar returnpage=default
2_fieldNum3=callback from
2_fieldNum4=message message
3_className=tcs.ain.smsgw.gwdest.GWDestHttpGet
3_carrierName=BAM
3_carrierNameLong=Bell Atlantic Mobile
3_baseURL=http://www3.bam.com/cgi-bin/sms/sms.cgi
3_maxLen=120
3_numFields=5
3_fieldNum0=miscVar msg_type=messaging
3_fieldNum1=areaCode area_code
3_fieldNum2=exchange exchange
3_fieldNum3=extension extension
3_fieldNum4=message message
4_className=tcs.ain.smsgw.gwdest.GWDestHttpGet
4_carrierName=BS
4_carrierNameLong=BellSouth
4_baseURL=http://www.sms.bellsouth.com/sendnow.cgi
4_maxLen=155
4_numFields=2
4_fieldNum0=min min
4_fieldNum1=message msg
5_className=tcs.ain.smsgw.gwdest.GWDestEmail
5_carrierName=PB
5_carrierNameLong=PacBell
5_maxLen=110
5_baseURL=@pacbellpcs.net
5_appendDigits=1
6_className=tcs.ain.smsgw.gwdest.GWDestEmail
6_carrierName=OT
6_carrierNameLong=Omnipoint
# append a ‘1’ to the number for the email address
6_appendDigits=1
6_baseURL=@omnipoint.net
6_maxLen=60
To show the flexibility of the GWDEST.properties file, and the carrier format table 100 in general, the following is an alternative entry for carrier No. 6:
This is the web page link for Omnipoint.
6_className=tcs.ain.smsgw.gwdest.GWDestHttpGet
6_carrierName=OT
6_carrierNameLong=OmniPoint
6_baseURL=http://www.omnipoint.com/cgi-bin/message.cgi
6_appendDigits=1
6_maxLen=60
6_numFields=2
6_fieldNum0=min phone
6_fieldNum1=message message
Each carrier entry in the exemplary configuration file 100 may start with the carrier's ID number as set in an appropriate database.
The ClassName currently takes one of three forms, although additional forms may be possible. The ClassName relates to the method of communication to the relevant carrier.
In the disclosed embodiment, a ClassName of GWDestHttpGet indicates that the carrier communicates with an HTTP GET command, and handles carriers that use HTTP GET. A ClassName of GWDestHttpPost indicates that the carrier communicates with an HTTP POST command, and handled carriers that use HTTP POST. A ClassName of GWDestEmail indicates that the carrier communicates via Email, and handles carriers that use email.
The CarrierName parameter may be 2 or 3 letter code unique to the particular carrier.
The CarrierNameLong parameter may be the full proper name of the particular carrier.
The MaxLen parameter may be used to indicate the maximum length of the short message which may be supported by the relevant carrier.
The BaseURL parameter may be the address used for messaging with the particular carrier.
The numFields parameter is the number of form fields that the carrier's messaging page has.
The format for the fieldNumX properties may be as follows:
X_fieldNumY=ourVariableName theirVariableName, where ourVariableName can be any of the following types: min, callback, subject, message, priority, areaCode, exchange, extension, phoneNumber, and miscVar. These represent fields that are recognized by the local sending gateway.
As disclosed, the carrier's variables are mapped into the variables of the carrier to which the message is sent. The sub-parameter miscVar may be used for any variable that does not have a dynamically assigned value. When the URL is generated, it is spit out as is.
FIG. 2 shows an exemplary overview of message flow relating to the message distribution center shown in FIG. 1.
In particular, as shown in FIG. 2, a message is sent by the sender to one of the protocol receivers 130-132, as shown in message 201.
The relevant protocol receiver 130-132 adds the message to the queue 120, as shown in message 202.
In message 203, the message is forwarded by the queue 120 to the message distribution center module 102.
The message distribution center 102 interrogates the message to determine the intended destination, and looks up the particular destination from an appropriate database, e.g., the area code/exchange mapper 104, as depicted in message 204.
In message 205, the message distribution center 102 delivers the message to the destination, as an abstracted destination link 106, for delivery to the relevant destination. The exemplary system uses an Object-Oriented, interface-driven approach to accomplish abstraction from particular carrier protocols, such as SMTP and HTTP Get.
The present invention focuses on the use of a carrier format table 100 by the destination link 106 to obtain the appropriate format for the destination carrier. In particular, “multi-carrier support” relates to the definition and use of special classes in the “Abstract Destination” (IGWSNLink) that know how to deliver messages to various “Peer” wireless internet gateways using, e.g., SMTP, HTTP, or other (even future) protocols.
FIG. 3 shows an exemplary destination link 106 and related modules of a wireless Internet gateway such as that shown in FIG. 1.
The destination link 106 includes a destination link cluster module 320, a Gateway destination link module called GWDestLink:IGWSNLink 330, a GWDestResource 340, and a Routing Database 350. The destination link 106 also includes peer modules, including a PeerDestination:IGWSNLink 360 which utilizes an appropriate format module, e.g., Email Dest:PeerGWDestination module 370 which communicates via email, Post Dest:PeerGWDestination module 380 which communicates via POST commands, and Get Dest:PeerGWDestination module 390 which communicates via GET commands.
As shown in FIG. 3, a message may be sent to the destination link GWDestLink 106. The message is sent using, e.g., a sendTextMessage 301, to the GWDestLink 330.
The GWDestLink 330 aggregates many peer destinations. For instance, the GWDestLink 330 gets information from a GWDestResource 340, to create a peer destination, as shown in message 302. The GWDestResource 340 may be used to dynamically create peer destinations and to assign attributes such as which servers to communicate with, the format to use to communicate, etc.
As shown in message 304, the GWDestLink 330 forwards the message to the appropriate peer destination which is to handle transmission of the message to another gateway over the Internet 110 using the appropriate protocol, e.g., Email, HPPT post, etc. Labels 305 indicate that the peer GW Destinations a sub-types of the PeerDestination class and the IGWSNLink interface. FIG. 4 shows an exemplary implementation of the destination link and related modules shown in FIG. 3.
The enabling WIG technology disclosed here allows short messages (e.g., email, voice mail, HTTP post, etc.) to be transparently routed to the appropriate destination gateway using a configurable carrier format table. It also allows the message length to be formulated to reflect the destination, e.g., a 400-character message can be sent in whole to a Bell South IPS pager, whereas the same message would be split into 4 separate 100 characters messages when sent to a Sprint Phone.
While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention.

## Claims

1. A message distribution center, comprising:
a plurality of protocol receivers to receive messages from users of at least one carrier destined for routing via an Internet to a different, destination carrier having a different format;
an incoming message queue to queue said received messages;
a dynamically updateable carrier message format table comprising carrier specific format information for each possible different destination carrier; and
a destination link interface to transparently route said received and queued messages to external remote destination carrier gateways representing each possible peer gateway, said destination carrier gateways being selected for each said received message based on carrier specific information obtained from said dynamically updateable carrier message format table;
wherein said dynamically updateable carrier message format table is adapted to be dynamically updated to include an up-to-date list of possible destination carrier gateways.

2. The message distribution center according to claim 1, wherein said plurality of protocol receivers comprise:
an email message receiver.

3. The message distribution center according to claim 1, wherein said plurality of protocol receivers comprise:
an HTTP protocol message receiver.

4. The message distribution center according to claim 1, wherein said plurality of protocol receivers comprise:
an SMPP protocol message receiver.

5. The message distribution center according to claim 1, further comprising:
an area code/exchange number to destination carrier mapper to map an area code/exchange number of a message received in said incoming message queue to a destination carrier's gateway format.

6. The message distribution center according to claim 1, wherein said destination link further comprises:
an interface to an Internet.

7. A method of abstracting destination carrier format from a wireless Internet gateway, comprising:
receiving an incoming short message from a user of a first carrier;
retrieving destination carrier information from said incoming short message;
retrieving destination carrier message format information from a dynamically updateable carrier message format table comprising carrier specific format information for each possible different destination carrier; and
routing said received short message to an external remote destination carrier gateway selected based on carrier specific information obtained from said dynamically updateable carrier message format table;
wherein said dynamically updateable carrier message format table is adapted to be dynamically updated to include an up-to-date list of possible destination carrier gateways.

8. The method of abstracting destination carrier format from a wireless Internet gateway according to claim 7, further comprising:
generating a peer destination class based on said carrier specific information retrieved from said dynamically updateable carrier message format table.

9. The message distribution center according to claim 1, wherein said dynamically updateable carrier message format table comprises:
a universal resource locator (URL) of a relevant destination carrier;
form field information; and
a communication protocol of said relevant destination carrier.

10. Apparatus for abstracting destination carrier format from a wireless Internet gateway, comprising:
means for receiving an incoming short message from a user of a first carrier;
means for retrieving destination carrier information from said incoming short message;
means for retrieving destination carrier message format information from a dynamically updateable carrier message format table comprising carrier specific format information for each possible different destination carrier; and
means for routing said received short message to an external remote destination carrier gateway selected based on carrier specific information obtained from said dynamically updateable carrier message format table;
wherein said dynamically updateable carrier message format table is adapted to be dynamically updated to include an up-to-date list of possible destination carrier gateways.

11. The apparatus for abstracting destination carrier format from a wireless Internet gateway according to claim 10, further comprising:
means for generating a peer destination class based on said carrier specific information retrieved from said dynamically updateable carrier message format table.