Abstract:
Systems and methods of configuring an add-on device to augment the capability of existing endpoint infrastructure are disclosed. In one embodiment, a video add-on device is configured to receive, augment or downgrade, and forward messages for an existing SIP audio-only phone. The video add-on device in this embodiment can receive messages from the existing SIP audio-only phone and augment the messages with information regarding the additional video capabilities being provided. The messages can then be forwarded to an infrastructure SIP Proxy/Registrar for further routing. From the perspective of the infrastructure SIP Proxy/Registrar and other network attached devices the outbound messages from the video add-on device appear as if they originated from the video add-on device, other devices will not be directly aware of the existing SIP audio phone providing its designed function. Utilizing devices similar to the disclosed video add-on device may allow incremental corporate network endpoint upgrades.

Description:
RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 12/784,563 filed May 21, 2010 entitled “Method and System to Add Video Capability to Any Voice Over Internet Protocol (Vo/IP) Session Initiation Protocol (SIP) Phone”, which is incorporated herein by reference in its entirety. 
     
    
     FIELD OF DISCLOSURE 
       [0002]    This disclosure relates generally to the field of audio and video conferencing. More particularly, but not by way of limitation, to a method of augmenting a Session Initiation Protocol (SIP) message and its corresponding Session Description Protocol (SDP) definition to allow additional capabilities while maintaining a viable interface to another device (e.g., a legacy device). 
       BACKGROUND 
       [0003]    Session Initiation Protocol (SIP) is an Internet Engineering Task Force (IETF) defined signaling protocol, used for controlling multimedia communication sessions such as voice and video calls over Internet Protocol (IP). The protocol can be used for creating, modifying and terminating two-party (unicast) or multiparty (multicast) sessions consisting of one or several media streams. The modifications can involve changing addresses or ports, inviting more participants, adding or deleting media streams, etc. Other application examples include video conferencing, streaming multimedia distribution, instant messaging, presence information and online gaming. 
         [0004]    The SIP protocol is an IP-based Application Layer protocol. SIP is designed to be independent of the underlying transport layer. SIP can run on Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or Stream Control Transmission Control Protocol (SCTP). SIP is a text-based protocol (e.g., ASCII text encoded). SIP incorporates many elements of the Hypertext Transfer Protocol (HTTP) and the Simple Mail Transfer Protocol (SMTP). 
         [0005]    SIP employs design elements similar to the HTTP request/response transaction model. Each transaction consists of a client request that invokes a particular method or function on the server and at least one response. SIP reuses most of the header fields, encoding rules and status codes of HTTP and providing a readable text-based format. 
         [0006]    SIP works in concert with several other protocols and is only involved in the signaling portion of a communication session. SIP clients typically use TCP or UDP on port numbers 5060 and/or 5061 to connect to SIP servers and other SIP endpoints. SIP is primarily used for setting up and tearing down voice or video calls. The voice and video stream communications in SIP applications are carried over another application protocol such as Real-time Transport Protocol (RTP). Parameters (e.g., port numbers, protocols, codecs) for corresponding media streams are defined and negotiated using the Session Description Protocol (SDP) which is transported in the SIP packet body. SIP and SDP are defined in the IETF Request For Comment (RFC) documents 3261 and 4566 each of which are incorporated by reference in their entirety herein. 
         [0007]    A SIP user agent (UA) is a logical network end-point used to create or receive SIP messages and thereby manage a SIP session. A SIP UA can perform the role of a User Agent Client (UAC), which sends SIP requests, and a User Agent Server (UAS), which receives the requests and returns a SIP response. These roles of UAC and UAS typically only last for the duration of a SIP transaction. A SIP phone is a SIP UA that provides the traditional call functions of a telephone, such as dial, answer, reject, hold/unhold, and call transfer. SIP phones may be implemented by dedicated hardware controlled by the phone application directly or through a combination of hardware, software and firmware. SIP phones can be any phone with IP connectivity including traditional desktop phones, cell phones, smart phones or Personal Digital Assistants (PDAs), etc. 
         [0008]    Each resource of a SIP network, such as a User Agent or a voicemail box, is identified by a Uniform Resource Identifier (URI), based on the general standard syntax also used in Web services and e-mail. A typical SIP URI is of the form: sip:username:password@host:port. The URI scheme used for SIP is sip:. If secure transmission is required a message may be encrypted and a scheme of sips: is used and corresponding messages are transported over Transport Layer Security (TLS). 
         [0009]    SIP also defines server network elements as outlined in RFC 3261. A “proxy server” is an intermediary entity that acts as both a server and a client for the purpose of making requests on behalf of other clients. A proxy server primarily plays the role of routing, which means its job is to ensure that a request is sent to another entity “closer” to the targeted user. Proxies are also useful for enforcing policy (e.g., making sure a user is authorized to make a call). A proxy interprets, and if necessary, rewrites specific parts of a request message before forwarding the message. A registrar is a server that accepts REGISTER requests and places the information it receives in those requests into the location service for the domain it handles. The RFC for SIP specifies that it is an important concept that the distinction between types of SIP servers is logical, not physical. In practice, different logical capabilities of SIP can be performed by one server or split across a plurality of physical devices as required by design choices. 
         [0010]    As mentioned above, SDP is a format for describing streaming media initialization parameters in an ASCII string. SDP is intended for describing multimedia communication sessions for the purposes of session announcement, session invitation, and parameter negotiation. SDP does not deliver media itself but is used for negotiation between end points of media type, format, and all associated properties. The set of properties and parameters are often referred to as a session profile. 
         [0011]    A Session Description is a well defined format for conveying sufficient information to discover and participate in a multimedia session. A session is described by a series of attribute/value pairs, one per line. The attribute names are single characters, followed by “=”, and a value. Optional values are specified with “=*”. Values are either in an ASCII string, or a sequence of specific types separated by spaces. Attribute names are only unique within the associated syntactic construct, i.e., within the Session, Time, or Media only. 
         [0012]      FIG. 1A  shows a typical network topology (diagram  100 ) for a SIP based phone environment as may be found in the prior art. Network diagram  100  shows a pair of SIP phones ( 105 ,  106 ) connected to IP network  110  and configured for Voice over IP (VoIP) phone calls. SIP Proxy and SIP Registrar functions are provided by SIP Proxy/Registrar server  120 . In this example both of these logical functions have been included with a single server  120 , however, these functions may also be implemented on two distinct hardware servers. 
         [0013]      FIG. 1B  shows a timeline  150  of a typical prior art process of utilizing SIP to signal from a first phone to a second phone to establish a call utilizing example pieces of network  100 . Initially (time  155 ), each phone will register with a SIP Registrar/Proxy server via a REGISTER message. The information for this registration can be preconfigured into the device or each device can be provisioned utilizing a mechanism similar to Dynamic Host Configuration Protocol (DHCP). After, the phones have established their connection to the Proxy/Registrar infrastructure they are each capable of making/receiving phone calls. In timeline  150 , phone  1  ( 105 ) calls phone  2  ( 106 ) by sending (time  160 ) an INVITE message to the Proxy/Registrar server  120  with the INVITE message addressed to phone  2  ( 106 ). The Proxy/Registrar server will interrogate the message and locate/forward the INVITE message toward a network destination “closer” to phone  2  ( 106 ). Upon receipt at phone  2  ( 106 ), phone  2  ( 106 ) will respond with an OK message (time  165 ) if it is ready and able to accept the phone call. The INVITE message and the OK response include information about the audio capabilities of each of devices  105  and  106  such that a negotiation for a particular type of transmission of data may take place. Phone  1  ( 105 ) responds with an ACK message (time  170 ) to phone  2  ( 106 ) indicating how to establish the data transfer communication session for a VoIP phone call as shown at time  175 . 
         [0014]    Prior art networks such as  100  primarily consist of SIP endpoints configured for a particular function and having hardware components compatible with that particular function. Upgrading of endpoints to support enhanced functionality typically requires replacing a hardware component that is acting as an endpoint. Alternatively, there have been prior art devices which split the audio and video processing between devices, however those devices involve two devices with required embedded information and having a private means of communication and coordination between each of the two devices. Accordingly, it is desirable to provide a method and device capable of augmenting capabilities at an existing endpoint without being required to replace a legacy (or less capable) endpoint device and without requiring a private means of communication and coordination between devices. For example, a SIP audio-only phone (e.g.,  105 ,  106 ) may be augmented to a video phone while still providing its original audio-only capability by using the methods and systems disclosed herein. 
       SUMMARY 
       [0015]    In one embodiment, an add-on device is added to an existing corporate network to upgrade an existing SIP audio-only phone to an endpoint supporting full audio/video conferencing capability. The add-on device can function as a transparent intermediary to the existing SIP audio-only phone. As messages are received from the SIP phone at the video add-on device they can be augmented to include video attributes. As messages are received at the video add-on device from other devices in the network they can be stripped of the video attributes and altered to only carry audio data as expected by the SIP phone. Utilizing this method and system capabilities can be added to an existing corporate network without having to replace all of the equipment at the upgraded endpoint location. Further, the existing equipment can continue to function as it was originally designed and not require special data connections or updates. 
         [0016]    In another embodiment, the add-on device can augment outbound messages from a H.323 device and downgrade inbound messages to the H.323 device to support a capability like video, camera control and room control in conjunction with the standard capability of audio. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]      FIG. 1A  shows, in block diagram form, a prior art network topology for VoIP phones connected utilizing SIP. 
           [0018]      FIG. 1B  shows a timeline of steps required to establish (via SIP) a VoIP phone call. 
           [0019]      FIG. 2  shows, in block diagram form, a network topology for augmenting a SIP based audio-only phone device to support full video conferencing based on one disclosed embodiment. 
           [0020]      FIG. 3  shows a timeline of steps required to establish (via SIP) a video conference utilizing a video device and an audio-only phone according to one disclosed embodiment. 
           [0021]      FIGS. 4A-B  show a SIP INVITE message from an audio-only phone to a video add-on device according to one disclosed embodiment. 
           [0022]      FIG. 5  shows, in block diagram form, a programmable control device comprising a processing unit as may be found in selected corporate IP capable devices. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]    The following disclosure describes a method and system to augment the capabilities of a SIP endpoint without replacing the existing endpoint. In one embodiment the method comprises adding an additional device between the existing endpoint and a SIP Proxy/Registrar server to provide the augmented capability. The add-on device can appear to the existing endpoint as a SIP Proxy/Registrar server and effectively act as a bridge, gateway or router to a SIP Proxy/Registrar already available in the network infrastructure. The add-on device can either add (for outbound traffic) or remove (for inbound traffic) portions of the messages that are not supported by the original SIP endpoint device. 
         [0024]    The following disclosure is described in the context of adding video capability to an existing voice only SIP phone. Other implementations and augmentation capabilities will be apparent to those skilled in the art, given the benefit of this disclosure. For example, the same affects can be achieved with H.323 where the add-on device inserts itself in the call path via gatekeeper signaling. In addition to video, capabilities such as far end camera control, far end room control (lighting, blinds, etc), serial pass through and application sharing could be added to the endpoint. Another example of augmentation could be the insertion of an electronic whiteboard application/device instead of or in addition to a video device. Note the add-on device is not assuming the role of a formal SIP Proxy/Registrar. Instead the end device is configured to think the add-on device is a SIP Proxy/Registrar and the add-on device can simply pass and augment the messages on their way to the real infrastructure SIP Proxy/Registrar. In this manner the add-on device can be placed transparently into the message flow. 
         [0025]    Referring now to  FIGS. 2 and 3 , network diagram  200  shows an augmented version of network diagram  100  (described above) in which video add-on devices  205  and  206  have been connected to extend the technical capabilities of SIP phones  105  and  106  respectively. Timing diagram  300  outlines example steps for SIP signaling from a phone  105  to a phone  106  including a video capability provided by video add-on devices  205  and  206 . Initially at time segment  310  SIP phone  105  transmits a register request which is sent to video add-on device  205 . Video add-on device  205  forwards the request on to the SIP Proxy/Registrar In a similar manner SIP phone  106  transmits it request to video add-on device  206  which forwards the request on to the SIP Proxy/Registrar  120 . Next, at time segment  320 , OK messages are returned from each SIP Proxy/Register logical component to the device which sent the REGISTER message. Now devices  105 ,  106 ,  205  and  206  are ready to place or receive calls. 
         [0026]    As mentioned above SIP VoIP calls begin with an INVITE message as shown at time segment  330 . Note that the invite message from SIP phone  105  routes to video device  205  and includes the audio capabilities of SIP phone  105 . Video device  205  augments the INVITE message to include video capabilities of SIP video add-on device  205  and forwards the message to SIP Proxy/Registrar  120 . From the viewpoint of SIP Proxy/Registrar  120  video add-on device appears to be a device with both video and audio capabilities. Placement of this example call continues with SIP Proxy/Registrar  120  sending the augmented INVITE message to SIP video add-on device  206 . SIP video add-on device  206  receives the INVITE message, removes attributes associated with video capabilities from the INVITE message and forwards the INVITE message (still containing audio capability information) to SIP phone  106 . 
         [0027]    SIP phone  106  can respond with an OK message including its audio capabilities to facilitate negotiation of parameters for a connection. The OK message from SIP phone  106  is routed to video add-on device  206  which augments the message with supported video capabilities and forwards the augmented message to SIP Proxy/Registrar  120 . SIP Proxy/Registrar  120  recognizes that this OK message is for video add-on device  205  and forwards the message toward video add-on device  205 . Upon receipt, video add-on device  205  can remove and process the video only portions of the OK message and forward the remaining portions to SIP phone  105 . At time segment  350 , an ACK message is routed from SIP phone  105  toward SIP phone  106  taking the required route of  205 ,  120  and  206 . After the ACK message has been received by SIP phone  106 , a video and audio phone call can take place as shown at time segment  360 . Note that for the duration of this call only audio data is sent and received by SIP phones  105  and  106  in contrast to the audio/video data sent between video add-on devices  205 ,  206  and SIP Proxy/Registrar  120 . 
         [0028]    Referring now to  FIGS. 4A-B , an example message from a SIP phone such as  105 ,  106  to a video add-on device such as  205 ,  206  and an example augmentation are shown. Message  400  shows an INVITE message as it might look from a SIP phone to a video add-on device. Lines ( 410 ) are the lines of the message that must be changed to account for the augmentation and response routing of the message. The content length attribute of the message is an example of “control information” that may be included in a SIP message. In this example, the content length must be changed to account for extra information and the m=audio line must be modified to the IP port being used by the video add-on device. In addition to changing parameters in the message attributes associated with the video data (e.g., far end camera controls) are added as lines  460  to the outbound message. These lines can be added/removed as the outbound/inbound messages are logically passed through the video conference add-on device  205 ,  206 . 
         [0029]    Although the above embodiments primarily deal with a SIP based phone, the disclosed method and system could also be implemented for a H.323 environment. In addition, the disclosed system and method could be used wherever SDP is used. SDP is also widely used with streaming of media with the Session Announcement Protocol (SAP) and Real-Time Streaming Protocol (RTSP). How the device inserts itself into the message path would be different for each protocol but would be understood by those of ordinary skill in the art, given the benefit of this disclosure, without requiring undue experimentation. 
         [0030]    Referring now to  FIG. 5 , an exemplary conferencing device  500  is shown. Exemplary conferencing device  500  comprises a programmable control device  510  which may be optionally connected to input  560  (e.g., keyboard, mouse, touch screen, etc.), display  570  or program storage device  580 . Also, included with program device  510  is a network interface  540  for communication via a network with other conferencing and corporate infrastructure devices (not shown). Note network interface  540  may be included within programmable control device  510  or be external to programmable control device  510 . In either case, programmable control device  510  will be communicatively coupled to network interface  540 . Also note program storage unit  580  represents any form of non-volatile storage including, but not limited to, all forms of optical and magnetic storage elements including solid-state storage. 
         [0031]    Program control device  510  may be included in a conferencing device and be programmed to perform methods in accordance with this disclosure (e.g., those illustrated in  FIGS. 3-4 ). Program control device  510  comprises a processor unit (PU)  520 , input-output (I/O) interface  550  and memory  530 . Processing unit  520  may include any programmable controller device including, for example, the Intel Core®, Pentium® and Celeron® processor families from Intel and the Cortex and ARM processor families from ARM. (INTEL CORE, PENTIUM and CELERON are registered trademarks of the Intel Corporation. CORTEX is a registered trademark of the ARM Limited Corporation. ARM is a registered trademark of the ARM Limited Company.) Memory  530  may include one or more memory modules and comprise random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), programmable read-write memory, and solid state memory. One of ordinary skill in the art will also recognize that PU  520  may also include some internal memory including, for example, cache memory. 
         [0032]    Various changes in the materials, components, circuit elements, as well as in the details of the illustrated operational methods are possible without departing from the scope of the following claims. For instance, acts in accordance with  FIGS. 2 and 4  may be performed by a programmable control device executing instructions organized into one or more modules (comprised of computer program code or instructions). A programmable control device may be a single computer processor (e.g., PU  520 ), a plurality of computer processors coupled by a communications link or one or more special purpose processors (e.g., a digital signal processor, DSP). Such a programmable control device may be one element in a larger data processing system such as a general purpose computer system. Storage media, as embodied in storage devices such as  580 , as well as memory internal to program control device  510 , suitable for tangibly embodying computer program instructions include, but are not limited to: magnetic disks (fixed, floppy, and removable) and tape; optical media such as CD-ROMs and digital video disks (DVDs); and semiconductor memory devices such as Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Gate Arrays and flash devices. These are also sometimes referred to as computer readable medium or program storage devices. 
         [0033]    In the above detailed description, various features are occasionally grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the subject matter require more features than are expressly recited in each claim. 
         [0034]    Various changes in the details of the illustrated operational methods are possible without departing from the scope of the following claims. For instance, time line steps of  FIGS. 2 and 4  may perform the identified steps in an order different from that disclosed here. Alternatively, some embodiments may combine the activities described herein as being separate steps. Similarly, one or more of the described steps may be omitted, depending upon the specific operational environment the method is being implemented in. In addition, acts in accordance with  FIGS. 2 and 4  may be performed by a programmable control device executing instructions organized into one or more program modules. A programmable control device may be a single computer processor, a special purpose processor (e.g., a digital signal processor, “DSP”), a plurality of processors coupled by a communications link or a custom designed state machine. Custom designed state machines may be embodied in a hardware device such as an integrated circuit including, but not limited to, application specific integrated circuits (“ASICs”) or field programmable gate array (“FPGAs”). 
         [0035]    It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments may be used in combination with each other. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.”