BACKGROUNDMany types of wireless and wired mobile devices allow a user to connect that device to a local network. Once joined to a local network, the device can then communicate with a wide area network such as the global Internet or other wider area data network through the local network. In some cases this allows the device to communicate using a more reliable network and/or using a network having a higher data throughput. In many cases, however, it may be difficult for the device to fully utilize other services in the local network.
SUMMARYThis Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the disclosure.
In at least some embodiments, a local network gateway exchanges signaling data for a voice communication session with an external network. The gateway also processes internal signaling information relating to that voice communication session and exchanges same across logical ports within the local network gateway. Each of the logical ports is associated with a separate communication session end point in the local network. In response to the internal signaling information exchanged across a logical port, signaling data is exchanged with a communication session end point using a signaling protocol and physical interface corresponding to the end point. A voice communication session can be established between the local network gateway and an external network and bridged to local communication sessions between the local network gateway and local end points.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram showing a network architecture in which at least some embodiments may be implemented.
FIG. 2 is a block diagram showing a local network gateway and an end device according to some embodiments.
FIG. 3 is a block diagram showing various modules executing or executable within a local network gateway according to at least some embodiments.
FIGS. 4-7 are communication diagrams showing examples of information flows according to at least some embodiments.
FIG. 8 is another block diagram showing various modules executing or executable within a local network gateway according to at least some embodiments.
DETAILED DESCRIPTIONFIG. 1 is a block diagram showing a network architecture in which at least some embodiments may be implemented. A plurality of local end devices101-104 and alocal gateway105 form a local network at apremises106. In the example ofFIG. 1,devices101 and102 may be, for example, DECT (Digital Enhanced Cordless Telecommunications) handsets that communicate withgateway105 over a DECT wireless interface.Device103 may be a terminal communicating withgateway105 over a general-purpose local wireless data interface.Device104 may be a POTS (plain old telephone service) telephone that communicates withgateway105 over a wired analog telephony interface that includes an RJ11 jack. Alternatively, end devices101-104 may be any other user devices.
Gateway105 communicates with various non-local elements inwide area network110, withwide area network110 being external topremises106. As used herein, “non-local” merely refers to an element not being part of the local network ofgateway105. Non-local elements can include, e.g., call management servers, data servers, video servers, and other network elements used to create and maintain data access and communication services, such as telephone calls and other types of voice communication sessions.External network110, which may be of regional or national scope, may include a number of sub-networks and/or links to additional networks. For example,network110 may include an access sub-network that connects gateway105 (and other gateways at other premises, not shown) tonetwork110. That access sub-network could be any of various types. Examples of access sub-network types in various embodiments include, but are not limited to, a passive optical network (PON) access sub-network, a digital subscriber line (DSL) access sub-network, a wide area wireless access sub-network and a hybrid fiber coaxial (HFC) access sub-network. An accesssub-network connecting gateway105 tonetwork110 may utilize known media access control (MAC), transport and other communication protocols conventionally used with a particular type of access sub-network architecture and communication technology. As but one non-exclusive example, communications in an HFC access sub-network may utilize protocols as described in one or more Data over Cable Service Interface Specifications (DOCSIS) standards. Network110 may include numerous access sub-networks of different types.
Gateway105 may communicate with different elements innetwork110 so as to obtain different types of services. For example, the operator ofnetwork110 may provide a general-purpose data service topremises106 that allowsgateway105 to access the public Internet and/or other public or local data networks. As another example, the operator ofnetwork110 may provide various types of multicast and/or unicast content (e.g., movies, television programming, etc.) topremises106 throughgateway105. As a further example, and as discussed in further detail below, the operator ofnetwork110 may provide telephony or other type of voice communication services topremises106 throughgateway105.
FIG. 2 is a block diagram showing additional details of an example implementation ofgateway105 and ofend device103. Gateway105 may communicate withnetwork110 over physical interface (i/f)201 that provides a physical connection to the medium of an access sub-network, if present, that connectsgateway105 tonetwork110. In an HFC access sub-network,interface201 could include hardware for tuning to RF frequency channels, for demodulating signals received in those tuned channels, for outputting data from demodulated signals for further processing, for modulating data onto an upstream signal and for transmitting that upstream signal tonetwork110. In a PON access sub-network,interface201 could include the components of an optical network terminal (ONT) that performs modulation, demodulation, transmission and receiving operations. In a wide area wireless access sub-network,interface201 may include a wireless transceiver that performs tuning, modulation, demodulation, transmission and receiving operations. In a DSL access sub-network,interface201 may include a DSL modem that performs the modulation, demodulation, transmission and receiving operations. In still further embodiments,interface201 may include an Ethernet or other local network interface that connectsgateway201 to a separate cable modem, ONT, wireless transceiver, DSL modem or other access sub-network connection point.
Gateway105 includes amain processor202 and amemory203.Processor202 communicates withnetwork110 overinterface201.Processor202 is further configured to execute instructions so as to perform various operations as described herein (e.g., operations of a gateway session manager module discussed below), to perform various operations in connection with MAC, transport and other protocols used for communication withnetwork110, and to control operation of other components ofgateway105. Instructions executed byprocessor202 may be hard-wired logic gates and/or may be instructions read frommemory203 or another service.Memory203 may include volatile and non-volatile memory and can include any of various types of storage technology, including but not limited to read only memory (ROM) modules, random access memory (RAM) modules, magnetic tape, magnetic discs (e.g., a fixed hard disk drive or a removable floppy disk), optical disk (e.g., a CD-ROM disc, a CD-RW disc, a DVD disc), flash memory, and EEPROM memory.Processor202 may be implemented with any of numerous types of devices, including but not limited to general purpose microprocessors, application specific integrated circuits, field programmable gate arrays, and combinations thereof Although a single block is shown formemory203 and a single block shown forprocessor202, memory and computational operations ofgateway105 could respectively be distributed across multiple memory devices and multiple processors located withingateway105. Alternatively, memory and computational operations ofgateway105 could be contained within a single application specific integrated circuit (ASIC) or other component.
Processor202 communicates with end devices101-104 and/or with other end devices atpremises106 through various local communication physical interfaces. Such interfaces can include aUSB interface204, a DECT 6.0interface205, a MOCA (Multimedia Over Coax)interface206, aWiFi interface207, an Ethernetinterface209 and ananalog telephony interface210. In some embodiments, each of interfaces204-210 may be a separate ASIC or collection of ASICs having processing and memory components and configured to carry out the operations associated with the interface. Such operations could include modulation and demodulation of signals used to carry data over the interface, operations associated with a MAC protocol used on the interface, etc. In other embodiments, one, some or all of interfaces204-210,processor202 and/ormemory203 may be incorporated into the same ASIC. In still other embodiments a portion of the hardware and/or instructions associated with an interface may be incorporated into an ASIC withprocessor202 and a portion may reside in a separate ASIC.
In other embodiments, a gateway may also include other types of local physical interfaces for communicating with other types of end devices. Examples of such interfaces include but are not limited to a CAT-iq (Cordless Advanced Technology - Internet and Quality) interface for communication with CAT-iq end devices, a DLNA (Digital Living Network Alliance) interface for communicating with other devices in a premises, a femtocell interface for communicating with mobile telephones and other mobile devices, etc. Apower supply211 and/or battery backup212 provide electrical power. User input togateway105 may be provided over one of the aforementioned interfaces or via a separate collection of buttons or other controls in aconsole213.
End device103 may comprise, for example, a smart phone that includes atransceiver225 used for direct communication over a wide area wireless network (e.g., a 3G mobile networking and telecommunication network, an EDGE (Enhanced Data rate for GSM Evolution) network, an EVDO (EVolution Data Optimized) network) or another type of network.Transceiver225 demodulates signals received over a wide area wireless network, modulates data, and transmits modulated data signals in the wide area wireless network. Asecond transceiver226 is configured to allowdevice103 to communicate within a general-purpose local wireless network.Transceiver226 demodulates signals received in a local wireless network, modulates data and transmits modulated data signals in that local wireless network.Transceivers225 and226 also exchange data withprocessor227, which is configured to execute instructions so as to perform various operations as described herein and to control operation of other components ofdevice103. Those instructions may be stored inmemory228 as executable instructions and/or as hard wired logic withinprocessor227. For example, stored inmemory228 is a SIP-basedvoice communication client229.Client229, which is discussed below, could be, e.g., a VoIP (Voice over Internet Protocol) client.Processor227 may also be configured to perform one or more types of CODEC operations to convert data to audio for output throughspeaker230 and to convert sound received throughmicrophone231 into data.Processor227 outputs video data to adisplay232 and receives user input through akeypad233 and/or through touch sensitive portions ofdisplay232.Processor227 is configured to provide a browser or other graphical user interface (GUI) ondisplay232 by which a user ofdevice102 can receive information and provide input. Abattery234 provides electrical power todevice103.
End device103 is able to communicate withgateway105 over a general-purpose, local wireless data interface usingtransceiver226. Examples of general-purpose wireless data interfaces include interfaces such as are described by Institute of Electrical and Electronics Engineers standard 802.11 (IEEE 802.11). In the embodiment ofFIG. 2,WiFi interface207 ofgateway105 andtransceiver226 ofdevice103 are configured for communication over IEEE 802.11 interfaces. In other embodiments, terminal103 could take the form of a laptop computer, a tablet computer, or other device having WiFi (or other general-purpose wireless interface) capability. The foregoing description for a device is exemplary only, and other implementations for both wired andwireless user devices103 are possible as desired.
FIG. 3 is a block diagram showing examples of various operational modules executing or executable withingateway105. For example, each of various blocks of gateway session manager (GWSM)module300 inFIG. 3 represents groups of operations performed withingateway105 in response to execution of stored instructions. Each of the blocks inFIG. 3 need not correspond to a separate physical component. For example, operations from multiple modules might be performed within a single processor or ASIC (e.g.,processor202 in embodiments whereprocessor202 is a single processor or ASIC). In other embodiments, operations of various modules may be distributed across multiple processors or ASICs (e.g., operations of some modules ofGWSM module300 could be performed by processors or ASICs of one or more of physical interfaces204-207 and209). Moreover, the arrangement of blocks inFIG. 3 is only intended to show functional relationships between various modules in some embodiments. Computational and other data processing circuits, signal processing and communication circuits, and/or memory associated with operations in theFIG. 3 modules need not have the same relative locations represented by blocks inFIG. 3.
GWSM module300 includes amain module301 and a plurality of communication port (C/P) modules1-4. C/P modules1-4 are described below.Main module301 establishes, manages and discontinues external voice communication sessions betweengateway105 and non-local devices that are external to the local area network ofgateway105. Such external voice communication sessions can include voice communication sessions betweengateway105 and non-local devices innetwork110, betweengateway105 and non-local devices in the public switched telephone network (PSTN), and/or betweengateway105 and non-local devices in other networks accessible throughnetwork110. Voice communication sessions can include, but are not limited to, VoIP telephone calls. Voice communication sessions could also involve exchange of additional data (e.g., real time video data, text, etc.). In connection with establishing, maintaining and discontinuing external voice communication sessions,main module301 generates and sends external signaling data to various elements inexternal network110. Similarly,main module301 receives external signaling data fromother network110 elements and processes such signaling data. Examples of various types of external signaling data are included below.Main module301 also receives media data (e.g., data encoding voice audio) from and sends media data to non-local elements innetwork110.
In some embodiments,main module301 may perform many functions of a conventional embedded media terminal adapter (EMTA). For example,main module301 may exchange NCS (Network-based Call Signaling) external signaling messages with a call management server (CMS) and/or other NCS-based network elements innetwork110. NCS messages exchanged between an EMTA and NCS-based network elements are known in the art and described, e.g., by a document titled “PacketCable™ 1.5 Specifications Network-Based Call Signaling Protocol PKT-SP-NCS1.5-103-070412” (available from Cable Television Laboratories, Inc.). In other embodiments,main module301 may perform many functions of a conventional embedded digital voice adapter (EDVA). In some such embodiments,main module301 may exchange SIP (Session Initiation Protocol) external signaling messages with a call state control function (CSCF) and/or other IP Multimedia System (IMS) elements innetwork110. SIP messages exchanged between an EDVA and IMS network elements are known in the art and described, e.g., by a document titled “PacketCable™ IMS Delta Specifications Session Initiation Protocol (SIP) and Session Description Protocol (SDP);Stage 3 Specification 3GPP TS 24.229 PKT-SP-24.229-I06-100120” (also available from Cable Television Laboratories, Inc.).
In addition to external voice communication sessions betweengateway105 and non-local devices outside the local network ofgateway105, local voice communication sessions can be established betweengateway105 and local end devices. As part of local voice communication sessions, media data is exchanged betweengateway105 and local end devices. Similarly, local signaling data is exchanged betweengateway105 and local end devices in connection with the creation, management and discontinuance of such local voice communication sessions. Local signaling data may use a protocol that is specific to a particular type of local end device and/or software client on a local end device, and may be different from a protocol used for external signaling data.
Main module301 can act as a link (or “bridge”) between an external voice communication session and a local voice communication session. In this manner, the local end device participating in the local session withgateway105 is able to exchange media data with a non-local device participating in an external session withgateway105.Main module301 can also act as a bridge between separate local voice communication sessions. In this manner,main module301 can facilitate communications between local end devices and/or between multiple local end devices and a non-local device.
Each local voice communication session between a local end device (and/or client executing on an end device) may be established between that local end device (and/or client) and a C/P module that is specific to that local end device (and/or client). As explained below,main module301 associates the logical port of each C/P module with a specific local end point within the local network ofgateway105. A local end point may be a local end device (e.g., DECThandset end devices101 and102, POTS telephone104) and/or may include a communication software client executing on a local end device (e.g.,client229 executing on device103).Main module301 communicates with a local end point though the C/P module associated with that local end point. In particular,main module301 sends media data intended for a particular local end point to the C/P module associated with that local end point and receives media data from that local end point through the associated C/P module.
As part of its operations,main module301 may maintain a list of telephone numbers (TNs) assigned topremises106 by, for example, an operator ofnetwork110, a list of which TNs are currently in use (e.g., by one of the local end points in premises106), etc.Main module301 may also maintain user profile data regarding which TNs might be associated with which local end points, whether incoming calls to a particular TN should cause all on-hook local end points to be signaled of the incoming calls, etc. Such user profile data can be based on preferences provided by individual users at the time of system setup or at other times, and/or can be maintained at a server innetwork110 and periodically updated tomain module301.
Main module301 may also perform media conversion. For example, a first local end point associated with a first C/P module may encode and decode audio data using a particular CODEC (e.g., according to ITU-T standard G.711). A second local end point associated with a second C/P module may encode and decode audio data using a different CODEC (e.g., according to ITU-T standard G.722).Main module301 might receive G.711 media data from the first local end point through the first C/P module, transcode that media data so as to conform to G.722, and forward the transcoded media data through the second C/P module. As another example, media data thatmain module301 exchanges withnetwork110 may be formatted in accordance with first media protocol, but a local end point inpremises106 may utilize a second media protocol.Main module301, which may also store data regarding media protocols supported by individual end points and/or bynetwork110, might thus perform transcoding between the first and second media protocols when forwarding media data betweennetwork110 and that local end point.
As indicated above, local communication sessions between local end devices andgateway105 are created, maintained and discontinued using a separate C/P module that is associated with each local end point. In some embodiments, C/P modules can be software and/or firmware modules that can be individually added to (e.g., installed on) the software and/or firmware that performs the operations ofGWSM module300.
Each C/P module includes a logical port (LP) and an end point call handler (EPCH) module, each of which is also associated with the local end point that is associated with the C/P module.Main module301 thus associates each logical port with a specific end point and uses that logical port to exchange data with the associated end point. Each logical port could be implemented as, e.g., a programming hook, a memory address, a multiplexing time slot, a dedicated physical port, or other mechanism for linking data with a particular destination and source. When sending media data to or receiving media data from a particular end point,main module300 sends that media data to or receives that media data from the logical port associated with that end point. Similarly,main module300 sends and receives signaling information relating to a particular end point by sending and receiving that signaling through that end point's associated logical port.
The EPCH of a particular C/P module may contain a variety of additional modules. The types of modules contained by an EPCH will vary based on the end point associated with the EPCH. In many cases, an EPCH may include a signaling conversion module and a communication module. The operations performed by a communication module can include registration and deregistration of an associated end point, as well as creating, managing and discontinuing local communication sessions with the associated end point. As part of creating, managing and discontinuing such local communication sessions, the communication module sends and receives media and signaling data to the end point using the signaling protocol specific to the end point. A communication module sends data to and receives data from an end point through the physical interface used by that end point. In some cases, multiple C/P modules (and thus multiple communication modules) may share a single physical interface. The operations performed by a physical interface may vary based on physical interface type. In general, a physical interface may create, transmit and receive the RF, electrical or other type of signal used to communicate data to and from an end device. Each physical interface may also modulate and/or demodulate such signals, perform MAC functions, and carry out other operations specific to a physical interface.
As indicated above, signaling data is exchanged as part of creating, maintaining and discontinuing both external and local communication sessions. For example, in response to external signaling data received fromnetwork110, GWSMmain module301 may create an external communication session with a non-local device and also cause one or more of C/P modules1-4 to create a local communication session with a local end point.Main module300 may then bridge those two communication sessions. Similarly, a C/P module may establish a local communication session with its associated end point and causemain module300 to create an external communication session, withmain module300 then bridging those two sessions.
In at least some embodiments, the protocol used for external signaling data (e.g., NCS signaling, IMS (SIP) signaling) is different from the signaling protocol used by one or more local end points (e.g., DECT signaling). However,main module301 can employ a common internal signaling information format to create an abstraction layer for exchange of signaling information between external and local communication sessions that employ dissimilar signaling protocols. In response to external signaling data (e.g., a request to set up voice telephony session),main module300 generates internal signaling information using the common internal signaling format and forwards that information to a logical port associated with one or more appropriate end points. Signaling conversion modules then receive that common-format internal signaling information and generate appropriate signaling data using the signaling protocols of the associated end points. The signaling conversion modules similarly receive signaling data from the associated end points using the end points' signaling protocols, generate common-format internal signaling information, and forward that internal signaling information tomain module301 across the logical ports.
Returning toFIG. 3, C/P module1 includes a logical port302-1 and an EPCH303-1. EPCH303-1 includes a signaling conversion module303-1aand a communication module303-1b.Communication module303-1bcommunicates with DECTphysical interface205 and performs various operations in connection withDECT end device101.Communication port101 can be created when a newDECT end device101 is powered on or otherwise enters the transmission/receiving range ofDECT interface205, or may be created during setup ofgateway105 When C/P module1 is initially created,main module301 becomes aware ofend device101 as a new end point and of the logical port302-1 across whichmain module301 may communicate with the new end point. Stated differently,main module301 associates the new end point with the associated logical port across which communications relating to that end point will pass.
Communication module303-1bestablishes, maintains and discontinues communication sessions withDECT end device101. For example, communication module303-1bmay initially establish a local communication session withend device101 by exchanging signaling data related to setting up an incoming or outgoing voice communication session. Subsequently (e.g., after a communication session betweenmain module301 andnetwork110 is established and can be bridged), the local communication session between communication module303-1bandDECT end device101 can be used to exchange media data. In particular,main module301 may bridge the external communication session betweenmain module301 andnetwork110 with the local communication session between communication module303-1bandDECT end device101. Communication module303-1bmay then forward media data received frommain module301 to the end device and vice versa.
Communication module303-1bsends signaling data to and receives signaling data fromDECT end device101 in a format recognized byend device101. That format could be, e.g., the DECT signaling format. For example,end device101 may generate and send DECT signaling data to communication module303-1bin response to input from a user of device101 (e.g., input corresponding to commencing or ending a telephony session). Communication module303-1bprovides DECT signaling data received fromend device101 to conversion module303-1a.Conversion module303-1athen generates appropriate common-format internal signaling information and forwards that signaling information tomain module301 across logical port302-1. Conversion module303-1aalso receives common-format internal signaling information frommain module301 across logical port302-1. In response to such received information, conversion module303-1agenerates appropriate DECT signaling data and forwards same to communication module303-1bfor communication to enddevice101.End device101 then takes appropriate action in response (e.g., causing a ringer to ring).
GWSM module300 also includes a C/P module2 associated withDECT end device102. C/P module2 includes a logical port302-2 and an EPCH303-2, with EPCH303-2 including a signaling conversion module303-2aand a communication module303-2bthat communicates withdevice102 through DECTphysical interface205. C/P module2 andend device102 operate in a similar manner as C/P module1 andend device101.Main module301 thus associates logical port302-1 withend device101 and logical port302-2 withend device102.Main module301 addresses internal signaling information relating to (and media data intended for)device101 to logical port302-1 and addresses signaling information relating to (and media data intended for)device102 to logical port302-2. Similarly,main module301 recognizes internal signaling information received across port302-1 as relating todevice101, recognizes media data received across port302-1 as coming fromdevice101, recognizes internal signaling information received across port302-2 as relating todevice102, and recognizes media data received across port302-2 as coming fromdevice102. If additional communication ports associated with additional DECT end devices were to be installed,main module301 could similarly exchange media with those end devices across their associated logical ports and exchange internal signaling information relating to those end devices across those same ports.
C/P module3 is associated with aSIP client229 executing onWiFi end device103, which end device communicates withgateway105 through WiFiphysical interface207. C/P module3 could be created, e.g., whendevice103 enters the transmitting/receiving range of WiFiphysical interface207 and/or in response to a request fromdevice103.Main module301 associates logical port302-3 ofcommunication port3 withclient229. Thus,main module301 addresses internal signaling information relating to (and media data intended for)client229 to logical port302-3. Similarly,main module301 recognizes internal signaling information received across port302-3 as relating toclient229 and recognizes media data received across port302-3 as coming fromclient229.
EPCH303-3 ofcommunication port3 includes a signaling conversion module303-3aand a WiFi communication module303-3b.EPCH303-3 further includes a SIP module303-3cthat acts as a SIP proxy server forSIP client229. In the case of EPCH303-3, SIP module303-3cestablishes, maintains and discontinues communication sessions withSIP client229 by exchanging SIP signaling messages withclient229 through WiFi communication module303-3b.In particular, SIP module303-3csends SIP messages forclient229 to WiFi module303-3b.Module303-3bthen processes the data of those SIP messages for communication using WiFi protocols and causes that data to be communicated across WiFiphysical interface207. Similarly, SIP messages fromclient229 are received acrossphysical interface229 by WiFi communication module303-3cand provided to SIP module303-3c.
In response to SIP communications fromclient229, SIP module303-3ccauses signaling conversion module303-3ato generate common-format internal signaling information and to forward that signaling information tomain module301 across logical port302-3. Similarly, and in response to internal signaling information received by conversion module303-3afrommain module301, SIP module303-3cgenerates SIP messages and forwards those messages toSIP client229 through WiFi communication module303-3b.SIP module303-3csimilarly forwards media data received frommain module301 toclient229 and vice versa.
In the example ofFIG. 3,GWSM module300 is shown to include a single SIP C/P module. However, additional SIP C/P modules could be installed for each additional SIP client that registers withmain module300. For each additional SIP client that is registered,main module301 could associate the logical port of an installed SIP C/P module with that SIP client.Main module301 could then exchange media data with that client across that logical port and exchange internal signaling data relating to that client across the same logical port. If an additional SIP client is executing on another device communicating withgateway105 through WiFiphysical interface207, the C/P module associated with that additional SIP client could be similar to C/P module3. If an additional SIP client is executing on a device communicating withgateway105 through another physical interface (e.g., Ethernet physical interface209), the C/P module associated with that additional SIP client could include a communication module different than WiFi communication module303-3bof C/P module3. Although each of multiple SIP clients may often execute on its own WiFi (or other) end device, this need not be the case. In other words, a single WiFi (or other) device could simultaneously execute multiple registered SIP clients, with each client having its own corresponding C/P module installed inGWSM module300.
GWSM module300 further includes a C/P module4 associated with ananalog telephony interface210 having andRJ11 jack325.Main module300 associates logical port302-4 of C/P module4 with all analog telephone end devices that are connected to jack325. Thus,main module301 addresses internal signaling information relating to (and media data intended for) such end devices to logical port302-4, recognizes internal signaling information from port302-4 as relating to those end devices, and recognizes media data from port302-4 as coming from those end devices. In the present example,only end device104 is connected to jack325. C/P module4 could be created, e.g., whengateway105 is initially configured. Because the number of RJ11 jacks or other physical connections for analog telephones togateway105 may be relatively static, there may be no need formodule300 to accommodate dynamic registration of additional analog telephones and attendant dynamic installation of associated analog telephone C/P modules.
EPCH303-4 of C/P module4 includes a communication module303-4bthat communicates with analog telephonyphysical interface210. EPCH303-4 also includes a signaling conversion module303-4athat performs various signaling conversion operations in connection with analog telephones connected to interface210. Although many of those operations are analogous to operations performed by communication modules303-1a,303-2aand303-3a,the operations performed by communication module303-4amay be significantly simpler. Signaling between C/P module4 and an analog telephone may be limited to ring signals to a telephone and on-hook/off-hook signals from an analog telephone. In response to internal signaling information frommain module301 relating to one or more telephones connected toRJ11 jack325, for example, signaling conversion module303-4amay causeinterface210 to generate a ring voltage onjack325. In response to an on-hook or off-hook signal from an analog telephone, signaling conversion module303-4amay generate and send internal signaling information tomain module301.
Analog telephone communication module303-4bforwards media data received frommain module301 to analog telephones and vice versa. Communication module303-4bmay also include one or more CODECs that communicate with digital-to-analog converter (DAC) circuits and analog-to-digital converter (ADC) circuits ininterface210, which DAC and ADC circuits may convert between digital media data and analog signals recognized by an analog telephone.
Main module300 could include additional C/P modules in other embodiments. Those C/P modules could be essentially identical to one ofcommunication port modules104. For example, another C/P module similar to C/P modules1 and2 could be installed to accommodate an additional DECT end device. As another example, a C/P module similar to C/P module3 could be installed to accommodate an additional SIP client communicating withgateway105 through WiFiphysical interface207. Different types of C/P modules could also be installed. As indicated above, a C/P module associated with a SIP client communicating throughEthernet interface209 could be installed. As another alternative, a C/P module could be installed and configured for association (and communication) with a client executing on a device that communicates withgateway105 through another physical interface (e.g.,USB interface204, a BLUETOOTH interface (not shown inFIG. 2),MoCA interface206, etc.).
FIGS. 4-7 are communication diagrams showing examples of information flows according to some embodiments. The information flows shown inFIGS. 4-7 are not limiting. Other embodiments may include numerous alternate information flows utilizing numerous types of messages. Other communication protocols could be employed.
FIG. 4 is a communication diagram showing examples of information flows in connection with a SIP-based communication client executing on an end device communicating with a gateway, such as105. Other elements ofFIGS. 1-3 may also be referred to as examples. In the example ofFIG. 4, communications between main module301 (of gateway105) and call management server (CMS)401 are conventional NCS signaling messages used for conventional purposes. Similarly, communications betweenCMS401 and one or more elements inPSTN402 are conventional media gateway control (MGC) signaling messages used for conventional purposes. Because such NCS and MGC messages are known in the art, they will not be discussed in significant detail.
Messages exchanged betweenclient229 and C/P module3 may utilize existing SIP signaling message format(s). However, those messages can contain data and/or otherwise be used in a manner not known in the art. As discussed in more detail below, for example, such messages can be used to establish communication sessions betweenclient229 and C/P module3, and thus betweenend device103 andgateway105, in one or more novel ways. Such communication sessions allowclient229 to communicate with PSTN402 (and/or with other elements in network110) using TNs assigned togateway105/premises106 and/or to utilize services provided togateway105/premises106 bynetwork110.
Prior to the communications shown inFIG. 4,client229 may register withGWSM module300. In connection withclient229 registration, C/P module3 may be created (or a previously-created communication port configured to operate as communication port3), andmain module301 associates logical port302-7 withclient229. As part ofclient229 registration,GWSM module300 may provideclient229 with information about services available throughgateway105. For example,gateway105 may be provisioned by the operator ofnetwork110 to create voice communication sessions using one of multiple assigned telephone numbers (TNs) associated withpremises106 and/orgateway105 bynetwork110. As part of registration,client229 could thus be provided with those TNs. As another example,gateway105 may be provisioned to provide notifications, user profiles and other services such as are described in U.S. patent application Ser. No. 12/706,365 (filed Feb. 16, 2010, and titled “Disposition of Video Alerts and Integration of a Mobile Device Into a Local Service Domain”), which application is incorporated by reference herein. As part of registration,client229 may be provided with information about those services and/or registered to receive notifications and other events related to those services.
Subsequently, and as shown byline401,client229 initiates a communication session with EPCH303-3 ofcommunication port3. In response to a user input (not shown),client229 sends aSIP INVITE message401 and/or one or more additional SIP messages indicating thatclient229 wishes to initiate an outgoing voice communication session throughgateway105 using one of the TNs associated withgateway105. The INVITE message (or other message exchanged in connection with message401) may include the number being called by theclient229 user, agateway105 TN selected by the user for use in the call, and additional information. In response, SIP module303-3cof EPCH303-3, acting as a SIP proxy server, initiates a communication session withclient229. SIP module303-3c,through signaling conversion module303-3a,exchanges internal signaling information withmain module301 across logical port302-3. That signaling information communicates thatclient229 wishes to be bridged with a yet-to-be-created external voice communication session using the selected TN.Main module301 then exchangesNCS messages402 through407 withCMS401 to begin set up of the external voice communication session.
As the set up of the external voice communication session proceeds,main module301 communicates internal signaling information across logical port302-3 to indicate that set up is in progress. As a result, EPCH303-3 exchanges various SIP status messages408-411 withclient229. Set up of the external communication session continues as MGC messages412-417 are exchanged betweenCMS401 andPSTN402, NCS messages418-421 are exchanged betweenmain module301 andCMS401, additional MGC messages422-425 are exchanged betweenCMS401 andPSTN402, andfurther NCS messages426 and427 are exchanged betweenCMS401 andmain module301.Main module301 further communicates internal signaling information across logical port302-3 to indicate that external communication session set up is in progress, resulting in EPCH303-3 andclient229 exchanging messages428-430. Aftermain module301 sendsadditional NCS messages431 and432 toCMS401, an active voice communication session433 is established asmain module401 bridges the local communication session betweenclient229 and C/P module3 with the external communication session betweenmain module301 and non-local element(s) inPSTN402.
FIG. 5 is a communication diagram showing examples of information flows in connection with external signaling for an incoming communication session. For example, the communication session may be received atgateway105, and in whichclient229 is one of the end points notified of the incoming communication session. As in the example ofFIG. 4, communications betweenmain module301 and call management server (CMS)401 are conventional NCS signaling messages used for conventional purposes, with communications betweenCMS401 and one or more non-local elements inPSTN402 being conventional media gateway control (MGC) signaling messages used for conventional purposes. Communications between EPCH303-1 andDECT handset101 are conventional DECT signaling messages. Because NCS, MGC and DECT messages are known in the art, they will not be discussed in significant detail. Messages exchanged betweenclient229 and EPCH303-3 ofgateway105 may utilize existing SIP signaling message format(s), but contain data and/or are otherwise used in a manner not known in the art. For example, such messages can be used to establish communication sessions betweenclient229 and EPCH303-3 in a one or more novel ways and that allowclient229 to communicate with non-local elements in PSTN402 (and/or with other non-local elements in network110) using TNs assigned togateway105/premises106 and/or to utilize services provided togateway105/premises106 bynetwork110.
An incoming communication session directed to one of thegateway105 TNs (“called TN”) is initiated by an element inPSTN402. As a result, MGC messages501-505 are exchanged betweenPSTN402 andCMS401, NCS messages506-509 are exchanged betweenmain module301 andCMS401, and MGC messages510-516 exchanged betweenCMS401 andPSTN402 in order to establish a connection betweenmain module301 andPSTN402. In response to establishment of this connection,main module301 checks the status of all end points by checking the status of the logical port corresponding to each device or client. If profiles (as described in application Ser. No. 12/706,365) are in use,main module301 will route the incoming call to each of the end points associated with the called TN. In particular,main module301 will exchange, with logical ports associated with each of the end points associated with the called TN, internal signaling information indicating the incoming call and offering the end point the opportunity to create a local voice communication session that can be bridged to an external voice communication session of the incoming call. Alternatively,main module301 may simply route the incoming call to each end point.
After the connection withPSTN402 is established,main module301 sends internal signaling information to port logical302-1 (associated with end device101) and to logical port302-3 (associated with client229). For simplicity, the example ofFIG. 5 only includes DECThandset end device101 andclient229 operating onend device103. Other end points could be notified and/or a call session established to include other end points in a manner similar to that described below.
In response to the internal signaling information fromGWSM301, EPCH303-1 and EPCH303-3 respectively communicate withend device101 and withclient229 to alert them of the incoming external communication session and provide each with the option to create a local voice communication session to be bridged with the incoming call. In particular, EPCH303-1 exchangesDECT signaling messages513,514,522 and523 withend device101 that relate to the incoming communication session. EPCH303-3 exchanges SIP messages517-521 withclient229 that relate to the incoming call. Notably,messages513,514,522 and523 relate to the incoming communication session betweenPSTN402 andmain module301 and to the voice communication session that may potentially be established betweenPSTN402 andmain module301.Messages513,514,522 and523 are part of a communication session between EPCH303-1 anddevice101 that may become a local voice communication session that will be bridged into the external voice communication session to be established betweenPSTN402 andmain module301. SIP messages517-521 exchanged withclient229 similarly relate to the incoming communication session betweenPSTN402 andmain module301 and to the voice communication session to be established betweenPSTN402 andmain module301.
In the current example, the notification of the incoming communication session is answered byend device101, resulting in exchange of DECT messages524 and525 betweendevice101 and EPCH303-1. EPCH303-1 sends internal signaling information tomain module301 advising thatend device101 has picked up.Main module301 then sends internal signaling information to logical port302-3instructing client229 to stop ringing, which in turn causes EPCH303-3 andclient229 to exchange SIP messages526,530 and531.Main module301 also completes establishing of the external voice communication session by exchangingmessages527,529,532-535,538 and539 withCMS401, and withCMS401 exchangingmessages528,536,537,540 and541 withPSTN402. Ultimately, active voice call session542 is established whenmain module301 bridges thePSTN402/main module301 external voice communication session with the EPCH303-1/device101 internal voice communication session.
Ifclient229 had picked up the incoming communication, appropriate SIP signaling messages would have been exchanged betweenclient229 and EPCH303-3, with EPCH303-3 then sending internal signaling information tomain module301 indicatingclient229 had picked up.Main module301 would then have sent internal signaling information to logical port302-1 causing EPCH303-1 to exchange DECT messages withend device101 to causedevice101 to stop ringing.
In some embodiments,main module301 may track all ongoing communication sessions and the TNs used by each session. If the called TN was in use by an end point at the time of the incoming external communication request, this would have been noted bymain module301.Main module301 could then have sent internal signaling information to logical ports that cause EPCHs to send call waiting signaling messages to the end points engaged in the pre-existing communication session. Call waiting signaling messages could also be sent to end points engaged in a communication session using a TN other than a called TN. For example,client229 might be engaged in a communication session using another TN when an incoming communication session request is received. In response to internal signaling information frommain module301 indicating the incoming request, EPCH303-3 could then send SIP messages toclient229 that would adviseclient229 of the incoming request. Depending on client configuration and user preferences,client229 could then put the initial communication session on hold and accept the incoming request, disconnect the initial communication session and accept the incoming request, or ignore the incoming request.Client229 could also display a call waiting indicator to advise a user of the incoming request.Client229 could also include a “do not disturb” setting that prevents a call-waiting indicator from being displayed.
FIG. 6 is a communication diagram showing example information flows in connection with “barge-in.” In particular,FIG. 6 shows communications in connection withend device101 being bridged into an ongoing communication session. As withFIGS. 4 and 5, conventional NCS signaling messages betweenmain module301 andCMS401 and MGC signaling messages betweenCMS401 andPSTN402 are not described in detail.
In the example ofFIG. 6,messages601 through632 are respectively similar tomessages401 through432 ofFIG. 4, resulting in a voice communication session633 that is similar to voice communication session433.
Subsequently, EPCH303-1 sendsDECT signaling message634 that contains data regarding the status of each TN assigned togateway105. Although not shown inFIG. 6, a user ofend device101 may have previously provided an input that activateddevice101 and causeddevice101 to send a DECT signaling message to EPCH303-1 indicating that a user ofdevice101 wished to either join an ongoing communication session or to initiate a new communication session. In response to such a message EPCH303-1 may have sent corresponding internal signaling information tomain module301, withmain module301 then sending internal signaling information to logical port302-1 that caused EPCH303-1 to sendmessage634.
In response tomessage634,device101 displays information about the status of each TN. The user ofdevice101 then selects the TN being used for communication session633. In response,device101 sends DECT signaling messages635 and636 selecting the in-use TN and asking to join that communication session. In response to messages635 and636, EPCH303-1 sends internal signaling information tomain module301 indicating the request fromend device101 to join communication session633.Main module301 sends internal signaling information to logical port302-3 indicating the request fromdevice101 to join the communication session. In response, EPCH303-3 sendsSIP message637 toclient229. Subsequently, EPCH303-1 sends DECT message638 todevice101 and establishes communication session639 withdevice101.Main module301 then bridges session639 with session633. As part of the bridging,main module301 mixes the audio data fromdevice101 andclient229.Main module301 may also transcode the audio data from one or both ofdevice101 andclient229.
If a user ofclient229 wished to join an ongoing communicationsession involving device101,client229 could similarly display a list of TNs associated withgateway105 and the status of each TN. In response to a user selection of an in-use TN,client229 could then send a SIP INVITE message to EPCH303-3 containing the in-use TN and an indication of a request to join the on-going call. EPCH303-3 could then send internal signaling information tomain module301, which would then send internal signaling information to logical port303-1, with EPCH303-1 then sending a DECT signaling message todevice101 indicating the barge-in request. Subsequently, a session between client229 (initiated by the INVITE with the in-use TN) would be bridged to the ongoing communication session.
FIG. 7 is a communication diagram showing information flows that can be used, for example, in connection with use ofDECT device101 andSIP client229 as an intercom system. In some embodiments, a user of one end point can establish a voice communication session with another end point. EPCH303-1 sendsDECT message702 todevice101 that contains information about other devices and clients registered for communication withgateway105. EPCH303-3 sends aSIP message701 toclient229 with similar information. Each ofmessages701 and702 can be sent in response to previous requests (not shown) fromclient229 ordevice101, or could be sent automatically (e.g., as part of device or client registration). Subsequently, a user ofclient229 provides input indicating thatclient229 wishes to establish a voice communication session withdevice101. Inresponse client229 sends one or more SIP messages703-705 to EPCH303-3. EPCH303-3 then sends internal signaling information tomain module301 indicating the voice session request, in response to whichmain module301 sends internal signaling information to logical port302-1, in response to which EPCH303-1exchanges DECT messages706 and707 withdevice101. Aftermessage707, a voice communication session between EPCH303-1 anddevice101 is established. EPCH303-1 communicates the establishment of that session tomain module301, which then sends signaling information to logical port302-3, which in turn causes EPCH303-3 to sendSIP message708 toclient229. AfterSIP message708,main module301 bridges a SIP session between EPCH303-3 andclient229 to the voice session between EPCH303-1 anddevice101 and creates (bridged)voice session709. In response to user input terminating the session,client229 later sendsSIP message710, which ultimately results inDECT message711 sent todevice101.
Client229 could be provided to enddevice103 in a variety of manners. In some embodiments, for example,end device103 and other similar end devices are owned by subscribers to a wide area wireless network. The operator of that wireless network may operate an online “application store” or similar service by which individual users can download software for different applications to their end devices.Client229 could be one such application. As another example,client229 could be stored on a local gateway such asgateway105. An end device entering the service domain of the local gateway could then download and installclient229.
As indicated above,client229 may initially register with EPCH303-3 prior to establishing communication sessions. This registration could be initiated in various manners. Ifclient229 is downloaded to an end device fromgateway105 after the end device enters thegateway105 service domain, an installation routine could be configured to automatically begin a registration process once client installation is completed. C/P module3 may have been previously installed and configured for association with a device that might later downloadclient229 fromgateway105. Alternately, a separate module ofGWSM module300 could be included to detect a newdevice downloading client229, and in response to then create/install C/P module3 (or a C/P module similar to C/P module3).
Ifclient229 is installed on an end device prior to that end device entering thegateway105 service domain, registration might begin when a user activatesclient229 and/or whenclient229 detects an SSID or other identifier emanating fromgateway105. One or more C/P modules similar to C/P module3 could be pre-installed inGWSM module300 and available for association with newly present clients like229. Alternatively,GWSM module300 could be configured to create a new C/P module (similar to C/P module3) upon detecting the presence of a new client similar toclient229.
As part of registration, authentication ofdevice103 and/or of a user associated withdevice103 can be required. Such authorization can include use of a username and password previously obtained, e.g., from the operator ofnetwork110 and/or from an entity administeringlocal gateway105. Authentication could alternatively or additionally include, e.g., use of a mobile telephone number associated with an end device, personal credentials (e.g., a digital certificate), etc.
In some embodiments, no additional billing procedures may be needed for communication sessions involving devices (such as device103) that might be temporarily associated with a particular local network gateway. In other embodiments (e.g., where a local network gateway is operated by a commercial establishment), it may be desirable to provide separate billing for sessions involving such temporarily associated devices. As one example, an operator ofnetwork110 or oflocal network gateway105 might require that a user ofdevice103 agree to pay for calls made throughlocal network gateway105 and to provide a credit card number or make other arrangements to facilitate such billing. When the user ofdevice103 establishes a communication session throughgateway105, a separate call data record can be generated (either withinnetwork110 or within GWSM301) and transmitted to a billing server.
Other embodiments include numerous variations on the devices, systems and operations described above. For example,client229 could be configured to generate user interfaces and provide notifications similar to those described in the aforementioned U.S. patent application Ser. No. 12/706,365. As another example,client229 could be configured to support multiple simultaneous communication sessions. Different signaling protocols can be employed. In some embodiments, for example,main module301 is configured to communicate with a call state control function (CSF) using SIP signaling instead of with a call management server using NCS signaling.
In at least some embodiments, other end devices associated withlocal gateway105 can be bridged into voice communication sessions established byend device103 over a 3G or other type of wide area wireless network used bydevice103.
As can be appreciated from the above description, the devices, systems and methods described herein offer various advantages. For example,end device103 might be owned by a user who is only temporarily present inpremises106 served bygateway105. Ifgateway105 has been provisioned by the operator ofnetwork110 to have certain associated TNs and/or other services,device103 can utilize such TNs and/or other services. This can allowdevice103 to, e.g., utilize a TN that has an E911 association withpremises106, utilizenetwork110 for communication links instead of a 3G or other wide area wireless network thatdevice103 might otherwise use, establish voice communication sessions that enjoy any enhanced QoS (quality of service) thatnetwork110 might offer for voice communication sessions, etc.
Another advantage offered by various embodiments is the ability to more easily add additional end devices and/or types of end devices. Using architectures such as are described herein, a new type of physical interface can be added togateway105, and that new physical interface used for communication sessions with end devices (or with clients executing on end devices) communicating through that new interface.FIG. 8 is similar toFIG. 3, but shows an additional C/P module502-5 associated with anew end device506.Device506 communicates over a new type ofphysical interface520. C/P module5 includes a logical port302-5 thatmain module301 associated withend device506 and/or with a communication client executing onclient506. An EPCH303-5 corresponds to interface520 and performs operations in connection withmain module301 anddevice506 that are similar to those described above for other EPCHs. In particular, EPCH303-5 includes a signaling conversion module (not shown) that provides a layer of abstraction between the signaling protocol used bydevice506 and the external signaling protocol used bymain module301. This facilitates adding of a new type of physical interface without having to extensively revise instructions associated withGWSM module300.
As also shown inFIG. 8, anadditional end device505 is now communicating through WiFiphysical interface207. A second SIP-basedclient529 executes ondevice505.Main module301 associates logical port502-6 of C/P module6 withclient529.Client529 is similar to, and operates in a manner similar to that of,client229. C/P module6 also includes an EPCH303-6 that is similar to EPCH303-3 and that includes a signaling conversion module303-6a,a WiFi communication module303-6band a SIP module303-6c.
Embodiments also include one or more tangible machine-readable storage media (e.g., a CD-ROM, CD-RW, DVD, floppy disc, FLASH memory, RAM, ROM, magnetic platters of a hard drive, etc.) that store instructions executable by one or more processors to carry out one or more of the operations described herein. As used herein (including the claims), a tangible machine-readable storage medium is a physical structure that can be touched by a human. A signal would not by itself constitute a tangible machine-readable storage medium, although other embodiments may include signals or other ephemeral versions of instructions executable by one or more processors to carry out one or more of the operations described herein.
The foregoing description of embodiments has been presented for purposes of illustration and description. The foregoing description is not intended to be exhaustive or to limit embodiments to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments. The embodiments discussed herein were chosen and described in order to explain the principles and the nature of various embodiments and their practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated. All embodiments need not necessarily achieve all objects or advantages identified above. Any and all permutations of various features described herein are within the scope of the invention.