The subject matter described herein relates to providing address translation service in a communications network. More particularly, the subject matter described herein relates to methods, systems, and computer program products for providing address translation using subsequent address information.
Number portability (NP) gives telephone service subscribers (i.e., wireline and wireless service subscribers) the ability to change local service providers without changing directory numbers. As used herein, the term “number portability” includes service provider portability, which allows subscribers to change local telephone service providers without changing directory numbers; service portability, which allows subscribers to change from one type of service to another (e.g., analog to integrated services digital network (ISDN) without changing phone numbers; geographic portability, which allows subscribers to move from one physical location to another without changing directory numbers, or any other type of service-related portability in which a subscriber desires to keep the same directory number.
While intelligent network and advanced intelligent network solutions to the problem of number portability exist, these solutions are query-and-response-based and are generally known as “triggered” number portability solutions. The implementation of triggered NP solutions typically requires network switching elements, such as end office (EO) and mobile switching center (MSC) facilities, to be upgraded to support such NP query-response functionality, which is expensive both from a financial standpoint as well as a resource management perspective. In an effort to avoid expensive network switching element upgrades, some network operators have implemented “triggerless” number portability solutions, which enable calls to be routed to ported numbers without requiring the deployment of switching-element-based NP query-response functionality. Instead, a triggerless-NP-capable network routing element, such as an Signaling System 7 (SS7) signal transfer point (STP), may intercept a call setup signaling message, such as an ISDN user part (ISUP) initial address message (IAM), extract a called party number from the message, perform a number portability translation based on the extracted called party number, modify the message to include the translated address information (e.g., a location routing number), and route the modified message to the ported destination.
One significant drawback to such traditional IAM-interception-based triggerless address translation processing is that the IAM message is relied upon to obtain the complete called party address associated with a call setup attempt. The SS7 signaling protocol provides a mechanism where call setup signaling may be initiated prior to collection of the complete called party address (e.g., dialed digit) information by the switching office originating the call. For example, once the first 6 digits of the called party address are received by an originating switching office, the switching office may generate and transmit an ISUP IAM message associated with the setup of the call, where the IAM message contains only the first 6 digits of the called party address. Once the remaining 4 digits of the called party address are collected by the originating switching office, one or more ISUP subsequent address message (SAM) messages may be used to convey the additional called party address information to other signaling nodes, so that call setup processing may be completed. In signaling environments where incomplete called party address information is included in the IAM message and one or more additional subsequent address messages are used in conjunction with the IAM message to convey called party number information, an NP translation cannot be performed for the IAM message because it lacks sufficient information for the NP lookup.
Therefore, what is needed is an address translation solution can be used in signaling environments where multiple signaling messages are used to convey called party number information associated with a call.
Methods, systems, and computer program products for providing address translation using subsequent address information are disclosed. According to one method, a first call setup signaling message containing a first portion of a called party identifier is received. A second call setup signaling message containing a second portion of the called party identifier is received. The first and second portions of the called party identifier are used to perform an address translation.
The subject matter described herein providing address translation processing may be implemented using a computer program product comprising computer executable instructions embodied in a computer readable medium. Exemplary computer readable media suitable for implementing the subject matter described herein include disk memory devices, chip memory devices, programmable logic devices, application specific integrated circuits, and downloadable electrical signals. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform distributed across multiple devices and/or computing platforms.
Preferred embodiments of the subject matter described herein will now be explained with reference to the accompanying drawings of which:
The subject matter described herein includes methods, systems, and computer program products for providing address translation using subsequent address information. Embodiments of the subject matter described herein may be implemented using an underlying hardware platform similar to that of a network routing node, such as a signal transfer point (STP) or an SS7-over-Internet protocol signaling gateway (SG).
Application subsystem 106 includes processing modules or printed circuit boards capable of communicating with the other cards through IMT bus. Numerous types of processing modules can be included in SG 100. Exemplary processing modules that may be part of application subsystem 106 include an SS7 link interface module (LIM) 108 that provides SS7 links and X.25 links, a data communication module (DCM) 110 that provides an Internet protocol (IP) signaling interface to external nodes, and a high-speed asynchronous transfer mode (ATM) communication link module (HSL) 112. A database services module (DSM) 114 may host one or more signaling message processing applications, such as global title translation, flexible routing, number portability translation, ENUM, call screening, pre-paid calling service, mobile services, 800 number service, caller identification service, and other applications that involve routing or application layer signaling message processing.
From a hardware perspective, each processing module may include an application processor and a communications processor. The application processor may perform telecommunications signaling message processing functions, such as parsing messages and performing database lookups. The communications processor on each module may control communications with other processing modules via the IMT bus.
Multiple LIM, DCM, HSL, DSM and other processor modules may be provisioned and operated simultaneously within SG 200, so as to form a highly scalable, reliable message processing system.
As illustrated in
It should be noted that while embodiments of the present subject matter are described herein with respect to the ISUP signaling protocol, the subject matter described herein may be implemented for other signaling protocols, such as BISUP or TUP, that permit the communication of called party identification between signaling points using multiple signaling messages.
For received signaling messages that require MTP routing, routing function 216 is responsible for examining an incoming message received from discrimination function 214 and determining on which outbound linkset/link or signaling link equivalent (e.g., IP socket connection, etc.) the message is to be transmitted. Routing function 216 may also internally transmit the message to the outbound communication module (e.g., a LIM, a DCM, or an HSL module) associated with the selected signaling link via IMT bus 202.
If discrimination function 214 determines that a received signaling message requires processing by an internal application processor or subsystem of the SG node, then the message is passed to message distribution function 218. Message distribution function 218 is adapted to direct the signaling message to an application processor module that is equipped to provide the appropriate message processing service. For example, discrimination function 214 is responsible for examining incoming signaling messages and determining if number portability translation service is indicated. In one embodiment, NP translation service is indicated if message discrimination function 214 determines that a received signaling message is an ISUP initial address message (IAM) or subsequent address message (SAM). Such a determination may be made through examination of a service indicator (SI) parameter (e.g., ISUP SI=5) and a message type parameter within a received SS7 signaling message packet. Other SS7 message parameters, such as originating point code (OPC), destination point code (DPC), circuit identification code (CIC), and/or FCI number portability translation indicator may also be examined by discrimination function 214 in order to determine whether NP translation service is indicated for a received signaling message.
If NP translation processing is indicated for a received message, then message distribution function 218 handles the internal routing of the message to a DSM application processor module within the SG system that is provisioned with an NP translation service application.
DCM 230 includes OSI transport (e.g., TCP, UDP, SCTP), network (e.g., IP), datalink (e.g., Ethernet), and physical (e.g., TDM, SONET) layer functions, which are collectively illustrated in
Discrimination function 236, routing function 238, and distribution function 240 associated with DCM 230 perform functions analogous to corresponding functions 214, 216, and 218, respectively, as described above with respect to LIM 210. Accordingly, if discrimination function 236 determines that a received signaling message requires processing by an internal application processor or subsystem of the SG node, then the message is passed to message distribution function 238. Message distribution function 238 may direct the signaling message to a processing module that is equipped to provide the appropriate message processing service. For example, discrimination function 236 may examine incoming signaling messages and determining if number portability translation service is indicated. In one embodiment, NP translation service is indicated if message discrimination function 236 determines that a received signaling message is an ISDN user part (ISUP) initial address message (IAM) or subsequent address message (SAM). Such a determination may be made through examination of a service indicator (SI) parameter (e.g., ISUP SI=5) and a message type parameter within a received IETF SIGTRAN M3UA signaling message packet. Other M3UA message parameters, such as originating point code (OPC), destination point code (DPC), circuit identification code (CIC), and/or FCI number portability translation indicator may also be examined by discrimination function 236 in order to determine whether NP translation service is indicated for a received signaling message. If NP translation processing is indicated for a received message, message distribution function 240 handles the internal routing of the message to a DSM application processor module within the SG system that is provisioned with an NP translation service application.
Also illustrated in
SAM consolidation function 252 may receive an ISUP message, such as an IAM or SAM message, from a communication module, such as LIM 210 or DCM 230 (steps A1 and A2). The ISUP message may be MTP-formatted or may be formatted according to an IP adaptation protocol, such as IETF SIGTRAN M3UA or TALI. SAM consolidation function 252 may examine a message type indicator contained within the received ISUP message in order to identify the type of the received message (e.g., IAM or SAM). If the message is determined to be an IAM message (flow path 1), SAM consolidation function 252 may examine called party number (CdPN) information contained in the message in order to determine if a complete called party number is contained in the message (step A3). In this example, the CdPN parameter of the received IAM message has a value of 919380.
If it is determined that a complete called party number is contained in the IAM message, then the IAM message is passed to NP database application 254, where number portability translation processing is performed using the CdPN value contained in the IAM message (step A9). If it is determined that an incomplete called party number is contained in the IAM message, as is the case in this example, then the IAM message is temporarily buffered by SAM consolidation function 252 (step A4), and an entry associated with the IAM is placed in a correlation table. Exemplary IAM-SAM correlation data is shown below in Table 1.
In this example, the received IAM message includes an OPC parameter value of 1-1-1 and a CIC value of 56, and the IAM message is temporarily buffered in a storage array at storage array location 12445. A buffer location/storage array location may be, for example, a random access memory location, a storage array pointer value, or a database record identifier.
Continuing with the example of an ISUP IAM message that contains incomplete called party number information, once the IAM is buffered and an entry is placed in the IAM-SAM correlation table, SAM consolidation function 252 may examine incoming ISUP messages in an effort to locate one or more ISUP SAM messages that are associated with the buffered IAM message. If an ISUP SAM message is received at LIM 210 or DCM 230 (step A5), the SAM message is internally routed to DSM 250 for NP translation processing (step A6, flow path 2) in a manner similar to the handling of an IAM, as described above.
In one implementation, SAM consolidation function 252 may maintain a timer (T7) that runs while collecting all digits. The timer T7 may run from the reception of the IAM. SAM consolidation function 252 may also maintain an inter-SAM timer (T10), in case more than one SAM is required. The timer T10 is restarted each time digits are received. If either T7 or T10 expire, the action taken may depend on the numbering plan being used in the network. If it can be determined that insufficient digits are present to complete the call, a release (REL) is sent to the originator to tear down the transaction. If the number of digits might be enough (for example, a variable digit numbering plan), then the IAM is sent on to processing with whatever digits are present
Assuming that T7 or T10 has not expired, SAM consolidation function 252 receives the SAM message and examines an OPC parameter value and a CIC parameter value contained in the message. The OPC and CIC values extracted from the SAM message may be used to search the IAM-SAM correlation table (step A7). If a matching entry is located, the buffer location value associated with the matching correlation table entry is used to retrieve the associated IAM message from the temporary buffer storage. Subsequent number information may be extracted from the SAM message and appended to the incomplete called party number information contained in the IAM message (step A8). In this example, the subsequent number parameter contained in the received SAM message has a value of 3814. A check is then performed to determine whether the resulting called party number value (i.e., 9193803814) represents a complete called party number. The determination as to whether the called party number represents a complete called party number may be made based on a number of called party digits received and a numbering plan used in a network. If the resulting called party number value does represent a complete called party number, then the modified IAM message (which now includes the complete called party number information) is passed to NP database application 254, where number portability translation processing is performed using the complete CdPN value contained in the modified IAM message (step A9, flow path 3). The corresponding entry in the IAM-SAM correlation table is deleted and the buffer is cleared of the original IAM. Exemplary number portability translation data is presented in Table 2, below. In this example, the complete called party number, 9193803814, is used to search the number portability translation database and locate an associated location routing number (LRN), which identifies the switching office that is serving the ported number/subscriber (step A10). The LRN value is inserted into the IAM message, along with the complete called party number (stored in a generic address parameter), and the modified IAM message is routed from the SG (steps A11 and A12, flow path 4).
If it is determined that the resulting called party number value does not represent a complete called party number, then the corresponding entry in the IAM-SAM correlation table is deleted, the modified IAM message (containing the original called party number information plus the additional called party number information provided by the SAM) is temporarily buffered by SAM consolidation function 252, and a new entry associated with the modified IAM is placed in a correlation table. This process may be repeated until a complete called party number can be constructed using additional called party number information provided by one or more messages that carry subsequent address information.
In this manner, the subject matter described herein may be used to provide “triggerless” number portability translation services (e.g., wireless number portability, local number portability, etc.) in a signaling environment that includes the use of ISUP SAM messages.
The Internet Engineering Task Force (IETF) initiated the development of the E.164 Number Mapping (ENUM) system for facilitating the interconnection of communications networks that rely on telephone numbers with the communications networks that utilize the Domain Name System (DNS). In particular, the ENUM system can map a particular number referred to as an E.164 number to one or more Uniform Resource Identifiers (URIs) used in the DNS. URIs are strings of characters that identify resources such as documents, images, files, databases, e-mail addresses, web sites or other resources or services in a common structured format. A URI can include a SIP URI, an instant messaging (IM) identifier, an email address identifier, an Internet chat session identifier, and/or an IP address.
People dial E.164 numbers to complete telephone calls. If the called party uses and IP phone, such as a SIP phone, an ENUM query may be required to convert the E.164 number to a URI corresponding to the IP phone. In general, an E.164 number associated with a called party is converted to an ENUM query message format by reversing the digit order of the dialed E.164 number and appending the highest level domain e164.arpa to the end. For example, if the original E.164 number is 123-456-7890, then the corresponding ENUM query is formatted as 0.9.8.7.6.5.4.3.2.1.e164.arpa. The ENUM query is then communicated to an ENUM service application, where the ENUM service application is adapted to retrieve one or more naming authority pointer (NAPTR) records associated with the E.164 number. Each of the NAPTR records may identify at least one URI corresponding to the subscriber with the E.164 number, and one or more of the returned URI values may be subsequently used to complete call setup.
One embodiment of a call processing node 300 which includes SAM-enabled ENUM functionality, includes a plurality of communication and/or processor cards that are connected to each other via interprocessor message transport (IMT) bus 302. Exemplary cards or processor modules include a pair of MASP processor modules 304, an SS7 link interface module (LIM) 310, an IP-capable DCM module 330, a call server module 350, and an ENUM service application processor module 360.
Bus 302, MASP processors 304, SS7 LIM module 310, and IP-capable DCM module 330 provide services and perform functions similar to those analogous components described above with respect to SG 200. IMT bus 302 provides a path for communication between processor modules in the system. SS7 LIM 310 may send and receive SS7 signaling messages to and from SS7 signaling points in a communications network. LIM 310 includes an SS7 MTP level 1 & 2 function 312, an SS7 MTP level 3 message discrimination function 314, a routing function 316, and a message distribution function 318. MTP level 1 and 2 function 312 provides the facilities necessary to send and receive digital data over a particular physical medium, as well as to provide error detection, error correction and sequenced delivery of SS7 messages. Message discrimination function 314 receives signaling messages from the lower processing layers and performs a discrimination operation that determines whether an incoming message is allowed into the MGC system for internal processing or whether the message is to be through-switched (i.e., routed to a destination without internal processing). Examples of received messages that require internal processing include ISUP messages.
For received signaling messages that require MTP routing, routing function 316 is responsible for examining an incoming message received from discrimination function 314 and determining on which outbound linkset/link or signaling link equivalent (e.g., IP socket connection, etc.) the message is to be transmitted. Routing function 316 may also internally transmit the message to the outbound communication module (e.g., LIM, DCM, HSL) associated with the selected signaling link via IMT bus 302.
If discrimination function 314 determines that a received signaling message requires processing by an internal application processor or subsystem of the MGC node, then the message is passed to message distribution function 318. Message distribution function 318 may direct the signaling message to an application processor module that is equipped to provide the appropriate message processing service. For example, discrimination function 314 may be responsible for examining incoming signaling messages and determining if call server processing is indicated. In one embodiment, call server processing is indicated if message discrimination function 314 determines that a received signaling message is an ISDN user part (ISUP) initial address message (IAM) or subsequent address message (SAM). Such a determination may be made through examination of a service indicator (SI) parameter (e.g., ISUP SI=5) and a message type parameter within a received SS7 signaling message packet. Other SS7 message parameters, such as originating point code (OPC), destination point code (DPC), and a circuit identification code (CIC) may also be examined by discrimination function 314 in order to determine whether call server processing is indicated for a received signaling message. If call server processing is indicated for a received message, then message distribution process 318 handles the internal routing of the message to a call server application processor module within the MGC system that is provisioned with a call server application.
DCM 330 includes OSI transport (e.g., TCP, UDP, SCTP), network (e.g., IP), datalink (e.g., Ethernet), and physical (e.g., TDM, SONET) layer functions, which are collectively illustrated in
Call server module (CSM) 350 includes processes and databases for performing call control related functions. For example, call server module 350 may include one or more databases for performing trunk selection based on parameters in a received ISUP message. Call server module 350 may also store call state information, such as the sequence of ISUP messages received for a given call. Call server module 350 includes a SAM consolidation function 352, one or more call tables 354 for maintaining call state information and setting up a connection using a media gateway, and call processor function 356.
SAM consolidation function 352 may receive an ISUP message, such as an IAM or SAM message, from a communication module, such as LIM 310 or DCM 330 (steps B1 and B2). The ISUP message may be MTP-formatted or may be formatted according to an IP adaptation protocol, such as IETF SIGTRAN M3UA or TALI. SAM consolidation function 352 may examine a message type indicator contained within the received ISUP message in order to identify the type of the received message (e.g., IAM or SAM). If the message is determined to be an IAM message (flow path 1), SAM consolidation function 352 may examine called party number (CdPN) information contained in the message in order to determine if a complete called party number is contained in the message (step B3). Using the same example described above, the CdPN parameter of the received IAM message has a value of 919380.
If it is determined that a complete called party number is contained in the IAM message, then the IAM message is passed to call processor function 356, where number call server processing is performed using the CdPN value contained in the IAM message (step B9). If it is determined that an incomplete called party number is contained in the IAM message, as is the case in this example, then the IAM message is temporarily buffered by SAM consolidation function 352 (step B4), and an entry associated with the IAM is placed in a correlation table, such as Table 1 described above.
Continuing with the example of an ISUP IAM message that contains incomplete called party number information, once the IAM is buffered and an entry is placed in the IAM-SAM correlation table, SAM consolidation function 352 may examine incoming ISUP messages in an effort to locate one or more ISUP SAM messages that are associated with the buffered IAM message. If an ISUP SAM message is received at LIM 310 or DCM 330 (step B5), the SAM message is internally routed to call server module 350 (step B6, flow path 2) in a manner similar to the handling of an IAM, as described above.
SAM consolidation function 352 receives the SAM message and examines an OPC parameter value and a CIC parameter value contained in the message. The OPC and CIC values extracted from the SAM are used to search the IAM-SAM correlation table (step B7). If a matching entry is located, the buffer location value associated with the matching correlation table entry is used to retrieve the associated IAM message from the temporary buffer storage. Subsequent number information is extracted from the SAM message and appended to the incomplete called party number information contained in the IAM message (step B8). In this example, the subsequent number parameter contained in the received SAM message has a value of 9100. A check is then performed to determine whether the resulting called party number value (i.e., 9193809100) represents a complete called party number. If the resulting called party number value does represent a complete called party number, then the modified IAM message (which now includes the complete called party number information) is passed to call processor function 356 (step B9, flow path 3), where call processing operations, including ENUM processing operations, are performed using the complete CdPN value contained in the modified IAM message. The corresponding entry in the IAM-SAM correlation table is deleted and the buffer is cleared of the original IAM.
If it is determined that the resulting called party number value does not represent a complete called party number, then the corresponding entry in the IAM-SAM correlation table is deleted and the modified IAM message (containing the original called party number information plus the additional called party number information provided by the SAM), is temporarily buffered by SAM consolidation function 352, and a new entry associated with the modified IAM is placed in a correlation table. This process is repeated until a complete called party number can be constructed using additional called party number information provided by one or more subsequent SAM messages.
Call tables 354 may include a translation table, a routing table, a signaling table, an endpoint table, a connection table, and a state table. In one embodiment, a translation table maps dialed digits to trunk groups, a routing table maps trunk groups to media gateways and SS7 routing sets, a signaling table maps SS7 routing sets to destination point codes and linksets. The routing and signaling tables are used to generate SS7 call signaling messages relating to a call, while the endpoint and connection tables contain information for establishing a connection in a media gateway and the state table stores call state information for each endpoint in a media gateway. Also included on call server module 350 is a routing function 358 that is adapted to route outbound signaling messages (e.g., ISUP, SIP, MGCP, and/or MEGACO messages) to the appropriate outbound communication module for transmission from the MGC node.
Call processor function 356 includes call control logic that is adapted to determine the incoming port on an associated media gateway using the OPC, DPC, and CIC codes extracted from a received ISUP IAM message, and to select a trunk group for the outgoing trunk using called party subscriber identification information (e.g., CdPN, SIP URI, etc.). According to one embodiment, prior to selecting an outgoing trunk/trunk group for a call associated with an ISUP IAM message received from SAM consolidation function 352, call processor function 356 may extract the complete called party number address (previously constructed by SAM consolidation function 352) from the IAM message, and use the complete called party number to generate an ENUM query (step BIO), such as the following:
As described above, an E.164 number associated with a called party is converted to an ENUM query message format by reversing the digit order of the dialed E.164 number and appending the highest level domain e164.arpa to the end. Continuing with the current example (i.e., CdPN=9193809100), the associated ENUM-formatted identifier is 0.0.1.9.0.8.3.9.1.9.e164.arpa, as shown above. The ENUM query is then routed to an ENUM service application (flow path 4), which may be located on a remote network server or which may be integrated with MGC 300. In
The ENUM query is received at DSM 360 by ENUM application 362. ENUM application 362 includes ENUM translation data, which is used to map an E.164 telephone number to one or more URI subscriber identifiers. Exemplary ENUM translation data is presented in Table 3.
ENUM application 362 is adapted to process the received ENUM query message and return an associated ENUM response message, which may include one or more URI subscriber identifiers (step B11). In this example, ENUM application 362 receives the ENUM query requesting ENUM translation for the E.164 number (919) 380-9100 and returns a SIP URI value of pete@tekelec.com, as shown in the exemplary ENUM response message below:
Call processor function 356 receives the ENUM response message, extracts a URI value from the message, and uses the URI value to make an outbound trunk group/trunk selection. Based on the URI, call processor function may generate additional signaling messages associated with the call transaction, where the signaling messages may be ISUP, broadband ISUP (BISUP), TUP, SIP, or other signaling protocols. In this example, call processor function 356 generates a SIP message, which includes the URI value and routes the SIP message from the MGC node via DCM 330 (step B12, flow path 5).
In an alternate embodiment, call processor function 356 may include or have access to an ENUM subscription table, which identifies those subscribers have ENUM service. An exemplary ENUM subscription table may include a list of subscriber identifiers, as public switched telephone service (PSTN) telephone numbers or mobile subscriber identifiers (e.g., mobile subscriber ISDN, mobile identification number), as illustrated in Table 4. In this embodiment, call processor function 356 receive an IAM message from SAM consolidation function 352, extract the CdPN value from the message, and search the ENUM subscription table using the CdPN value. If a matching entry is located in the ENUM subscription table, then an ENUM query is generated and processed as described above. If a matching entry is not located in the ENUM subscription table, then ENUM translation processing is not initiated.
Accordingly, it will be appreciated that above described embodiment of the present subject matter provides systems and methods for providing “triggerless” ENUM service in a communications network environment where ISUP SAM messages are utilized during call setup.
It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for purposes of illustration only, and not for the purpose of limitation.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/724,740, filed Oct. 7, 2005; the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60724740 | Oct 2005 | US |