Customizing network-level settings for a network device on a communication network

The present application describes methods and systems for improving user communication in a network-based communication system. In one or more embodiments, a datacenter provides a unique connection address network device that connects to the datacenter. By providing a unique connection address, the datacenter can provide customized network-level settings on a per network device basis. In addition, the datacenter can also provide customized network identification on a per network device basis.

BACKGROUND

1. Technical Field

One or more embodiments of the present disclosure relate generally to facilitating communications over a network. More specifically, one or more embodiments disclosed herein relate to customizing a network-based communication system.

2. Background and Relevant Art

Advances in electronic communication technologies have interconnected people and allowed for better communication than ever before. To illustrate, users traditionally relied on a public switched telephone network (“PSTN”) to speak with other users in real-time. Now, users may communicate using network-based or Internet-based communication systems. One such network-based system is an Internet Protocol (“IP”) telephone system, such as a voice over IP (“VoIP”) communication system.

Conventional network-based communication systems commonly rely on a central datacenter to provide communication services for each network device. For example, the central datacenter can provide VoIP services, such as facilitating VoIP communication sessions (e.g., voice and video calls), to one or more network devices. In addition, in many conventional network-based communication systems a backup datacenter provides an available option to restore the communication services in the event the central datacenter fails (e.g., network failure, hardware failure, datacenter maintenance).

A number of disadvantages exist with respect to conventional network-based communication systems. For example, in many conventional network-based communication systems, the majority, if not all, of the network devices connect to the central datacenter using a single connection address. For instance, when a network device is first powered on or initiated, the network device queries the network-based system for the connection address to the central datacenter. Once the network device connects to the central datacenter using the connection address, the network-based system can register the network device and provide communication services to the network device. This process is generally repeated for each network device that registers with the system, or in other words, each network device connects to the central database using the same connection address.

Due, at least in part, to multiple network devices connecting to the central datacenter using the same connection address, the variety of network-level settings the central datacenter provides with respect to each network device can be limited. For example, a typical datacenter may configure many network-level settings at a connection address level. For example, network-level settings may include signaling protocol settings, such as the amount of time a retry timer runs before expiring, or the number of retry attempts before a network device times out. As such, each network device connected to the central datacenter using the connection address may share the same network-level settings.

Not all types of network devices, however, operate equally given a single defined set of network-level settings. For instance, network device types can include fixed-line network devices, Wi-Fi network devices, satellite network devices, mobile devices, etc. As an example, a each of the network device types can operate optimally with a specific retry timer time that corresponds to the specific network device type. Unfortunately, in conventional network-based communication systems, only one retry timer time can be set for all network devices connected using the connection address. Thus, in many conventional network-based communication systems, individual network devices operate using network configuration settings that are not optimal for each individual network device.

An additional disadvantage with network-level settings being defined at the connection level is that each network device connected using the single connection address receives identical identification information from the central datacenter. However, in many conventional network-based communication systems, oftentimes there is more than one entity selling communication services provided by the same central datacenter, each desiring to send customized identification information to customers. For example, a conventional network-based communication system provider (hereafter “system provider”) often licenses communication services to third-party white label entities (e.g., a company that sales communication services that the company does not provide itself). In other words, the system provider allows the white label entity to sell communication services provided by the central datacenter.

In particular, customers often view a system provider and a white label entity as competitors. As such, confusion may result if a customer purchases communication services from a white label entity, but instead sees the system provider brand in the datacenter identification information provided in connection with the customer's communication services. For example, network devices can display branding information, often in the form of a hostname. As such, customer confusion may result when a customer sees the system provider's hostname on their network device, when in fact, the customer contracted with a white label entity. In addition, a customer discovering that they are actually contracting with a white label entity, rather than the system provider, may prompt questions, require increased customer service, and potentially a lead to a lost customer for the white label entity. For example, the customer may decide to directly subscribe to the system provider to receive the same communication services.

In an attempt to solve the white-label branding issue, many conventional network-based communication systems use a generic hostname. However, a generic hostname itself may lead to an increase in customer confusion. In addition, the generic hostname solution suffers the drawback that neither the system provider nor the white label entity can identify their brand with the hostname. Furthermore, to maximize the profit, many system providers generally license communications services to several white-label entities so as to utilize system resources as fully as possible. However, as the number of white labels increase, and as customer numbers increase, the lack of branding issue magnifies.

In addition to the branding disadvantage, conventional network-based communication systems may be more prone to security attacks. For example, because every network device is connected to the central datacenter using a single connection address, an attack on the central datacenter may halt all communications over the connection address. For instance, a denial of service attack to the connection address blocks the datacenter from providing communication services to any network device connected to the datacenter.

Accordingly, there are a number of considerations to be made in improving the customizing network-level settings provided to a network device on a network-based communication system.

BRIEF SUMMARY

Embodiments disclosed herein provide benefits and/or solve one or more of the foregoing or other problems in the art with systems and methods that customize network-level settings provided to a network device on a communication network. In particular, example embodiments include systems and methods that allow a datacenter to provide network-level settings on a per network device basis. In one or more embodiments, the systems and methods disclosed herein allow a datacenter to assign each network device a unique connection address, and associate customized network-level settings with each unique connection address.

In one or more embodiments, the systems and methods disclosed herein can provide network-level settings to a network device customized specifically to the network device. For example, the datacenter can associate a unique connection address with network-level settings specific to a network device such that the network device is provided with optimal network-level settings. Accordingly, each network device that is provided a unique connection address by the datacenter may be connected to the datacenter using a connection address that provides optimal network-level settings tailored to each network device.

Further, in some example embodiments, the systems and methods disclosed herein can provide customized branding on a per network device basis. For instance, the datacenter can provide branding information to a network device using a connection address. For example, when a network device is connected to the datacenter using the connection address, the network device may display a hostname associated with a system provider brand or a white label brand. In other words, the connection address may be associated with a brand in the form of a hostname. In this manner, each connection address can be associated with a different hostname. Accordingly, different network devices can display different hostnames even though the different network devices are connected to the same datacenter.

DETAILED DESCRIPTION

Embodiments disclosed herein provide benefits and/or solve one or more of the abovementioned problems or other problems in the art with providing customized services per network device on a network-based communication system. In particular, one or more example embodiments include a network-based communication system that allows a datacenter to provide customized network-level settings to a network device. For example, one or more embodiments include a network-based communication system that allows multiple network devices to each connect with the datacenter using a unique connection address.

The network-based communication system can set customized network-level settings for each unique connection address, thereby providing customized network-level settings for each network device. For example, a network-based communication system can include one network device connected to a datacenter using a connection addresses. In addition, the network-based communication system can include a second network device connected to the same datacenter using a second connection address. Accordingly, the multiple connection addresses allow the network-based communication system to provide customized network-level settings associated with each connection address, which in turn allows the network-based communication system to provide customized network-level settings on a per network device level.

In particular, the network-based communication system can accommodate multiple network devices having various connection needs. For example, when a network device connects to the datacenter using a specific connection address, the network-based communication system may determine optimal network-level settings for the network device. For instance, the network-based communication system may determine that a network device is a satellite network device, customize network-level settings optimized for a satellite network device, and associate the customized network-level settings with a unique connection address. The network-based communication system may then assign the satellite network device to use the unique connection address. In a similar manner, the network-based communication system may customize network-level settings for a Wi-Fi network device, a fixed-line network device, a mobile network device, etc. Accordingly, the network-based communication system may customize network-level settings, such as signal protocol settings, specifically for each network device on the network-based communication system.

In addition to device specific network-level settings, a network-based communication system can provide customized branding information to each device. For instance, the network-based communication system can provide a different hostname to each network device. In particular, the network-based communication system can provide each network device with a hostname associated with the system provider brand, or a white label brand, rather than providing a generic and/or unrecognizable hostname. For example, the network-based communication system allows white labels to provide their own hostnames to white label customers even though its customers are connected to the system provider's datacenter. In this manner, customers of each white label brand believe that they are connected directly to the white label entity system, reducing confusion and increasing customer confidence.

Further, the network-based communication system provides increased security to the network-based communication system. For example, the effects of denial of service attacks are reduced. In particular, because each network device is connected to the datacenter using a unique connection address, a successful denial of service attack, at most, temporarily impedes one network device rather than every network device connected to the datacenter. Additional security benefits will also be described below.

In some example embodiments, the network-based communication system can also detect, allow, or deny service to a network device. For example, if a network device is associated with a customer that is behind in payments, or has canceled service, the network-based communication system can shut down all services provided on the connection address assigned to the network device. Similarly, the network-based communication system may dynamically modify network-level settings for a specific network device upon the customer associated with the specific network device requesting a change in service. As described herein, the network-based communication system can provide adjustments to the network-level settings for a single network device without needing to change the network-level settings for all network devices connected to the datacenter.

Additional advantages and benefits of the system will become apparent in view of the below description. In particular, one or more embodiments will be described below with reference to one or more figures. In addition, the following definitions of terms will be used to describe one or more features of the system.

As used herein, the term “datacenter” refers generally to one or more computing devices that facilitate communication sessions between network devices. In one or more embodiments, a datacenter refers to a facility that houses computer systems and associated components, such as telecommunication and storage systems. For example, one of skill on the art will appreciate that a datacenter may comprise a single computing device that facilitates communication between two or more network devices, or that a datacenter may comprise a building housing computers, servers, and other components facilitating communication for thousands of network devices. Further, a datacenter may be an outbound proxy.

In addition, the term “network device” as used herein refers generally to a computing device that facilitates a communication session. A network device can communicate with a datacenter and other network devices. A variety of network devices may employ VoIP technology, such as personal computers, handheld devices, mobile phones, smartphones, and other electronic access devices. As an example, a network device may be a dedicated VoIP device or soft VoIP device. Dedicated and soft devices are described in greater detail below in connection withFIGS. 7-8.

As used herein, the term “communication session,” refers generally to a communication interaction between one or more network devices that occurs over a communication network. For example a communication session may include voice or video calling, video conferencing, streaming multimedia distribution, instant messaging, presence information sharing, file transferring, faxing over IP, and online gaming. For instance, a session may be part of the session initiation protocol (“SIP”), which is a signaling communications protocol commonly used in network-based communication systems. Likewise, a session may refer to a communication session using other protocols common to IP peer communications.

As used herein, the term “connection” refers generally to an established communication link between at least two computing devices. For instance, two or more network devices connect to, or with, each other when each network device acknowledges the connection with the other network device(s). For example, as further described below, a connection between a network device and a datacenter may occur when the network device is mapped to and registers with the datacenter. A connection can include one or more types of connections, such as a switched circuit connection, a virtual circuit connection, or a network connection. For example, a connection between multiple network devices occurs over a network, such as the Internet, and data sent between the multiple network devices via the connection may employ various network paths.

Although the disclosure discusses one or more example embodiments in reference to VoIP telephone network-based communication systems, it should be understood that the principles, systems, and methods disclosed herein may also be effectively used in other types of packet-based IP communication networks and unified (e.g., real-time) communication systems. For instance, the principles described may be used for sending faxes, text messages, and voice-messages over a network-based communication system.

FIG. 1, for example, illustrates a network-based communication system100(or simply “system100”) in accordance with one or more embodiments disclosed herein. As illustrated byFIG. 1, the system100may include, but is not limited to, a first network device102aand an nth network device102n(collectively referred to as “network devices102”). The system100may also include a datacenter104. The system100may include multiple datacenters. For example, the system100may include almost any number of network devices102and/or datacenters104.

The network devices102and the datacenter104are communicatively coupled via a network106. In some example embodiments, the network106may be the Internet, an intranet, a private network, or another type of computer network. The network106may be a combination of Internet and intranet networks. Additional details regarding the network106will be discussed below with respect toFIG. 7.

As will be explained in greater detail below, each network device102can connect to the datacenter104using a unique connection address. For example, the first network device102acan connect to the datacenter104using a first connection address. In addition, the nth network device102ncan connect to the datacenter104using an nth connection address. Each connection address can provide customizable network-level settings. In addition, each connection address can facilitate customizable branding, as will be explained further below.

FIG. 2illustrates a sequence-flow diagram200illustrating interactions between multiple network devices102and a datacenter104in the network-based communication system100ofFIG. 1in accordance with one or more embodiments disclosed herein. In particular, the sequence-flow200ofFIG. 2illustrates an example sequence of a first network device102aand a second network device102beach being assigned a connection address.

To illustrate, in step202the first network device202asends an address request to the datacenter104. As part of the address request, the first network device102amay send a network device identifier to the datacenter104. Additional detail regarding network device identifiers will be described below.

Step204may include the datacenter104customizing network-level settings for the first network device102a. For example, the datacenter104may obtain information associated with the first network device102ausing the network device identifier, such as the first network device's type, properties, characteristics, etc. The datacenter104may customize network-level settings for a connection address based on the obtained information.

In particular, the datacenter104may associate the network-level settings prepared for the first network device102awith a connection address. For example, the datacenter104may bind the network-level settings for the first network device102ato an existing connection address. As another example, the datacenter104may associate the network-level settings with a newly created connection address. The process of customizing network-level settings for a network device and associating the network-level settings with a connection address will be described in greater detail below.

Step206may include the datacenter104assigning the connection address to the first network device102a. The first network device102amay receive the connection address and connect to the datacenter104using the connection address. The first network device102abenefits from optimal network-level settings when using the connection address because the network-level settings provided to the first network device102a, using the connection address, are customized for the first network device102a.

As an example, the first network device102amay be a satellite network device. The datacenter104may obtain information from the first network device102athat indicates that the first network device102ais a satellite network device. For instance, after the datacenter104receives the network device identifier from the first network device102a, the datacenter104may use the network device identifier to lookup the first network device's120atype. The datacenter104may customize a set of network-level settings based on the first network device102atype, prepare a connection address for the first network device102a, and assign the connection address to the first network device102a. Customers using the first network device102amay experience improved communications when the first network device102ais connected to the datacenter104using the connection address.

Step208may include the second network device102bsending an address request to the datacenter104. As part of the address request, the second network device102bmay send a network device identifier for the second network device102bto the datacenter104. In general, the identifier of for second network device102bis different from the identifier for the first network device102a. In this manner, the datacenter104can distinguish between the first network device102aand the second network device102b. In particular, the network device identifier is unique for each network device.

In step210, the datacenter104may customize network-level settings for the second network device102b. In customizing network-level settings for the second network device102b, the datacenter104may use the same or different network-level settings used for the first network device102a. For example, the first network device102aand the second network device102bmay be share the same device type, properties, and characteristics. As such, optimal network-level settings for the first network device102amatch optimal network-level settings for the second network device102b. However, even though the first network device102aand the second network device102bare similar, or perhaps identical, the datacenter104may associate the network-level settings prepared for the second network device102bto a second connection address. Thus, regardless of if the two network devices102are the same or different, each network device102may connect to the datacenter104using its own unique connection address.

As part of the customization process, the datacenter104may associate hostnames with each connection address. For example, hostnames may correspond to the system provider or to a white label entity. For instance, the datacenter104may associate a first connection address with a first white label entity and a second connection address with a second white label entity. As such, when the first network device102aconnects to the datacenter104using the first connection address, the first network device102adisplays the hostname associated with the first white label entity. Similarly, when the second network device102bconnects to the datacenter104using the second connection address, the second network device102bdisplays the hostname associated with the second white label entity. In this manner, the datacenter104can provide network-level settings optimal for each network device102as well as tailored branding on each network device102.

Step212may include the datacenter104assigning the second connection address to the second network device102b. The second network device102bmay receive the second connection address and connect to the datacenter104using the second connection address. In this manner, the second network device102bbenefits from the network-level settings the datacenter104customized for the second network device102b.

FIG. 3illustrates an exemplary network-based VoIP communication system300(hereafter “VoIP system300”) according to principles described herein. As illustrated, the VoIP system300includes a first network device302a, a second network device302b, and a datacenter304. For example, the VoIP system300may represent one or more embodiments of the network based communication system100described in connection withFIG. 1. For instance, the first network device302aand the second network device302bmay be example embodiments of the network devices102a-ndescribed in connection withFIG. 1. Likewise, the datacenter304may be one example embodiment of the datacenter104. Although the VoIP system300is described as having a first network device302aand a second network device302b(collectively “network devices302”) for ease of explanation, the principles described with respect toFIG. 3can be implemented within a VoIP system300having any number of network devices302and datacenters304.

The network devices302may connect to the datacenter304via the Internet306. In some example embodiments, one or more network devices302may be directly connected the datacenter304. In addition, one or more network devices302may securely connect to the datacenter304via a secure connection, for example, using secure sockets layer (“SSL”) protocol, or another cryptographic protocol.

The network devices302may be similar or different from each other. For example, the first network device302aand the second network device302bmay both be mobile network devices. In some example embodiments, the network devices302may be VoIP devices that allow a user to communicate with other users. For instance, the first network device302amay facilitate voice and/or data communication sessions between users. In addition, as described above, users may communicate with other users using other forms of communication facilitated by a network device302, such as a videoconference.

As illustrated, the first network device302aincludes a communication interface308having a provisioner310aand a session initiator312a. In addition, the first network device302amay also include input and output audio/video functionality as described below in connection withFIG. 7. For example, as described in greater detail below, the first network device302amay be a dedicated device, or a soft device, such as a dedicated VoIP device.

For convenience, the network devices will be described with reference to the first network device302a. The second network device302b, however, similarly includes a communication interface308bhaving a provisioner310band a session initiator312b. Further, the second network device302bmay be described similarly to the first network device302adescribed below. For example, the provisioner310band the session initiator312bof the second network device302bmay perform similar operations as the provisioner310aand a session initiator312aof the first network device302a.

Each of the components310a-312aof VoIP system300may be in communication with one another using any suitable communication technologies. It will be recognized that although components310a-312aare shown to be separate inFIG. 3, any of components310a-312amay be combined into fewer components, such as into a single component, or divided into more components as may serve a particular embodiment. In addition, components310a-312amay be located on, or implemented by, one or more network devices, such as those described below in relation toFIG. 7. Alternatively, portions of components310a-312acan be located on a network device302, while other portions are located on one or more datacenters304.

Components310a-312acan comprise software, hardware, or both. For example, components310a-312acan comprise one or more instructions stored on a non-transitory computer-readable storage medium and executable by processors of one or more computing devices. When executed by the one or more processors, the computer-executable instructions of VoIP system300can cause a network device and/or datacenter to perform the methods described herein. Alternatively, components310a-312acan comprise hardware, such as a special purpose processing device to perform a certain function or group of functions. Additionally or alternatively, components310a-312acan comprise a combination of computer-executable instructions and hardware.

The communication interface308acan send and receive data. For example, the communication interface308amay send or receive queries, requests, acknowledgements, signals, indications, etc., between the first network device302aand the datacenter304. For instance, the communication interface308amay assist the first network device302ain connecting to the datacenter304.

In one example embodiment, the provisioner310aconnects the first network device302athe datacenter304. For example, the provisioner310amay facilitate the connection between the first network device302aand the datacenter304. The first network device302amay communicate with other network devices302and/or other electronic devices via the VoIP system300once connected with the datacenter304.

As part of the provisioning process, the provisioner310amay request a connection address from the datacenter304for the first network device302a. For example, the provisioner310amay first connect to the datacenter304using a default address and may request a connection address from the datacenter304. For instance, the default address may be the datacenter's IP address, such as www.datacenter.net. In some example, embodiments, the default address may be stored in memory on the first network device302a. For example, when the first network device302apowers on or initializes, the provisioner310amay connect the first network device302ato the default address stored in memory on the first network device302a. Once the first network device302ais connected to the datacenter304, the provisioner310amay request a connection address. As described in greater detail below, an address assigner326on the datacenter304may assign a connection address to the first network device302ain response to the request for a connection address.

In some example embodiments, the network device202may register with multiple datacenters304. For example, the provisioner310acan connect the first network device302ato a first datacenter. In response to the request, for example, the provisioner310amay receive a connection address from the first datacenter304. The provisioner310amay also connect the first network device302ato a second datacenter304, while maintaining the connection with the first datacenter304. For example, the provisioner310acan receive a second connection address from the second datacenter304. In this manner, the first network device302amay communicate with other network devices using the first connection address and/or the second connection address.

The session initiator312acan facilitate communications between users via the first network device302a. For example, the session initiator312amay initiate audio, video, and other types of communication sessions between users. The session initiator312amay employ protocol, such as SIP, in facilitating communication sessions between users. As described in further detail below, the session initiator312amay communicate with the session facilitator328on a datacenter304to which a network device302connects.

As illustrated inFIG. 3, the datacenter304includes a communication interface320and a network device database322. The communication interface320may send or receive queries, assignments, instructions, requests, acknowledgements, signals, indications, etc., between the datacenter304and one or more network devices302. For example, the communication interface320can receive a request for a connection address from a network device302and provide a connection address to the network device302in response.

As illustrated, the communication interface320may include a settings customizer324, an address assigner326, and a session facilitator328. Each of the components324-328of VoIP system300may be in communication with one another using any suitable communication technologies. It will be recognized that although components324-328are shown to be separate inFIG. 3, any of components324-328may be combined into fewer components, such as into a single component, or divided into more components as may serve a particular embodiment. In addition, components324-328may be located on, or implemented by, one or more network devices, such as those described below in relation toFIG. 7. Alternatively, portions of components324-328can be located on a network device302, while other portions are located on one or more network devices302.

Components324-328can comprise software, hardware, or both. For example, components324-328can comprise one or more instructions stored on a non-transitory computer-readable storage medium and executable by processors of one or more computing devices. When executed by the one or more processors, the computer-executable instructions of VoIP system300can cause a network device and/or datacenter to perform the methods described herein. Alternatively, components324-328can comprise hardware, such as a special purpose processing device to perform a certain function or group of functions. Additionally or alternatively, components324-328can comprise a combination of computer-executable instructions and hardware.

As described above, a network device302can request a connection address from the datacenter304. The datacenter304may employ one or more methods, for example, to assign a connection address to a network device302. For example, in one or more embodiments, the datacenter304may configure network-level settings optimal for the network device302. In one or more embodiments, the datacenter304may provide customize branding to the network device302. In addition, in one or more embodiments, the datacenter304assign both a network device address and a unique connection address to the network device302. Further, in one or more embodiments, the datacenter304may verify that the network device302is authorized to connect to the VoIP system300. Each of these embodiments will be described below in greater detail.

In some example embodiments, the datacenter304may configure network-level settings optimal for network devices302on a per network device302basis. In particular, the settings customizer324may customize network-level settings for each network device302that connects to the datacenter304. For example, the settings customizer324may customize network-level settings optimized for the first network device302a. In addition, the settings customizer324may customize network-level settings optimized for the second network device302b. Network-level settings may include signaling protocol settings, such as the amount of time a retry timer runs before expiring, or the number of retry attempts before a network device times out. In particular, network-level settings may correspond to a specific protocol, such as SIP.

In one or more embodiments, the settings customizer324may receive information from a network device302. For example, the first network device302amay send a network device identifier to the datacenter304when requesting a connection address. The network device identifier may be an identification number unique to the network device302. For example, the network device identifier may be tied to the MAC (media access control) address of the network device302. Alternatively, the network device identifier may include a phone number assigned to the network device302.

In one or more embodiments, the settings customizer324may use the received information to obtain additional information regarding the network device302. For example, the settings customizer324may use the network device identifier to lookup the type, properties, and characteristics of the network device302. Furthermore, the settings customizer324may look up network device information320associated with each network device302stored in the network device database322.FIG. 4A, described below, provides an example table showing how the settings customizer324may look up network device information using the network device identifier.

In one or more embodiments, the settings customizer324may obtain information about a network device302based on the network device identifier. For example, a portion of the network device identifier may indicate the device type of a network device302. In other words, the network device identifier may be parsed to obtain a portion of the identifier. The portion may then be used to determine the network device type. For example the portion may be compared to a network device type table.

In some embodiments, the settings customizer324may use the information received from the address assigner326to determine properties and characteristics of the network device302. For example, the settings customizer324may determine the network device type, such as if the network device302is a satellite, fixed-line, Wi-Fi, mobile, or other type of network device302. As another example, the settings customizer324may determine if the network device302is associated with a personal, residential, small business, home office, or enterprise account. In addition, the settings customizer324may determine if the network device302requires specific network-level settings based on past performance of the network device302, and update the network-level settings upon determining that new network-level settings applied to past performance would achieve optimal connection settings.

In one or more embodiments, upon ascertaining additional information about a network device302, the settings customizer324may customize network-level settings for the network device302. In this manner, the settings customizer324may customize network-level settings for each network device302that connects to the datacenter304. Thus, when multiple network devices302are connected to the datacenter304, each network device302may be connected using network-level settings customized by the settings customizer324.

In some example embodiments, the settings customizer324may receive network-level settings from a network device302. For example, the first network device302amay provide one or more network-level settings to the settings customizer324. The network-level settings received from the first network device302amay already be optimized for the first network device302a. The settings customizer324may use one or more of the network-level settings received from the first network device302ain setting the network-level settings for the first network device302a.

In addition, in some embodiments, the network device302may request that network-level settings be updated. For example, the network device302may experience issues and/or faults using the current network-level settings. For instance, the network device302may timeout when attempting to make a call. As a result, the network device302may report conditions to the settings customizer324and/or request that the network-level settings be modified, for example, to provide an increased call timer. In response, the settings customizer324may modify the network-level settings based on the network device's302request.

In one or more embodiments, the settings customizer324may use default network-level settings. For example, if the settings customizer324is unable to ascertain information from the network device302, the settings customizer324may customize the network-level settings using default network-level settings. In some embodiments, the default network-level settings may be based on a level of service contracted by a customer associated with a network device302.

In addition, in some example embodiments, the settings customizer324may update the network-level settings for a network device302. For example, a network device302may connect to the datacenter304using a connection address having a first set of network-level settings. The settings customizer324may subsequently modify the network-level settings for the network device302. For example, if the datacenter304is experiencing an unusually high level of activity, the settings customizer324may downgrade the network-level settings for one or more network device302. Upon modifying the network-level settings, the settings customizer324may associate the network-level settings with the connection address. Associating network-level settings with a connection address is discussed below in greater detail.

As addressed above, in one or more embodiments, the datacenter304may provide customize branding to the network device302. In particular, the settings customizer324may determine whether a network device302is associated with a white label entity. For example, the settings customizer324may lookup if the network device302is tied to white label entity. For example, the network device302is associated with a customer who has contracted with a white label entity for VoIP services.

In some embodiments, the network device identifier may be used to determine if a network device302is associated with a white label entity. For instance, the settings customizer324may identify network devices302having a network device identifier between100and200as belonging to While Label X. In addition, the settings customizer324may look up information, including white label entity association, in the network device database322. In some instances, the network device302may send an indication that the network device302is associated with a white label entity.

When the network device302is associated with a white label entity, the settings customizer324can customize the network-level settings to reflect a hostname associated with the white label entity. In particular, the settings customizer324may customize the network-level settings to display the hostname white-label.com. In a similar manner, if the network device302is not associated with a white label entity, the settings customizer324may customize the network-level settings to indicate to the network device302that the network device302is associated directly with the system provider. For example, the settings customizer324may configure the network-level settings to display the hostname system-provider.net on a network device302. In this manner, when a network device302is associated with a white label entity, the settings customizer324may customize the network-level settings to display a hostname on the network device302that indicates to a user that the network device302is operated by the white label entity rather than by the system provider.

As briefly mentioned above, in one or more embodiments, the datacenter304can assign a network device address to the network device302when the network device302first connects to the datacenter304. As used herein, the “network device address” is the address where the network device302can be reached by other network devices on the VoIP system300. For example, the address assigner326assigns a network device address to the first network device302a. In some embodiments, the network device address may be stored in the datacenter device database322.

In one or more embodiments, the address assigner326may provide a network device address to the network device302that includes the network device's network device identifier. In some instances, the network device address may be in the form of <network device identifier>@domain.net. For example, the address assigner326may provide the network device address to the first network device302abased on the network device identifier of the first network device302a. For example, the network device address may be the network device identifier of the first network device302a, followed by an indication of which datacenter is assigning the address, and/or followed by an indication of the system to which the device is connected. For instance, if first the network device302ahad a network device identifier of WA01BC992, the datacenter304may give the first network device302athe address WA01BC992@datacenter.VoIPSystem.net.

In some example embodiments, the network device address assigned to the first network device302amay correspond to a white label associated with a network device302. In other words, the address assigner326may assign a network device address that includes a hostname of the system provider or of a white label entity. For example, if the network device302is associated with White Label Q, the address assigner326may assigner a network device address WA01BC992@white-label-Q.biz. Similarly, if the network device302is not associated with a white label entity, the address assigner326may assign a network device address WA01BC992@system-provider.net.

As addressed previously, in one or more embodiments, the datacenter304assigns a unique connection address to the network device302. In particular, the address assigner326may provide a connection address to a network device302and register the network device302with the VoIP system300. In some embodiments, as with the network device address, the connection address may be stored in the datacenter device database322. As such, for each network device302that the address assigner326assigns a connection address, the address assigner326may store the corresponding network device connection address330in the network device database322.

In one or more embodiments, the address assigner326may use the network device database322in assigning connection addresses. For example, the address assigner326may lookup connection addresses in a table to identify one or more available connection addresses. In addition to looking up connection address information, the address assigner326may look up in the network device database322which connection addresses are in use and which connection addresses are available. Thus, the address assigner326may select a connection address to assign to a network device302upon receiving a request for a connection address.

In some example embodiments, the address assigner326may create a connection address based on a unique network device identifier received from a network device302. In this manner, the connection address will be unique for the network device302because no other network device302uses the same network device identifier. Additional detail regarding selecting an available connection address is provided below.

Before assigning the connection address to the network device302, in some example embodiments, the address assigner326may associate network-level settings with the connection address. For example, the address assigner326may receive customized network-level settings from the settings customizer324. As described in detail above, the settings customizer324may customize network-level settings for a network device302when the network device302request to connect to the VoIP system300.

In associating the customized network-level settings with the connection address, the address assigner326may, for instance, bind, map, and/or pair the network-level settings with the connection address. In addition, if the network-level settings provided by the settings customizer324specify a hostname, the address assigner326may also associate the hostname with the connection address. In this manner, when a network device302connects to the datacenter304using the connection address, the network device302may display the hostname to a user. In this manner, a customer using the network device302fully credits the white label entity associated with the displayed for providing the communication services.

In one or more embodiments, the connection address includes multiple address components, such as a shared component and an exclusive component. While the connection address herein is described in terms of a shared component and an exclusive component, one of skill in the art will appreciate that other methods and approaches may be employed to achieve a similar outcome of associating each network device302with a unique connection address at the datacenter304. For example, in some example embodiments, an IP version 6 addresses may be used to provide multiple connection addresses to the datacenter304.

In one or more example embodiments, the shared component may include a logical address, such as an IP address. The IP address may be associated with the datacenter304. Thus, for example, in some embodiments, the shared component of the connection address assigned to each network device302may be the same, i.e., the IP address of the datacenter304. While a single IP address for the datacenter304is described herein, additional IP addresses may be employed as part of the shared component. In one or more embodiments, the shared component may include a physical address, such as a media access control address, or a virtual address.

In one or more example embodiments, the exclusive component may include a physical address, a logical address, or a virtual address. As used herein, the term “logical address” generally refers to a label that identifies an electronic device, such as a datacenter304. As described above, the logical address may be an Internet Protocol (“IP”) address. In particular, the logical address may be the IP address of a datacenter304. In general, a logical address is separate from a physical address of a network device302, such as a media access control (MAC) address associated with a network device302. Also of note, the IP address may be linked to hostnames (e.g., domain names). One of skill in the art would appreciate the relationship between hostnames and IP address, as described herein.

As used herein, the term “virtual address” generally refers to an application-specific or process-specific software construct serving as a communications endpoint. For example, a virtual address may refer to a port (e.g., virtual port) associated with the IP address of a datacenter304. The port may be identified using a port number. Port numbers generally range from 0 to 65535, but may include other identifies in some example embodiments. Thus, multiple port numbers can be bound to a single IP address.

In one or more embodiments, the virtual component may be a virtual port number associated with the IP address of the datacenter304. For instance, each network device302connected to the datacenter304may be connected using a distinct port number. As such, each connection address assigned by the address assigner326includes the IP address of the datacenter304as the shared component and a distinct port number as the exclusive component. In one or more embodiments, the exclusive component may include a physical address or a logical address. A specific example of the shared component and the exclusive component is provided below in connection withFIGS. 4A and 4B.

As an example of a connection address including a shared component and an exclusive component, the first network device302amay send a request to establish a connection to the datacenter304. In response, the address assigner326may assign the first network device302athe connection address www.datacenter.com:12345, where www.datacenter.com is the shared portion of the connection address and 12345 is the exclusive portion of the connection address. Once connected to the datacenter304using the connection address, further communications sent to the datacenter304are routed to the specific process bound to the destination port number. For example, future communications from the first network device302amay be routed to the datacenter resource that is served by port 12345 of the datacenter304.

As discussed above, when a network device302first connects to the datacenter304, the network device302may use a default connection address. For example, the default connection address may include only the shared component on a connection address, such as an IP address or default hostname of the datacenter304. Alternatively, in some instances, the exclusive component of the default connection address may initially be set to a non-unique address. For example, the exclusive component may specify the port number80. In this case, the network device302can use the default connection address www.datacenter.net:80, for example, when first connecting to the datacenter304to request a network device address and/or a connection address. In this instance, when the datacenter304receives a request on the default connection address, the datacenter304may recognize that a new network device302is requesting to connect to the VoIP system300.

As addressed above, in one or more embodiments, the datacenter304may verify that the network device302is authorized to connect to the VoIP system300. In particular, before the address assigner326assigns a device network device address and/or a connection address to the network device302, the address assigner326may verify that the first network device302ais authorized to connect to the VoIP system300. For example, the address assigner326may verify the validity of a security certificate associated with the network device302. The security certificate may be stored on first network device302aand/or on the datacenter304, for example.

In some example embodiments, a security certificate may be created when a customer purchases VoIP services. For example, a security certificate may be created when a customers begins or renews service. For instance, security certificates may expire on a regular bases, such as every 6 months. When a customer renews their service, a new security certificate may be created. Alternatively, the security certificate may be renewed or re-created as long as the customer has paid for the services.

In some embodiments, if a customer fails to pay for contracted services, for instance, to the system provider, the system provider may invalidate the security certificate or let the security certificate expire. In this case, when the customer attempts to connect to the VoIP system300, the address assigner326will deny access by preventing the network device302from receiving a network device address or a connection address. In addition, the address assigner326can disable the connection address that the network device302uses to connect to the datacenter304. Further, the settings customizer324may reduce the network-level settings associated with the connection address to prevent the network device302from using services provided by the datacenter304.

In some embodiments, a security certificate may be associated with a white label entity. For example, the security certificate may be between the white label entity and a customer, in a similar manner as described above. Additionally, and/or alternatively, the address assigner326may verify the validity of a security certificate between the white label and the system provider. In this manner, the system provider may verify that the white label is also authorized to access the VoIP system300before granting access to customers of the white label entity.

The session facilitator328may facilitate a communication session between the two users. For instance, the session facilitator328may establish a media bridge connection between the network devices302of the two users. As described above, the session facilitator328may provide communication services to a session initiator312on a network device302.

In particular, the session facilitator328may provide communication services to connected network devices302. For example, the first user associated with the first network device302amay request to participate in a communication session with a second user associated with the second network device302b. The first network device302aassociated with the first user may request that the session facilitator328provide a media bridge connection between the first network device302aand the second network device302b. The session facilitator328may first look up the network device address of the second network device302b, for example, by looking up the network device address of the second network device302bin the device database322. The session facilitator328may then provide a media bridge connection path between the first network device302aand the second network device302b.

In one or more embodiments, groups of network devices302may be assigned a connection address. Network devices302may be grouped according to one or more factors, such as network device type, white label entity associations, hostname associates, connection type, connection characteristics, etc. For example, both the first network device302aand the second network device302bmay be assigned the same connection address because both network devices302are satellite network devices. Accordingly, the optimal network-level settings may be the same for both the first network device302aand the second network device302b. As another example, the first network device302aand the second network device302bmay be different network device types, but both may be associated with the same white label entity. In this example, other network devices302associated with the white label entity may be assigned the same connection address as the first network device302aand the second network device302b.

FIGS. 4A-4Billustrate example Tables400A and400B used by a datacenter304in the VoIP communication system300ofFIG. 3in accordance with one or more embodiments disclosed herein. For example, Tables400A and400B may be stored in the network device database322. In particular, Tables400A and400B illustrate possible associations between one or more network devices302, shared address components, exclusive address components, white label entities, and/or network-level settings. Network-level settings can include hostname, timers, and counters. The datacenter304can use associations in assigning a connection address to a network device302, customizing network-level settings, and/or storing network device information. For example, the address assigner326and the settings customizer324may store and look up information illustrated in table400aand/or table400b. For convenience, Tables400A and400B use the variables p, n, x, t, k, and i, which signify non-negative integers.

As illustrated inFIG. 4A, Tables400A includes a device identifier402, shared address404, exclusive address406, hostname408, retry timer410, retry count412, and certificate identification414. In some embodiments, the network device identifier402represents each network device302connected to the datacenter304. In other embodiments, the network device identifier402represents every network device302associated with the VoIP system300regardless of if the network device302is currently connected to the datacenter304.

As an example, the first network device302amay request a network device address and/or a connection address from the datacenter304. The datacenter304may use the network device identifier402received from the first network device302ato lookup the shared address404and the exclusive address406. For example, the settings customizer324may customize network-level settings for a 4th network device to have a retry timer410of 2.0 seconds, a retry counter412of 2, and certificate identifier414of 1.

In some embodiments, the datacenter304can lookup whether a network device302is authorized based on the certificate identifier (“cert. ID”) associated with the network device302. For example, a cert. ID of 1-3 may indicate a network device302associated with a authorized account. A cert. ID of 4 may indicate a network device302associated with an unauthorized or blocked account. The Cert. ID values presented herein are merely illustrative and one will appreciated that other values and association can be made. For example, the cert. ID may be a Boolean value that indicates whether a network device302associated with a valid security certificate.

In some embodiments, the datacenter304may use the network device identifier402received from the first network device302ato lookup network-level settings, such as the hostname408, retry timer410, retry count412, and/or certificate identifier414. While the hostname408, retry timer410, retry count412, and/or certificate identifier414are illustrated in table400a, other network-level settings may also be stored, such as signaling protocols, additional timers and counters, previously used network-level settings, default network-level settings, etc. For example, one or more additional times may include a SIP transaction timer.

As another example, the session facilitator328can lookup the hostname408for network device3, and the address assigner326can associate the hostname408white-label.com with the connection address provided to network device3. As illustrated, multiple network devices302may be associated with the same hostname408. For example, network devices2,3, and4may each be associated with the same white label entity.

In some embodiments, the datacenter304stores the shared address404and the exclusive address406assigned a network device302. For example, the address assigner326assigns the 3rd network device the exclusive address of300, such as port number300. The address assigner326then stores the connection address in the network device database322, for example as a network device address330.

As shown in Table400A, each network device302may be assigned a connection address having the same shared component. At the same time, however, the connection address assigned to each network device302may have a different exclusive component, for example, an exclusive port number. Accordingly, each network device302may have a connection address that has the same shared component404while each having a distinct exclusive component406.

As illustrated inFIG. 4B, Table400B includes a port number420, a network device identifier422, a hostname424, a white label entity426, network-level settings, such as retry timer428and retry count430, and a certificate identifier432. In one or more embodiments, the port number420may correspond to a group network devices302. For example, a first group of network devices302may be assigned to port number1000. In addition, a second group of other network devices302may be assigned to port number2000. For instance, all network devices302in the second group may share similar characteristics and properties. In some instance, a port may have only one network device302assigned, as illustrated with port3000. Further, a port number420may have no network devices302assigned to it, as illustrated with port number4000.

In some embodiments, the port number420may correspond to a hostname424and/or a white label entity426. For example, each network device302associated with White Label1may be assigned port number2000as part of the network device's connection address. For the connection address assigned to network devices associated with White Label1may include the hostname424white-label1.com. As another example, each network device302not associated with any white label may be assigned port number1000as part of the network device's connection address, as well as provided with the hostname424system-provider.net.

In a similar manner, in some embodiments, one or more network-level settings may be associated with a port number420. For example, each network device302connected to the datacenter304using port number2000may have a retry timer428of 1.5 seconds and a retry count430of 2. Accordingly, the setting customizer324may customize network-level settings for a connection address using information stored in table400b. For example, table400bmay be associated with the network device settings332found in the network device database322.

FIGS. 1-4, the corresponding text, and the examples, provide a number of different systems and devices for providing a network based communication system. In addition to the foregoing, embodiments also can be described in terms of flowcharts comprising acts and steps in a method for accomplishing a particular result. For example,FIGS. 5-6illustrate flowcharts of example methods in accordance with one or more embodiments. The methods described in relation toFIGS. 5-6may be performed with less or more steps/acts or the steps/acts may be performed in differing orders. Additionally, the steps/acts described herein may be repeated or performed in parallel with one another or in parallel with different instances of the same or similar steps/acts. One or more of the steps shown inFIGS. 5-6may be performed by any component or combination of components of system200.

FIG. 5illustrates a flowchart of one exemplary method500of assigning one or more unique connection addresses on a network-based communication system, such as a VoIP system300. Step502may include receiving a request for a connection address from a first network device302a. In particular, step502may include receiving a first request for a connection address where the first request is includes a first identifier associated with a first network device302a. For example, the datacenter304may receive a request for a connection address from the first network device302athat includes an identifier of the first network device302a. The address assigner326may receive the request in any suitable manner, such as described herein.

Step504may include providing a connection address to the first network device302a. In particular, step504may include providing a first connection address to the first network device302awhere the first connection address includes a shared component and a first exclusive component. For example, the address assigner326may provide a connection address to the first network device302ain any suitable manner, such as described herein. To illustrate, the address assigned to the first network device302amay include a shared component, such as an IP address, and an exclusive component, such as a port number.

Step506may include receiving a request for a connection address from a second network device302b. In particular, step506may include receiving a second request for a connection address where the second request includes a second identifier associated with a second network device302b. For example, the datacenter304may received a request for a connection address from the second network device302bthat includes an identifier of the second network device302b. For instance, the address assigner326may receive the request in any suitable manner, such as described herein.

Step508may include providing a second connection address to the second network device302b. In particular, step508may include providing a second connection address to the second network device302b, where the second connection address includes the shared component and a second exclusive address component. For example, the address assigner326may provide a connection address to the second network device302bin any suitable manner, such as described herein. For instance, the connection address provided to the second network device302bmay differ from the connection address provided to the first network device302a.

FIG. 6illustrates a method600of customizing a connection address to a network device according to the principles described herein. Step602may include receiving a connection request from a network device, such as the first network device302a. In particular, step602may include receiving a connection request from a first voice over Internet Protocol device. For example, the datacenter304may receive a request for a connection address from the first network device302a. The address assigner326may receive the request in any suitable manner, such as described herein. As described above, in one or more embodiments, the first network device302amay be a VoIP device.

Step604may include identifying a device characteristic for the network device, such as the first network device302a. In particular, step604may include identifying a first device characteristic for the first voice over Internet Protocol device. For example, the datacenter304may identify the network device type, characteristics, and properties of the first network device302aas in any suitable manner, such as described herein. For instance, the settings customizer324can lookup information associated with the first network device302ain the network device database322.

Step606may include determining network-level settings for the network device, such as the first network device302a. In particular, step606may include determining network-level settings for the first voice over Internet Protocol device based on the first device characteristic. For example, the datacenter304may determine network-level settings for the first network device302a. For instance, the settings customizer324can determine optimal network-level settings for the first network device302aas in any suitable manner, such as described herein.

Step608may include associating the determined network-level settings with a connection address. In particular, step608may include associating the determined network-level settings for the first voice over Internet Protocol device with a first address comprising a shared component and a first exclusive component. For example, the address assigner326and/or the settings customizer324may associate the customized network-level settings with a connection address as in any suitable manner, such as described herein.

Step610may include assigning the connection address to the network device, such as the first network device302a. In particular, step610includes assigning the first connection address to the first voice over Internet Protocol device. For example, the address assigner326may assign a connection address to the first network device302ain any suitable manner, such as described herein.

FIG. 7illustrates, in block diagram form, an exemplary computing device700that may perform one or more of the processes described above. One will appreciate that system100, and/or VoIP system200each comprises one or more computing devices in accordance with implementations of computing device700. As shown byFIG. 7, the computing device can comprise a processor702, a memory704, a storage device706, an I/O interface708, and a communication interface710, which may be communicatively coupled by way of communication infrastructure712. While an exemplary computing device700is shown inFIG. 7, the components illustrated inFIG. 7are not intended to be limiting. Additional or alternative components may be used in other embodiments. Furthermore, in certain embodiments, a computing device700can include fewer components than those shown inFIG. 7. Components of computing device700shown inFIG. 7will now be described in additional detail.

In particular embodiments, processor702includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor702may retrieve (or fetch) the instructions from an internal register, an internal cache, memory704, or storage device706and decode and execute them. In particular embodiments, processor702may include one or more internal caches for data, instructions, or addresses. As an example and not by way of limitation, processor702may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (“TLBs”). Instructions in the instruction caches may be copies of instructions in memory704or storage706.

Memory704may be used for storing data, metadata, and programs for execution by the processor(s). Memory704may include one or more of volatile and non-volatile memories, such as random access memory (“RAM”), read only memory (“ROM”), a solid-state disk (“SSD”), flash, phase change memory (“PCM”), or other types of data storage. Memory704may be internal or distributed memory.

Storage device706includes storage for storing data or instructions. As an example and not by way of limitation, storage device706can comprise a non-transitory storage medium described above. Storage device706may include a hard disk drive (“HDD”), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a universal serial bus (“USB”) drive or a combination of two or more of these. Storage device706may include removable or non-removable (or fixed) media, where appropriate. Storage device706may be internal or external to the computing device700. In particular embodiments, storage device706is non-volatile, solid-state memory. In other embodiments, Storage device706includes read-only memory (“ROM”). Where appropriate, this ROM may be mask programmed ROM, programmable ROM (“PROM”), erasable PROM (“EPROM”), electrically erasable PROM (“EEPROM”), electrically alterable ROM (“EAROM”), or flash memory or a combination of two or more of these.

Communication interface710can include hardware, software, or both. In any event, communication interface710can provide one or more interfaces for communication (such as, for example, packet-based communication) between computing device700and one or more other computing devices or networks. As an example and not by way of limitation, communication interface710may include a network interface controller (“NIC”) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (“WNIC”) or wireless adapter for communicating with a wireless network, such as WI-FI.

Additionally or alternatively, communication interface710may facilitate communications with an ad hoc network, a personal area network (“PAN”), a local area network (“LAN”), a wide area network (“WAN”), a metropolitan area network (“MAN”), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, communication interface710may facilitate communications with a wireless PAN (“WPAN”) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a global system for mobile communications (“GSM”) network), a satellite network, a navigation network, a broadband network, a narrowband network, the Internet, a local area network, or any other networks capable of carrying data and/or communication signals between one or more network devices102and a datacenter104.

Communication infrastructure712may include hardware, software, or both that couples components of computing device700to each other. As an example and not by way of limitation, communication infrastructure712may include an accelerated graphics port (“AGP”) or other graphics bus, an enhanced industry standard architecture (“EISA”) bus, a front-side bus (“FSB”), a hypertransport (“HT”) interconnect, an industry standard architecture (“ISA”) bus, an infiniband interconnect, a low-pin-count (“LPC”) bus, a memory bus, a micro channel architecture (“MCA”) bus, a peripheral component interconnect (“PCI”) bus, a PCI-Express (“PCIe”) bus, a serial advanced technology attachment (“SATA”) bus, a video electronics standards association local (“VLB”) bus, or another suitable bus or a combination thereof

FIG. 8illustrates an example network environment of a telecommunication system800according to the principles described herein. In particular, the telecommunication system800may facilitate both network-based communication systems as well as circuited-switched traditional communication systems. For example, the telecommunication system800may allow a user calling from a traditional landline to converse with a user using a VoIP device. In addition, whileFIG. 8illustrates exemplary components and devices according to one embodiment, other embodiments may omit, add to, reorder, and/or modify any of the components and devices shown inFIG. 8.

The telecommunication system800may include a PTSN850and an IP/packet network850. The PTSN850and the IP/packet network852may be connected via a network, such as the Internet806or a private network. In some example embodiments, the PTSN850and/or the IP/packet network852may be connected to the Internet806via gateways854a-b. For example, gateway854bmay be a signaling gateway and/or a media gateway. For instance, the signaling gateway processes and translates bidirectional SIP signals, and the media gateway handles real-time transport protocol communications. In addition, network trunks may interconnect the PTSN850, the Internet806, and the IP/packet network850.

The PSTN850may connect to one or more PSTN devices856. For example, a switch858may connect the one or more PSTN devices856to the PSTN850. PSTN devices856may include a variety of devices ranging from traditional landline devices to mobile/cellular devices.

The PSTN850may include, but is not limited to telephone lines, fiber optic cables, microwave transmission links, cellular networks, communication satellites, and undersea telephone cables. Switching centers may interconnect each of this components and networks. Further, the PSTN850may be analog or digital. In addition, the PSTN850may use protocols such as common channel signaling system 7 (“CCS7”). CCS7 is a set of protocols used in the PSTN850to setup and tear down communications between subscribers (i.e., users).

As illustrated inFIG. 8, the telecommunication system800may include an IP/packet network852. The IP/packet network852may be part of a network-based system, such as a VoIP communication system. VoIP systems are generally known for transmitting voice packets between users. However, VoIP systems also handle other forms of communication, such as video, audio, photographs, multimedia, data, etc. For example, VoIP systems provide communication services for telephone calls, faxes, text messages, and voice-messages.

The IP/packet network852provides communication services between users over the Internet806rather than using a traditional PSTN850. However, VoIP systems also allow users to communicate with users using PSTN850. Thus, a subscriber using a network device802may communicate with a subscriber using a PSTN device856. Furthermore, VoIP systems allow users to communicate with each other without accessing the PSTN850.

As illustrated inFIG. 8, the IP/packet network852may also include network devices802devices and datacenters804. The network devices802devices and datacenters804illustrated inFIG. 8may be example embodiments of the network device202and datacenters304described above. For example, example of network devices802include a variety of devices, such as personal computers, a tablet computer, handheld devices, mobile phones, smartphones, a personal digital assistants (“PDA”), in- or out-of-car navigation systems, and other electronic access devices. In addition, the network device802may be part of an enterprise environment, such as a professional business exchange (“PBX”), a small office/home office environment, or a home/personal environment.

As briefly described above, network devices802may include dedicated devices and soft devices. Dedicated devices are commonly designed and appear like a digital business telephone. Soft devices or softphones refer to software installed on a computing device. This software utilizes microphone, audio, and/or video capabilities of the computing device and provides traditional calling functionality to a user, operated via a user interface.

Datacenter804may facilitate communications between network devices802. For example, datacenter804registers devices, stores device identification and address information, tracks current communications, and logs past communications, etc., as described above. In addition, datacenters804also assists network devices in provisioning, signaling, and establishing user communications via a media bridge.

In the case of multiple datacenters804, one datacenter804may communicate with another datacenter804. For example, one datacenter804may send gathered network device802information to the other datacenter804. In particular, when a datacenter804registers a network device802, that datacenter804may send the address information to the other datacenters804located on the IP/packet network852. Accordingly, each datacenter804may communicate with others datacenters804and assist the IP/packet network852in balancing network and processing loads. Further, the datacenters804may assist the IP/packet network852to ensure that communication sessions between network devices802do not fail by communicating with each other.

As illustrated, the network devices802and the datacenters804may be connected to the IP/packet network852via switches860a-b. Switches860a-bmanage the flow of data across the IP/packet network852by transmitting a received message to the device for which the message was intended. In some example embodiments, the switches860a-bmay also perform router functions. Further, while not illustrated, one or more modems may be in electronic communication with the switches860a-b.

In addition, the IP/packet network852may facilitate session control and signaling protocols to control the signaling, set-up, and teardown of communication sessions. In particular, the IP/packet network852may employ SIP signaling. For example, the IP/packet network852may include a SIP server that processes and directs signaling between the network devices802and the IP/packet network852. Other protocols may also be employed. For example, the IP/packet network852may adhere to protocols found in the H.225, H.323, and/or H.245 standards, as published by the International Telecommunications Union, available at the following URL—http://www.itu.int/publications.

In particular, session initiation protocol (“SIP”) is a standard proposed by the Internet Engineering Task Force (“EITF”) for establishing, modifying, and terminating multimedia IP sessions. Specifically, SIP is a client/server protocol in which clients issue requests and servers answer with responses. Currently, SIP defines requests or methods, including INVITE, ACK, OPTIONS, REGISTER, CANCEL, and BYE.

The INVITE request is used to ask for the presence of a contacted party in a multimedia session. The ACK method is sent to acknowledge a new connection. The OPTIONS request is used to get information about the capabilities of the server. In response to an OPTIONS request, the server returns the methods that it supports. The REGISTER method informs a server about the current location of the user. The CANCEL method terminates parallel searches. The client sends a BYE method to leave a session. For example, for a communication session between two network devices802, the BYE method terminates the communication session.

Once signaling is established, the IP/packet network852may establish a media bridge, defined above. In addition, the media bridge caries the payload data for a communication session. The media bridge is separate for the device signaling. For example, in a videoconference, the media bride includes media, such as audio and video data for a communication session.

As described above a datacenter804may facilitate a media bridge connection path for a network device802. For example, when one network device802attempts the contact a second network device802, the datacenter804may execute the signaling and also determine a media bridge between the two network devices802. Further, the datacenter804may provide alternate media bridge paths to the network devices802in the event that the primary media bridge weakens, for example, below a threshold level, or even fails.

In the foregoing specification, the present disclosure has been described with reference to specific exemplary embodiments thereof. Various embodiments and aspects of the present disclosure are described with reference to details discussed herein, and the accompanying drawings illustrate the various embodiments. The description above and drawings are illustrative of the present disclosure and are not to be construed as limiting the present disclosure. Numerous specific details are described to provide a thorough understanding of various embodiments disclosed herein.