The present invention relates to a device and method for seamlessly internetworking local area networks utilizing the Universal Plug and Play protocol with wide area networks utilizing the Internet Multimedia Subsystem architecture.
The Universal Plug and Play (UPnP) architecture is directed to peer-to-peer networking of intelligent appliances, wireless devices, and computers of varying form factors. UPnP defines a set of common protocols that devices use to join a network and describe themselves and their capabilities, which enables other devices and people to use them without setup or configuration. UPnP is a distributed, open networking architecture that utilizes TCP/IP to enable seamless proximity networking in addition to control and data transfer among networked devices in a local area network environment (e.g., a home network, office network, etc.). Networking, in this context, describes a style of connectivity that enables any networked device to initiate a communication with any other networked device, without having established a prior relationship or maintaining a persistent relationship between the devices. Networking also allows multiple devices to establish one or more connections with a single device, and it allows for a device to be capable of both initiating and accepting connections to/from other networked devices. In other words, UPnP makes it possible to initiate and control the transfer of bulk information (e.g. files, images, multimedia, movies, content, songs, MP3's, audiovisual data streams, etc.) from any device on the network, to any device on the network, under the control of any device on the network. UPnP also enables the ad hoc addition or removal of devices on the network, and it enables multiple controlling devices to remain in sync with each other.
While UPnP enables multiple networked devices to share services and multimedia content, there are numerous drawbacks associated with UPnP. One drawback is that UPnP is not easily expandable outside of the local home network. Another drawback is that non-UPnP devices are unlikely to receive service advertisements, commands and messages necessary for proper operation in a local home network utilizing UPnP. Another drawback is non-UPnP devices are unlikely to be properly authenticated in an UPnP environment. Still another drawback with UPnP is proximity detection which permits the source to refuse content to a device if a maximum round-trip time is exceeded.
Often times, it is desirable for authorized users of a local network to obtain secure access to the network even when the user is located geographically outside of the network and when the authorized user is attempting to obtain access to services and/or information located on the home network through a device that does not support the UPnP protocol. Thus, a strong need exists for a network communication device (also referred to herein as an interworking device) that is operable to access and share services and multimedia content associated with the local home network to an authorized user located geographically outside of the local home network and/or attempting to obtain access to such services and/or information through a device that does not support directly the UPnP protocol.
One aspect of the present invention relates to a method for communication, the method comprising: receiving a request for information from an associated electronic equipment communicatively coupled to a wide area network for access to one or more associated devices and/or services communicatively coupled on a local area network; authenticating the request for information on the local area network; establishing a virtual control point between the associated electronic equipment and the one or more associated devices.
Another aspect of the present invention relates to a method for communication, the method comprising: receiving a request for information from an associated electronic equipment communicatively coupled to a wide area network for access to one or more associated devices and/or services communicatively coupled on a local area network; authenticating the request for information on the local area network; establishing a session related to the request for information; establishing a dynamic virtual control point between the associated electronic equipment and the one or more associated devices.
Another aspect of the present invention relates to a program stored on a machine readable medium, the program being suitable for use in a network communication device for establishing a virtual control point that associates a UPnP session key with an associated electronic equipment for allowing communication between the one or more associated devices and the associated electronic equipment, wherein; when the program is loaded in memory in the network communication device and executed, causes seamless exchange of information between the one or more associated devices and the associated electronic equipment.
According to another aspect, the virtual control point is dynamic.
According to another aspect, the wide area network utilizes an IMS protocol.
According to another aspect, the local area network utilizes an UPnP protocol.
According to another aspect, further including establishing a session key related to the request for information.
According to another aspect, further including associating the session key with the associated electronic equipment for allowing communication between the one or more associated devices and the associated electronic equipment.
According to another aspect, wherein the virtual control point associates the session key with the associated electronic equipment for allowing communication between the one or more associated devices and the associated electronic equipment.
According to another aspect, further including translating at least a portion of the information requested from the one or more associated devices for use on the associated electronic equipment.
According to another aspect, wherein the step of translating includes translating an address associated with the one or more associated devices to a second address for use on the associated electronic equipment.
According to another aspect, further including transmitting at least a portion of the information requested from the one or more associated devices to the associated electronic equipment.
According to another aspect, further including encrypting at least a portion of the information requested.
According to another aspect, further including parsing the request for information to determine an appropriate device to logically connect with the associated electronic equipment.
According to another aspect, further including converting a format associated with information stored on the one or more of the associated devices to another format for operation on the associated electronic equipment.
According to another aspect, further including periodically providing broadcast messages from the one or more associated devices to the associated electronic equipment.
According to another aspect, further including displaying on the associated electronic equipment, one or more of the associated devices and/or services available on the local area network.
According to another aspect, wherein the virtual control point is a security proxy for the associated electronic equipment.
According to another aspect, further including terminating the dynamic control point upon termination of the session.
Other systems, devices, methods, features, and advantages of the present invention will be or become apparent to one having ordinary skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
It should be emphasized that the term “comprise/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.”
The term “electronic equipment” includes portable radio communication equipment. The term “portable radio communication equipment”, which herein after is referred to as a mobile radio terminal, includes all equipment such as mobile telephones, pagers, communicators, i.e., electronic organizers, personal digital assistants (PDA's), portable communication apparatus, smart phones or the like.
The foregoing and other embodiments of the invention are hereinafter discussed with reference to the drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Likewise, elements and features depicted in one drawing may be combined with elements and features depicted in additional drawings. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The present invention is directed to a network communication device and method for exchanging information between one or more devices on a local area network utilizing a universal plug and play (UPnP) protocol and an associated electronic equipment utilizing an Internet Protocol Multimedia Subsystem (IMS) protocol on a wide area network. The present invention utilizes a dynamic virtual control point to represent an IMS device on the UPnP network, which allows communication between the IMS device and one or more devices located on the UPnP network.
As shown in
The first interface 12 may be any suitable device, component, subcomponent and the like that can transmit and receive signals in a local area network environment. For example, the first interface 12 may be a network interface card, an access point, a port, a router, etc., which is capable of connecting the network communication device 10 to an UPnP network. As used herein, the phrases “UPnP network”, “UPnP local home network” and “UPnP home network” mean a local area network having one or more devices that utilize one or more UPnP-compatible protocols. The first interface 12 may utilize any medium for such communications. Suitable media include, for example, wired media (e.g., Ethernet, USB, twisted pair, coaxial cable) or wireless media (e.g., wireless local area network, Bluetooth, infrared, radio frequency and the like) or any combination of wired or wireless media.
The second interface 14 may be any suitable device, component, subcomponent and the like that can transmit and receive IMS signals over a wide area network. As used herein, the phrases “IMS network” and “IMS wide area network” mean a wide area network that utilizes one or more IMS-compatible protocols. For example, the second interface 14 may include a network interface card, an access point, a port, a router, etc., which is capable of connecting the network communication device 10 to the IMS wide area network. Typically, the second interface 14 can transmit and receive signals over a wide area network with one or more of the following exemplary communication links: a cable modem, DSL, a modem, a router, a wireless base station and the like. In one embodiment, the communication link to the wide area network is separate and distinct from the network communication device 10. In another embodiment, the communication link to the wide area network is integral within the housing for the network communication device 10.
The circuitry 16 is communicatively coupled to the first interface 12 and the second interface 14 typically through a data bus 22. The circuitry 16 is operable to facilitate communication between one or more devices located on the local area network and an electronic equipment connected to the wide area network. The circuitry 16 is capable of creating a virtual control point that associates session keys with the associated electronic equipment and provides network address translation services between the signals associated with the UPnP local area network and the IMS wide area network. The circuitry 16 is capable of creating one or more virtual control points to establish logical links between a IMS device that requests access to one or more devices on the UPnP network.
The circuitry 16 also is capable of translating at least a portion of a received and/or transmitted signal from the first interface 12 to a suitable format for use with the electronic equipment or other IMS-compatible device. The circuitry 16 also is capable of translating at least a portion of a received and/or transmitted signal from the second interface 14 to a suitable format for use by one or more devices associated with the local home network. In addition, circuitry 16 also may allow format conversion between devices connected through the network communication device 10. For example, if an electronic device on the local home network stores a particular image in one format (e.g., JPEG) and the electronic equipment requests the image to be sent in another format (e.g., Tiff), circuitry 16 is capable of transmitting the image in the requested format to the electronic equipment.
The term “circuitry” as used herein should be given its broadest meaning and includes hardware, firmware, software, or any combination thereof, which performs all or a portion of the functions described herein. The circuitry 16 may include one or more logical operations grouped together or separated physically and/or electronically.
As shown in
Referring to
The UPnP device architecture defines the protocols for communication between nodes of the UPnP network 50. Generally, there are two types of nodes on a UPnP network: (1) a control point is a client node that sends commands and (2) a device receives commands and provides services. A physical component can contain both control points and devices. An exemplary UPnP network 50 is illustrated in
In the UPnP local area network 50, a device is generally considered a container of services and nested devices. A device (e.g., devices 52, 54) typically contains information about itself and the services it hosts. This information is generally organized as an Extensible Markup Language (XML) document. Typically, every device employs a mini web server to communicate this information to control points and other devices on the UPnP local area network 50. When a device (e.g., device 52) connects to the UPnP local area network 50, it typically can automatically get a network address (e.g., an IP address), advertise its presence, describe its services, and learn about other connected devices (e.g., device 54). Once connected to the UPnP network 50, the device can talk directly to other devices in peer-to-peer fashion.
By itself, a device is generally not considered useful in the UPnP network environment unless it provides a service to other nodes on the UPnP network 50. Services can perform actions or provide information. A service generally is not a stand-alone entity, but typically is hosted by a container device, as illustrated in
As shown in
Generally, when allowing remote users access to information, it is desirable to include a security mechanism to prohibit unauthorized access to information. In UPnP, the security console 58 controls access to the information stored on the UPnP network 50. In addition, the security console 58 may also provide communication encryption services.
As stated above, UPnP devices advertise themselves via a discovery protocol and offer services, which is, for example, collections of simple object access protocol (SOAP) actions that the control points invoke. The security console 58 utilizes the SOAP control protocol and secures SOAP control messages and replies. SOAP control messages generally include: identification, integrity, authentication, freshness, authorization and secrecy. One of ordinary skill in the art will readily appreciate that the level of security provided by any given security console will vary based on application.
The network medium 60 can be any type of medium (e.g., wired, Ethernet, USB, wireless, infrared, radio frequency, etc.) or any combination thereof. Generally, the network medium 60 is capable of supporting a variety of protocols, including Transport Control Protocol/Internet Protocol (TCP/IP) and related addressing.
As stated above, network communication device 10 may recognize devices and/or control points in an UPnP local area network and/or is recognized by one or more control points on the UPnP network 50. Depending on the particular application, the network communication device 10 may be registered as a device or a control point. The term “registered” as used specifically with UPnP devices means that a device is recognized by one or more control points in the UPnP network and/or a control point recognizes one or more devices and/or control points on the UPnP network. In addition, the network communication device 10 may also include a built-in security console or utilize an associated security console. The network communication device may also include firewall services.
The UPnP discovery protocol then allows the network communication device 10 to search for devices and services located on the network 50. The UPnP discovery protocol multicasts a search message with a pattern, or target, equal to a type or identifier for a device or service. Responses from devices contain discovery messages similar to those advertised by newly connected devices. Typically, the network communication device 10 can listen to the standard multicast address for notifications that new capabilities are available. Generally, all devices listen to the standard multicast address for these messages and respond if any of their embedded devices or services match the search criteria in the discovery message.
The discovery process allows control points (e.g., network communication device 10) to find devices on the UPnP network 50. The discovery process enables description protocol, as illustrated at Step 74 in
The network communication device 10 may issue a HTTP GET request on the URL in the discovery message and retrieve one or more UPnP device descriptions. Retrieving an UPnP service description is a similar process that uses a URL within the device description. Typically, as long as the discovery advertisements from UPnP network device(s) has/have not expired, the network communication device 10 may assume that the device and its services are available. The device and service descriptions may be retrieved at any point since the device and service descriptions are static as long as the device and its services are available. If one or more devices cancel their advertisements, the network communication device 10 typically must assume the device and its services are no longer available to the other devices associated with the UPnP network 50. If a device needs to change one of its descriptions, the device typically must cancel its outstanding advertisements and re-advertise with the updated description to the other devices and control points on the UPnP network 50.
After network communication device 10 has retrieved a description of at least one device, the network communication device 10 can send actions to the device's service (not shown). To do this, the network communication device sends a suitable control message to the control URL for the service (provided in the device description), as illustrated at Step 76. Control messages are expressed in XML using Simple Object Access Protocol (SOAP). Like function calls, in response to the control message, the service returns any action-specific values. The effects of the action, if any, are modeled by changes in the variables that describe the run-time state of the service. Given knowledge of device and its services, network communication device 10 can generally request those services to invoke actions and the network communication device 10 can poll those services for the values of their state variables. Invoking actions is a pseudo remote procedure call; network communication device 10 typically sends the action to the device's service, and when the action has completed (or failed), the service returns any results or errors. When these state variables change, events are published to all interested control points. To determine the current value of a state variable, a control point (e.g., network communication device 10) may poll the service. Similar to invoking an action, the control point sends a suitable query message to the control URL for the service. In response, the service provides the value of the variable; each service is responsible for keeping its state table consistent so control points can poll and receive meaningful values.
As stated above, an UPnP description for a service includes a list of actions that the service responds to and a list of variables that model the state of the particular service at run time. The service publishes updates when these variables change, and network communication device 10 may subscribe to receive this information. The service publishes updates by sending event messages, as depicted in Step 78 of
After network communication device 10 has discovered a device and retrieved a description of the device and its services, the network communication device 10 has the essentials for the eventing protocol. As stated above, an UPnP service description includes a list of actions the service responds to and a list of variables that model the state of the service at run time. If one or more of these state variables are evented, then the service publishes updates when these variables change, and network communication device 10 may subscribe to receive this information. To subscribe to eventing, network communication device 10 generally transmits a subscription message. If the subscription is accepted, the publisher responds with a duration for the subscription. To keep the subscription active, a subscriber must renew its subscription before the subscription expires.
If the device of interest has a URL for presentation, as depicted in Step 80, then the network communication device 10 can retrieve a page from the URL, load the page into a browser, and depending on the capabilities of the page, allow a user to control the device and/or view device status. One of ordinary skill in the art will readily appreciate that the degree to which each of these functions can be implemented depends on the specific capabilities of the presentation page and device 10 and are often a design choice. After network communication device 10 has discovered a device and retrieved a description of the device, the network communication device is ready to begin presentation. The URL for presentation is typically contained within the presentation URL element in the device description. The device description is generally delivered via a description message. To retrieve a presentation page, the network communication device 10 issues an HTTP GET request to the presentation URL, and the device of interest returns a presentation page.
Once the network communication device 10 has been added to the UPnP network 50, any UPnP enabled device (e.g., devices 52 and 54) or control point (e.g., control point 56) located on the local UPnP network 50 may be accessible to the network communication device 10.
Referring back to
IMS architecture 102 generally utilizes a standardized protocol designed for enabling peer-to-peer content sharing between WAN devices (e.g. electronic equipment, mobile telephones, personal digital assistants (PDAs), communicators and the like). IMS uses open standard IP (Internet Protocol) protocols, so that a multimedia session may be established between a variety of user devices and/or applications regardless of geographical location. For example, IMS allows multimedia sessions to be established between two IMS devices, between an IMS device and a device connected to the Internet, and between two devices connected to the Internet using the same protocol. Thus, IMS allows widespread device interoperability regardless of the location of the IMS device and destination source.
IMS is an extension of the PS (packet-switched) Core Network (CN) of UMTS (Universal Mobile Telecommunications System) and is independent of the PS-CN. IMS uses the Session Initiation Protocol (SIP) to set up, maintain and terminate voice and multimedia sessions. SIP is a part of the overall Internet Engineering Task Force (IETF) multimedia data and control architecture. SIP is used in conjunction with other IETF protocols, such as the Session Description Protocol (SDP) and the Real-Time Protocol (RTP). SIP is a signaling protocol that provides a variety of functions, for example, handling the setup, modification, and teardown of multimedia sessions. SIP in combination with the protocols with which it is used, also describes the session characteristics of a communication session to potential session participants. Typically RTP is used to exchange media (e.g., audio, voice or data) during the communication session, but SIP allows any transport protocol to be used. SIP messages (signaling) also typically pass through some of the same equipment as the media to be exchanged during a communication session.
As shown in
One of ordinary skill in the art will readily appreciate that the use of a SIP redirector or a SIP proxy server may be used interchangeably and the use of one over the other in no way limits the scope of the present invention. Because of the use of multiple services (e.g., proxy and redirector servers) in SIP, often times it is desirable to maintain a logical separation between SIP signaling and the communication of the media (the session data).
At step 152, the SIP network server will attempt to resolve the requested network's IP address and send the request to the network. One of ordinary skill in the art will readily appreciate that there are many ways to perform such functionality. For example, searching the DNS or accessing databases for the requested network's IP address. Alternatively, the server may be a redirect server that may return the called user location to the calling client for it to try directly. During the course of locating a user, one SIP network server can proxy or redirect the call to additional servers until it arrives at one that definitely knows the IP address where the called user can be found. At Step 154, once the network IP address is found, the request is sent to the destination network for authentication. At Step 156, the destination address provides the requested information and/or services.
The commands that SIP uses are called methods. SIP defines the following methods: INVITE—invites a user to a call; ACK—used to facilitate reliable message exchange for INVITEs; BYE—terminates a connection between users or declines a call; CANCEL—terminates a request, or search, for a user; OPTIONS—solicits information about a server's capabilities; REGISTER—registers a user's current location; and INFO—used for mid-session signaling.
Typical SIP responses include: 1xx Informational (e.g. 100 Trying, 180 Ringing), 2xx Successful (e.g. 200 OK, 202 Accepted), 3xx Redirection (e.g. 302 Moved Temporarily), 4xx Request Failure (e.g. 404 Not Found, 482 Loop Detected), 5xx Server Failure (e.g. 501 Not Implemented), 6xx Global Failure (e.g. 603 Decline), etc. For purposes of clarity, provisional (1xx) responses have been omitted. The precise route taken by the ACK, and any later in-call signaling may vary because by the time the two user agents have exchanged INVITE and 200 OK messages they potentially know each others actual destinations and the ACK could be sent directly end-to-end. However, SIP allows any of the proxy servers to insist on remaining in the signaling path for the entire session if desired.
In this example, the user knows the SIP URL for the network communication device 10. As shown at Step 200, the user utilizes the electronic equipment to send an INVITE message to a SIP redirector server. For example, the request may read: INVITE jukebox@home.net to the local SIP redirector server. The request may include a SDP payload field, which may specify, for example, negotiation parameters, services requested, format of information, etc. In this particular example, the SIP redirector server is utilized. One of ordinary skill in the art will readily appreciate that a proxy server may also be used in accordance with the present invention, instead of or in addition to a redirector server.
At step 202, the redirector server, in turn, sends the message 301-Moved to 10.1.2.3, which indicates the device associated with jukebox@home.net may be found at the IP address 10.1.2.3. At Step 204, the electronic equipment 108 sends an ACK message to the SIP redirector server indicating that the 301-Moved message was received.
At Step 206, the electronic equipment 108 transmits an INVITE message to the network communication device, which is located at IP address 10.1.2.3. As stated above, the INVITE message typically includes a SDP payload field, for negotiating various parameters between electronic equipment device 108 and the network communication device 10.
At Step 208, the network communication device 10 challenges the authentication of the electronic equipment 108 attempting to gain access to the local home network 50. The IMS device (e.g., electronic equipment 108) can be authenticated with the UPnP local area network 50 using standard IMS procedures. For example, based on the crypto-keys provided during IMS authentication, the UPnP local area network 50 generates a unique UPnP serial number and authentication keys for the virtual control point 62. The virtual control point 62 can then act as a security proxy for the electronic equipment 108, using these parameters to obtain a certificate of authentication from the security console 58.
At Step 210, the electronic equipment 108 transmits a suitable authentication response to the network communication device. At Step 212, the electronic equipment 108 has been authenticated by the network communication device 10, meaning that the device is authorized to access the UPnP network 50. One of ordinary skill in the art will readily appreciate that if the electronic equipment 108 transmitted an invalid response (or provided an identifier that did not have proper access rights to the UPnP network 50, the authentication process would typically fail at this point and the electronic equipment 108 would not be given access to the UPnP network 50.
At Step 214, the network communication device 10 parses the SDP message transmitted by the electronic equipment 108. The network communication device 10 determines based on the message, which UPnP services were requested.
At Step 215, the network communication device 10 establishes a dynamic virtual control point 62. The virtual control point 62 is dynamic meaning that its existence may be established and terminated as desired. For example, when the remote IMS device (e.g., electronic equipment 108) indicates that it has disconnected from the wide area network 100 and/or UPnP services are no longer needed, the UPnP control point can terminate the virtual control point 62 and recover any network and/or computing resources used in establishing the virtual control point 62. In one embodiment, upon receiving a request from services from an authorized electronic equipment, the network communication device 10 may issue a HTTP GET request on the URL in the discovery message and retrieve one or more UPnP device descriptions. In another embodiment, the control point associated with the virtual control point has a priori knowledge of the devices and/or services available to the control point before the request is received.
At Step 216, the virtual control point 62, which may have one or more services available for the control point that created the virtual control point (e.g., network communication device 10), requests encryption information from the desired UPnP device (e.g. device 52). At step 216, the public keys from the desired UPnP device (e.g., the jukebox in this example) are obtained using a GetPublicKeys ( ) remote procedure call. At Step 218, the virtual control point 62 sends a SetSessionKeys ( ) remote procedure call to the desired UPnP device 52 (e.g., the jukebox device) located on the UPnP home network. Once the session keys are obtained, data encryption is enabled. In one embodiment, the session keys may be forwarded to electronic equipment 108 for end to end data encryption (e.g., from the device 52 to the to network communication device 10 and from the network communication device 10 to the electronic equipment 108).
At Step 220, the session keys are associated with the IMS device (e.g., the electronic equipment 108). Since the IMS device (e.g. electronic equipment 108) is not in physically located in the UPnP network, the virtual control point 62 associates the session key with the IMS device. The virtual control point 62 is the only device on the UPnP network that has knowledge that the caller (e.g., the electronic equipment 108) is not located on the UPnP network 50. The virtual control point 62 makes an association so that when UPnP device 52 (e.g., the jukebox device) attempts to form a connection to the controlling device, the virtual control point 62, translates it into a suitable IMS protocol form (e.g. contains the proper address), which is transferred to the requesting IMS device (e.g., electronic equipment 108).
At Step 222, the virtual control point 62 transmits a 200-OK message to the electronic equipment 108 indicating that the SDP message was in the proper format. At Step 224, the electronic equipment 108 responds to the virtual control point 62 with an SIP ACK message, thereby acknowledging receipt of the 200-OK message.
Based on the desired services contained in the SDP message, the virtual control point 62 will send a media setup message to the jukebox, as shown in Step 226. In Step 226, the virtual control point 62 determines which services the electronic equipment 108 desires. The virtual control point 62 converts the message to an UPnP control message and sends the message to the UPnP network device 52 (e.g., the jukebox). In turn, the UPnP device 52 connects to the virtual control point 62 and provides the desired service (e.g., stream audio). The electronic equipment 108 now has a connection to the UPnP home network through the network communication device 10 and the UPnP device has the address of the electronic equipment 108 so that the devices can talk directly to each other in a peer-to-peer relationship as shown in Step 228. Steps 200-228 are generally repeated whenever a new session is started.
By creation of a virtual control point, when UPnP devices broadcast service advertisements, the virtual control point 62 generally will receive the messages along with all the UPnP control points connected to the local area network 50. The virtual control point 62 then may use the Service Announcement Protocol (SAP) or other appropriate IMS protocol to report the service information to the electronic equipment 108 across the wide area network 100. In a similar way, the electronic equipment 108 can receive all broadcast UPnP messages as if the electronic equipment 108 were physically attached to the local area network 50.
Since the virtual control point 62 resides within the local area network 50, the virtual control point 62 is able to respond to proximity detection messages without exceeding the maximum round-trip time or time-to-live values commonly implemented on a UPnP local area network 50. In order to preserve the original intent of content protection, the virtual control point 62 may act as secure media proxy. The virtual control point 62 may decode the UPnP content encryption, then re-encrypt the content in accordance with relevant IMS standards for content protection. The protected content can then be streamed to the electronic equipment 108 on the wide area network 108.
When the electronic equipment 108 no longer desires additional services from one or more of the devices located on the local home network 50, the electronic equipment may terminate services from the UPnP and/or local home network 50. In one exemplary method, the electronic equipment may transmit an SIP BYE command, as shown in Step 230, to the virtual control point 62. The BYE command terminates the current session between the electronic equipment 108 and the virtual control point 62 through the network communication device 10 (or other control point). At Step 232, the virtual control point 62 may respond with an SIP OK response, which confirms execution of the previous command. At Step 234, the logical connections and resources used to establish the virtual control point 62 are returned to the network communication 10, other control point and/or local area network 50 that created the virtual control point 62 for use in providing other services or for any other desired purpose.
Specific embodiments of an invention are disclosed herein. One of ordinary skill in the art will readily recognize that the invention may have other applications in other environments. In fact, many embodiments and implementations are possible. The following claims are in no way intended to limit the scope of the present invention to the specific embodiments described above. In addition, any recitation of “means for” is intended to evoke a means-plus-function reading of an element and a claim, whereas, any elements that do not specifically use the recitation “means for”, are not intended to be read as means-plus-function elements, even if the claim otherwise includes the word “means”. It should also be noted that although the specification lists method steps occurring in a particular order, these steps may be executed in any order, or at the same time.
Computer program elements of the invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). The invention may take the form of a computer program product, which can be embodied by a computer-usable or computer-readable storage medium having computer-usable or computer-readable program instructions, “code” or a “computer program” embodied in the medium for use by or in connection with the instruction execution system. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium such as the Internet. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner. The computer program product and any software and hardware described herein form the various means for carrying out the functions of the invention in the example embodiments.