This invention relates generally to wireless communications systems and methods and, more specifically, relates to wireless terminals and wireless network nodes that use a Session Initiation Protocol (SIP) for establishing and conducting a multi-participant conference.
The Session Initiation Protocol (SIP) is defined in IETF RFC3261 (Rosenberg et al., June 2002). In general, the SIP is an application-layer control (signaling) protocol for creating, modifying and terminating sessions with one or more participants. The sessions can include Internet telephone calls, multimedia distribution and multimedia conferences. SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. SIP makes use of elements called proxy servers to help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. SIP runs on top of several different transport protocols. Of most concern to this invention is the use of SIP for conferencing.
It is first noted that SIP includes a mechanism to provide access to data, referred to generally as content indirection. More specifically, an IETF draft “draft-ietf-sip-content-indirect-mech-03”, entitled “A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages” (S. Olson, Jun. 2, 2003), describes a mechanism to provide for content indirection in SIP messages. Generally, the purpose of the SIP is to create, modify, or terminate sessions with one or more participants, and SIP messages, like HTTP, are syntactically composed of a start line, one or more headers, and an optional body. Unlike HTTP, however, SIP is not designed as a general purpose transport of data.
There are various reasons why it may be desirable to indirectly specify the content of the SIP message body. For bandwidth limited applications, such as in cellular wireless applications, indirection provides a means to annotate the (indirect) content with meta-data which may be used by the recipient to determine whether or not to retrieve the content over the resource limited link. It is also possible that the content size to be transferred might potentially overwhelm intermediate signaling proxies, thereby unnecessarily increasing network latency. For time-sensitive SIP applications, this may be unacceptable. The use of indirect content can alleviate these shortcomings by moving the transfer of the content out of the SIP signaling network and into a potentially separate data transfer channel. There may also be scenarios where session-related data (body) that needs to be conveyed does not directly reside on the endpoint or User Agent (UA). In such scenarios, it is desirable to have a mechanism whereby the SIP message can contain an indirect reference to the desired content. The receiving party would then use this indirect reference to retrieve the content via a non-SIP transfer channel, such as HTTP, FTP, or LDAP. It is stated in this IETF draft that the purpose of content indirection is purely to provide an alternative transport mechanism for SIP MIME body parts. With the exception of the transport mechanism, indirected body parts are equivalent, and should have the same treatment, as in-line body parts.
The present inventor and others have previously identified the requirements for conference control and have proposed a component-based scalable conference control framework based on the SIP and on the Simple Object Access Protocol (SOAP). Reference in this regard can be made to: “A SIP-based Conference Control Framework”, Petri Koskelainen, Henning Schulzrinne and Xiaotao Wu, NOSSDAV'02, May 12-14, 2002, Miami Beach, Fla., USA.
Also of interest is an Internet Draft entitled: “A Framework for Conferencing with the Session Initiation Protocol”, J. Rosenberg, draft-ietf-sipping-conferencing-framework-01, Oct. 27, 2003.
In order to place the current invention into a proper technological context, a brief description of SIP conferencing will be presented. First a number of useful definitions will be provided, followed by a general discussion of SIP conferencing in the context of
Generally, a SIP conference is an instance of a multi-party conversation. A loosely coupled conference is a conference without coordinated signaling relationships amongst participants. Loosely coupled conferences frequently use multicast for distribution of conference memberships. A tightly coupled conference is a conference in which a single user agent, referred to as a focus, maintains a dialog with each participant. The focus plays the role of the centralized manager of the conference, and is addressed by a conference URI. The focus is a SIP user agent that is addressed by a conference URI and identifies a conference (i.e., a unique instance of a multi-party conversation). The focus maintains a SIP signaling relationship with each participant in the conference. The focus is responsible for ensuring, in some way, that each participant receives the media that make up the conference. The focus also implements conference policies. The focus is a logical role. A conference URI is a URI, usually a SIP URI, which identifies the focus of a conference. The software element that connects a user or automata to a conference is referred to as a participant. A participant implements, at a minimum, a SIP user agent, but may also include, as an example, a conference policy control protocol client. A conference notification service is a logical function provided by the focus. The focus can act as a notifier, accepting subscriptions to the conference state, and notifying subscribers about changes to that state. The state includes the state maintained by the focus itself, the conference policy, and the media policy. A conference policy server is a logical function which can store and manipulate the conference policy. The conference policy is the overall set of rules governing operation of the conference. It is broken into membership policy and media policy. Unlike the focus, there is not an instance of the conference policy server for each conference. Rather, there is an instance of the membership and media policies for each conference. A conference policy is the complete set of rules for a particular conference that is manipulated by the conference policy server. It includes the membership policy and the media policy. There is an instance of conference policy for each conference. A membership policy is a set of rules manipulated by the conference policy server regarding participation in a specific conference. These rules include directives on the lifespan of the conference, who can and cannot join the conference, definitions of roles available in the conference and the responsibilities associated with those roles, and policies on who is allowed to request which roles. A media policy is a set of rules manipulated by the conference policy server regarding the media composition of the conference. The media policy is used by the focus to determine the mixing characteristics for the conference. The media policy includes rules about which participants receive media from which other participants, and the ways in which that media is combined for each participant. In the case of audio, these rules can include the relative volumes at which each participant is mixed. In the case of video, these rules can indicate whether the video is tiled, whether the video indicates the loudest speaker, and so on. The Conference Policy Control Protocol (CPCP) is a protocol used by clients to manipulate the conference policy. A mixer is a component that receives a set of media streams of the same type, and combines their media in a type-specific manner, redistributing the result to each participant. This includes media transported using RTP (see RFC 1889). In the content of the draft-ietf-sipping-conferencing-framework-01 document, from which these various definitions are conveniently derived, the mixer is considered to be a superset of the mixer concept defined in RFC 1889, since it allows for non-RTP-based media, such as instant messaging sessions. A conference server is a physical server that contains, at a minimum, the focus. It may also include the conference policy server and mixers.
Having thus provided a number of useful definitions, reference is made to
It is fundamental to the overall framework described in the draft-ietf-sipping-conferencing-framework-01 document that a conference is uniquely identified by a URI, and that this URI identifies the focus 1 which is responsible for the conference. The conference URI is unique, such that no two conferences have the same conference URI. A conference URI is always a SIP or SIPS (Secure SIP) URI. The conference URI is opaque to any participants which might use it, that is, there is no way to look at the URI, and know for certain whether it identifies a focus 1, as opposed to a user or an interface on a PSTN gateway. However, contextual information surrounding the URI (for example, SIP header parameters) may indicate that the URI represents a conference. When a SIP Request is sent to the conference URI, that request is routed to the focus 1, and only to the focus 1. The element or system that creates the conference URI is responsible for guaranteeing this property. The conference URI can represent a long-lived conference or interest group, or the conference URI can represent a short-lived conference, such as an ad-hoc conference.
Prior to this invention, an aspect of SIP conferencing that was not adequately defined or specified related to the concept of data sharing among the conference participants 2.
The foregoing and other problems are overcome, and other advantages are realized, in accordance with the presently preferred embodiments of these teachings.
This invention relates to the concept of conference policy manipulation, wherein a user can create a conference at a conference policy server (CPS) using a Conference Policy Control Protocol (CPCP), and set various conference parameters, such as Access Control Lists (ACLs), a dial-out user list, and RTP media streams.
In accordance with this invention there are described additional use cases and mechanisms for multi-party conferencing, specifically data sharing. Data sharing in accordance with this invention can be distinguished from application sharing (which may share documents), in that application sharing typically requires the presence of specific applications in end-terminals.
In SIP conferencing data sharing, in accordance with this invention, users are able to upload documents, files and data to the CPS, and use the CPCP to set access policies and manipulation operations for the uploaded data. For example, a user may upload a music file and specify that all conference participants can have read access to the music file, but that they may not delete it.
The CPS may also manipulate documents, including documents containing image data, based on instructions provided via the CPCP as extended in accordance with this invention. As non-limiting examples, document manipulation operations can involve re-sizing an image, converting a document from one format to another, and pushing a document to all conference participants.
An aspect of this invention is a binding together of data sharing and the CPCP in a novel and non-obvious manner to enable document manipulation and thus create new service(s) for IP, SIP-based conferencing.
In one aspect this invention provides a method to share data amongst conference participants in a SIP conference. The method includes, in response to a request of a user agent (UA) conference participant to create a data sharing element, informing the UA in a SIP message of an address of a storage location associated with a data sharing server (DSS) of a conferencing server where the UA may store shared data for use by other conference participants; storing the data in the address of the storage location and establishing at least one policy that controls at least one of access to and distribution of the shared data with respect to the other conference participants.
Also disclosed, as part of a SIP Conference Server, is a Data Sharing Server (DSS) that provides storage for, and controlled access to and distribution of the shared data stored by one or more of SIP conference participants.
Thus, in another aspect this invention provides a SIP Conference Server that includes at least one data processor that is responsive to an occurrence of a UA conference participant desiring to create a data sharing element, to inform the UA in a SIP message of an address of a storage location associated with the DSS where the UA may store shared data for use by other conference participants. The data processor is further responsive to receipt of the data from the UA to store the data in the address of the storage location, and to establish at least one policy that controls at least one of access to and distribution of the shared data with respect to the other conference participants.
In a further aspect this invention provides a UA operable with a SIP Conference Server, where the UA includes at least one data processor that is functional as a conference participant and to request the SIP Conference Server to create a data sharing element; to receive a notification in a SIP message of an address of a storage location associated with the DSS where the UA may store shared data for use by other conference participants; to send data to the DSS for storage in the address of the storage location and to send information to a Conference Policy Server (CPS) via a Conference Policy Control Protocol (CPCP) to establish at least one policy that controls at least one of access to and distribution of the shared data with respect to the other conference participants.
In the preferred embodiments of this invention the data is sent to the DSS by using a non-SIP procedure, such as by using one of HTTP; Web-based Distributed Authoring and Versioning (WebDav); RTP; and a TCP pipe with Multipurpose Internet Mail Extensions (MIME) encapsulation.
In the preferred embodiments of this invention the UA receives the notification of the address in a Uniform Resource Identifier (URI) that specifies the address of the storage location.
In the preferred embodiments of this invention the data is sent to the DSS in conjunction with at least a name for the data, and may be sent also with a type of the data. The shared data may comprise at least one of a file and an executable application.
The UA may be, or may be a part of, a cellular telephone.
The foregoing and other aspects of these teachings are made more evident in the following Detailed Description of the Preferred Embodiments, when read in conjunction with the attached Drawing Figures, wherein:
Reference is made to
In general, the DSS 14 can be co-located with CPS 4, or it can be implemented as a separate server that is controlled by the CPS 4, as shown in
The DSP 14A may be implemented using any one of the following (non-limiting) transport mechanisms: HTTP; Web-based Distributed Authoring and Versioning (WebDav), which is a set of extensions to the HTTP protocol that allows users to collaboratively edit and manage files on remote web servers; RTP, preferably with forward error correction that accommodates multi-cast operation; a TCP pipe with Multipurpose Internet Mail Extensions (MIME) encapsulation; and variations of the foregoing. The primary function of the DSP 14A is to convey data between the client (UA 2) and the DSS 14. It is also preferred that the DSP 14A convey some minimal information concerning the shared data, such the name associated with the shared data (as in RTP headers, or MIME headers that precede the actual data).
In general, MIME was originally intended to extend the format of Internet mail to allow non-US-ASCII textual messages, non-textual messages, multipart message bodies and non-US-ASCII information in message headers. The following RFCs define MIME: RFC 2045: MIME Part One: Format of Internet Message Bodies; RFC 2046: MIME Part Two: Media Types; RFC 2047: MIME Part Three: Message Header Extensions for Non-ASCII Text; RFC 2048: MIME Part Four: Registration Procedures; and RFC 2049: MIME Part Five: Conformance Criteria and Examples.
Exemplary policy commands that can be issued by clients (UAs 2) include, but are not limited to:
In the embodiment of
Reference is made to
While this may occur by the use of a SIP content indirection operation, in the presently preferred embodiment of this invention the SIP payload (SDP) is used to advertise to the user joining a conference the various information needed to provide and support the data sharing function. For example, the user can be informed through the SIP payload of the address of the RTP audio mixer 3, the RTP video server 12 and, further in accordance with an aspect of this invention, the address of the DDS 14. In the presently preferred embodiment the Conference Policy Control Protocol 5′ is used to define the operations and policy for the data in the DSS 14.
Continuing with the discussion of
The foregoing commands, interactions and data flows shown in
It is understood that in the foregoing embodiments the SIP Conferencing Server 10 and the UA 2 each contain one or more programmed digital data processors operable for executing the SIP-related conference data sharing procedures and protocols in accordance with this invention. For example, the UA 2 may be embodied in a cellular telephone or a personal communicator that includes an embedded microprocessor that operates in accordance with a computer readable medium embodied with a stored computer program for performing extraction of the URI from a SIP message received from the SIP Conferencing Server 10, and for then subsequently sending the data to be shared to the DSS 14 to be stored at the address specified by the extracted URI.
The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the best method and apparatus presently contemplated by the inventors for carrying out the invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. As but some examples, the use of other similar or equivalent file types, message formats, data transport mechanisms and the like may be attempted by those skilled in the art. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention.
Furthermore, some of the features of the present invention could be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles of the present invention, and not in limitation thereof.
Number | Name | Date | Kind |
---|---|---|---|
6477150 | Maggenti et al. | Nov 2002 | B1 |
6570851 | Koskelainen et al. | May 2003 | B1 |
6763035 | Koskelainen et al. | Jul 2004 | B1 |
6781963 | Crockett et al. | Aug 2004 | B2 |
7024688 | Faccin et al. | Apr 2006 | B1 |
7050861 | Lauzon et al. | May 2006 | B1 |
7062253 | Money et al. | Jun 2006 | B2 |
7085244 | Koskelainen et al. | Aug 2006 | B2 |
7107017 | Koskelainen et al. | Sep 2006 | B2 |
7130282 | Black | Oct 2006 | B2 |
7184531 | Crouch | Feb 2007 | B2 |
7328046 | Koskelainen et al. | Feb 2008 | B2 |
7359373 | Kuusinen et al. | Apr 2008 | B2 |
7418509 | Koskelainen et al. | Aug 2008 | B2 |
7421469 | Liu et al. | Sep 2008 | B1 |
7426379 | Stewart et al. | Sep 2008 | B1 |
7469293 | Yoakum et al. | Dec 2008 | B1 |
7480723 | Grabelsky et al. | Jan 2009 | B2 |
20020078153 | Chung et al. | Jun 2002 | A1 |
20020087435 | Neishi et al. | Jul 2002 | A1 |
20030069934 | Garcia-Martin et al. | Apr 2003 | A1 |
20030093462 | Koskelainen et al. | May 2003 | A1 |
20030145054 | Dyke | Jul 2003 | A1 |
20030149774 | McConnell et al. | Aug 2003 | A1 |
20030163545 | Koskelainen et al. | Aug 2003 | A1 |
20040003046 | Grabelsky et al. | Jan 2004 | A1 |
20040037406 | Gourraud | Feb 2004 | A1 |
20040071099 | Costa-Requena et al. | Apr 2004 | A1 |
20040107143 | Niemi | Jun 2004 | A1 |
20040110535 | Koskelainen et al. | Jun 2004 | A1 |
20040153552 | Trossen et al. | Aug 2004 | A1 |
20040156394 | Westman | Aug 2004 | A1 |
20040174830 | Koskelainen et al. | Sep 2004 | A1 |
20040179689 | Maggenti et al. | Sep 2004 | A1 |
20040181584 | Rosen et al. | Sep 2004 | A1 |
20040190498 | Kallio et al. | Sep 2004 | A1 |
20040190702 | Mayer et al. | Sep 2004 | A1 |
20040196867 | Ejzak et al. | Oct 2004 | A1 |
20040202303 | Costa-Requena et al. | Oct 2004 | A1 |
20040221037 | Costa-Requena et al. | Nov 2004 | A1 |
20040224710 | Koskelainen et al. | Nov 2004 | A1 |
20040246332 | Crouch | Dec 2004 | A1 |
20040250201 | Caspi | Dec 2004 | A1 |
20040252674 | Soininen et al. | Dec 2004 | A1 |
20050004982 | Vernon et al. | Jan 2005 | A1 |
20050018828 | Nierhaus et al. | Jan 2005 | A1 |
20050021716 | Adamczyk et al. | Jan 2005 | A1 |
20050034079 | Gunasekar et al. | Feb 2005 | A1 |
20050094621 | Acharya et al. | May 2005 | A1 |
20050105511 | Poikselka | May 2005 | A1 |
20050124365 | Balasuriya et al. | Jun 2005 | A1 |
20050141688 | Wengrovitz | Jun 2005 | A1 |
20050154793 | Khartabil | Jul 2005 | A1 |
20050192052 | Tenhunen | Sep 2005 | A1 |
20050198338 | Chebil et al. | Sep 2005 | A1 |
20050206721 | Bushmitch et al. | Sep 2005 | A1 |
20050213537 | Ingimundarson et al. | Sep 2005 | A1 |
20050233776 | Allen et al. | Oct 2005 | A1 |
20050262249 | Koskelainen | Nov 2005 | A1 |
20060155839 | Hundscheidt et al. | Jul 2006 | A1 |
20080059595 | Kiss et al. | Mar 2008 | A1 |
20080228892 | Staack et al. | Sep 2008 | A1 |
20080288643 | Suotula et al. | Nov 2008 | A1 |
Number | Date | Country |
---|---|---|
2002-041429 | Feb 2002 | JP |
2002-170070 | Jul 2002 | JP |
WO-2004028113 | Apr 2004 | WO |
WO-2005071921 | Aug 2005 | WO |
Number | Date | Country | |
---|---|---|---|
20050262249 A1 | Nov 2005 | US |