Abstract:
Method to provide SIP session management of a real-time communication to a softphone client in a virtual machine, including: accepting an invitation to join a SIP session; receiving, by a server-based softphone in the SIP session, a real-time communication that is encoded with at least one SIP session aspect; transmitting the real-time communication and the at least one SIP session aspect to a client-based softphone; and using the at least one SIP session aspect for SIP session management.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/446,498, filed on Feb. 24, 2011, the content of which is hereby incorporated by reference in its entirety. 
     
    
     BACKGROUND 
       [0002]    1. Field of the Invention 
         [0003]    Embodiments of the present invention generally relate to virtual desktop infrastructure/integration (VDI) softphone architecture. More specifically, embodiments of the present invention relate to a system and method for assuring quality real-time communication experience in a virtual machine. 
         [0004]    2. Description of the Related Art 
         [0005]    When a virtual machine is deployed in a data center, a thin client uses a remote desktop protocol to access the virtual machine. A softphone computer program can be deployed on such a virtual machine, and configured to provide a user control interface, as well as terminate incoming voice and video streams, and generate outgoing voice and video streams. Local virtual device drivers in the virtual machine are used to render incoming audio and video, and to capture the outgoing audio and video. The remote desktop protocol provides the transfer of voice and video data between the virtual machine and the thin client system that sits with the employee using the desktop. Improvements in this protocol can speed the transmission of real-time voice and video between the virtual machine and the thin client. However, because the voice &amp; video is “terminated” in the softphone, rendered, and then replicated using other protocols to the thin client, valuable capabilities are lost or degraded. For example, QOS, VLAN marking, and visibility from centralized Session Initiation Protocol (SIP) management systems out to the user&#39;s endpoint device are examples of session parameters that are lost or significantly degraded. Furthermore, by rendering the voice and video, the resulting data stream may be much larger (due to less compression), and be degraded in quality due to rendering and recomposing for transmission from the virtual machine to the thin client. 
         [0006]    Known simple media acceleration techniques in the market do not differentiate video traffic for viewing from video traffic associated with live calling. For example, Citrix has attempted to speed the transmission between the client and the VM using the HDX family of protocol improvements. VMware has similar improvements underway for generic real time media transmission. Commercial practice is to write better virtual device drivers, or to redirect downstream multimedia content for viewing to the client device. However, current systems and methods terminate the SIP session, and replace it with a protocol that inherently does not support QOS/VLAN/visibility to real-time communications systems. 
         [0007]    Thus, there is a need for a system and method for assuring quality real-time communication experience in a virtual machine, which is capable of separating voice and video traffic simply and efficiently. 
       SUMMARY 
       [0008]    An embodiment of the present invention comprises a system and method for creating a SIP back-to-back (B2B) capability in a VM system as part of a softphone, wherein SIP would be preferably used as the protocol for control and transmission of RT media between the virtual device driver in the VM session and the client system in order to preserve the benefits of end-to-end visibility for SIP. 
         [0009]    Embodiments of the present invention further relate to replacing the VM-client protocol with full SIP signaling. Voice and video media streams from other parties or systems can either be relayed without any rendering or changes via a back-to-back (B2B) process through the VM, or they can be routed around the VM (sometimes referred to as “media shuffling”) directly to a VDI Client as the final endpoint. Since the VM is not rendering, manipulating, or otherwise changing the media stream contents, there is no loss of captured signal quality if the media is relayed via the B2B or shuffled—but the VM machine does get an improvement in efficiency if it does not have to relay the real time media streams. Even if the media is shuffled, the SIP signaling for call control is still sent to the softphone program executing in the VM, with required thin client control then sent via a second SIP session to the VDI thin client. In accordance with embodiments of the present invention, by using SIP and native telephone real time media formatted streams all the way to the VDI Client, session aspects such as QoS, VLAN, and visibility are not lost and instead are available to the endpoint. Unlike the remote desktop client protocol, allocation of bandwidth between the VM and the VDI client when done with SIP signaling is under the control of a Session Manager, providing assurance that adequate bandwidth will be available for use. Click-to-call capabilities are preserved within the VM, along with Microsoft Office Integration, and the like, but either a relayed or shuffled media path is set up for the RTP streams. 
         [0010]    An advantage is that in either case (relayed media or shuffled media), no media decoding/re-encoding is necessarily performed by the VM machine. Furthermore, with full SIP signaling preserved to the endpoint, media renegotiations, quality monitoring, and bandwidth control is all capable of being performed within the telephony “virtual network” if implemented instead of being cross carried in the data media VLAN. Furthermore, by using SIP as the basis for RT media flows between the VM and the client, QoS/VLAN/visibility are preserved. The system and method extends all the way to the final endpoint existing network SIP diagnostic tools. Bandwidth management for real time transmission from the data center to clients now comes under the control of the access control server, such as, for example, the Avaya Session Manager, because the extended SIP leg from VM machine to client would be also done using standard SIP signaling. 
         [0011]    In accordance with another embodiment of the present invention, SIP can forward location information for 911/emergency response purposes. If location services are provided by the endpoint virtual client softphone, this information will be properly forwarded by the B2B as well. Thus, automated 911 find-the-phone service based on endpoint-router registration or WiFi triangulation would be available to central emergency services as well. 
         [0012]    In one embodiment, all signaling and media traffic will be naturally placed on the correct VLAN in corporations that establishes communications VLAN separate from their data VLAN. 
         [0013]    In one embodiment of the present invention, there is provided a method to provide SIP session management of a real-time communication to a softphone client in a virtual machine, including: accepting an invitation to join a SIP session; receiving, by a server-based softphone in the SIP session, a real-time communication that is encoded with at least one SIP session parameter; transmitting the real-time communication and the at least one SIP session parameter to a client-based softphone; and using the at least one SIP session parameter for SIP session management. 
         [0014]    In one embodiment of the present invention, there is provided a system to provide SIP session management of a real-time communication to a softphone client in a virtual machine, comprising: a receiver configured to accept an invitation to join a SIP session; a server-based softphone in the SIP session configured to receive a real-time communication that is encoded with at least one SIP session parameter; a transmitter configured to transmit the real-time communication and the at least one SIP session parameter to a client-based softphone; and a session manager configured to use the at least one SIP session parameter for SIP session management. 
         [0015]    In one embodiment of the present invention, there is provided a system to provide SIP session management of a real-time communication to a softphone client in a virtual machine, comprising: a processor; a memory coupled to the processor, the memory configured to store software that, when executed by the processor, performs the steps of: accepting an invitation to join a SIP session; receiving, by a server-based softphone in the SIP session, a real-time communication that is encoded with at least one SIP session parameter; transmitting the real-time communication and the at least one SIP session parameter to a client-based softphone; and using the at least one SIP session parameter for SIP session management. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]    So the manner in which the above recited features of the present invention can be understood in detail, a more particular description of embodiments of the present invention, briefly summarized above, may be had by reference to embodiments, which are illustrated in the appended drawings. It is to be noted, however, the appended drawings illustrate only typical embodiments of embodiments encompassed within the scope of the present invention, and, therefore, are not to be considered limiting, for the present invention may admit to other equally effective embodiments, wherein: 
           [0017]      FIG. 1  depicts a simplified block diagram of a VDI-softphone industry architecture overview; 
           [0018]      FIG. 2  depicts a simplified block diagram of a softphone in VDI client endpoint; 
           [0019]      FIG. 3  depicts a simplified block diagram of a virtual machine-client SIP via private registration, with media relayed through a virtual machine in accordance with an embodiment of the present invention; 
           [0020]      FIG. 4  depicts a simplified block diagram of a virtual machine-client SIP via public registration, with media relayed through a virtual machine in accordance with an embodiment of the present invention; and 
           [0021]      FIG. 5  depicts a simplified block diagram of a virtual machine-client SIP public registration, with direct media communication to/from a softphone, in accordance with an embodiment of the present invention. 
       
    
    
       [0022]    The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including but not limited to. To facilitate understanding, like reference numerals have been used, where possible, to designate like elements common to the figures. 
       DETAILED DESCRIPTION 
       [0023]    As used herein, the term “module” refers generally to a logical sequence or association of steps, processes or components. For example, a software module may comprise a set of associated routines or subroutines within a computer program. Alternatively, a module may comprise a substantially self-contained hardware device. A module may also comprise a logical set of processes irrespective of any software or hardware implementation. 
         [0024]    A virtual machine (“VM”) is a software implementation of a machine (i.e. a computer) that executes programs like a physical machine. Underlying physical machine resources may be shared with strong isolation among VMs. The VM may be implemented in a client-server architecture. The client is typically a thin client (sometimes also called a lean or slim client), but the client may also be a fat client. The thin client is a computer or a computer program which depends heavily on some other computer (i.e., the server) to fulfill its traditional computational roles. In contrast, a fat client is a computer designed to take on traditional computational roles by itself. Thin clients may be components of a broader computer infrastructure, where many clients share their computations with the same server. An example of a thin client is a low-end computer terminal or a handheld mobile device which concentrates primarily on providing a graphical user interface to the end-user. 
         [0025]    The roles assumed by the virtual machine server may vary, from providing data persistence (for example, for diskless nodes) to actual information processing on the client&#39;s behalf. The remaining functionality, in particular the operating system, is provided by the VM server. 
         [0026]      FIG. 1  illustrates a communication architecture  100  for providing real-time voice and real-time video (or, simply, real-time voice and video) through a virtual machine (“VM”) server  103 . Communication channel  102  links a network  110  (the Internet or other WAN) to virtual machine server  103 . IT application module  98  manages virtual machine server  103 . A SIP-based communication control system  101  is linked via communication channel  99  to network  110  as well. System  101  may be, for instance, an Avaya Aura™ Session Manager. Communication channel  102  may carry the real-time voice and video media stream under the direction and control of signals that conform to Session Initiation Protocol (“SIP”), also known as RFC 3261. The media stream(s) are communicated using a Real-time Transport Protocol (“RTP”), also known as RFC 3550 (formerly RFC 1889), for transporting real-time data and providing Quality of Service (“QoS”) feedback. 
         [0027]    SIP is not a vertically integrated communications system. SIP is rather a component that can be used with other IETF protocols to build a complete multimedia architecture. Typically, these architectures will include protocols such as RTP (RFC 3550) for transporting real-time data and providing QoS feedback, the Real-Time streaming protocol (RTSP) (RFC 2326) for controlling delivery of streaming media, the Media Gateway Control Protocol (MEGACO) (RFC 3015) for controlling gateways to the Public Switched Telephone Network (PSTN), and the Session Description Protocol (SDP) (RFC 2327) for describing multimedia sessions. Therefore, SIP should be used in conjunction with other protocols in order to provide complete services to the users. However, the basic functionality and operation of SIP does not depend on any of these protocols. 
         [0028]    Virtual machine server  103  may include one or more IT application module(s)  105  and at least one softphone module  104  (described below in further detail). Operating system functions of VM server  103  are performed by IT application module  98 . Communication architecture  100  further includes VDI client endpoints  106 . Within VDI client endpoints  106  is at least one thin and/or fat client, illustrated in  FIG. 1  as VDI thin client  107 . Communication channel  109  links IT application module  105  to the operating system  98 , which in turn provides communication capability with at least one VDI thin client  107 . 
         [0029]    The real-time voice and video is processed in VM server  103 , in particular it is processed within softphone module  104 . Softphone module  104  is a module that is used for making telephone calls over the Internet using, e.g., a general purpose computer or other non-dedicated computing platform, rather than using dedicated telephone hardware. Softphone module  104  includes a voice and video controller  111  to process the received voice and video data through a codec to decode the received voice and video data, or to encode voice signals into voice data and video camera input into video data for transmission through interface  101 . Voice and video controller  111  may also process the voice and video data for retransmission to VDI thin client  107 . 
         [0030]    To communicate, both end-points of the telephone call must have the same communication protocol and at least one common audio codec. Softphone module  104  may have standard telephony features (e.g., DND, Mute, DTMF, Flash, Hold, Transfer, etc.) and may also have additional features typical for online messaging, such as user presence indication, video, wide-band audio. Softphone module  104  may utilize a variety of audio codecs, including G.711 and G.729, as well as video codecs such as H.263, H.263-1998, and H.264-AVC and H.264-SVC. 
         [0031]    Softphone module  104  terminates the SIP and RTP protocols used to transport the real-time voice and video incoming arriving on communication channel  102 . The real-time voice and video is then transported to VDI thin client  107  over communication channel  109 . Because of the real-time nature of the signals, a user of VDI thin client  107  may experience jitter, frame freezes, or other bandwidth-related degradations in video and/or audio available at the VDI client endpoint  106 , unless communication channel  109  is designed with care in order to ensure the availability of bandwidth capacity, or that the signal coding and/or protocol used with communication channel  109  is designed with care to reduce the bandwidth required for a predetermined level of quality. In addition, jitter and frame freezes can also be caused by insufficient processing capacity for use by softphone application  104 . Furthermore, IT application modules  105  may also suffer degraded performance if a greater proportion of CPU cycles of VM server  103  are devoted to processing the real-time video and voice. Communication channel  109  typically is designed using proprietary protocols in order to speed up the delivery of real-time voice and video from VM server  103  to VDI thin client  107 . For instance, one example of a proprietary protocol used for this purpose is HDX™ family of protocol improvements by Citrix. However, this does not address the issue of insufficient or timely compute capability being provided to softphone application  104 . 
         [0032]    Because the SIP and RTP protocols are terminated in softphone module  104 , the features and benefits specific to SIP and RTP are no longer available to any further retransmission of the real-time voice and video. Valuable capabilities available through the SIP and/or RTP protocols are lost or degraded. For example, QoS, VLAN marking, and visibility from centralized SIP management systems out to the user&#39;s endpoint device are examples of session parameters that are lost or significantly degraded. 
         [0033]      FIG. 2  illustrates an alternative communication architecture  200  for providing real-time voice and video. Communication channels  202   a ,  202   b  link a network  110  (the Internet or other WAN) to softphone  204 , which is located within VDI client endpoints  206 . A SIP-based communication control system  201  is linked via communication channel  299  to network  110  as well. System  201  may be, for instance, the Avaya Aura™ Session Manager. VDI client endpoints  206  may further include at least one thin and/or fat client, illustrated in  FIG. 2  as VDI thin client  207 . Communication channel  202   a  may carry signaling that conforms to SIP (RFC 3261), and communication channel  202   b  may carry the real-time voice, video and QoS feedback using signals that conform to (RFC 3550 (formerly RFC 1889)). 
         [0034]    Communication architecture  200  further includes a virtual machine server  203  and at least one IT application module  205 . Operating system functions of virtual machine server  203  are performed by IT application module  298 . Operating system functions of VM server  203  are performed by IT application module  205 . Communication channel  209  links IT application module  205  to the IT application module  298 , which in turn provides communication capability with at least one VDI thin client  207 . 
         [0035]    Softphone module  204  is located within VDI client endpoints  206 , thereby eliminating a need for a communications channel to carry the real-time voice and video between VM server  203  and VDI client endpoints  206 . Locating softphone module  204  in VDI client endpoints  206  also eliminates communication bottlenecks and/or degradations if the real-time voice and video had been terminated in the VM server  203  without the ability to extend benefits of the SIP and RTP protocols to the VDI client endpoints  206 . A disadvantage of communication architecture  200  is that VM server  203  and IT application module  205  are no longer able interact with softphone module  204 . For instance, if IT application module  205  comprises a Microsoft Office application program, integration would be lost between the Microsoft Office application program and softphone module  204 . Or, if IT application module  205  comprises a web browser, a user may not be able to launch a softphone in order to dial a telephone number listed on a webpage. One should recognize that by embedding softphone  204  into VDI client end points  206 , additional CPU resources will be required at the endpoint. 
         [0036]      FIG. 3  illustrates a simplified block diagram of a system  300  that performs private registration with media relay between a VDI client  351  and a virtual machine (“VM”) system  350 , in accordance with an embodiment of the present invention. A local user of system  300  communicates with system  300  by use of VDI client  351 . VDI client  351  includes a client softphone module  318  that provides soft phone communication functionality in VDI client  351 . 
         [0037]    System  300  provides at least the following improvements over the background art. First, it provides for all real time media to be transferred under SIP signaling and real time protocols, thereby allowing for QOS, VLAN and quality monitoring support. Second, system  300  supports a user interface inside of VM  350  and/or VDI client  351  to control calls, thus supporting click-to-call from a virtual desktop. Finally, it renders the voice and video at the endpoint, thus preserving voice and video quality of encoding all the way to the final rendering point on the desktop in the VM client machine. 
         [0038]    Client softphone module  318  includes a SIP user application (“UA”)  314 . Client softphone module  318  further includes a codec module  315  that may implement a variety of audio codecs, including G.711 and G.729. Codec module  315  may also implement a variety of video codecs, including H.263, H.263+, VP8, or H.264. Client softphone module  318  further includes a GUI module  316  that manages aspects of the user interface. 
         [0039]    VDI virtual machine server  350  may further include at least one IT application module  311 . Operating system functions of VM server  350  are performed by IT application module  311  Communication channel  310  links IT application module  311  to VDI client  351 , and in particular to at least one VDI thin client  322 . In particular, communication channel  310  links server driver module  308  to a VDI thin client  322 , and in particular to client driver module  320 . Client driver module  320  may be, for instance, a Citrix™ visual receiver. VDI thin client  322  may include additional modules such as, but not limited to, a device module  319  that drives audio/visual interface  324 . 
         [0040]    VDI client  351  interfaces with a virtual machine (“VM”)  350 , and in particular with a SIP UA  307  within VM  350 , via a SIP interface  313  and an RTP interface  312 . Control and signaling is carried primarily by SIP interfaces, and real-time audio/visual data is carried primarily by the RTP interface. By convention in  FIGS. 3-4 , SIP interfaces are shown with a solid line and RTP interfaces are shown with a dashed line. 
         [0041]    SIP UA  307  provides SIP back-to-back (“B2B”) functionality in VM  350 , in particular by interfacing with SIP UA  303  within VM  350  via a software SIP interface  306  and a software RTP interface  305 . SIP UA  307  may also include a local Registrar. A Registrar is known as a server in a SIP network that accepts and processes SIP REGISTER requests. The SIP registrar provides a location service which registers one or more IP addresses to a certain SIP URI, indicated by the sip: scheme, although other protocol schemes are possible. More than one user agent can register at the same URI, with the result that all registered user agents will receive a call to the SIP URI. 
         [0042]    SIP UA  303  provides a network interface between VM  350  and a wide area network  362  (WAN) via a SIP interface  302 . The wide area network  362  in turn connects via communications channel  361  with a SIP-based communication control system  301 . An example of SIP-based communication control system  301  is the Avaya Aura™ Session Manager product. Similarly, caller/callee  325  connects to the wide area network  362  via a SIP interface  326 . It should be understood that caller/callee  325  may include both caller and callee functions in order to place calls to, and accept calls originating from, e.g., SIP UA  314 . A separate RTP interface  327  is provided between SIP UA  303  and caller/callee  325 . 
         [0043]    Embodiments in accordance with the present invention are not limited to the networking topology and protocols illustrated and described above with respect to  FIG. 3 . For example, connections may be made with a caller/callee who is using other signaling protocols such as H.323 or ISDN/TDM. In these cases, a signaling and/or media gateway (not shown in  FIG. 3 ) would be used to convert the caller/callee signaling into SIP signaling and SIP-compatible media. 
         [0044]    A process for enabling SIP UA  314  to send and receive calls, e.g., to/from caller/callee  325 , proceeds by first having the SIP UA  314  register with the SIP Registrar contained in the VM  350  via a SIP REGISTER request transmitted on SIP interface  313 , and in particular to SIP UA  307 . SIP UA  307  sets up a B2B session with SIP UA  303 , using SIP interface  306 . The SIP UA  303  registers with module  301  by use of a SIP REGISTER request transmitted on SIP interface  302  via WAN  362  and interface  361 . 
         [0045]    Once all registrations are complete, reception of an incoming call may proceed in one of two ways—either under control of user interface  316   a , or under control of user interface  316   b . Under control of user interface  316   a , the call proceeds as follows. First, a caller such as caller/callee  325  would send a SIP: INVITE message to SIP UA  303  via SIP interfaces  326  and  302 . Next, the SIP: INVITE message is sent from SIP UA  303  to SIP UA  307  via SIP interface  306 . Then the SIP: INVITE message is sent from SIP UA  307  to SIP UA  314  via SIP interface  313 . If the call is accepted by the user via user interface  316   a , then SIP UA  314  sends a SIP: ACK message back to caller/callee  325  via SIP interfaces  313 ,  306 ,  302 , and  326 . Then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  314  via RTP interfaces  327 ,  305 , and  312 . 
         [0046]    The real-time audio/visual data stream is sent in shuffled mode between caller/callee  325  and SIP UA  303 , but is sent in B2B mode between SIP UA  303  and SIP UA  314 . 
         [0047]    Under control of user interface  316   b , the receipt of an incoming call proceeds as follows. First, a caller such as caller/callee  325  would send a SIP: INVITE message to SIP UA  303  via SIP interfaces  326  and  302 . If the user accepts the incoming call via user interface  316   b , then the SIP: INVITE message is sent from SIP UA  303  to SIP UA  307  via SIP interface  306 . Then the SIP: INVITE message is sent from SIP UA  307  to SIP UA  314  via SIP interface  313 . If the call is either automatically accepted by SIP UA  314 , or optionally if accepted by the user via user interface  316   a , then SIP UA  314  sends a SIP: ACK message back to caller/callee  325  via SIP interfaces  313 ,  306 ,  302 , and  326 . Then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  314  via RTP interfaces  327 ,  305 , and  312 . 
         [0048]    The placing of an outgoing call from a user of the systems  350  and  351  to caller/callee  325  proceeds similarly, either under the control of user interface  316   a  or  316   b.    
         [0049]    If placing of the outgoing call is under the control of user interface  316   a , a SIP: INVITE message is sent to caller/callee  325  by SIP UA  314  via SIP interfaces and modules  313 ,  307 ,  306 ,  303 ,  302 , WAN  362 , and  326 . If caller/callee  325  accepts the call, a SIP: ACK message is sent to SIP UA  314  via a reverse path through the same interfaces, modules, and WAN. Then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  314  via RTP interfaces and modules  327 ,  362 ,  303 ,  305 ,  307 , and  312 . 
         [0050]    If placing of the outgoing call is under the control of user interface  316   b , several methods are possible to initiate a call. A first method is for user interface  316   b  to request SIP UA  307  to send to SIP UA  314  via interface  313  a request to initiate a signaling and call sequence, whereupon the method proceeds as described above when the placing of the outgoing call is under the control of user interface  316   a . A second method is for user interface  316   b  to send a request to send a SIP: INVITE message to caller/callee  325  by SIP UA  303  via SIP interfaces  302 , WAN  362 , and  326 . Either prior, during or after this step, user interface  316   b  requests SIP UA  303  to send an INVITE via  306 ,  307 ,  312  to SIP UA  314 , and for SIP UA  303  to associate the two sessions—and to relay messages between the two sessions thereafter. In the same way, when caller/callee  325  negotiates RTP session  327 , this will be relayed by modules and interfaces  303 ,  305 ,  307 ,  312 ,  314 , and codec  315 . If caller/callee  325  accepts the call, a SIP: ACK message is sent to SIP UA  303  by caller/callee  325  via SIP interfaces  326 , WAN  362 , and SIP interface  302 . When SIP UA  303  receives an ACK from SIP UA  314 , it knows both ‘legs’ of the call are accepted, and then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  314  via RTP interfaces  327 ,  305 , and  312 . 
         [0051]      FIG. 4  illustrates a simplified block diagram of a system  400  in accordance with an embodiment of the invention. System  400  is similar to system  300  illustrated in  FIG. 3 , except that system  400  performs public registration with media relay between a VDI client  451  and a virtual machine system  450 , in accordance with an embodiment of the present invention. Registration of VDI client  451  is public because, as explained below, call setup is handled through WAN  362  and ASM Registrar  301  without a direct SIP registration relationship or interface between SIP UA  407  in VM  450  and SIP UA  414  in VDI client  451 . 
         [0052]    System  400  improves upon system  300  of  FIG. 3  such that, that while the media and the signaling still are relayed by virtual machine  450 , all of the registrations are publicly made with a public registrar. This permits full observability of the SIP interactions by a central point, in addition to network traffic monitoring of the SIP traffic that was provided by system  300 . 
         [0053]    A process for enabling a user of system  400  to send and receive calls, e.g., to/from caller/callee  325 , proceeds by first having the SIP UA  414  register with ASM Registrar  301  via a SIP REGISTER request transmitted on SIP interface  429  via WAN  362  and interface  361  to Registrar  301 . 
         [0054]    Client softphone module  418  includes a SIP user application (“UA”)  414 . Client softphone module  418  further includes (as in  FIG. 3 ) a codec module  315  that may implement a variety of audio and video codecs. Client softphone module  418  further includes a GUI module  416   b  that manages aspects of the user interface. 
         [0055]    As in  FIG. 3 , VDI virtual machine server  450  of  FIG. 4  may further include at least one IT application module  311 . Operating system functions of VM server  450  are performed by IT application module  311  Communication channel  310  links IT application module  311  to VDI client  351 , and in particular to at least one VDI thin client  322 . In particular, communication channel  310  links server driver module  308  to a VDI thin client  322 , and in particular to client driver module  320 . Client driver module  320  may be, for instance, a Citrix™ visual receiver. VDI thin client  322  may include additional modules such as, but not limited to, a device module  319  that drives audio/visual interface  324 . 
         [0056]    VDI client  451  interfaces with a virtual machine (“VM”)  450 , and in particular with a SIP UA  407  within VM  450 , not via a direct relationship, but rather via a relayed relationship from SIP UA  414  via a SIP interface  429  to WAN  362  to Registrar  301 , and then via WAN  362  and interface  428  to SIP UA  407 . Control and signaling is carried primarily by SIP interfaces, and real-time audio/visual data is carried primarily by the RTP interface. As in  FIG. 3 , SIP interfaces are shown with a solid line and RTP interfaces are shown with a dashed line. 
         [0057]    SIP UA  407  provides SIP back-to-back (“B2B”) functionality in VM  450 , in particular by interfacing with SIP UA  403  within VM  450  via a software SIP interface  406  and a software RTP interface  405 . Unlike  FIG. 3 , SIP UA  407  does not include a local Registrar. In some embodiments in accordance with the present invention, the logical SIP UAs  403  and  407  may be combined. 
         [0058]    Similar to  FIG. 3 , SIP UA  403  provides a network interface between VM  450  and a wide area network  362  (WAN) via a SIP interface  402 . The wide area network  362  in turn connects via communications channel  361  with a SIP-based communication control system  301 . As in  FIG. 3 , caller/callee  325  connects to the wide area network  362  via a SIP interface  326 . It should be understood that caller/callee  325  may include both caller and callee functions in order to place calls to, and accept calls originating from other endpoints. A separate RTP interface  327  is provided between SIP UA  403  and caller/callee  325 . 
         [0059]    Embodiments in accordance with the present invention are not limited to the networking topology and protocols illustrated and described above with respect to  FIG. 4 . For example, connections may be made with a caller/callee who is using other signaling protocols such as H.323 or ISDN/TDM. In these cases, a signaling and/or media gateway (not shown in  FIG. 4 ) would be used to convert the caller/callee signaling into SIP signaling and SIP-compatible media. 
         [0060]    A process for enabling a user of VM  450  and VDI client  451  to send and receive calls, e.g., to/from caller/callee  325 , proceeds by first having SIP UA  414 ,  407 , and  414  register with the SIP Registrar contained in the VM  450  via a SIP REGISTER request transmitted on SIP interfaces  402 ,  428 , and  429  respectively. As in  FIG. 3 , SIP UA  407  sets up a B2B session with SIP UA  403 , using SIP interface  406 . 
         [0061]    Once all registrations are complete, reception of an incoming call may proceed in one of two ways—either under control of user interface  416   a , or under control of user interface  416   b . Under control of user interface  416   a , the call proceeds as follows. As in  FIG. 3 , a caller such as caller/callee  325  would send a SIP: INVITE message to SIP UA  403  via SIP interfaces  326  and  402 . Next, the SIP: INVITE message is sent from SIP UA  403  to SIP UA  407  via SIP interface  406 . 
         [0062]    Then, in a manner different from  FIG. 3 , the SIP: INVITE message is sent in a relay fashion from SIP UA  407  to SIP UA  414  via SIP interface  428 , WAN  362 , optionally via interface  361 /Registrar  301 /interface  361 , and then via interface  429  to SIP UA  414 . If the call is accepted by the user via user interface  416   a , then SIP UA  414  sends a SIP: ACK message back to caller/callee  325  via a reverse of the relay path outlined earlier in this paragraph. A real-time audio/visual data stream is established between caller/callee  325  and SIP UA  414  via a similar relay path RTP interfaces  427 , SIP UA  403 , interface  405 , SIP UA  407 , and interface  412 . 
         [0063]    Under control of user interface  416   b , the receipt of an incoming call proceeds as follows. First, a caller such as caller/callee  325  would send a SIP: INVITE message to SIP UA  403  via SIP interfaces  326  and  402 . If the user accepts the incoming call via user interface  316   b , then similar to  FIG. 3 , the SIP: INVITE message is sent from SIP UA  403  to SIP UA  407  via SIP interface  406 . Then, unlike  FIG. 3 , the SIP: INVITE message is sent in a relay fashion from SIP UA  407  to SIP UA  414  via SIP interface  428 , WAN  362 , optionally via interface  361 /Registrar  301 /interface  361 , and then via interface  429  to SIP UA  414 . If the call is either automatically accepted by SIP UA  414 , or optionally if accepted by the user via user interface  416   a , then SIP UA  414  sends a SIP: ACK message back to caller/callee  325  via a reverse of the relay path outlined earlier in this paragraph. Then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  414  via RTP interface  327 , SIP UA  403 , interface  405 , SIP UA  407 , and Interface  412 . 
         [0064]    The placing of an outgoing call from a user of VM  450  and VDI client  451  to caller/callee  325  proceeds similarly, under the control of either user interface  416   a  or  416   b.    
         [0065]    If under the control of UI  416   a , a SIP: INVITE message is sent to caller/callee  325  by SIP UA  414  via SIP interfaces and modules  429 , WAN  362 ,  428 ,  407 ,  406 ,  403 ,  402 , WAN  362 , and  326 . If caller/callee  325  accepts the call, a SIP: ACK message is sent to SIP UA  414  via a reverse path through the same interfaces, modules, and WAN. Then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  414  via RTP interfaces and modules  327 , WAN  362 ,  403 ,  405 ,  407 , and  412 . 
         [0066]    If under the control of user interface  416   b , several methods are possible to initiate a call. A first method is for user interface  416   b  to request SIP UA  407  to send to SIP UA  414 , via interface  428 , WAN  362 , and interface  429 , a request to initiate a signaling and call sequence as described above when the placing of the outgoing call is under the control of user interface  416   a . A second method is for user interface  416   b  to send a request to SIP UA  403  to send a SIP: INVITE message to caller/callee  325  via SIP interfaces  402 , WAN  362 , and  326 . Either prior, during or after this step, user interface  416   b  requests SIP UA  403  to send an INVITE via interfaces and module  406 ,  407 ,  412  to SIP UA  414 , and for SIP Module  403  to associate the two sessions—and to relay messages between the two sessions thereafter. In the same way, when callee  325  negotiates RTP session  327 , this will be relayed by modules and interfaces  403 ,  405 ,  407 ,  412 ,  414 , and codec  315 . If caller/callee  325  accepts the call, a SIP: ACK message is sent to SIP UA  403  by caller/callee  325  via interface  326 , WAN  362 , and interface  402 . When  403  receives a ACK from SIP UA  414  via  412 ,  407 , and  406 , it knows both ‘legs’ of the call are accepted, and then a real-time audio/visual data stream is established between caller/callee  325  and SIP UA  414 . 
         [0067]    Other portions of  FIG. 4  not specifically discussed function similarly to like-referenced portions of  FIG. 3 . 
         [0068]      FIG. 5  illustrates a simplified block diagram of a system  500  in accordance with an embodiment of the invention. System  500  is similar to system  400  of  FIG. 4 , except that the media is negotiated to flow directly from caller/callee  325  via RTP interface  530  as the media traverses the WAN  362  to and from SIP UA  514 . Optionally, system  500  could be derived from system  300  by modifying system  300  to provide a direct media interface between caller/callee  325  and SIP UA  314 . An advantage of system  500 , compared to system  400  and system  300 , is that by having the RTP media flow directly between caller/callee  325  and SIP UA  514 , there is no need to relay streaming media through VM  450 , thereby eliminating any potential contribution by VM  450  to delay and jitter onto the streaming media, and also lessening the processing load upon VM  450 . 
         [0069]    Other portions of  FIG. 5  not specifically discussed function similarly to like-referenced portions of  FIG. 3  and/or  FIG. 4 . 
         [0070]    System  500  improves upon the background art and/or other embodiments in several ways. First, it provides for all real time media to be transferred under SIP signaling and real time protocols directly to the rendering endpoint—permitting QOS, VLAN and quality monitoring support. Second, the real time media streams bypass VM  450 , and so no jitter or delay is introduced. Furthermore, the CPU processing requirements are reduced for VM  450 , and so system  500  is more efficient than system  300  or system  400 . All of the advantages of visibility for SIP signaling are preserved from System  400 , and thus for most implementations, System  500  will be the desired architecture. 
         [0071]    While the foregoing is directed to embodiments of the present invention, other and further embodiments of the present invention may be devised without departing from the basic scope thereof. It is understood that various embodiments described herein may be utilized in combination with any other embodiment described, without departing from the scope contained herein. Further, the foregoing description is not intended to be exhaustive or to limit the present invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the present invention. 
         [0072]    No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the terms “any of” followed by a listing of a plurality of items and/or a plurality of categories of items, as used herein, are intended to include “any of,” “any combination of,” “any multiple of,” and/or “any combination of multiples of” the items and/or the categories of items, individually or in conjunction with other items and/or other categories of items. 
         [0073]    Moreover, the claims should not be read as limited to the described order or elements unless stated to that effect. In addition, use of the term “means” in any claim is intended to invoke 35 U.S.C. §112, ¶6, and any claim without the word “means” is not so intended.