REFERENCE TO RELATED APPLICATIONSThis disclosure is a continuation-in-part of U.S. patent application Ser. No. 13/134,396 titled PROXIMITY SESSION MOBILITY to Trung (Tim) Trinh and Alain Michaud that was filed on Jun. 6, 2011.
TECHNICAL FIELDThis disclosure generally relates to communications, and more particularly, to an extended system and method for seamlessly exchanging and interacting with multimedia content between devices in proximity on a network.
BACKGROUNDThe proliferation of smart phones and the rising popularity of tablet-like devices, with their rich multimedia capabilities, have created demands for seamless collaboration between these devices in personal and enterprise networks. Gradually, these devices have been introduced into the workplace creating a diversified mobile client working environment. Seamless collaboration between these devices becomes more difficult especially with the variety of available devices coupled with the differences in operating systems, versions, vendors, and models.
Due to technology limitations and form factor of touch screen mobile and tablet devices, innovative approaches have been employed to minimize the typing required for interactions between the users and the devices. For example, the use of gesturing, speech recognition and drag and drop capabilities, instead of typing in the required information, have become a trend. Being able to collaborate and share information without the need to type in information, such as a destination address, URL or authentication credentials, becomes a necessity rather than a desire for touch screen or small form-factor mobile devices.
Information can be shared and exchanged through different methods such as File Transfer Protocol (FTP), Hypertext Transfer Protocol (HTTP or HTTPs) (web session), Virtual Private Network (VPN), Remote Desktop Protocol (RDP), etc. These methods require manual authentication or credentials to be exchanged as part of the collaborative session initiation. Such requirement makes it impractical for the touch-screen devices that are dominantly relied on by drag-and-drop or gesture-based interactions.
Often, participants brought into a conference call on the spot are not briefed of the context of their participation such as the meeting topic or the reason why that participant's presence is required. Guest users also need to have a temporary identification issued or go through a manual device registration process before gaining access to enterprise WiFi® connectivity unless the enterprise has an open WiFi® connectivity without security restriction.
As a further restriction on current systems, mobile users who wish to transfer data from their mobile device to a local machine or device at a visiting enterprise, have to download data which includes transferring data from their enterprise to the mobile device then transfer the data back to the visiting enterprise. This incurs mobile data transfer costs using standard 3G/4G networks. The participant also needs to request WiFi® access subject to the approval from the proper department at the visiting enterprise. Once approval is given, the participant can enter in a service set identifier (SSID), access token and select the proper encryption option, the process being tedious and not guaranteeing instant access.
In conferences, the participant often uses an available whiteboard in the room. A number of issues arise, however. People in the conference call will not be capable of seeing what is being drawn nor can they fully participate. These outside participants are not able to interact and provide their own input. Furthermore, the content is not easily captured for the future and cannot be referenced for follow ups.
Therefore, an extension to a proximity session mobility system and method is needed that facilitates the seamless exchange of media content and interaction between different devices within a network. These, as well as other related advantages, will be described in the present disclosure.
BRIEF DESCRIPTION OF DRAWINGSThe novel features believed to be characteristic of the disclosure are set forth in the appended claims. In the descriptions that follow, like parts are marked throughout the specification and drawings with the same numerals, respectively. The drawing figures are not necessarily drawn to scale and certain figures can be shown in exaggerated or generalized form in the interest of clarity and conciseness. The disclosure itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will be best understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings, wherein:
FIG. 1 is an exemplary system for sharing information between devices within proximity in accordance with one or more aspects of the present disclosure;
FIG. 2 is a flow chart depicting illustrative procedures for setting up devices in accordance with one or more aspects of the present disclosure;
FIG. 3 is a flow chart depicting illustrative procedures for establishing a communication channel between devices in accordance with one or more aspects of the present disclosure;
FIG. 4 is a flow chart depicting illustrative procedures for sharing information on a user interface provided by an exchange agent module in accordance with one or more aspects of the present disclosure;
FIG. 5 is an exemplary system for providing a multimedia session through a streaming server in accordance with one or more aspects of the present disclosure;
FIG. 6 is a flow chart depicting illustrative procedures for providing a streaming session in accordance with one or more aspects of the present disclosure;
FIG. 7 is an exemplary system for providing a reverse lookup to establish a communication channel in accordance with one or more aspects of the present disclosure;
FIG. 8 is a flow chart depicting illustrative procedures for setting up the communication channel using reverse lookup in accordance with one or more aspects of the present disclosure;
FIG. 9 is a sequence diagram depicting illustrative procedures for seamlessly enabling WiFi® communications between a stationary multimedia phone device and a mobile phone in accordance with one or more aspects of the present disclosure; and
FIG. 10 is a sequence diagram depicting illustrative procedures for sharing information from a mobile device to participants in a conference call in accordance with one or more aspects of the present disclosure.
DESCRIPTION OF THE DISCLOSUREThe description set forth below in connection with the appended drawings is intended as a description of presently preferred embodiments of the disclosure and is not intended to represent the only forms in which the present disclosure can be constructed and/or utilized. The description sets forth the functions and the sequence of steps for constructing and operating the disclosure in connection with the illustrated embodiments. It is to be understood, however, that the same or equivalent functions and sequences can be accomplished by different embodiments that are also intended to be encompassed within the spirit and scope of this disclosure.
Generally described, the present disclosure relates to communications. More specifically, this disclosure relates to proximity session mobility. In one illustrative embodiment, a system and method for seamless exchange and interaction of multimedia content between communication devices in a network are disclosed. The method can include the discovery and identification of devices within proximity of a sending device. The found devices can be authenticated through unique identifiers established during registration. Connection requirements can be determined based on the identifiers associated with the found devices and the sending device. In turn, the sender can establish a connection with the found devices using the connection requirements. The exchanged content can be, but is not limited to, multimedia based information, applications, contacts, virtual desktop sessions, remote desktop sessions or virtual mobile sessions. The sending device can share or serve as a remote control to redirect and navigate the content, with a simple action or a gesture command, to the found device. The shared multimedia content, can either reside on the sender's mobile device or on a remote server within a connected network. The multimedia sharing supports one-to-one and one-to-many topologies.
As an extension to the system and method, telephony applications can be tied in with session mobility. For example, whiteboards on each of the devices can be integrated seamlessly. The mobile phone can also act as a remote control to bring contacts into the conference call thereby leveraging the mobile phone's native interface without the need to know the destination number of the conference device. Participants being brought into the conference can be provided with the proper context of the current interaction/presentation. Context information can be shown visually or presented audibly. In addition, the conferencing appliance can turn into a temporary WiFi® access point or end point for conveniently connecting the user's mobile device to a corporate network in a restricted and secured way.
Numerous advantages can be offered by the illustrative embodiment described above. Logging into a remote device before sharing or sending information has been removed as well as credential exchanges required prior to collaboration. In addition, the device can be used as a remote control to redirect the session and to navigate the interaction within a new destined session. The proximity sessions mobility is not restricted to just sharing of multimedia but potentially can be used to instantly transfer information from one small and low end device to a larger and higher display quality device for appeal and visual effect enhancements. Bidirectional collaborative interaction can be achieved with devices that have different makes and models within a connected network. The remote device along with white boarding capabilities can be used for enhancing conference capabilities. Many additional advantages of the present disclosure will become apparent to those skilled in the relevant art as provided for in the following description.
Exemplary systems for exchanging content will be described inFIGS. 1,5 and7.FIGS. 2 through 4 will provide exemplary procedures for establishing a communication channel between devices.FIG. 6 discloses procedures for establishing a streaming session between devices whileFIG. 8 provides procedures for a reverse lookup for proper identification of a receiver.FIG. 9 discloses procedures for seamlessly enabling a WiFi® communication between devices andFIG. 10 provides procedures for white boarding from a mobile device to share information to the participants on the call. In this disclosure, devices can be referred to as communication devices that can be mobile or not. These devices can include tablets, mobile phones, smartphones, personal digital assistants, handheld computers, standalone computers, conference devices or the like. The communication devices can also be referred to as sending devices and receiving or found devices.
Turning now toFIG. 1, anexemplary system100 for sharing information betweencommunication devices106 and110 within proximity in accordance with one or more aspects of the present disclosure is provided. Thesystem100 can include anidentity server module104 operating on aserver102 that can be wirelessly connected to a plurality ofcommunication devices106 and110 havingexchange agent modules108 and112. Communications between them can be facilitated through awireless interface114 distributed within proximity of thedevices106 and110. Fewer or more components can be represented within thesystem100 and are not limited to those shown. For example, while twodevices106 and110 have been provided, many more can be shown each interconnected with one another through communication channels defined by theidentity server module104.
Proximity session mobility can be applied to anydevices106 and110. It is desirable or often necessary for applications to share data between these services. Themodules108 and112, or at least components thereon, can be used as add-ons to existing applications ordevices106 and110. For example, theexchange agent modules108 and112 running thereon can be downloaded onto existing mobile phones and or added to conference phones. Thewireless interface114, in association with theidentity server module104 on theserver102, can connect components within thesystem100. Communications between thedevices106 and110 and to theserver102 can be facilitated through theinterface114. Theinterface114 can connect with theserver102 wirelessly or through a wireline connection.
Continuing withFIG. 1, theidentity server module104 can operate on atraditional server102. Theserver102 can include an operating system and software instructions, memory, at least one processor and a network interface. The server can process requests and typically handle high volumes of transactions and large amount of queries for communication and data processing. Theidentity server module104 can provide information such as a device's name, number, Internet Protocol (IP) address and potentially, location. Themodule104 can also provide a mechanism by which thedevices106 and110 can establish a communication channel. The location of thedevices106 and110 can be determined by observing one device paired with a static device such as a conference phone. The location information can be used to enhance the session experience by leveraging what the area has to offer, for example, local printers. This information can be used to populate presence information.
Theexchange agent modules108 and112 on thecommunication devices106 and110 can be responsible for identifying devices in proximity and managing the sharing protocol. Operationally, each of thedevices106 and110 can maintain a wireless interface for communication with one another and theidentity server module104 on theserver102. Referring toFIG. 2, a flow chart depicting illustrative procedures for setting up thesedevices106 and110 in accordance with one or more aspects of the present disclosure is provided. The procedures can begin atblock200. Theexchange agent modules108 and112 can be downloaded or pre-installed on each of thedevices106 and110. Thecommunication devices106 and110 can register with theidentity server module104 which assigns the device a unique device address or identifier. These identifiers can be referred to as tokens with usages for these tokens becoming apparent from the disclosure provided below. Thedevices106 and110 can be registered with themodule104 using a number of different techniques.
Once activated, theexchange agent module108 on the sendingdevice106 can scan fordevices110 atblock202. Theexchange agent module108 on the sendingdevice106 can scan for nearby devices to identify available receivingdevices110 within proximity. Numerous types of scanning techniques can be used by the sendingdevice106. The scanning techniques can include near field communications (NFC), Bluetooth™, graphical tag recognition, facial recognition and global positioning system (GPS) signaling or wireless networks, depending on the options and the state (on/off) of protocols available on the receivingdevices110. A combination of these techniques can be implemented and used by the sendingdevice106.
Information about receivingdevices110 can be reported back to the sendingdevice106. These founddevices110 can be displayed on a graphical display of the sendingdevice106 along with any other information about the receivingdevices110 in proximity with proper user identity which is stored in theidentity server102. For example, the sendingdevice106 can locate a number of different devices in proximity, but only those that have registered with theidentity server module104 are shown on the display of the sendingdevice106. After scanning is completed, theexchange agent module108 on the sendingdevice106 now has a unique token for founddevices110. Atblock204, these tokens are retrieved. These unique tokens as described earlier can be the information that was provided by theidentity server module104 when thedevices110 were registered. These tokens can then be sent to theidentity server module104 atblock206. Theidentity server module104 can pull up information or communicate with alldevices106 and110 given that the identifiers for them are known. The procedures can end atblock208.
In one embodiment, theidentity server module104 can send or push updates to knowndevices106 and110 so that they can communicate with each other. This can include auto pairing the Bluetooth™ radios on thedevices106 and110 using theidentity server module104 as a mediator. Uniform resource links or IP addresses for thecommunication devices106 and110 can be sent to another device.
When the receivingdevice110 has been located, communication between the sendingdevice106 and the receivingdevice110 can be established and more specifically, theexchange agent modules108 and112 therein.FIG. 3 is a flow chart depicting illustrative procedures for establishing a communication channel between thedevices106 and110 in accordance with one or more aspects of the present disclosure. The procedures can begin atblock300. Theexchange agent module108 on the sendingdevice106 can use the previously identified information to validate the receivingdevice110 with theidentity server module104 and collect more information for connection requirements.
Atdecision block302, the sendingdevice106 can determine whether the receivingdevice110 within the previous scan was registered properly. The receivingdevice110 should have been registered, as guest or known account, with theidentity server module104 on theserver102 prior to communicating with the sendingdevice106. Within a connected network, it is assumed that all thecommunication devices106 and110 are already authenticated, and each device is dynamically assigned a unique identifier, i.e. an IP address, Media Access Control (MAC) address, electronic mail address or phone number so that they can be discovered by other devices.
When the receivingdevice110 has not been registered, thedevice110 can be prompted to register as a guest when the device enters into thesystem100 or detected by thewireless interface114 atblock304. Theidentity server module104 can also provide a temporary tag which acts as an identifier for thedevice110 atblock306. In one embodiment, the assigned tag can be used by other devices, for example, via a camera scanning method. The tag can contain an address or a Uniform Resource Identifier (URI) referencing the other device. It can also be used to derive the address or URI via a reverse lookup. The temporary guest account can also be established for the sendingdevice106 and can be setup through similar methods.
Atblock308, theidentity server module104 can receive identification of a sendingdevice106 from an incoming query. Theidentity server module104 can know the identification of both parties through the query. The first identification can be obtained from the incoming query which contains the identification such as the token, IP address, MAC address etc. of the sendingdevice106. The identification of the receivingdevice110 can be obtained from the message payload which contains the identifier for the receivingdevice110 atblock310. With both identifications known, theidentity server module104 can initiate a background operation to link both devices via a communication channel at block312. Theexchange agent module108 on the sending device can then establish the sharing connection with theexchange agent module112 on the receivingdevice110. The procedures can end atblock314.
The channel established between the sendingdevice106 and the receivingdevice110 can either be peer-to-peer or client-server based. In one embodiment, the communication channel between thedevices106 and110 is accomplished via a Transmission Control Protocol (TCP)/User Datagram Protocol (UDP) connection or Short Message Service (SMS) messaging. The connection can be terminated either by the sendingdevice106 or by a proximity detection mechanism or remotely via an administrative interface on theserver102 having theidentity server module104. In one embodiment, activity on the sendingdevice106 can be monitored by the receivingdevice110 oridentity server module104 such that after a period of inactivity the session can be closed. Alternatively, the sendingdevice106 can disconnect itself after the period of inactivity.
Content can be provided or shared between the sendingdevice106 and receivingdevice110.FIG. 4 is a flow chart depicting illustrative procedures for sharing information on a user interface provided by anexchange agent module108 in accordance with one or more aspects of the present disclosure. The procedures can begin atblock400. With a connection established, a graphical display can show depictions of the identified or receivingdevice110 so that a user of the sendingdevice106 can either drag the application or media to be shared to the receivingdevices110 or drag the receivingdevices110 to the application or media to be shared atblock402. Instructions can be provided on the display of the sendingdevice106.
Atdecision block404, the sendingdevice106 can determine whether the user has dragged thedevice110 to the application or the application to thedevice110. The display can provide graphical representations of both. Atblock406, when the receivingdevice110 is dragged to the application, the sendingdevice106 provides read only content to the receivingdevice110. When the application is dragged to the receivingdevice110, atblock408, the sendingdevice106 provides content which can be presented as read and write enabled to the receivingdevice110. Other techniques can be implemented for content sharing. For example, a menu or button click can replace the dragging technique. The procedures can end atblock410.
When receiving static content, the receivingdevices110 can view and discard the provided information from the sendingdevice106. In one embodiment, the receivingdevices110 can save the content if the sendingdevice106 allows it prior to starting the shared session. For dynamic content, the receivingdevice110 can edit, discard or push back the content to the sender or vice versa.
The proximity session mobility feature can, be disabled remotely from theserver102 having theidentity server module104 in case of a lost or stolen device. Theexchange agent modules108 and112 on thecommunication devices106 and110, or at least a portion thereof, can be implemented as a background service. The background service can wait for input from either theidentity server module104 or associated/paired devices. This can allow theexchange agent modules108 and112 to be passive and do much if not all of the work with minimal user interaction.
To illustrate proximity session mobility, anexemplary receiving device110, in the form of a conference phone, and a sendingdevice106, in the form of a mobile phone, is presented. When themobile phone106 equipped with anexchange agent module108 is pointed at theconference phone110, also having anexchange agent module112, theconference phone110 can display a graphical representation of themobile phone106 in proximity as an identified device that can be shared. The user can push a button on theconference phone110 to confirm and their virtual remote desktop can show up on theconference phone110. The user of themobile phone106 can either use the conference phone keyboard to navigate the multimedia session or use theexchange agent module108 to control the navigation. To terminate the sharing session, the mobile phone user can either initiate a disconnect action from theexchange agent module108 on themobile phone106, or just allow out-of-range proximity detection to be activated by walking away from the conference room with the device.
Once session mobility can be established between a sendingdevice106 and areceiving device110, in the form of a conference appliance, not only can the user of the sendingdevice106 control the presentation on the receivingdevice110, but they can also initiate a request to bring in their own contacts. For example, the sendingdevice106, from their mobile device's native interface or from a cloud network access application such as Google Mail®/contact feed, can import in data or contacts that can be connected into the conference call without actually making a phone call from the sendingdevice106 to a new user. Furthermore, the sendingdevice106 typically does not need to know the conference call number.
The newly invited user can receive the call alert. In addition, the user can receive the context in which the conference call takes place. For example, caller information (i.e. the name of mobile device owner instead of the caller id of the conference device), meeting participants, meeting topic/subject and the current discussion point such as a snap shot of the current presentation, can be provided to the newly invited party. Participant information can be presented in a number of forms. This information can be pulled off a centralized server and provided to the user.
Telephony applications can be tied in with session mobility by using themobile phone106 as a remote control to bring contacts to the conference call leveraging the mobile phone's native interface without the need to know the destination number of theconference device110. Participants being brought into the conference can be provided with a proper context of the current interaction/presentation. Context information can be shown visually or presented audibly. The mobile user should be able to bring in more participants to the conference using their native mobile phone contacts without requiring the mobile telephony channel since themobile phone106 is acting as a remote control.
Theidentity server module104 can prevent somedevices106 from acting like remote controls and instead limit the scope of these devices, for example, a device can be delegated to a speaker such that those participants further away from the receivingdevice110 would be able to hear the conversation for the conference. The device can be prevented from enacting white boarding techniques. Other designations can be used to distinguishdevices106 connected with the receivingdevice110 to limit their interactions with it.
After the mobile user starts dialing a contact, theexchange agent module108 on the sendingdevice106 can intercept the dialing process and collect the contact information for that number. The contact can be automatically added into the conference, after being authorized by the user of thedevice106.
In one embodiment, after selecting a contact from their native contact application, the user can have the option to add a chosen contact directly into the conference without dialing their number, since theexchange agent module108 on the sendingdevice106 can extend the native contact application. The user can choose a contact from an aggregate list displayed in the user interface of theexchange agent module108. This aggregate list can be a combination of local mobile device contacts, cloud-based contacts and enterprise contacts. This information can then be proxied to the receivingdevice110 via theidentity server module104. The receivingdevice110 can then request a proxy dialing via consultation call. Theexchange agent module112 on the receivingdevice110 can have the necessary information about the current call, participants, context, etc. that can be passed to the newly invited contact via a data channel or text-to-speech (TTS) audio.
Turning toFIG. 5, anexemplary system500 for providing a multimedia session through astreaming server502 in accordance with one or more aspects of the present disclosure is provided. Thesystem500 can include anidentity server module104 operating on aserver102 that can be wirelessly connected to a plurality ofcommunication devices106 and110 havingexchange agent modules108 and112. Communications between them can be facilitated through awireless interface114 distributed within proximity of thedevices106 and110. For the case of using a mobile device as a remote control to redirect and navigate a remote session, thesystem500 is the same as above with the addition of thestreaming server502 andstreaming proxy506. Fewer or more components can be represented within thesystem100 and are not limited to those shown.
Through the addition of thestreaming server502 andstreaming proxy506, theprevious system100 can be altered for other applications such as video streaming redirection using the sendingdevice106 as a remote control. For example, the user of the sendingdevice106 can simply beam itself through itsexchange agent module108 to areceiving device110, which can be in the form of a video conferencing unit. Theconferencing unit110 can be connected to a monitor or projector that displays the sending device's desktop session for presentation to the rest of the participants. The streamingserver502 can operate on a traditional server. The server can include an operating system and software instructions, memory, at least one processor and a network interface. The server can process requests and typically handle high volumes of transactions and large amount of queries for communication and data processing.
The streamingserver502 can be managed through thestreaming proxy506. Thestreaming proxy506 described herein can be implemented as logical operations and/or modules attached to theserver502 or can be implemented on a separate physical component itself. Through thesystem500, the sendingdevice106 can be the user's link to their workspace or session. As the user moves, they retain the ability to project, forward and recall their session to and from other receivingdevices110.
A multimedia session can be a remote desktop session such as VMware View™. The streamingserver502 can be responsible for serving the multimedia data to a remote location. In operation, the streamingserver502 can use a Remote Desktop Protocol (RDP), Personal Computer over Internet Protocol (PCoIP), Virtual Network Computing (VNC), etc. Thestreaming proxy506 can be responsible for redirecting and multicasting the traffic to a newer location identified by theexchange agent module108.
The redirection technique employs two alternatives. In one embodiment, thestreaming proxy506 can instruct thestreaming server502 to stop the current streaming and start a new one to a new end point destination address. Alternatively, thestreaming proxy506 can redirect the streaming data between the streamingserver502 and the new end point devices. Once the remote session is displayed at the receivingdevice110, the sendingdevice106 can either let the receivingdevice110 navigate the session or alternatively the sendingdevice106 can control the navigation via itsexchange agent module108. When there are multiple receivingdevices110, only the sendingdevice106 can navigate the content unless the control is passed to another receivingdevice110.
Referring toFIG. 6, a flow chart depicting illustrative procedures for providing a streaming session in accordance with one or more aspects of the present disclosure is provided. The procedures can begin atblock600. The procedures described herein can be interchanged and are not limited to the disclosed embodiment. Initially, the streamingserver502 can be serving content to the remote desktop session on thePC504 as depicted inFIG. 5.
To control the streaming session, the receivingdevice110 can register with theidentity server module104, which assigns thedevice110 to a unique address. Theexchange agent module108 on the sendingdevice106 can scan for nearby devices to identify available receivingdevices110 within proximity. Theexchange agent module108 on the sendingdevice106 can use the identified information to validate with theidentity server module104 operating on theserver102. Theidentity server module104 can collect more information for the reconnection requirements.
In turn, a sender operating the sendingdevice106 can press a share button which activates the request to thestreaming proxy506. Atblock602, thestreaming proxy506 can receive the activation request. Thestreaming proxy506 can provide the request to thestreaming server502 for redirection with provided destination information atblock604. The streamingserver502 can disconnect the connection to thePC504 atblock606 and start streaming the remote session to the receivingdevice110 atblock608. The procedures can end atblock610.
To illustrate streaming sessions, aPC504 can initially display a virtual or physical desktop session running from their work station. When the user comes to a conference room and wants to show their presentation which is on their virtual or physical remote desktop, the user can point theirmobile device106 to theconferencing device110 with the installedexchange agent module108. Theexchange agent module108 on themobile device106 can display a graphical representation of theconferencing device110 in proximity as an identified device that can be shared. The user can direct theexchange agent module108 on themobile device106 to initiate a sharing session. In turn, the user's virtual or physical remote desktop can start projecting on the conference device's screen. The user can then either use the conference device's keyboard to navigate the presentation or use their same mobile phone application to control the navigation.
In one embodiment, the multimedia session can be recorded on a server and or transcoded in real-time. This can allow other participants without the required clients to view the multimedia content in a read only mode. For example, the video can be broadcasted to an authenticated or anonymous web server. The video can then be rendered via an HTML5 video tag and displayed natively in any HTML5 browser without the need for plugins or the like.
The sendingdevice106 can provide additional input to the session in the form a remote pointer. When the receivingdevice110 registers to a private branch exchange (PBX) as a phone device, such as a session initiation protocol (SIP) phone, the extension can be used to do a reverse look up for the device's address. In this case, the extension can be programmed in a user sending device's contact list. The mobile application on the sendingdevice106 then can be extended to allow a sharing action in addition to the normal list of actions such as dial, chat, etc. This sharing action can provide seamless sharing session activation.
FIG. 7 is anexemplary system700 for providing a reverse lookup to establish a communication channel in accordance with one or more aspects of the present disclosure. Thesystem700 can include anidentity server module104 operating on aserver102 that can be wirelessly connected to a plurality ofcommunication devices106 and110 havingexchange agent modules108 and112. Communications between them can be facilitated through awireless interface114 distributed within proximity of thedevices106 and110. Fewer or more components can be represented within thesystem100 and are not limited to those shown.
In one embodiment, reverse lookup can occur through a Quick Response (QR)code702 that can be associated with the receivingdevice110. TheQR code702 can be a matrix barcode readable by a dedicated reader provided on the sendingdevice106. Thecode702 can consist of black modules arranged in a square pattern on a white background. Other methods known to those skilled in the relevant art can be used to identify a user of the receivingdevice110. For example, the receiver can be detected through facial recognition using aphoto704 provided on thedevice110 or through a picture taken by the sendingdevice106.
FIG. 8 is a flow chart depicting illustrative procedures for setting up the communication channel using reverse lookup in accordance with one or more aspects of the present disclosure. The procedures can begin atblock800. Atblock802, the sendingdevice106 can scan for receivingdevices110. In one embodiment, the sendingdevice106 can scan for theQR code702 associated with the receivingdevice110. Alternatively, or in combination therewith, the sender can take a picture of the user's face or use thephoto704 provided on the receivingdevice110. In turn, a request can be built for theidentity server module104 that includes the receiving device's110 tokens or other identification. The request can then be provided to theidentity server module104 atblock804.
Theidentity server module104 can receive the request and perform a reverse lookup based on the token or identification in the request. In the case of aphoto704, theidentity server module104 operating on theserver102 would data mine a picture database using various facial recognition algorithms known to those skilled in the relevant art. When theidentity server module104 is unable to verify with a certain degree of precision who is within thephoto704, a list of top candidates can be sent back to the sendingdevice106 along with their thumbnails. Theexchange agent module108 can then provide a mechanism for the user to pick the correct candidate via a click, gestures etc. On failure to establish an identity for either client, theidentity server module104 can return a corresponding failure to the sendingdevice106 and the receiver is left untouched.
When aQR code702 is used, thecode702 can be sent to theidentity server module104 to be evaluated after retrieved by the sendingdevice106. Alternatively, theexchange agent module108 operating on the sendingdevice106 can be used to identify the receivingdevice110. If the identity cannot be determined; a failure indicator is provided back to the sendingdevice106. A combination of techniques for reverse lookup can be used.
Atdecision block806, the sendingdevice106 can determine whether theidentity server module104 has successfully identified the receivingdevice110. This is generally provided by a successful indicator given by theidentity server module104. When theidentity server module104 cannot determine the user of the receivingdevice110, the sendingdevice106 can provide a failure indicator to the sender atblock808. Upon successful identification, however, theidentity server module104 would know how to communicate with bothdevices106 and110 since their network addresses would be stored in its database. Theidentity server module104 can act as a broker between bothdevices106 and110 in order to establish a communication channel atblock810.
If the channel is over WiFi®, it can forward initializations commands to eachexchange agent module108 and112. These commands can include listening and allowing connections from the verified peer addresses. When the channel is over Bluetooth™, theidentity server module104 can automate the pairing such that user input is minimized. The commands sent from theserver102 to thedevices106 and110 can involve, but are not limited to, enabling auto-discovery on thedevices106 and110, obtaining information about perimeter devices from eachexchange agent module108 and112, filtering out devices which are not part of the transaction, i.e. that are not the sendingdevice106 or the receivingdevice110 and automatically pairing thedevices106 and110. Bothexchange agent modules108 and112 can now communicate over an established data channel. The procedures can end atblock812.
Returning toFIG. 1, thesystem100 can contain at least three main modules, namelyexchange agent modules108 and112 and theidentity server module104. Theexchange agent module108 on themobile device106 can be responsible for identifying devices in proximity and manage the sharing protocol. For purposes of illustration, the sendingdevice106 can be the user mobile device while the receivingdevice110 can be a conferencing appliance which can act as a SIP conferencing end point to a switch.
Theidentity server module104 can provide information toconnected devices106 and110 such as a device name, number, IP address presence, contact information and potential location. As described above, theidentity server module104 can also provide mechanisms by which thedevices106 and110 can establish a communication channel. Theidentity server module104 can also provide a temporary tag which acts as an identifier for the device. The tag can contain an address or URI referencing the other device. It could also be used to derive the address or URI via a reverse lookup. When queries are received, theidentity server module104 knows the identification of both parties. The first identification can be obtained from the incoming query which contains the identification of the sendingdevice106 such as a token, IP/MAC address, etc. The second identification can be obtained from the message payload and can contain the identification for thesecond device110. With both identifications known, theidentity server module104 can initiate background operations to link bothdevices106 and110 via a communication channel.
FIG. 7 also depicted a process to establish a WiFi® data channel between twomobile devices106 and110. The sendingdevice106 can scan theQR code702 from theremote device110 or takes a picture of the user's face and build a request for theidentity server module104. Theidentity server module104 can receive the request and perform a reverse lookup based on the token or identification in the request.
On successful identification, theidentity server module104 can communicate with bothdevices106 and110 since their network addresses can be stored in its database. Theidentity server module104 can act as a broker between bothdevices106 and110 in order to setup a communication channel. The receivingdevice110, which can be a conferencing appliance, can be turned into an access point and theexchange agent module108 on the sendingdevice106 can receive initialization commands. These commands can include listening and allowing connections from the verified peer address. After, bothexchange agent modules108 and112 can communicate over an established data channel.
With a communication channel established, the systems described above can be extended. Telephony and data applications can be further integrated within a mobility session to provide enhanced values and a seamless experience to the end users using or interacting with multimedia appliances. For example, once a mobility session has been established between adevice106 and aconferencing appliance110, contacts from thedevice106 can be imported into the conference. While using theirmobile device106 to control the presentation on theconferencing appliance110, a user can initiate a request to bring in their own contacts into the conference call facilitated by theappliance110 without actually making a phone call from thedevice106 to the imported contact or needing to know the conferencing appliance's phone number. The imported contact, on the other hand, can receive the call alert with a context of the conference. The context can include caller information, meeting participants, meeting topic/subject and the current discussion point such as a snap shot of the current presentation.
This is an extension to a system and method for seamless exchanging and interacting of multimedia content between mobile devices in a network. Operations on the guest's mobile/tablet device106 can provide automation and seamless access application features that can be used to enhance productivity and interaction efficiency while containing data transfer cost. The systems can be altered for other applications between the mobile andtablet devices106. Typically, a guest mobile user does not download an enterprise specific mobile application in order to use session mobility.
Allowing seamless enterprise WiFi® access to an unknown or untrustedmobile device106 is not trivial. Theconferencing appliance110, in the case of an established session mobility, can be programmed to enable an access point from which guest mobile devices can have a temporary direct WiFi® access in a controlled method such that data security to an enterprise is not compromised.
In one embodiment, the extended system and method provides the ability to tie in telephony applications with session mobility by using themobile device106 as a remote control to bring contacts to a conference call leveraging a mobile phone's native interface and without the need to know the destination number such as theconferencing appliance110. Participants being brought into the conference can be provided with a proper context of the current interaction/presentation. Context information can be shown visually or presented audibly.
Theconferencing appliance110 can be an access point from which guest mobile users can have WiFi® connectivity without the need of temporary access identifications or manual registration. Thisconferencing appliance110 access point can proxy temporary data traffic between themobile device106 and theidentity server module104 thus containing the risk of unwanted data access to the rest of the enterprise. WiFi® access enablement for the guestmobile device106 can also be accomplished automatically as part of session mobility interaction. Once session mobility is established, the guest user can initiate a request to transfer data file from the mobile/tablet device106 or from the cloud onto the virtual desktop session of theconferencing appliance110 leveraging either WiFi® connectivity or a backend server connection to the cloud, thus incurring no mobile data cost.
When carrier traffic is not an issue and WiFi® is not required, the sendingexchange agent module108 can continue to use the carrier network to communicate to theidentity server module104 since it resides on the network edge. When that user enters the enterprise, they are able to use functions of the system. This can alleviate many of the security concerns with regards to untrusted/unknown clients on private networks. Since theidentity server module104 can act like a broker/proxy, remote sending clients can be unaware that receiving clients reside on the private network. This can provide a mechanism to access private networks in a secure fashion while remaining simple and intuitive to the user, for example, uploading a file to a view instance. When using thin clients, this can also provide a way to access a private network without the need to install native thick clients, for example, scanning the barcode on the device, entering the URL or indirectly accessing the network from the browser.
FIG. 9 is a sequence diagram depicting illustrative procedures for seamlessly enabling WiFi® communications between a stationarymultimedia phone device110 and amobile phone106 in accordance with one or more aspects of the present disclosure. It is not trivial to allow seamless enterprise WiFi® access to an unknown/untrustedmobile device106. However, theconferencing appliance110, in the case of an established session mobility, can be programmed to enable an access point from which guestmobile devices106 can have a temporary direct WiFi® access in a controlled method such that data security to an enterprise is not compromised.
After a communication channel is established, the processes for providing a WiFi® connection can begin when the senderexchange agent module108 enables WiFi® access atprocess902. Theguest device106 having theexchange agent module108 can automatically make a request to theidentity server module104, after the establishment of a mobility session, to switch from 3/4G connectivity to WiFi® access seamlessly. Other carrier services can be used to enable the WiFi® access.
Atprocess904, theidentity server module104 can forward the request to the receivingexchange agent module112 on theconferencing appliance110. The request can be proxied to the receiverexchange agent module112. The receivingexchange agent module112 can enable a WiFi® mechanism for connecting withdevices106 atprocess906. Theexchange agent module112 can generate a random service set identifier (SSID).
Continuing withFIG. 9, atprocess908, the receiverexchange agent module112 can report the status of the WiFi® connection to theidentity server module104. If themodule112 failed to establish a WiFi® connection, themodule112 can indicate to the senderexchange agent module108 to continue to use its 3/4G connection. Otherwise, theexchange agent module112 can report the successful connection by sending the randomly generated SSID and connection parameters to theidentity server module104. Typically, the connection parameters can include an encryption algorithm for securing the communications between the sendingdevice106 and theconferencing appliance110.
The SSID can be sent to theexchange agent module108 of the sendingdevice106 by theidentity server module104 atprocess910 along with the success indicator. A WiFi® reachable address for theidentity server module104 can be provided to the sendingexchange agent module108 with the connection parameters including encryption algorithms. Theexchange agent module108 on the sendingdevice106, atprocess912, can enable the WiFi® connection through the given connection parameters and the SSID. The 3/4G connection can be dropped in favor of a new re-established WiFi® connection with theidentity server module104 via the new address. This can remove costs associated with the 3/4G connection. For security purposes, the signal strength from theconferencing appliance110 having the receiverexchange agent module112 can be controlled and fine tuned to an appropriate power level range which can confine the WiFi® access zone.
As an extension to the systems and methods described above, themobile phone106 can turn into a touchpad device that can also be used as a white boarding tool to project hand drawings to the conference participants without the need of additional software tools. Remote users can also view the whiteboard and interact with it. Theexchange agent module108 can turn the screen on the sendingdevice106 to a touch pad for controlling the navigation of the content on the receivingdevice110. This touch pad can also act as a whiteboard where hand drawings can be rendered into recognizable images and projected, by a push of a button, to the receivingdevice110 via a web interface without the need of launching other external whiteboard applications.Exchange agent modules108 onmultiple devices106 can be native, thin or a combination of both.
Turning toFIG. 10, a sequence diagram depicting illustrative procedures for sharing information from amobile device106 to participants in a conference call in accordance with one or more aspects of the present disclosure is provided. The senderexchange agent module108 can turn the screen of the sendingdevice106 to a touch pad for controlling the navigation of the content on the receivingdevice110. In one embodiment, thedevice106 is not given full control of the content. Instead, the content can be managed by an administrator, for example, a party that can but does not necessarily have to be near theconferencing appliance110.
White boarding activities can begin atprocess1002 where a request to start activity can be provided to theidentity server module104 from the senderexchange agent module108. Theidentity server module104 can broadcast the request to exchange agent modules onconnected devices106 as well as that of theconferencing appliance110 atprocess1004. Theexchange agent module112 on theconferencing appliance110 can determine whether to connect with thedevice106 sending the request.
When theconferencing appliance110 does not or cannot accept the request, a message can be provided to thedevice106 through theidentity server module104 indicating reasons why its request was denied. For example, theappliance110 can indicate that too many users are connected with theappliance110. Theappliance110 can also indicate that the user of thedevice106 does not have proper permissions or settings to whiteboard with thecollaboration appliance110. If successful, however, thecollaboration appliance110 can report the success by providing a message to theidentity server module104 atprocess1006. Theidentity server module104 can then forward the successful indicator through proxy to the senderexchange agent module108 atprocess1008.
Atprocess1010, the touch pad on the sendingdevice106 can allow hand drawings that can be rendered into recognizable images and projected, by a push of a button, to the receivingdevice110 via a web interface without the need of launching other external whiteboard applications. The senderexchange agent module108 can be native, thin or a combination of both. When sending over constructs, traffic can be minimized by not sending every point detected in a gesture or motion event. For example, instead of sending a series of points for a drawn circle, the type of circle can be sent along with its center coordinates and radius. This can yield clear visuals while providing a mechanism to export this data into an offline document for further manipulation, instead of a simple PNG/PDF, etc.
Atprocess1012, theexchange agent module108 on the sendingdevice106 can send the hand drawings or recognized constructs to theidentity service module104. Theidentity service module104 can then provide those interactions on the whiteboard to peers of thedevice106, for example, otherconnected devices106 to theconferencing appliance110. As shown inFIG. 10, changes can be sent to theconferencing appliance110 where it can then be distributed to otherconnected devices106. Theidentity server module104 can provide the hand drawings or constructs to the receiverexchange agent module112 atprocess1014.
At theconferencing appliance110, theexchange agent module112 can display in real-time received constructs or hand motions on the whiteboard of its display atprocess1016. Theexchange agent module108 on the sendingdevice106 can be enhanced to allow interaction with the native mobile applications in order to allow file synchronization when the user wants to project a file/presentation from their device to the receivingdevice110 or when they wish to add a contact to the conference.
Beforehand, interactions on the whiteboard of the sendingdevice106 were sent to theconference appliance112 through theidentity service module104. The interactions were then displayed on the whiteboard of theconferencing appliance112. A number of different variations can exist. For example, those interactions received from thesender device106 can be propagated to other devices. Those devices can be connected to theconferencing appliance112 wirelessly through theidentity service module104 or through a network interface. The network interface, in turn, can be connected to outside devices not directly linked with theconferencing appliance110, but through an outside network.
In one embodiment, interactions can be provided directly on the whiteboard of theconferencing appliance112. These interactions can then be distributed todevices106 that also have whiteboards through theidentity service module104. In addition, the interactions can be provided to outside devices, as described above. The motions or gestures can be captured to form constructs. The constructs can then be provided to those devices.
To facilitate the distribution of these interactions between the connected devices, theidentity service module104 can continuously update the devices. In one embodiment, theexchange agent modules108 and112 on thedevices106 and110 can indicate whether an update to their whiteboard is available. The user can simply disregard any changes that they have made to their whiteboard in lieu of an update. Indicators showing which party making the update to the whiteboard can be provided to the devices. In one embodiment, changes can also be visible in real-time. Users do not have to commit their changes in order for them to appear on another user's whiteboard. A complete history of whiteboard activities in sequential and time-stamped order can be stored on theidentity server module104 to provide change history functionality with synchronized voice playback (if voice recording is enabled). This can provide rewind/fast forward functionalities and turn whiteboard sessions into instant webcasts for internal use.
Themobile device106 can be used as a remote control to bring personal contacts to a conference. When the initial connection has been established between thedevice106 and theconferencing appliance110, other contacts can be added. After the mobile user starts dialing their contact, theexchange agent module108 on thesender device106 can be used to intercept the dialing process and collect the contact information for that number. The contact number can be provided to the receiverexchange agent module112 on theconferencing appliance110 where the contact can be added into the conference. More than one contact can be added at a time.
In one embodiment, a list of contacts can be provided on a native contact application on thedevice106 instead of a call being made to the contact. After selecting a contact from their native contact application, the user can have the option to add the chosen contact directly to the conference, since theexchange agent module108 can extend the native contact application. The user can choose a contact from an aggregate list displayed in the user interface of theexchange agent module108. This aggregate list can be a combination of local mobile device contacts in addition to cloud based contacts and enterprise contacts.
This information can then be proxied to the receivingdevice110 via theidentity server module104. Theconferencing appliance110 can then request a proxy dialing via consultation call. Theexchange agent module112 on the receivingdevice110 can have the necessary information about the current call, the participants, the context, etc. that can be passed to the newly invited contact via data channel or TTS audio.
The technology described herein can be implemented as logical operations and/or modules. The logical operations can be implemented as a sequence of processor-implemented steps executing in one or more computer systems and as interconnected machine or circuit modules within one or more computer systems. Likewise, the descriptions of various component modules can be provided in terms of operations executed or effected by the modules. The resulting implementation is a matter of choice, dependent on the performance requirements of the underlying environment in which the described disclosure is implemented. The logical operations making up the embodiment of the disclosure described herein are referred to variously as operations, steps, objects, or modules. It should be understood that logical operations can be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
Various embodiments of the present disclosure can be programmed using an object-oriented programming language, such as SmallTalk, Java, C++, Ada, or C#. Other object-oriented programming languages can also be used. Alternatively, functional, scripting, and/or logical programming languages can be used. Various aspects of this disclosure can be implemented in a non-programmed environment, for example, documents created in HTML, XML, or other format that, when viewed in a window of a browser program, render aspects of a GUI or perform other functions. Various aspects of the disclosure can be implemented as programmed or non-programmed elements, or any combination thereof.
In software implementations, computer software and/or data is stored on a machine readable medium as part of a computer program product, and is loaded into a computer system or other device or machine via a removable storage drive, hard drive, or communications interface. Computer programs, also called computer control logic or computer readable program code, are stored in a main and/or secondary memory, and executed by one or more processors, controllers, or the like to cause the one or more processors to perform the functions of the disclosure as described herein.
The figures and examples above are not meant to limit the scope of the present disclosure to a single embodiment, as other embodiments are possible by way of interchange of some or all of the described or illustrated elements. Moreover, where certain elements of the present disclosure can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present disclosure are described, and detailed descriptions of other portions of such known components are omitted so as not to obscure the disclosure. In the present disclosure, an embodiment showing a singular component should not necessarily be limited to other embodiments including a plurality of the same component, and vice-versa, unless explicitly stated otherwise herein. Moreover, applicants do not intend for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such. Further, the present disclosure encompasses present and future known equivalents to the known components referred to herein by way of illustration.
The foregoing description is provided to enable any person skilled in the relevant art to practice the various embodiments described herein. Various modifications to these embodiments will be readily apparent to those skilled in the relevant art, and generic principles defined herein can be applied to other embodiments. Thus, the claims are not intended to be limited to the embodiments shown and described herein, but are to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically stated, but rather “one or more.” All structural and functional equivalents to the elements of the various embodiments described throughout this disclosure that are known or later come to be known to those of ordinary skill in the relevant art are expressly incorporated herein by reference and intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims.