CROSS-REFERENCE TO RELATED APPLICATIONSThis application claims priority from European Application No. 10155141.4 filed Mar. 2, 2010, the contents of which are hereby incorporated by reference.
TECHNICAL FIELDEmbodiments described herein relate generally to conference calling, and more specifically to a system and method for facilitating the transfer of a conference call.
BACKGROUNDMost applications for use with mobile devices have been designed to be stand-alone applications, with a centralized email server providing email, a telephony system providing voice services, an instant messenger service allowing short, informal chats, etc. However, it has been recognised that these services or tools may be enhanced and may improve efficiency if greater interaction between such services was facilitated.
Consider a situation in which clicking on an email while at home automatically initiated a call from the user's enterprise PBX (Private Branch Exchange) to the email sender, or launched an IM (Instant Messaging) session from a problem tracking system to allow informal communications between a support engineer and the customer. This inter-working has become known as “unified communications”.
One way to implement a unified communications system within an enterprise. Proprietary protocols may be introduced, “glue” applications may be written to tie together the administration API (Application Programming Interface) published by one company with an equivalent API from another. However, such solutions require substantial effort to introduce inter-operability with services.
One difficulty arises when it is desirous to communicate to a device external to the enterprise. The external device may not receive the same benefits of security and control as those devices within or considered to exist as part of the enterprise.
BRIEF DESCRIPTION OF THE DRAWINGSFor a better understanding of embodiments described herein, and to show more clearly how they may be carried into effect, reference will now be made, by way of example, to the accompanying drawings in which:
FIG. 1A shows a block diagram of a network illustrating the implementation of SIP in a telephony application;
FIG. 1B shows a block diagram of a mobile device in one example implementation;
FIG. 2 shows a block diagram of a communication subsystem component of the mobile device ofFIG. 1B;
FIG. 3 shows a block diagram of a node of a wireless network;
FIG. 4 shows a block diagram illustrating components of a communication system in one example configuration;
FIG. 5 shows a flowchart illustrating steps in a method of facilitating a conference call between a plurality of communication devices in accordance with at least one embodiment;
FIG. 6A shows a schematic diagram illustrating components of a conference call in accordance with at least one embodiment;
FIG. 6B shows another schematic diagram illustrating components of a conference call in accordance with at least one embodiment, upon transfer of a media session from a first primary communication device to a first alternate communication device;
FIG. 7A shows an example user interface as displayed on a mobile communication device for performing conference call control; and
FIG. 7B shows the user interface ofFIG. 7A for effecting transferring of a conference call.
DETAILED DESCRIPTIONSome embodiments described herein make use of a mobile station. A mobile station is a two-way communication device with advanced data communication capabilities having the capability to communicate with other computer systems, and is also referred to herein generally as a mobile device. A mobile device may also include the capability for voice communications. Depending on the functionality provided by a mobile device, it may be referred to as a data messaging device, a two-way pager, a cellular telephone with data messaging capabilities, a wireless Internet appliance, or a data communication device (with or without telephony capabilities). A mobile device communicates with other devices through a network of transceiver stations.
Difficulties in implementing a unified communications system within an enterprise have been recognised and a protocol has been created that allows the establishment, control and release of sessions between users and servers in a generic and extensible fashion. The Session Initiation Protocol (SIP) has been designed and further enhanced through the IETF (Internet Engineering Task Force). The applicants have recognized that SIP provides a flexible environment that can be leveraged to bring unified communications to mobile devices.
SIP is an application-layer control (signalling) protocol for creating, modifying and terminating sessions with one or more participants. These sessions include Internet multimedia conferences, Internet telephone calls and multimedia distribution. Members in a session can communicate via multicast or via a mesh of unicast relations, or a combination of these.
SIP as defined in RFC 2543 and superseded by RFC 3261 is the IETF's standard for multimedia session management. SIP is an ASCII-based, application-layer control protocol that supports user mobility. It is used to establish, maintain, modify and terminate multimedia sessions between two or more end points. It is important to note that SIP provides the control plane for these sessions; the data plane part of the session uses RTP as the transport protocol. There is no requirement that the data plane and control plane follow the same path through the IP domain.
The SIP protocol allows, among other things:
- (a) The determination of the location of the target end point. This is achieved by services such as address resolution, name mapping and call redirection;
- (b) The determination of target end point availability. This not only provides an indication of whether the end point is available, but also if a call cannot be completed because the target end point is unavailable, SIP signalling is used to determine whether the called party is already on the phone or did not answer in the allotted number of rings;
- (c) The determination of the media capabilities of the target end point. By using the Session Description Protocol (SDP), SIP can determine what common services exist between the end points. Thus sessions are established using only the media capabilities that can be supported by all end points;
- (d) The establishment of a session between the originating and target end point;
- (e) The management of the session. This includes the addition of new end points, the transfer of the session between end points, and the modification of the session such as change of codec or the addition of another data stream; and,
- (f) The termination of sessions.
To aid the reader in understanding the implementation of SIP in a telephony application, reference is made toFIG. 1A. An example of a network, shown generally as10, implementing a call from a VoIP phone is shown inFIG. 1A. Illustrated therein is a call originating from amobile device100, discussed in greater detail below, which in this instance is fulfilling the role of User Agent Client (UAC). The call establishment signalling goes via a Back-to-Back User Agent (B2BUA)12 and through a number of User Agent Servers (UAS) such as proxy and redirectservers14 and/or aregistrar server14ato the PBX16 (and ultimately to the receiving phone18) using the SIP signalling. Once the control path is established and the call allowed, the voice media stream is sent via RTP to thePBX16 directly.
FIG. 1A illustrates several different User Agent (UA) roles:
- (a) User Agent Client (UAC)—a client application that initiates the SIP request. Typical clients are soft-phones (PCs that have phone applications) and VoIP based phones such as the BLACKBERRY™ 7270, manufactured by Research in Motion. However, any initiator of an SIP call is a UAC, including network elements such as the B2BUA. Gateways to non-SIP based systems can also act as UACs. A gateway may, for example, map a VoIP based call onto a traditional circuit-switched PBX;
- (b) User Agent Server (UAS)—a server application that contacts the registered user when a SIP request is received and returns a response on behalf of the user. A server may be a proxy, which receives SIP messages and forward them to the next SIP server in the network. Proxy servers can provide functions such as authentication, authorization, network access control, routing, reliable request retransmission, and security. Alternatively a SIP server may act as a redirector, which provides the client with information about the next hop or hops that a message should take and then the client contacts the next hop server or UAS directly. A server also may act as a registrar server, which processes requests from UACs for registration of their current location; and
- (c) Back-to-Back User Agent (B2BUA)—a pair of user agents, one a server and the other a client, that terminates a SIP session on one side and maps SIP requests to a secondary and distinct SIP session on the other side. A B2BUA provides a way to insert custom control into a SIP session between two end points. A B2BUA can act as a gateway into an enterprise domain where security needs require that all SIP sessions are controlled by a local server.
During any one SIP session, a UA will function either as a UAC or a UAS but not as both simultaneously. SIP provides a means to establish, control and terminate one or more multimedia sessions. However, SIP itself is not an application but a platform on which applications can be built. An application built utilizing the SIP protocol may provide simple voice calling functionality in a low featured softphone, or large and complex functionality such as for an eLearning application that would involve the transmission of voice, video and slides to a multi-participant conference.
Some embodiments described herein are generally directed to systems and methods that provide users of a communication device facility in transferring a conference call. In particular embodiments, users of a secure mobile device may be provided with the ability to transfer a media stream for use in a conference call to a non-secure communication device.
To aid the reader in understanding the structure of a mobile device and how it communicates with other devices, reference is made toFIGS. 1B through 3.
Referring first toFIG. 1B, a block diagram of a mobile device in one example implementation is shown generally as100.Mobile device100 comprises a number of components, the controllingcomponent being microprocessor102.Microprocessor102 controls the overall operation ofmobile device100. Communication functions, including data and voice communications, are performed throughcommunication subsystem104.Communication subsystem104 receives messages from and sends messages to awireless network200. In this example implementation ofmobile device100,communication subsystem104 is configured in accordance with the Global System for Mobile Communication (GSM) and General Packet Radio Services (GPRS) standards. The GSM/GPRS wireless network is used worldwide and it is expected that these standards will be superseded eventually by Enhanced Data GSM Environment (EDGE) and Universal Mobile Telecommunications Service (UMTS). New standards are still being defined, but it is believed that they will have similarities to the network behaviour described herein, and it will also be understood by persons skilled in the art that embodiments described herein are intended to be used by any other suitable standards related to wireless communication that are developed in the future. The wireless session connectingcommunication subsystem104 withnetwork200 represents one or more different Radio Frequency (RF) channels, operating according to defined protocols specified for GSM/GPRS communications. With newer network protocols, these channels are capable of supporting both circuit switched voice communications and packet switched data communications.
Although the wireless network associated withmobile device100 is a GSM/GPRS wireless network in one example implementation ofmobile device100, other wireless networks may also be associated withmobile device100 in variant implementations. Different types of wireless networks that may be employed include, for example, data-centric wireless networks, voice-centric wireless networks, and dual-mode networks that can support both voice and data communications over the same physical base stations. Combined dual-mode networks include, but are not limited to, Code Division Multiple Access (CDMA) or CDMA2000 networks, GSM/GPRS networks (as mentioned above), and third-generation (3G) networks like EDGE and UMTS. Some older examples of data-centric networks include the Mobitex™ Radio Network and the DataTAC™ Radio Network. Examples of older voice-centric data networks include Personal Communication Systems (PCS) networks like GSM and Time Division Multiple Access (TDMA) systems.
Microprocessor102 also interacts with additional subsystems such as a Random Access Memory (RAM)106,flash memory108,display110, auxiliary input/output (I/O)subsystem112,serial port114,keyboard116,speaker118,microphone120, short/long-range communications122 andother device subsystems124.
Some of the subsystems ofmobile device100 perform communication-related functions, whereas other subsystems may provide “resident” or on-device functions. By way of example,display110 andkeyboard116 may be used for both communication-related functions, such as entering a text message for transmission overnetwork200, and device-resident functions such as a calculator or task list. Operating system software used bymicroprocessor102 is typically stored in a persistent store such asflash memory108, which may alternatively be a read-only memory (ROM) or similar storage element (not shown). Those skilled in the art will appreciate that the operating system, specific device applications, or parts thereof, may be temporarily loaded into a volatile store such asRAM106.
Mobile device100 may send and receive communication signals overnetwork200 after required network registration or activation procedures have been completed. Network access is associated with a subscriber or user of amobile device100. To identify a subscriber,mobile device100 requires a Subscriber Identity Module or “SIM”card126 to be inserted in aSIM interface128 in order to communicate with a network.SIM126 is one type of a conventional “smart card” used to identify a subscriber ofmobile device100 and to personalize themobile device100, among other things. Alternatively, by way of example only, other types of “smart cards” which might be used may include an R-UIM (removable user identity module) or a CSIM (CDMA (code division multiple access) subscriber identity module) or a USIM (universal subscriber identity module) card. WithoutSIM126,mobile device100 is not fully operational for communication withnetwork200. By insertingSIM126 intoSIM interface128, a subscriber can access all subscribed services. Services could include: web browsing and messaging such as e-mail, voice mail, Short Message Service (SMS), and Multimedia Messaging Services (MMS). More advanced services may include: point of sale, field service and sales force automation.SIM126 includes a processor and memory for storing information. OnceSIM126 is inserted inSIM interface128, it is coupled tomicroprocessor102. In order to identify the subscriber,SIM126 contains some user parameters such as an International Mobile Subscriber Identity (IMSI). An advantage of usingSIM126 is that a subscriber is not necessarily bound by any single physical mobile device.SIM126 may store additional subscriber information for a mobile device as well, including datebook (or calendar) information and recent call information.
Mobile device100 is a battery-powered device and includes abattery interface132 for receiving one or morerechargeable batteries130.Battery interface132 is coupled to a regulator (not shown), which assistsbattery130 in providing power V+ tomobile device100. Although current technology makes use of a battery, future technologies such as micro fuel cells may provide the power tomobile device100.
Microprocessor102, in addition to its operating system functions, enables execution of software applications onmobile device100. A set of applications that control basic device operations, including data and voice communication applications, will normally be installed onmobile device100 during its manufacture. Another application that may be loaded ontomobile device100 would be a personal information manager (PIM). A PIM has functionality to organize and manage data items of interest to a subscriber, such as, but not limited to, e-mail, calendar events, voice mails, appointments, and task items. A PIM application has the ability to send and receive data items viawireless network200. PIM data items may be seamlessly integrated, synchronized, and updated viawireless network200 with the mobile device subscriber's corresponding data items stored and/or associated with a host computer system. This functionality creates a mirrored host computer onmobile device100 with respect to such items. This can be particularly advantageous where the host computer system is the mobile device subscriber's office and/or a home computer system.
Additional applications may also be loaded ontomobile device100 throughnetwork200, auxiliary I/O subsystem112,serial port114, short/long-range communications subsystem122, or any othersuitable subsystem124. This flexibility in application installation increases the functionality ofmobile device100 and may provide enhanced on-device functions, communication-related functions, or both. For example, secure communication applications may enable electronic commerce functions and other such financial transactions to be performed usingmobile device100.
Serial port114 enables a subscriber to set preferences through an external device or software application and extends the capabilities ofmobile device100 by providing for information or software downloads tomobile device100 other than through a wireless communication network. The alternate download path may, for example, be used to load an encryption key ontomobile device100 through a direct and thus reliable and trusted connection to provide secure device communication.
Short/long-range communications subsystem122 provides for communication betweenmobile device100 and different systems or devices, without the use ofnetwork200. For example,subsystem122 may include an infrared device and associated circuits and components for short-range communication. Examples of short/long range communication would include standards developed by the Infrared Data Association (IrDA), Bluetooth, and the 802.11/802.16 family of standards developed by IEEE.
In use, a received signal such as a text message, an e-mail message, or web page download will be processed bycommunication subsystem104 and input tomicroprocessor102.Microprocessor102 will then process the received signal for output to display110 or alternatively to auxiliary I/O subsystem112. A subscriber may also compose data items, such as e-mail messages, for example, usingkeyboard116 in conjunction withdisplay110 and possibly auxiliary I/O subsystem112.Auxiliary subsystem112 may include user input devices such as: a touch screen, mouse, track ball, infrared fingerprint detector, or a roller wheel with dynamic button pressing capability.Keyboard116 is an alphanumeric keyboard and/or telephone-type keypad. A composed item may be transmitted overnetwork200 throughcommunication subsystem104.
For voice communications, the overall operation ofmobile device100 is substantially similar, except that the received signals would be output tospeaker118, and signals for transmission would be generated bymicrophone120. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented onmobile device100. Although voice or audio signal output is accomplished primarily throughspeaker118,display110 may also be used to provide additional information such as the identity of a calling party, duration of a voice call, or other voice call related information.
Referring now toFIG. 2, a block diagram of thecommunication subsystem component104 ofFIG. 1 is shown.Communication subsystem104 comprises areceiver150, atransmitter152, one or more embedded orinternal antenna elements154,156, Local Oscillators (LOs)158, and a processing module such as a Digital Signal Processor (DSP)160.
The particular design ofcommunication subsystem104 is dependent upon thenetwork200 in whichmobile device100 is intended to operate, thus it should be understood that the design illustrated inFIG. 2 serves only as one example. Signals received byantenna154 throughnetwork200 are input toreceiver150, which may perform such common receiver functions as signal amplification, frequency down conversion, filtering, channel selection, and analog-to-digital (A/D) conversion. A/D conversion of a received signal allows more complex communication functions such as demodulation and decoding to be performed in DSP160. In a similar manner, signals to be transmitted are processed, including modulation and encoding, by DSP160. These DSP-processed signals are input totransmitter152 for digital-to-analog (D/A) conversion, frequency up conversion, filtering, amplification and transmission overnetwork200 viaantenna156. DSP160 not only processes communication signals, but also provides for receiver and transmitter control. For example, the gains applied to communication signals inreceiver150 andtransmitter152 may be adaptively controlled through automatic gain control algorithms implemented in DSP160.
The wireless link betweenmobile device100 and anetwork200 may contain one or more different channels, typically different RF channels, and associated protocols used betweenmobile device100 andnetwork200. An RF channel is a limited resource that must be conserved, typically due to limits in overall bandwidth and limited battery power ofmobile device100.
Whenmobile device100 is fully operational,transmitter152 is typically keyed or turned on only when it is sending to network200 and is otherwise turned off to conserve resources. Similarly,receiver150 is periodically turned off to conserve power until it is needed to receive signals or information (if at all) during designated time periods.
Referring now toFIG. 3, a block diagram of a node of a wireless network is shown as202. In practice,network200 comprises one ormore nodes202.Mobile device100 communicates with anode202 withinwireless network200. In the example implementation ofFIG. 3,node202 is configured in accordance with General Packet Radio Service (GPRS) and Global Systems for Mobile (GSM) technologies.Node202 includes a base station controller (BSC)204 with an associatedtower station206, a Packet Control Unit (PCU)208 added for GPRS support in GSM, a Mobile Switching Center (MSC)210, a Home Location Register (HLR)212, a Visitor Location Registry (VLR)214, a Serving GPRS Support Node (SGSN)216, a Gateway GPRS Support Node (GGSN)218, and a Dynamic Host Configuration Protocol (DHCP)220. This list of components is not meant to be an exhaustive list of the components of everynode202 within a GSM/GPRS network, but rather a list of components that are commonly used in communications throughnetwork200.
In a GSM network,MSC210 is coupled toBSC204 and to a landline network, such as a Public Switched Telephone Network (PSTN)222 to satisfy circuit switched requirements. The connection through PCU208,SGSN216 andGGSN218 to the public or private network (Internet)224 (also referred to herein generally as a shared network infrastructure) represents the data path for GPRS capable mobile devices. In a GSM network extended with GPRS capabilities,BSC204 also contains a Packet Control Unit (PCU)208 that connects toSGSN216 to control segmentation, radio channel allocation and to satisfy packet switched requirements. To track mobile device location and availability for both circuit switched and packet switched management,HLR212 is shared betweenMSC210 andSGSN216. Access toVLR214 is controlled byMSC210.
Station206 is a fixed transceiver station.Station206 andBSC204 together form the fixed transceiver equipment. The fixed transceiver equipment provides wireless network coverage for a particular coverage area commonly referred to as a “cell”. The fixed transceiver equipment transmits communication signals to and receives communication signals from mobile devices within its cell viastation206. The fixed transceiver equipment normally performs such functions as modulation and possibly encoding and/or encryption of signals to be transmitted to the mobile device in accordance with particular, usually predetermined, communication protocols and parameters, under control of its controller. The fixed transceiver equipment similarly demodulates and possibly decodes and decrypts, if necessary, any communication signals received frommobile device100 within its cell. Communication protocols and parameters may vary between different nodes. For example, one node may employ a different modulation scheme and operate at different frequencies than other nodes.
For allmobile devices100 registered with a specific network, permanent configuration data such as a user profile is stored inHLR212.HLR212 also contains location information for each registered mobile device and can be queried to determine the current location of a mobile device.MSC210 is responsible for a group of location areas and stores the data of the mobile devices currently in its area of responsibility inVLR214.Further VLR214 also contains information on mobile devices that are visiting other networks. The information inVLR214 includes part of the permanent mobile device data transmitted fromHLR212 to VLR214 for faster access. By moving additional information from aremote HLR212 node toVLR214, the amount of traffic between these nodes can be reduced so that voice and data services can be provided with faster response times and at the same time requiring less use of computing resources.
SGSN216 andGGSN218 are elements added for GPRS support; namely packet switched data support, within GSM.SGSN216 andMSC210 have similar responsibilities withinwireless network200 by keeping track of the location of eachmobile device100.SGSN216 also performs security functions and access control for data traffic onnetwork200.GGSN218 provides internetworking connections with external packet switched networks and connects to one or more SGSN's216 via an Internet Protocol (IP) backbone network operated within thenetwork200. During normal operations, a givenmobile device100 must perform a “GPRS Attach” to acquire an IP address and to access data services. This requirement is not present in circuit switched voice channels as Integrated Services Digital Network (ISDN) addresses are used for routing incoming and outgoing calls. Currently, all GPRS capable networks use private, dynamically assigned IP addresses, thus requiring aDHCP server220 connected to theGGSN218. There are many mechanisms for dynamic IP assignment, including using a combination of a Remote Authentication Dial-In User Service (RADIUS) server and DHCP server. Once the GPRS Attach is complete, a logical connection is established from amobile device100, through PCU208, andSGSN216 to an Access Point Node (APN) withinGGSN218. The APN represents a logical end of an IP tunnel that can either access direct Internet compatible services or private network connections. The APN also represents a security mechanism fornetwork200, insofar as eachmobile device100 must be assigned to one or more APNs andmobile devices100 cannot exchange data without first performing a GPRS Attach to an APN that it has been authorized to use. The APN may be considered to be similar to an Internet domain name such as “myconnection.wireless.com”.
Once the GPRS Attach is complete, a tunnel is created and all traffic is exchanged within standard IP packets using any protocol that can be supported in IP packets. This includes tunneling methods such as IP over IP as in the case with some IPSecurity (IPsec) connections used with Virtual Private Networks (VPN). These tunnels are also referred to as Packet Data Protocol (PDP) Contexts and there are a limited number of these available in thenetwork200. To maximize use of the PDP Contexts,network200 will run an idle timer for each PDP Context to determine if there is a lack of activity. When amobile device100 is not using its PDP Context, the PDP Context can be deallocated and the IP address returned to the IP address pool managed byDHCP server220.
Referring now toFIG. 4, a block diagram is shown illustrating components of a communication system, shown generally as400, in one example configuration.Host system400 will typically incorporate a corporate office or other local area network (LAN) shown generally as410, but may instead be a home office computer or some other private system, for example, in variant implementations. In the example shown inFIG. 4,communication system400 incorporates a LAN410 of an organization to which a user of a mobile device100 (with example embodiments illustrated as100A,100B,100C) belongs.
As illustrated inFIG. 4, some embodiments of themobile device100A operate on a cellular network402 (WAN, “wide area network”), while other embodiments100C may operate on the 802.11/802.16 WiFi/WiMax network404 only (WLAN, “wireless local area network”). Such devices100C which operate only on aWLAN404, may be provided with SIP-based Voice over IP (VoIP) functionality to facilitate external calling. Some embodiments of themobile device100B may be dual mode and may be configured to operate both on thecellular network402 and on the WLAN. Themobile devices100A,100B,100C are typically configured to utilize SIP. Preferably, themobile device100A,100B,100C SIP stack will be configured to communicate over both UDP and GME transport simultaneously.
To support multiple SIP applications on amobile device100A,100B,100C a SIP UA API (SIP User Agent Application Programming Interface) is preferably introduced. This API abstracts the applications from the SIP implementation, thus removing the need for the application programmer to know about the details of the protocol.
The SIP UA API will provide methods to construct, control and delete dialogs, a dialog being a single session between the device and some endpoint. For example, in a VoIP call a dialog is a call leg between the device and the PBX. A dialog may have none, one or multiple media streams associated. For example, a video/audio call will have two bidirectional media streams.
In addition the SIP UA API will provide means to register, reregister and deregister SIP applications from the associated registrar server. This will be implemented in such a way to abstract the details of the registration from the application, so the application is unable to modify the registration parameters or the registrar information.
Finally the SIP UA API will provide a set of methods to allow applications a way to subscribe for events from a remote server and to notify a remote server of local application events.
The connectivity of certain embodiments of themobile devices100A,100B,100C are also illustrated inFIG. 4. As can be seen, the WANmobile device100A is connected through therelay416 to the enterpriseexternal firewall414 and on to the Mobile Enterprise Server (MES)418. The WLAN mobile device100C sends and receives data by connecting over the Enterprise WLAN to theMES418 bypassing theRelay416. SIP based IP Telephony is provided via a direct UDP connection to the SIP server and similarly RTP between the end points. The dual modemobile device100B may utilize connections available to the other types ofmobile devices100A,100C.
A Service Delivery Platform (SDP)412 is located within the enterprise LAN410 behind thecorporate firewall414. A SIP enabledmobile device100A,100B,100C communicates with theSDP412 usually over the GME connection either through theRelay416 or directly with the Mobile Enterprise Server (MES)418 if operating in serial bypass mode (e.g. WLAN Enterprise Data). On the other side of thefirewall414, theSDP412 communicates with existing enterprise servers.
TheSDP412 typically will be involved in the SIP message control flow. The media flow represented by the RTP session in the embodiment illustrated inFIG. 4, routes directly to thePBXs418D,418E from themobile device100B,100C.
TheSDP412 is designed to be a platform upon which any number of applications may be executed. The control towards thedevice100A,100B,100C will typically utilize a custom or enterprise-specific SIP (ESSIP), but theSDP412 may utilize different protocols in communicating with other servers. This is illustrated inFIG. 4, where five example applications on theSDP412, namely Instant Messaging (IM)430,Presence432,Conference434, VoIP (voice over internet protocol)436, andFixed Mobile Convergence438 use a variety of third-party protocols in communication with the gateway andPBX servers418A,418B,418C,418D,418E providing the application functionality.
TheMES418 may comprise various software and/or hardware elements for administering certain communication functionality of themobile devices100A,100B,100C. For example, theMES418 may comprise anadministration server442, amobile data server444, a message server268 (discussed in greater detail, below), adatabase419, asecurity module446 which may be configured to encrypt and decrypt data and/or messages, anIM server452 and amedia server454.
LAN410 may comprise a number of network components connected to each other by LAN connections. For instance, one or more users' desktop computers (not shown), each of which may comprise a cradle, may be situated on LAN410. Cradles formobile device100A,100B,100C may be coupled to a desktop computer by a serial or a Universal Serial Bus (USB) connection, for example. Such cradles may facilitate the loading of information (e.g. PIM data, private symmetric encryption keys to facilitate secure communications betweenmobile device100A,100B,100C and LAN410) from a desktop computer tomobile device100A,100B,100C, and may be particularly useful for bulk information updates often performed in initializingmobile device100A,100B,100C for use. The information downloaded tomobile device100A,100B,100C may include certificates used in the exchange of messages. It will be understood by persons skilled in the art that user computers may also be connected to other peripheral devices not explicitly shown inFIG. 4.
Furthermore, only a subset of network components of LAN410 are shown inFIG. 4 for ease of exposition, and it will be understood by persons skilled in the art that LAN410 will comprise additional components not explicitly shown inFIG. 4, for this example configuration. More generally, LAN410 may represent a smaller part of a larger network (not shown) of the organization, and may comprise different components and/or be arranged in different topologies than that shown in the example ofFIG. 4.
In one example implementation, LAN410 may comprise a wireless VPN router (not shown) to facilitate data exchange between the LAN410 andmobile device100B,100C. A wireless VPN router may permit a VPN connection to be established directly through a specific wireless network tomobile device100A,100B,100C. With the implementation of Internet Protocol (IP) Version 6 (IPV6) into IP-based wireless networks, enough IP addresses will be available to dedicate an IP address to everymobile device100B,100C, making it possible to push information to amobile device100B,100C at any time. An advantage of using a wireless VPN router is that it could be an off-the-shelf VPN component, not requiring a separate wireless gateway and separate wireless infrastructure to be used. A VPN connection might utilize Transmission Control Protocol (TCP)/IP or User Datagram Protocol (UDP)/IP connection to deliver the messages directly tomobile device100A,100B,100C in such implementation.
Thecommunication system400 shall preferably comprise theVoIP application436 which is configured to utilize SIP to provide VoIP functionality. TheSDP412 is configured to route VoIP ESSIP requests from themobile device100B,100C to theVoIP application436, thereby enabling IP calling from amobile device100B,100C connected on the WLAN to an existing SIP enabled gateway orPBX server418A,418B,418C,418D,418E. For example, the VoIP functionality may include basic calling features such as make and take a VoIP call, hold and resume, transfer (attended and semi attended), ad-hoc conferencing, among others.
The VoIP telephony functionality in some embodiments may be limited to those devices (such as, for example,devices100B,100C) that are connected to the WLAN. The use of VPN may allowdevices100B,100C that are outside the enterprise to access enterprise VoIP services in a secure fashion.
The inventors have recognized the non-uniform way each third-party manufacturer's PBX (or other gateway server)418A,418B,418C,418D,418E uses SIP. Typically, eachsuch gateway418A,418B,418C,418D,418E uses its own version of SIP call flow to establish, control and release calls. As a result, the SIP call flow between the endpoint (typically a communication device, such as for example,mobile device100A,100B,100C) and the PBX (or gateway)418A,418B,418C,418D,418E needs to be customized for that particular PBX (or gateway)418A,418B,418C,418D,418E.
TheVoIP application434 incorporates a customized Back-to-Back User Agent (B2BUA) (not shown) in theService Delivery Platform412, thereby positioned between themobile device100B,100C and thegateway418A,418B,418C,418D,418E. The B2BUA abstracts the details of the PBX call flows, registration, call control and configuration from themobile device100B,100C. The B2BUA implements a defined set of ESSIP call flows to themobile device100B,100C that can support the basic set of telephony procedures. The B2BUA also satisfies the SIP call flows that are specific to thegateway418A,418B,418C,418D,418E for the same set of telephony procedures.
As each manufacturer'sgateway server418A,418B,418C,418D,418E typically requires a different set of call flows for the same feature, the B2BUA encapsulates thegateway418A,418B,418C,418D,418E specifics for the basic calling feature set into a PBX Abstraction Layer (PAL), eachgateway418A,418B,418C,418D,418E having its own specific PAL.
In addition, if necessary the B2BUA can support other PBX-specific feature extensions, which may be made available to communication devices coupled to the network410, such as the mobile devices110B,100C. These extensions are handled through a PBX Extension Layer (PEL) in the B2BUA, which, like the PAL, abstracts the complexities of eachPBX418A,418B,418C,418D,418E for a given extension feature set. However, as the extension feature sets betweendifferent PBX418A,418B,418C,418D,418E will not be the same, it may not be possible to develop a common user interface (UI). Accordingly, a plug-in application may be downloaded to the communication devices coupled to the network410, such as the mobile devices110B,100C, to extend the UI and to provide communication device the necessary SIP Application information on how to handle new features. This plug-in is the Menu and Signalling Extension Plug-in (MSP). As will be understood, the PAL, PEL and MSP are all part of Extensible Signalling Framework (ESF).
With respect to the instant messaging services, theMES418 may comprise an XMPP2SIMPLE (Extensible Messaging and Presence Protocol to SIP Instant Messaging and Presence Leveraging Extensions) SIP application to enable integration of SIP with an IM session. For example, a voice call may be established over VoIP or over a traditional circuit switched medium directly from an IM session screen. The voice connection may be requested by either party in the IM session. As well as voice, the XMPP2SIMPLE application may also interface SIMPLE (SIP Instant Messaging and Presence Leveraging Extensions) based IM systems to the IM internal architecture of themobile devices100A,100B,100C.
TheMES418 may use an XMPP (Extensible Messaging and Presence Protocol) based API (Application Programming Interface) over an IPe (IP endpoint) secured socket provided by the XMPP2SIMPLE Application to request that SIP functions be accessed. This API may provide any user identifications that are required and routing information to the VoIP gateway. The gateway might be theVoIP PBX418D or it might be a VoIP enabled server. TheSDP412 establishes an SIP session to thedevice100A,100B,100C and a second to the gateway (such as thePBX418D). The RTP media flow is routed directly to the VoIP gateway (such as thePBX418D).
Consider a situation in which an IM session is in process between a first mobile device e.g.100B, and a second mobile device100C. The session may use the enterprise-specific IM protocol between thedevices100B,100C and an IM Proxy Server in theMES418, and the third-party IM protocol between the IM Proxy Server and the IM server (e.g.IM PBX418A).
At some point in time, eitherdevice100B,100C, may request that the session be converted into a voice connection. TheMES IM Server452 requests over the XMPP based API that XMPP2SIMPLE set up an SIP based call. For eachmobile device100B,100C, the XMPP2SIMPLE acts as a B2BUA, setting up one SIP session with themobile device100B,100C using the ESSIP flows, and a second session with theIM Server418A using theIM Server418A specific SIP. These connections are then manipulated to connect the RTP media flow between the twomobile devices100B,100C. Communication may also be established betweenmobile devices100A,100B,100C and other networked devices, such as, for example, computer450 (which may be equipped to provide voice communication, for example using VoIP) and electronic “whiteboard”456 (via the internet224), and telephones18 (via the PSTN).
Alternatively, a call may be established over circuit switched media. For example, an IM session running on a WANmobile device100A may request the establishment of a voice connection. In this case theMES IM Server452 could request directly to theFixed Mobile PBX418E for a circuit switched call, or through theSDP412 which would establish two circuit switched call legs, one to each party, via thePBX418E.
Thecommunication system400 may also provide for certain applications to interact directly with other application services, e.g. applications that provide media streaming capabilities such as e-learning or MP3/video playback, downloading and sharing. Consider a scenario in which an enterprise-wide announcement is to be made. Here the announcement is stored in a MES service which proceeds to call out to all enterprisemobile devices100A,100B,100C.
These services may require a multimedia session to be established between a server and the ESSIP enableddevices100A,100B,100C. In addition there are a number of other servers such as Lightweight Directory Access Protocol (LDAP) servers, location servers, a database application, or an extensible markup language (XML) application. These application services provide back-end services such as directory, authentication, and billing services.
In this case the MES media application orserver454 might again be configured to use an API to set up the multimedia session or to obtain information from theSDP412. TheSDP412 acts as a UAS, controlling the session and setting the RTP or similar stream directly to theMES Media Server454. Once the multimedia streaming session has finished, theMES Media Server454 terminates the SIP session via an API call.
Thecommunication system400 may also be configured with a voice mobility module460 (such as the Voice Mobility Management system distributed by Ascendent Systems) which may comprise software and hardware to offer voice mobility anchored at the network betweenWLAN404 and cellular402 networks. Thesystem400 may offer enhancements such as single number in and out of the enterprise, conferencing, single voice mailbox, etc.
Thevoice mobility module460 may use the SIP server through CSTA interface that allows first party call control. The interface between theSDP412 and thePBX418D,418E may be SIP Trunk.
In this environment, thevoice mobility module460 controls the media flow passing over the RTP session.
TheSDP412 may interface to theMES418 for signalling to thedevice100A,100B,100C and database support, and to the application servers such as the gateway orPBX servers418A,418B,418C,418D,418E for application support. This section shall describe in more detail how those interfaces are to be managed.
TheSDP412 may interface to theMES418 through an ESSIP Connector, a service that communicates directly with a Dispatcher. The ESSIP Connector terminates the GME protocol and is responsible for pushing the SIP signals to an SIP Server (not shown) over a TLS secured socket. This arrangement requires that a new content type be created for SIP, and allows a new ESSIP service book to be pushed to amobile device100A,100B,100C.
On the other side of the SIP/TLS session, theSDP412 may also comprise a Unified Communications (UC) Server (not shown). The UC Server executes the SIP applications and communicates to the gateway andPBX servers418A,418B,418C,418D,418E,MES IM Server452,IM server418A, andvoice mobility module460, etc.
Any number of ESSIP Connectors may support access a single UC Server, the exact number being limited by the configuration of the components over hardware platforms. All configurations using a single UC Server must be connected to the same mobile device database domain.
Both the ESSIP Connector and the UC Server may read data for configuration from thedatabase419 via an SDP MES Management Server using a web services interface. This component also offers the SDP administration UI.
The UC Server stores information on theMES database419, which is used at reset to configure the UC Services and users. The following items may be included in the basic server configuration: Sip Realm; Sip Domain Name; Sip Server Address; Sip Server Port; Sip Server Transport; Proxy Server Address; Proxy Server Port; and Proxy Server Transport.
The following items may also be included as part of thedatabase419 per user: Sip User Display Name; Sip User ID; Sip User Password; Sip Realm; Sip Registration Timeout; Sip Local Port; Sip RTP Media Port; Sip Domain Name; Sip Server Type; Sip Server Address; Sip Server Port; Sip Server Transport; Emergency Number; Sip Secondary Server Type; Sip Secondary Server Address; Sip Secondary Server Port; and Sip Secondary Server Transport.
The UC Server may also require notification from thedatabase419 when an administrator adds a user into thesystem400 so that it can update the internal table without scanning thewhole database419.
The SDP Management Server (SDP MS) (not shown) may abstract theMES database419 from theSDP412 components and provides a user interface for administration purposes. The ESSIP Connector and the UC Server will both obtain configuration through the SDP BMS. As the users of UC Services will also be the general MES users, then those configuration items that are specific to each user will require additions to existing user records.
Thecommunications network400 is preferably also provided with aconference call controller440 module configured to facilitate and control conference calls between two or more parties. As will be discussed in greater detail, below, theconference call controller440 may comprise an application or other programming and is configured to coordinate the conference call functionality and to facilitate the exchange of voice and other media between conference call participants. Theconference call controller440 may compriseconference application440aandconference services modules440band may reside in or otherwise form part of theSDP412.
Messages intended for a user ofmobile device100 are initially received by amessage server268 of LAN410, which may form part of theMES418. Such messages may originate from any of a number of sources. For instance, a message may have been sent by a sender from acomputer450 within LAN410, from a different mobile device (not shown) connected to wireless network200 (or404) or to a different wireless network, or from a different computing device (such as computer450) or other device capable of sending messages, via the sharednetwork infrastructure224, and possibly through an application service provider (ASP) or Internet service provider (ISP), for example.
Message server268 typically acts as the primary interface for the exchange of messages, particularly e-mail messages, within the organization and over the sharednetwork infrastructure224. Each user in the organization that has been set up to send and receive messages is typically associated with a user account managed bymessage server268. One example of amessage server268 is a Microsoft Exchange™ Server. In some implementations, LAN410 may comprisemultiple message servers268.Message server268 may also be adapted to provide additional functions beyond message management, including the management of data associated with calendars and task lists, for example.
Referring now toFIG. 5, a flowchart illustrating steps in a method of facilitating a conference call between a plurality of communication devices in accordance with at least one embodiment is shown generally as500. Additional details of some of the features described below in respect of themethod500 may be described elsewhere in the present specification. Referring simultaneously toFIGS. 6A and 6B, illustrated therein are schematic diagrams illustrating exemplary aspects of a conference call, shown generally as600, implemented in accordance with the present disclosure.
In one embodiment, at least some of the steps of the method are performed by a conference call application that executes and resides on themobile device100 or the conference call controller440 (FIG. 4), or a combination of both. In variant embodiments, the conference call application need not be a stand-alone application, and the functionality of the application may be implemented in one or more applications executing and residing on the controller or other computing device.
Method500 commences atBlock510 in which a firstprimary communication device610 has been provided. For example,mobile communication device100B may be selected for use as a firstprimary communication device610 in a conference call as contemplated herein. Similarly, a secondprimary communication device612, for example mobile communication device100C, may be provided (Block512). Theconference call controller440, may also be provided (Block514).
The conference call session may then be initiated, typically utilizing both SIP and RTP protocols, as discussed above (Block516). A first control session (as indicated byline614 inFIG. 6A) may be established between theconference call controller440 and the first primary communication device610 (Block517).Such control session614 may be in the form of a data signal in which conference parameter data relating to the conference call to be established, may be exchanged between thecontroller440 and the firstprimary communication device610. For example, the conference parameter data may include the time of the conference call, and the invited parties and their corresponding contact “numbers” or communication device identifiers. Information corresponding to the conference parameter data may be displayed on the display of thecommunication device610 or otherwise communicated to the user of the device610 (e.g. via the speaker118). As will be understood, preferably thecontrol session614 will be established in such a way as to securely identify the firstprimary communication device610 to thecontroller440. For example, thecontroller440 may obtain identification data from or otherwise utilizeSIM126 to authenticate (or partially authenticate) thedevice610. In some instances, an identification code such as an access code or password may be requested by and/or required to be received by thecontroller440 in order for the conference call user to be fully authenticated and permitted to participate on the call.
In some embodiments, the extent of maintaining authentication within a session is based on certain predetermined conditions, such as maintaining authentication of a control session for a predetermined amount of time (e.g., using a timer). After such time or after a timer expires, thecontrol session614 with thecommunication device610 becomes de-authenticated and would once again need to be authenticated (i.e., re-authenticated). In another example, the authentication of thecontrol session614 may terminate before session expiry based on moderator control (either manually or automatically). This may require on-the-fly authentication of the firstprimary communication device610 should thecontrol session614 be de-authenticated for whatever reason.
In yet further embodiments, authentication may be required for each or every command sent from thecommunication device610 over thecontrol session614.
In some instances, thecontrol session614 may be initiated by thecommunication device610, in order for the user of thecommunication device610 to set up and commence a conference call. Alternatively, if the parameters of the conference call have been previously determined, thecontroller440 may communicate with thecommunication device610 to establish thecontrol session614 and take the other steps necessary to initiate the conference call in accordance with the previously determined conference call parameters, as discussed below.
A media session (as represented byline616 inFIG. 6A) between the first and secondprimary communication devices610,612 via theconference call controller440 may then be established (Block518). As will be understood, the terms “via” or “between” in reference to sessions with “theconference call controller440” are intended to refer broadly to situations in which the session or signal is operatively coupled to thecontroller440, but also is intended to refer to situations in which the session is established by, but may not maintain a continuous connection to, thecontroller440. In some embodiments, thecontroller440 may be programmed or otherwise configured to initiate a first communication leg to the firstprimary communication device610, such as by placing a telephone call to the firstprimary communication device610 and to initiate a second communication leg to the secondprimary communication device612, such as by placing a telephone call to the secondprimary communication device612. Thecontroller440 may be configured to utilize the mobile devices' assigned MSISDN (Mobile Station Integrated Services Digital Network) number or assigned PIN number to initiate the communication legs. The two communication legs may then be linked by thecontroller440.
Whilesuch media session616 may comprise a standard voice stream as may be established for typical voice telephony or other communications, as will be understood, themedia session616 may comprise other types of media data signals (for example, for multimedia presentations, or videophone applications). In some embodiments, preferably themedia session616 is encrypted using suitable encryption methods.
In some embodiments, a second control session (as indicated byline618 inFIG. 6A) may also be established between theconference call controller440 and the second primary communication device612 (Block520).Such control session618 may be in the form of a data signal in which conference parameter data relating to the conference call, may be exchanged between thecontroller440 and the secondprimary communication device612.Such control session618 may also be established prior to the establishing of themedia session616 inBlock518.
In embodiments in which multiple control sessions e.g.614,618 are established betweenmultiple communication devices610,612, one control session (e.g. second control session618) may be designated as themoderator session615. Typically, the intended moderator's identity will be one of the parameters of the conference call data, and may by default be assigned to acommunication device600,610 initiating the conference call (if appropriate). Thecommunication device610 having themoderator control session615 may be provided with top level control over the conference call and amending its parameters, including for example, adding or removing parties as necessary or amending privilege levels, or even assigning or delegating the moderator privileges. So for example, if thecommunication device610 having themoderator control session615 assigns the moderator privileges tocommunication device612, thecontrol session615 may shift to thesecond control session618, thereby providing the user of the secondprimary communication device612 with the moderator privileges to control the conference call.
Once themedia session616 has been established, users of the first and secondprimary communication devices610,612, may communicate with each other.
Referring now toFIG. 6B, consider a situation in which the firstprimary communication device610 is being charged long distance cellular fees (which can be quite expensive). A firstalternate communication device620 may be selected or otherwise provided (Block521). The user may decide to initiate a call transfer request (Block522). An options menu may be provided on thedisplay110 of the communication device610 (described in detail below with respect toFIGS. 7A and 7B). Such options menu will preferably be provided with the option for the user to initiate a transfer, allowing the user to input or otherwise designate the proposed transferee communication device (such as the firstalternate communication device620 illustrated inFIG. 6B). The transferee identification may comprise an MSISDN number, a mobile device unique personal identification number, a PBX number, or a PBX extension/access number. Such data identifying the transferee communication device is communicated to thecontroller440 together with the transfer request, via thecontrol session614. In some other embodiments, a default or predetermined device may be pre-designated as the firstalternate communication device620.
The transfer request may then be authenticated or evaluated (Block524). For example, if the user of thecommunication device610 has sufficiently high privilege levels, thecontroller440 might be programmed or otherwise configured to permit and then initiate the transfer (Block526). Alternatively, the request may be routed by thecontroller440 to the moderator'scommunication device612 via the moderator'scontrol session615 and displayed on thedevice612display110. The moderator may then grant or deny such transfer permission by inputting data (in some embodiments through the selection of menu options, not shown) which is received by the controller via thecontrol session615,618.
In some example embodiments,Block524 includes thecommunication device610 determining whether thecontrol session614 is still authenticated, and if not performing additional authentication of thecontrol session616.
If the transfer request is approved or granted, thecontroller440 may then be configured to extend themedia session616 to the first alternate communication device620 (Block530). In some embodiments, thecontroller440 may be programmed or otherwise configured to initiate a communication leg to the firstalternate communication device620, such as by placing a telephone call to the firstalternate communication device620. Upon extending themedia session616 to the firstalternate communication device620, themedia session616 to the firstprimary communication device610 may be terminated (Block532).
Thefirst control session614 will preferably be maintained between the firstprimary communication device610 and thecontroller440, subsequent to the extension of themedia session616 inBlock530 and the termination of themedia session616 to the firstprimary communication device610 in Block532 (Block534). An advantage of maintaining thefirst control session614, is that a measure of security is maintained despite the extension of the conference call to the first alternate communication device620 (which may not be secure), as the first control session614 (via the first primary communication device610) authenticates the user of bothdevices610,620. For example, thefirst control session614 could act as a ‘heart-beat’ to continuously exchange and authenticate a dynamic key or certificate between thecontroller440 and the firstprimary communication device610 in order to authenticate the user who is now presumably speaking on the firstalternate communication device620.
As will be understood, if the firstprimary communication device610 and the firstalternate communication device620 are each an embodiment of amobile device100, then the enterprise specific transfer protocols for the LAN410 may be used in transferring themedia session616 from the first primary610 to the firstalternate communication device620. Alternatively, if thealternate communication device620 is a PBX type of communication device, then appropriate PBX protocols, such as H.323 transfer protocols, may be used to transfer themedia session616.
As will be understood, while twoprimary communication devices610,612 were illustrated and described as participating in the conference call, additional communication devices may participate in the conference call.
Reference is now made toFIG. 7A, which shows auser interface750 which may be used as a user input for providing conference call control functions, shown as displayed on adisplay110 of one of the mobile devices100 (e.g., the first primary communication device610). In the embodiment shown, theuser interface750 is for example implemented by a conference call application resident on themobile device100 for specifically communicating with theconference call controller440. In some embodiments, some or all of the functionality or user-initiated commands are provided by theconference call controller440.
As shown inFIG. 7A, theuser interface750 includes atitle bar752, astatus icon754, anoptions menu758, and participant icons760 (partially shown) which represent the status of each participant in the conference call. An indicator such as acursor762 is also shown for indicating which item(s) on theuser interface750 are to be selected. A chat orinstant message window756 is also shown which displays a message history of the participants in the present conference call. Thestatus icon754 displays the present status of the conference call, for example “CC Active” (i.e., conference call active) as shown.
Theoptions menu758 includes a number of conference call control functions or commands to be sent to theconference call controller440 in accordance with some example embodiments. As shown, theoptions menu758 includes user-selectable options for Help764, View Conference Call (CC)History766,Hang Up768, Mute770, andTransfer772. Other conference call options (not shown) would be understood by those skilled in the art. Some or all of the options may be displayed on theoptions menu758 depending on the particular application or current state of the schedule conference call.
The functionality of Help764,View CC History766,Hang Up768, Mute770 would be understood in the art and are not described in detail herein. If theTransfer772 option is selected, at least some of the Blocks of themethod500 are implemented by themobile device100 and/or theconference call controller440. In some embodiments, once theTransfer772 option is selected, it is determined whether thecontrol session614 is still authenticated or requires re-authentication. This determining of authentication may be performed by either themobile device100, the conference call controller440 (or both) in a manner described in detail above with respect toFIG. 6A.
In some embodiments, referring now toFIG. 7B, theuser interface750 as a consequence of theTransfer772 option being selected displays a transfer request sub-window774 which acts as an authentication interface. The transfer request sub-window774 includes a user input field for inputting of the transferee identification, in this example the terminating MSISDN useinput field780, as shown. Should it be determined that thecontrol session614 requires authentication or re-authentication, the transfer request sub-window774 may also includes a passworduser input field782 for inputting a password for authentication of the transfer request. The transfer request sub-window774 also displays in read only mode, the Originating MSISDN and the CC-PBX-Controller, as shown.
The terminating MSISDNuser input field780 and the passworduser input field782 may have default or predetermined information already loaded, wherein the user may edit such information should different user inputs be desired. If authentication is not required, thetransfer request sub-window744 may not include the passworduser input field782, and themobile device100 continues to send the transfer request to theconference call controller440 assuming a terminating MSISDN has been provided.
When the user input fields are satisfactory the “OK”icon784 is selected, which sends the transfer request over thecontrol session614. If the transfer request is not authenticated, a request for authentication is sent (including the password information). The authenticated transfer request can now be initiated as per Block526 (FIG. 5).
Referring still toFIGS. 7A and 7B, the selection of various options is not limited to being implemented by a specific application resident on themobile device100. In other example embodiments, the specific hosting control options and corresponding options of theoptions menu758 may be communicated in real-time by communication of data messages (e.g., SIP messages) from theconference call controller440.
In some example embodiments, rather than a user interface being used, themobile device100 is configured to automatically perform authentication when it is determined that the session is de-authenticated. This may for example be performed by automatically re-sending a stored password or encryption key, renegotiating or regenerating another shared key, etc.
As will also be understood, while the communication system and embodiments described herein have been illustrated as utilizing SIP, it should be understood that other protocols (including those which may be developed in the future) may be utilized for establishing and controlling sessions as contemplated herein.
The steps of the methods of facilitating a conference call in accordance with any of the embodiments described herein may be provided as executable software instructions stored on computer-readable media, which may include transmission-type media.
In an example embodiment, there is provided a method of facilitating transferring of conference call sessions from a primary communication device, wherein a conference call controller is configured to establish a conference call session with the primary communication device and other communication devices. The method includes displaying a user interface on the primary communication device, the user interface including a transfer option, receiving a command selecting the transfer option, sending a transfer request from the primary communication device to the conference call controller to link an alternate communication device within the conference call session, and determining whether the transfer request requires authentication, and if so displaying on the user interface an authentication interface for authentication of the transfer request.
In another example embodiment, there is provided a communication device, comprising: a communication subsystem for communicating with a conference call controller, wherein the conference call controller is configured to establish a conference call session with the communication device and other communication devices; and a display for displaying a user interface on the communication device, the user interface including a transfer option. The communication device is configured for: receiving a command selecting the transfer option, sending a transfer request from the communication device to the conference call controller to link an alternate communication device within the conference call session, and determining whether the transfer request requires authentication, and if so displaying on the user interface an authentication interface for authentication of the transfer request.
In yet another example embodiment, there is provided a system for facilitating transferring of conference call sessions between a plurality of communication devices, the system comprising a conference call controller configured for: establishing a control session with a first primary communication device, the control session capable of being authenticated and not authenticated, establishing a first media session with the first primary communication device, establishing a second media session with a second primary communication devices, and linking the first media session and the second media session in a conference call session, receiving a transfer request from the first primary communication device via the control session, determining whether the transfer request requires authentication, and if so performing authentication of the transfer request, and establishing, based on the authenticated transfer request, an alternate media session between an alternate communication device and the conference call controller and linking the alternate media session within the conference call session.
The present disclosure has been described with regard to a number of example embodiments. However, it will be understood by persons skilled in the art that other variants and modifications may be made without departing from the scope of the disclosure.