Mobile devices offer various services and applications to users, such as a web service, a communication service (e.g., e-mail, short messaging service (SMS), video chat, multimedia messaging service (MMS), telephone, etc.), a media service (e.g., streaming and downloading of music, video, etc.), etc.
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
Network administrators are responsible for the operation, administration, provisioning, and maintenance of networks. One aspect of network management concerns network resource utilization. For example, when a service or an application is provided to users, the network administrator would like to minimize traffic in the network when provisioning the service or the application to the users. For example, network signaling between network devices to provision the service on behalf of the users can create an enormous amount of traffic in the network. As an example, consider an Internet Protocol Multimedia Subsystem (IMS) that offers, among other applications and services, a communication service such as a Short Messaging Service (SMS). According to one implementation, when a Short Message Service Center (SMSC) receives an SMS message to deliver to a registered user of the IMS network, the SMSC queries a Home Subscriber Server (HSS) to determine the location or address of the Call Session Control Function (CSCF) that is servicing the registered user. As a result, an enormous amount of signaling traffic is created, which results in link congestion, as well as excessive utilization of the HSS in the IMS network.
According to an exemplary embodiment, a registration service establishes that registration information pertaining to a registration of a user with a network and/or network device of the network is provided to an application device and/or a service device (hereinafter application/service device). According to an exemplary embodiment, a network device associated with a network, with which the user is registered, informs an application/service device with registration information during the user's registration with the network or thereafter. For example, the network device (e.g., a CSCF device) associated with the network (e.g., an IMS network), with which the user is registered or registering, informs an application/service device (e.g., an SMSC device) with registration information pertaining to the user's registration request. According to an exemplary embodiment, the registration information includes an identifier of the network device and an identifier of the user that is registered with the network device. According to an exemplary embodiment, the application/service device stores the registration information and uses the registration information to provide a service or a function. For example, the SMSC device uses the registration information to forward or route incoming SMS messages, which are directed to the user, to the CSCF with which the user is registered.
According to another exemplary embodiment, a network device informs an application/service device with registration information pertaining to another network device with which the user is registered. For example, the network device (an HSS device) informs an application/service device with registration information pertaining to another network device (e.g., a CSCF device) with which the user is registered. For example, the registration information includes an identifier of the other network device and an identifier of the user that is registered with the other network device. According to an exemplary embodiment, the network device stores the registration information. According to an exemplary embodiment, the user also registers with the network device (e.g., the HSS device). According to an exemplary embodiment, the application/service device stores and uses the registration information to provide a service or a function.
According to an exemplary embodiment, if the user re-registers with the network device (e.g., the HSS) and registers with the same other network device (e.g., the same CSCF device), the network device omits to inform the application/service device with the registration information. For example, the HSS uses the stored registration information to determine that the user re-registered with the same CSCF device. Additionally, the application/service device stores the registration information and uses the registration information to provide the service or the function. Alternatively, if the user re-registers with the network device and registers with a different other network device (e.g., a different CSCF device), then the network device informs the application/service device with updated registration information pertaining to the user and the other network device. Similarly, the network device uses the stored registration information to determine whether the user is registered with a different other network device. Additionally, the application/service device stores the updated registration information.
According to an exemplary embodiment, the application/service device includes a communication server device. For example, the application/service device may be implemented as an SMSC device or a Multimedia Message Service Center (MMSC) device. According to an exemplary embodiment, the network device and the application/service device belong to different networks.
According to an exemplary embodiment, the network device selects an application/service device to provide registration information based on historical usage data. For example, the historical usage data indicates an application or a service that the user uses when registered with the network. By way of further example, the historical usage data may indicate that the registered user typically sends and/or receives SMS messages. According to this example, the HSS informs the SMSC with the registration information.
According to an exemplary embodiment, the registration information is broadcast to multiple application/service devices. According to another exemplary embodiment, the registration information is provided to select application/service devices. For example, the HSS may select only certain application/service devices based on the historical usage data.
IMS network 105 includes a network defined by an IMS specification or architecture. P-CSCF 110, I-CSCF 113, and S-CSCF 115 are network devices of a control layer of IMS network 105. For example, P-CSCF 110 may function as a Session Initiation Protocol (SIP) proxy that monitors signaling between UE 150 and IMS network 105. P-CSCF 110 may be configured to provide other functions, such as a policy decision function (PDF). I-CSCF 113 may query HSS 125 to retrieve the address of S-CSCF 115 and assign S-CSCF 115 to a user (e.g., user 155) during registration. I-CSCF 113 may also forward messages to S-CSCF 115. S-CSCF 115 may perform session control, handle SIP registrations, and select which application server will provide a service or a function for user 155. Although not illustrated, according to an exemplary embodiment, the control layer of IMS network 105 may include additional network devices, such as gateway control functions, a domain name system (DNS), a session border control, etc.
SMSC 117, MMSC 119, and VoIP 121 are network devices of a service layer of the IMS network 105. SMSC 117 may receive, store, and forward text messages to users. MMSC 119 may receive, store, and forward messages that include multimedia content to users. VoIP 121 may operate as a VoIP server that provides a voice-over-IP service. According to other exemplary embodiments, the service layer may include additional, fewer, and/or different application servers. For example, the service layer may include web services, video streaming, instant messaging, e-mail, etc.
HSS 125 may store user subscription data, and perform authentication and authorization services. According to other embodiments, HSS 125 may be implemented as a Home Location Register (HLR) or a User Profile Server Function (USPF).
LTE network 130 includes a network defined by an LTE specification or architecture. LTE network 130 may operate as a transport layer of IMS network 105. ENB 133, SGW 135, PGW 127, PCRF 141, and MME 139 may each operate according to the LTE specification. UE 150 may be implemented as various mobile devices, such as smartphone, a personal digital assistant, a tablet, a netbook, an information system in a vehicle, or a wearable device (e.g., a watch, etc.).
Although environment 100 includes IMS network 105, according to other embodiments, environment 100 may not include IMS network 105. For example, a proprietary network or a cloud network may include nodes that are similar (e.g., in terms of function) as a CSCF of IMS network 105. For example, the proprietary network or the cloud network may include a node having session control functionalities and/or is an intermediary node (e.g., an anchor point, etc.) between the user device and application services. The user of the user device may also register with or be assigned to the node. According to such an example, an application server may receive and store registration information pertaining to the node.
Additionally or alternatively, although environment 100 includes LTE network 130, according to other embodiments, environment may not include LTE network 130. For example, a variety of access networks or wireless networks may be used instead of LTE network 130, such as a Universal Mobile Telecommunications System (UMTS) network, a Global System for Mobile Communications (GSM) network, a Wideband Code Division Multiple Access (WCDMA) network, a High-Speed Packet Access (HSPA) network, an Evolution Data Optimized (EV-DO) network, and/or another type of wireless network (e.g., an LTE Advanced network, a future generation wireless network architecture, etc.).
Environment 100 may be implemented to include wired, optical, and/or wireless connections among the devices and the networks illustrated. A connection may be direct or indirect and may involve an intermediary device and/or an intermediary network not illustrated in
A device may be implemented according to a centralized computing architecture, a distributed computing architecture, or a cloud computing architecture (e.g., an elastic cloud, a private cloud, a public cloud, etc.). Additionally, a device may be implemented according to one or multiple network architectures (e.g., a client device, a server device, a peer device, a proxy device, and/or a cloud device).
The number of devices, the number of networks, and the configuration in environment 100 are exemplary. According to other embodiments, environment 100 may include additional devices, fewer devices, and/or differently arranged devices, than those illustrated in
Referring to
Additionally, as illustrated in
Referring to
Processor 605 includes one or multiple processors, microprocessors, data processors, co-processors, application specific integrated circuits (ASICs), controllers, programmable logic devices, chipsets, field-programmable gate arrays (FPGAs), application specific instruction-set processors (ASIPs), system-on-chips (SoCs), central processing units (CPUs) (e.g., one or multiple cores), microcontrollers, and/or some other type of component that interprets and/or executes instructions and/or data. Processor 605 may be implemented as hardware (e.g., a microprocessor, etc.), a combination of hardware and software (e.g., a SoC, an ASIC, etc.), may include one or multiple memories (e.g., cache, etc.), etc.
Processor 605 may control the overall operation or a portion of operation(s) performed by device 600. Processor 605 may perform one or multiple operations based on an operating system and/or various applications or computer programs (e.g., software 615). Processor 605 may access instructions from memory/storage 610, from other components of device 600, and/or from a source external to device 600 (e.g., a network, another device, etc.).
Memory/storage 610 includes one or multiple memories and/or one or multiple other types of storage mediums. For example, memory/storage 610 may include one or multiple types of memories, such as, random access memory (RAM), dynamic random access memory (DRAM), cache, read only memory (ROM), a programmable read only memory (PROM), a static random access memory (SRAM), a single in-line memory module (SIMM), a dual in-line memory module (DIMM), a flash memory, and/or some other type of memory. Memory/storage 610 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, a solid state disk, etc.) and a corresponding drive. Memory/storage 610 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, a solid state disk, etc.), a Micro-Electromechanical System (MEMS)-based storage medium, and/or a nanotechnology-based storage medium. Memory/storage 610 may include drives for reading from and writing to the storage medium.
Memory/storage 610 may be external to and/or removable from device 600, such as, for example, a Universal Serial Bus (USB) memory stick, a dongle, a hard disk, mass storage, off-line storage, or some other type of storing medium (e.g., a compact disk (CD), a digital versatile disk (DVD), a Blu-Ray® disk (BD), etc.). Memory/storage 610 may store data, software, and/or instructions related to the operation of device 600.
Software 615 includes an application or a program that provides a function and/or a process. As an example, with reference to S-CSCF 115, software 615 may include an application that, when executed by processor 605, provides the functions of the registration, as described herein. Additionally, for example, with reference to HSS 125, software 615 may include an application that, when executed by processor 605, provides the functions of the registration service, as described herein. Software 615 may include firmware.
Communication interface 620 permits device 600 to communicate with other devices, networks, systems, and/or the like. Communication interface 620 includes one or multiple wireless interfaces and/or wired interfaces. For example, communication interface 620 may include one or multiple transmitters and receivers or transceivers. Communication interface 620 may operate according to a protocol stack and a communication standard.
Input 625 permits an input into device 600. For example, input 625 may include a keyboard, a mouse, a display, a touchscreen, a touchless screen, a button, a switch, an input port, speech recognition logic, and/or some other type of visual, auditory, tactile, etc., input component. Output 630 permits an output from device 600. For example, output 630 may include a speaker, a display, a touchscreen, a touchless screen, a light, an output port, and/or some other type of visual, auditory, tactile, etc., output component.
Device 600 may perform a process and/or a function, as described herein, in response to processor 605 executing software 615 stored by memory/storage 610. By way of example, instructions may be read into memory/storage 610 from another memory/storage 610 (not shown) or read from another device (not shown) via communication interface 620. The instructions stored by memory/storage 610 causes processor 605 to perform a process described herein. Alternatively, for example, according to other implementations, device 600 performs a process described herein based on the execution of hardware (processor 605, etc.).
Referring to
In block 710, it is determined whether registration information is already stored. For example, the HSS determines whether registration information is already stored pertaining to this user. For example, the HSS may query a database that is used to store registration information.
When it is determined that registration information is not already stored (block 710-NO), the registration information is stored (block 715). For example, when the HSS determines that no registration information is stored for this user, the HSS stores the registration information in the database.
In block 720, an application server to transmit the registration information is selected. For example, the HSS selects the application server to transmit the registration information. According to one example, the HSS may select the application server based on usage history pertaining to the user.
In block 725, the registration information is transmitted to the selected application server. For example, the HSS generates and transmits a notification message to the selected application server. The notification message carries the registration information.
When it is determined that registration information is already stored (block 710-YES), it is determined whether the S-CSCF is different (block 730). For example, when the HSS determines that registration information is stored for this user in the database, the HSS determines whether the stored registration information indicates a different S-CSCF than the currently registered S-CSCF.
When it is determined that the S-CSCF is different (block 730-YES), process 700 continues to block 715. For example, the HSS overwrites the stored registration information with the new registration information. Thereafter, process 700 continues to block 720 as previously described.
When it is determined that the S-CSCF is not different (block 730-NO), the registration information is not transmitted (block 735). For example, when the HSS determines that the stored registration information indicates the same S-CSCF as the currently registered S-CSCF, the HSS omits to transmit the registration information to an application server. That is, it may be assumed that the application server already stores the registration information. In this regard, network resource utilization may be minimized in terms of the HSS transmitting registration information and/or the application server querying the HSS to determine which S-CSCF is assigned to the user.
Although
The foregoing description of embodiments provides illustration, but is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Accordingly, modifications to the embodiments described herein may be possible.
The terms “a,” “an,” and “the” are intended to be interpreted to include one or more items. Further, the phrase “based on” is intended to be interpreted as “based, at least in part, on,” unless explicitly stated otherwise. The term “and/or” is intended to be interpreted to include any and all combinations of one or more of the associated items.
In addition, while a series of blocks has been described with regard to the process illustrated in
The embodiments described herein may be implemented in many different forms of software and/or firmware executed by hardware. For example, a process or a function may be implemented as “logic” or as a “component.” The logic or the component may include, for example, hardware (e.g., processor 605, etc.), or a combination of hardware and software (e.g., software 615). The embodiments have been described without reference to the specific software code since the software code can be designed to implement the embodiments based on the description herein and commercially available software design environments/languages.
In the preceding specification, various embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The specification and drawings are accordingly to be regarded as illustrative rather than restrictive.
In the specification and illustrated by the drawings, reference is made to “an exemplary embodiment,” “an embodiment,” “embodiments,” etc., which may include a particular feature, structure or characteristic in connection with an embodiment(s). However, the use of the phrase or term “an embodiment,” “embodiments,” etc., in various places in the specification does not necessarily refer to all embodiments described, nor does it necessarily refer to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiment(s). The same applies to the term “implementation,” “implementations,” etc.
Additionally, embodiments described herein may be implemented as a non-transitory storage medium that stores data and/or information, such as instructions, program code, data structures, program modules, an application, etc. The program code, instructions, application, etc., is readable and executable by a processor (e.g., processor 605) of a computational device. A non-transitory storage medium includes one or more of the storage mediums described in relation to memory/storage 610.
To the extent the aforementioned embodiments collect, store or employ personal information provided by individuals, it should be understood that such information shall be used in accordance with all applicable laws concerning protection of personal information. Additionally, the collection, storage and use of such information may be subject to consent of the individual to such activity, for example, through well known “opt-in” or “opt-out” processes as may be appropriate for the situation and type of information. Storage and use of personal information may be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information.
No element, act, or instruction described in the present application should be construed as critical or essential to the embodiments described herein unless explicitly described as such.