GB2525783A - Browser-based communications enhanced with enterprise communication features - Google Patents
Browser-based communications enhanced with enterprise communication features Download PDFInfo
- Publication number
- GB2525783A GB2525783A GB1512416.7A GB201512416A GB2525783A GB 2525783 A GB2525783 A GB 2525783A GB 201512416 A GB201512416 A GB 201512416A GB 2525783 A GB2525783 A GB 2525783A
- Authority
- GB
- United Kingdom
- Prior art keywords
- browser
- communication
- network
- enterprise
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1016—IP multimedia subsystem [IMS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1023—Media gateways
- H04L65/103—Media gateways in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1063—Application servers providing network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1106—Call signalling protocols; H.323 and related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5183—Call or contact centers with computer-telephony arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5183—Call or contact centers with computer-telephony arrangements
- H04M3/5191—Call or contact centers with computer-telephony arrangements interacting with the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/0024—Services and arrangements where telephone services are combined with data services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/0024—Services and arrangements where telephone services are combined with data services
- H04M7/0027—Collaboration services where a computer is used for data transfer and the telephone is used for telephonic communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/0024—Services and arrangements where telephone services are combined with data services
- H04M7/003—Click to dial services
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
Abstract
Systems and methods are described for enabling browser-to-phone and browser-to browser communications to be enhanced with enterprise communication features. Specifically, a Collaboration Environment is disclosed with the ability to interface a browser with an enterprise communication network. The Collaboration Environment is exposed to browsers via a media server and/or web-socket and is enabled to communicate with the browsers via a purpose-built library. In response to a communication request, the request may be analyzed to determine communication preferences for the communications session and invoke at least one enterprise application to fulfil the communications preferences.
Description
BROWSER-BASED COMMUNICATIONS ENHANCED WITH ENTERPRISE
COMMUNICATION FEATURES
CROSS REFERENCE TO RELATED APPLICATIONS
10001! This Application claims the beneflt of U.S. Provisional Application Number 6l/798,S65 filed March 15, 2013, the entire disclosure of which is hereby incorporated herein by reference.
FIELD OF THE DISCLOSURE
!0002I The present disclosure is generally directed toward communications and more specifically toward web-based communications.
BACKGROUND
[0003] Web Real-Time Communications (WebR'i'C) is an Application Programming interface (APT) definition being drafted by the World Wide Web Consortium to enable browser-to-browser applications tbr voice calling, video chat, and Point-to-Point (P2P) file sharing without the need for browser plugins.
[0004 With the advent of WehRTC, there exists a need to support browser-to-phone communications a.s well as enhance certain aspects of browser-to-browser communications. In particular, the corporate Information Technology (IT) department will begin to feel the impacts of WebRTC, This may first take the form of needing to regulate the use of browser-based communications, much like the use of other non-secure consumer-centric communications services like Skype and FaceTime need to be regulated. It could later lead to integrating browsers with WehRTC with the Session initiation Protocol (SIP)-based communications solutions deployed on premise, so that voice and video session.s can be established between the two. And eventually it could change the way communications software is dep'oyed in the enterprise, with client-based soft phones and Unified Communications tUC) software being replaced by browser-based technologies.
OO95i Furthermore, while WehifiC facilitates browser-to-browser communications, it has been developed with the intention at' facilitating browser-to-erowser conimunicat.ions within a single web pp1ication (e.g., a single wehaite), WehRTC does not, however, easily facilitate invocation of enterprise communication applications on such browser-to-browser communxcations. this is especially true if there are multiple web applications within a single enterprise tnat must be invoked. Meanwhile, application development in other protocols (e.g., SIP, ff323, etc.) is relatively mature. It would he desirable to enable the already-developed applications of SIP and H323 to be used in WehR.TC communications.
iftOO6 Some groups have begun developing WebRTC solutions that aH.ow enterprise communication applications (e.g., Private Branch eXchanges (PBXs)) to he applied on WehIRIC cafls by embedding a SIP User Agent (U.A) within the browser. This solution has a couple of shortcomings. First, lithe browser is to he represented as a fully functional SIP endpoint having enterprise features, the embedded JavaScript SIP UA must he very rich and, thereibre, complex.
Second, these solutons don't allow fibr some cornmunicauons to proceed as "pure" WebR'I'C communications and tor others to proceed as SIP-based eontm.unications,
SUMMARY
OOO7] It is with respect to the above issues and other problems that the embodiments presented herein were contemplated. In particular, embodiments of the present disclosure recognize that WebRTC is quite useful for browser-to-browser and browser-to-phone communications, One aspect of the present disclosure provides the ability to facilitate browser-to-phone communications and provide the browser with rich enterprise communication features.
Cunently-available WebRTC technologies make the browser operate in a simple mode and, therefore, the browser cannot access net-work resources (e.g., applications) that are usually available to the phone for traditional SIP and H.323 communications.
OOO8 Embodiments of the present disclosure, therefore, provide the ahiliiy to receive a request from a web application to initiate a media session, examine the calling! called party preferences, and based. on those preferences apply enterprise communication features to the call.
In some embodiments, the above features are provided by a Collaboration Environment (CE) having exposure to browsers via Hypertext transport Protocol (HTTP) Websockets or indirectly via Java Message Service (JMSL In sonic embodiments, the browsers are enabled to comrnurucate with the CE via a purposebuilt library, such as a JavaScript library. In such an implementation, the web application simply provides instructions to "make a call and then the instructions enter the CE where additional call features are invoked as per a norma! call directed to the phone instead of via a different dedicated websocket.
O009 The present disclosure also provides an enhanced Application Media Server (AMS) that converts the WebRiC Real--Time Protocol (RTP) stream into SIP/H123 friendly RTP. The AMS may also provide the media services to the CE services.
OO1tfl It is another aspect of the present disclosure to facilitate browser4o-browser communications when the communications traverse a network boundary where one or more communication regulations/restrictions may need to be enforced (e.g., at a firewall), Specifically, when browser--to-browser communications traverse such a network boundary, the need exists to leverage the enterprise communications system that already has knowledge of the regulations/restrictions and can, therefore, enforce the regulations/restrictions fix the WehRTC session, OO11J In some embodiments, the interface between the browser and the enterprise communication system can be achieved by utilizing a SIP Endpoint Adapter (SEA), which is described in U.S. Patent Application No, 13/846,710 filed on September 25, 2012. the entire contents of which are hereby incorporated herein by reference. The SEA enables the hmwser or multiple browsers to be presented to the enterprise network infrastnicture as a single device.
0O12 hr some embodiments, the Collaboration Environment (CE) presents a websocket or sonic other H'rTPbascd protocol to browsers and such browsers are enabled to communicate with the SEA via a CE JavaSeript library made available to the browser. The process begins with a user -and/or client device registering with a CE of an enterprise network. Once registered, the CE can recognize and properly process calls placed by the user and/or the user's client device as well as recognize and properly process calls directed toward the user and/or the user's client device. I'hus, when a \ ebRTC communication session is established one of the browsers operated by the registered user and/or the user's client device utilizes th.e CE JavaScript library to interface the browser with the CE of an enterprise communication network. The CE interfaces the browser with the entei-prise applications (e.g,, call logging, personal call handling applications, call recording, etc.) and. points those applications to the communication session.
The CE makes the applications available and. enforces any policies against the comnumicatEon session on behalf of those applications. Further still, the CE enables rich Unified Communications (UC) operations to be invoked for the communication session involving the browser. Examples of rich UC operations made available fo3-the WebRi'C call include, without kumtaflon, call transfer, call forward, conference, join call, record call, aid. block call operations.
100131 In some embodiments, the CE is configured to support communications in a number of different ways. First, the CE is configured to adapt the WebRTC browser / session to look like a SIP / H.323 endpoint. This would generally be done by using a SEA, and essentially enables legacy communication applications to be invoked for a WebRTC session. Second, the CE is configured to directly invoke the protocol agnostic API to facilitate communications in a native mode of operation.
100141 It is another aspect of the present disclosure to provide a CE with a WebRTC Protocol Adapter having a JMS/websocket and a native rnodeenabling component. In some embodiments, the Protocol Adapter communicates with a protocol agnostic feature invoker.
The protocol agnostic communication feature invoker and API serve as a point in the CE where the communication applications can be invoked regardless of the type of communication session (eg. WebRTC or SIP).
I0151 In some embodiments, the CE may support a nativeu mode of operation and a traditional "SIP' mode of operation. When executing on a SIP call, the CE will use a SEA to access the applications in the enterprise network through the SIP interface. These applications may include applications deployed on the CE. However, vhen executing in a WebRTC caB, the CE will invoke only the applications deployed on the CE. The CEdeployed. applications are able to handle both types of calls equally well due to the protocol agnostic API.
100161 In the native mode of operation, the applications accessed. by the CE are natively operating in the CE. In the SIP or H.323 mode, however, the applications may be operating in the CE or may be operating in a broader enterprise communications network. Regardless of the location of the applicatEons, the applications respond to the SEA as they would normally respond to any other SIP or H323 entity. Accordingly, because of the protocol agnostic communication API, the WebRTC session can utilize applications that were developed for other protocols, such as SIP and H..323, as an example.
OO17] In summary, it is one aspect of the present disclosure to provide a system and method to enable a user's enterprise calling fcawres (cg,, features or applications invoked based on SIP calling preferences of the user) to he leveraged in a WehRTC session.
OOI8) his another aspect of the present disclosure to provide a system and method to acuieve a browser-to-browser communication session enhanced with rich enterprise conuriurucaton features; whereby the enterprise communication features may be applied locally (eg., within the enterprise communication network) without necessarily involving the entire enterprise communication architecture.
OOi9 It is another aspect of the present disclosure to provide a protocol agnostic communication API that makes SiP and/or 1L323 applications available for use in a WebRTC communication session.
OO2O in sonic embodiments, a method is provided that generally comprises: receiving a request to bind a browser to an enterprise communication network, wherein the request is received via a web-based protocol; and in response to receiving the request to bind, creating an association between the browser and the enterorise communication network such that the browser is enabled access to one or more applications within the enterprise communication network, wherein the enterprise communication network facilitates communications with a protocol other than the web-based protocol.
OO2ui in some embodiments, the communication session is a browser-to-browser communication session. In some embodiments, the communication session is a browser-to-phone communication session.
OO22) In another embodiment, a method is provided that generally comprises: providing a protocol agnostic Application Proamming Interface (API) between communication applications and an application platform that enables call and media control on communication sessions; receiving a request to initiate a communication session; invoking at least one of the communication applications such that a protocol used to initiate the communication session is hidden from the invoked at least one of the communication applications thereby enabling the invoked at least one of the communication applications to apply its features to the communication session without knowledge of the protocol; and enabling a web browser to access the features applied by the invoked at least one of the commumcatton applications as if the web browser were using some proocoI other than a weh based protocoL 10023] The phrases "at least one", "one or more', and "and.'or" arc openendcd expressions that are both conjunctive and disunct.ive in operation. For example, each of the expressions "at least one of A, B and C'. "at least one of A, B, or C'. "one or more ofA, B, and C', one or more of A, B, or C" and "A, B, and/or C' means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
0024 The tenn "a" or "an" entity refers to one or more of that entity. As such, the terms "a" (or aol, "one or more' and "at least one" can be used interchangeably herein. It is also to be noted that the terms "comprising", "including", and "having" can be used interchangeably.
10O25 The term "automatic" and variations thereofç as used herein, refers to any process or operation done without material human input when the process or operation is performed.
i-iowever, a process or operation can be automatic, even though performance of the process or operation uses nateri& or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be perfwmed. 1-luman input that consents to the performance of the process or operation is not deemed to be "material".
10026] The term "addi-ess of record" or "address or record DIII" ("AoR") refers to a DIII that corresponds to a user. Unlike a contact URI (or device URI). a request sent to an AoR requires database lookups and service and feature operations and can result the request being sent to one or more end (communication) devices. An AoR is usually used in TO and FROM header flelds.
This is a common way to reach a person and is suitable for storing in address books and in returning missed calls.
10O27 The term "computer-readahk medium" as used herein refers to any tangible storage and/or transmission medium that participates in storing and/or providing instructions to a processor fbr exccution, Such, a medium may take titany forms, inc'uding hut not Eimted to, nonvoiati1e media, volatile media, and transmission media. Non-voiatile media includes, for exampk, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of coniputcr-readahle media include, for example, a floppy disk, a flexible disk., hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes. RAM, PROM. EPROM. FLASWEPROM, solid state medium like a memory card, any other rnetnory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. A digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. When the computerreadahle media is configured as a database, it is to be understood that the database may he any type of database. such as re'ationai, hierarchical, object-oriented, and/or the Lice, Accordingly, the disclosure is considered to include a tangible storage medium or distribution medium and prior art-recogmzed equivalents and successor media, in which the software implementations of the present disclosure are stored.
Oft28'i'he term "contact URI" refers to a device Universal l.esource hidicator ("OR]"). A device URI is typically in a CONTACT header Lick and is associated with a particular user for a period of time. An address of record OR! can he related or bound to a contact OR!.
OO29] The terms "deterrnine" "calculate" and "compute," and variations thereof, as used herein, are used interchangeably and include any type of methodology, process. mnathernaticat operation or technique.
OO3OI The term "module". "agent", or "tool" as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzay logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, white the disclosure is described in terms of exemplary embodiments, it should be appreciated that individual aspects of the disclosure can be separately claimed.
[003fl The term "uniform resource identifier" (URT) is a suing of characters used to identify a name or a resource.
OO32 The term "uniform resource locator" or "universal resource locator" (URL) is a specific character string that constirutes a reference to an Imernet resource.
OO33] A "user agent" refers to a Session Initiation Protocol ("SIP")-enabled endpoint device, The user agent takes direction and/or input from a user and acts as an agent on behalf of the user to set up and tear down media sessions, 13I The preceding is a simplified summary of embodiments of the disclosure to provide an understanding of some aspects of the disclosure. This summary is neither an extensive nor exhaustive overview of the disclosure and its various embodiments. It is intended neither to a identify key or critical elements of the disclosure nor to delineate the scope of the disclosure hut to present selected concepts of the disclosure in a simplified ibm,. as an. introduction to the more detailed description presented below. As will he appreciated, other embodiments of the disclosure are possible utilizing, alone or in combination, one or more of the features set tbrth above or described, in detail below.
BRIEF DESCRIPTION OF THE DRAWINGS
j0035J The present disclosure is described in conjunction with the appended figures: 100361 Fig. 1 is a block diagram of a communication system in accordance with embodiments
of the present disclosure;
10037] Fig, 2 is a block diagram depicting additional details of a coilahoration environment in accordance with embodiments of the present disc'osure; 10038 Fig. 3 is a block diagram depicting a first coTnmtinication system configuration in accordance with embodiments of the present disclosure; 10039] Fig. 4 is a block diagram depicting a second communication system configuration in accordance with embodiments of the present disclosure; 10040] Fig. 5 is a flow diagram depicting a first communication method in accordance with
embodiments of the present disclosure;
[0041] Fig. 6 is a flow diagram depicting a second comn:iunicati.on method in accordance with
embodiments of the present disclosure;
[0042] Fig. 7 is a block diagram depicting a third communication system configuration in accordance with embodiments of the present disclosure; 10043] Fig. 8 is a block diagram depicting a fourth communication system configuration in accordance with eni hodiments of the present disclosure; and 10044] Fig.. 9 is a flow diagram depicting a third communication method in accordance with
enhodi men s of the present disclosure.
DETAILED DESCRIPTION
0045] The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It being understood that various changes may be made in the unction and arrangement of elements without departing from the spirit and scope of the appended claims.
100461 Fig. I depicts a communication system 100 according to an embodiment of the present disclosure. The communication system 100 may rnciude an enterprise network 104 that is in communication, via a (typically untrusted or tmsecure or public) communication network 108.
with one or more externa! communication devices, which maybe in the form of a client device 112 with a web browser 1 6. It should also be appreciated that other types of external communication devices may he provided in addition to or in lieu of the client device 112 with a browser 116.
[00471 The communication nctwork. 108 may he packet-switched and/or circuit-switched. An illustrative communication network 108 includes, without limitation, a Wide Area Network (WAN), such as the Internet, a Public Switched Telephone Network (PSIN), a Plain Old Telephone Service (POTS) network, a ceflu!ar communications network, a Voice over IF (VoIP) network.. an IMS network, or combinations thereof. in one configuration, the communication network 108 is a public network supporting the TCP/IP suite of protoco!s.
100481 The external client 1 i2 is generaily referred to as "external" because it is either not under the direct control of the enterprise administering the enterprise network 104 or has a decreased level of trust with the enterprise network 104 as compared with communication devices 136 and/or client devices 164 that are within the entei.prise network 104. Illustrative types of client devices 112 include, without limitation, smartphones, laptops, Personal Computers (PCs), tablets, and the like. The web browser 116 executed by the client 112 may be suired as an application on the client 112 or it may correspond to a cloud-based application that is made available to the client 112 via cloud/based coinputina techniques. Non-limiting examples of web browsers 116 that may he utilized on the client 112 include, without limitation, Chrome®, Internet Explorer®, Safari®, Firefox®, or any other type of application that enables the client 112 to interface and communicate with one or more web applications 184 (e.g., websites or websen'ers) via web-based communication protocols (e.g., i-EyperText Transport Protocol (HTTP). Secure HTTP (SHTTP), mobile web protoco's, lightweights web protocols, etc.). Fig. I also shows that each of the web applications 184 may include a JavaScript library 188 that interfaces to the web browser 116 and endpoint adapter 140 to initiate calls vi.a WebRTC Although not depicted, it should also he appreciated that one or more web applications I $4 may be contained within the enterprise network 104 without departing from the
scope of the present disclosure.
0O49 The enterprise network 104 may include a boundary device 120 including a server table 124, one or multiple communications servers 128 including sequencing rules 132, a Collaboration Environment (CE) 136 having an endpoint adapter 140 and one or more communication APIs (144), one or more interna communication devices 1 60, one or more internal client devices 164 with a web browser 168. one or more anplication servers 148 which may be capable of providing one or multiple applications 152, one or more application media servers 156, a number of other servers 172, and an enterprise database 176, all of which are interconnected by a (trusted or secure or private) V/ide Area Network (WAN), Local Area.
Network (LAN), or comhniation thereof 180. Some or all of the functions depicted in Fig. I may be co-hosted arid/or co-resident on a single server. Alternatively or additionally, some or all of the components of the enterprise network 104 tray he made available via cloud computing technologies. For instance, some or all finctions of tne servers may be made available from a cluster of servers that may or may not necessarily be co-located with the communication devices and/or 164. In other words, the enterprise network 104 may be partially cloud-based and access to the resources of the cloud-based network may be obtained through the communication network 108. The depiction of components in Fig. I is generally intended tobe a logical depiction of the components of the system 100.
0O5O] It should be further appreciated that the components of the enterprise network 104 may facilitate traditional SIP-based communications and/or H.323-bascd communications between two or more communication endpoints (e.g, client 112. communication device 160, and/or client 164). The SIP and/or H:323-based communications are provided in any normal fashion. As will be discussed in further detail herein, however, one or more components of the enterprise network 104 may also facilitate web--based communication sessions (e.g., WebRTC communications), where one or more web browsers 116 and/or 16 are involved in the comimmic ation session.
[0051] In the depicted embodiment, the communication network 108 is shown as being connected to the WAN 180. It should be appreciated that one or more network border elements such as a firewall, Session Border Controller (SBC), or the like may reside between the two networks. However, for ease of illustration and description, the system 100 is shown without such a network border element.
[00521 The communications server 128 is shown to include a server table 124, which may enable the communications server 128 to route conununication requests to appropriate other communications servers 128 that are authoritative for users within tile enterprise network 104.
While the communications server 128 may be configured to register users within the enterprise network 104. the CE 136 may be configured to register a web browser 116 to a user identity within the enterprise network 104, thereby exposing the capabilities of the CE 136 (e.g., rich call features) to the web browser 116 for both incoming and outgoing calls.
[0053 More specifically, the server table 124 may he utilized for initiafly routing communications within the enterprise network 104 to the communications server 128 responsible fir servicing a particular user (e.g.. User A and/or User B) iEwoved in the comnunicauon session. For cxampk, if an enterprise user (e.g., User B) is being cailec by an external client device 112, then the conununieations server 128 may initially receive the inbound call, determine that the call is directed toward User B, reference the server table 124 to identify the authoritative comuwnicadons server 128 fir User B, and route the inbound call to the authoritative communications server 128.
[00541 Likewise. communications between internal enterprise users (c.g. between communication device 160 and client 164 or between two internal client devices 164) may first be serviced by the originating user's authoritative conununications server 128 during the origination phase of conmiunications set-up. After the origination phase is complete, the authoritative communications server 128 of the terminating (or called) user may be invoked to complete the termination phase of communications set-up. In some embodiments, the comnumiestions server 128 for the originating and tentinating user may be the same. but this is not necessarily required. In situations where more than two enterprise users are involved in a communication session, authoritative communications servers 128 for each of the involved users may be employed without departing from the scope of the present invention, Additionally, the authoritative communications servers 128 for each user maybe in the same enterprise network 104 or in different enterprise networks 104, which are owned by a common enterprise hut are separated by the communication network 108.
[0055] In accordance with at least some embodiments of the present invention, the mapping of user identities within a communication request does not necessarily have to occur at the communications server 128. For instance, the mapping between an authoritative server and a user may occur at a network boundary device or within the enterprise network 104 at some other component (e.g, at CE 136) 0056 The communications server 128 can include a Private Branch eXchange (PBX), an enterprise switch, an enterprise server, combinations thereof, or other type of telecommunications system switch or server. The conununications server 128 is preferably configured to execute teieeommuwcation functions such as the suite of or Avaya AuraTM applications ofAvays, Inc, including Communication ManageñM, Avaya Aura Cotmnunication Ma.nage31M, Avaya IP OtiiiceTM, Communication Manager BrancbTM, Session ManagerTM, System Manage3TM, Multi Vantage Express1'M, and combinations thereof 0O57] Although only a single communications server 128 is depicted. in Fig. 1, two or more communications servers 128 maybe provided En a single enterprise network 104 or across multiple separate LANs 180 owned and operated by a single enterprise, but separated by a communication nerwork 108. in configurations where an enterprise or an enterprise network.104 includes two or more conimunication.s servers 128, each server 128 may comprise similar thnctionality. hut may be provisioned for providing its features to only a subset of all enterprise users. in particular, a first communications server 125 may be authoritative for and service a first subset of enterprise users whereas a second communications server 128 may be authoritative for and service a second subset of enterprise users, where the first and second subsets of users generally do not share a common user. This is one reason why the communications server 128 may be provided with a server table 124.
0058] Additionally, multiple communications servers 128 can support a common user community. For example, in georedundant and other applications where users aren't necessarily bound to a single application server, there may be a cluster of equivalent servers where a user can be serviced by any server in the cluster.
0OS9 In some embodiments, the sequencing rules 132 provided on the communications scn;er 128 may correspond to or describe communication feature preferences for each user for which it is authoritative. The sequencing rules 132 for a particular user are rethrenced by the authoritative commumcations server 128 for the user to determine which, if any, features should be incorporated into a communication session for the user.g, via an application 152) and an order in which such features should be incorporated into the communication session. The communications server 152 can actually provide communication features directly into the communication session or determine an application sequence, which. will he invoked during set up and. used during the communication session.
100601 It should be appreciated that the sequencing rules 1.32 may he a list of prefirrences. may be a table containing communication preferences. or can he in any other suitable thrrnat, Furthermore, the sequencing rules 132 can he provisioned by users and/or by administrative personnel. As shown in Fig. 1. the sequencing rules 132 may alternatively or additionally be pmvi.ded in the CE 136, thereby enabling the CE 136 to sequence applications in a native mode of operations as will he described in further detail herein.
[00611 It is also to be understood that any data structure can be used to render the various preference tables, including, without limitation, primitive, composite, or abstract data types, linear data structures. tree data structures. hashes, graphs, and the like.
[0062 The CE 136 may correspond to another serier. whose purpose is to facilitate WehRTC communications to leverage applications 152 and other call features of the enterprise network 104. Another aspect of the Cli 136 includes the ability the ability to provide a platform for applications that can he invoked for WebRTC and other types of communication sessions.
100631 With respect to the leveraging of applications 152, if a communication session includes WebRTC (e.g,, at least one browser 116 is being employed), then the CE 136 may be invoked to provide the browser 116 and/or 168 with access to features of the enterprise network 104 that would nor he available if the simple WehRTC protocols were f7llowed. In some embodiments, the CE 136 utilizes an endpoint adapter 140 that makes itself available to web browsers 116 external to the enterprise network 104, AdditionaL behaviors of the endpoint adapter 140 are described in U.S. Patent Application No. 13/846,710 frIed on September 26, 2012. the entire contents of which are hereby incorporated herein by reference. In some embodiments, the endpoint adapter is configured to represent the browser as a fully featureenabled endpoint using another protocol, thereby enabling it to leverage all of the features of an existing enterprise communications network 1.04.
[0064] The CE 136 may further include a protocol agnostic communications API 144 that enables the endpoint adapter 1.40 to access the various components of the enterprise network 104 (e.g., applications 152. communication server 128. database 176, application media server 156, other servers 172, etc.). hi some embodiments, the endpoint adapter 140 is configured to abstract session, and/or media control signaling received from the browser 116 (e.g., session and/or media ct-,ntrols transmitted in accordance with WebRTC definitions) such that they can be understood by the components of the enterprise network 104 that do not natively support WebRTC The protocol agiiostic communications API 144, on the other hand, is configured to enable applications operating within the CE 136 to provide their features to a communication seaston regardless of what protocol the underlying endpoints are utilizing. As an example, the protoco agnosflc communications API 144 may be configured to abstract session andior media control siais from. the specific protocol being used such that they can he understood or translated into a different protocol (e.g., WebRTC to SIP, WehRTC to ff323. SIP to WebRTC, ff323 to WehRTC etc.).
100651 The \VkN 1 80 can he secured from intrusion by untrusted partes by a gateway andior firewall located between. the WAN 180 and communication network 108. in some embodiments the boundary device 120 may include the functionality of the gateway amid/or firewali, hi sonic embodiments, a separate gateway or firewall may be provided between the communication network 108 and WAN 180. More specific examples of devices that may be piovided between th.e communication network 108 and WAN 180 incude a reverseproxy and a SI' UN/TURN server.
[0066] The other servers 172 may comprise email servers, voicemail servers, calendaring servers. conferencing servers, and other types of servers known to provide particular services to client devices. In some embodiments, the other servers 172 may also be considered application servers 148, which provide one or more applications 152 for use in a communication session.
10067] The internal communication devices 136 may be provisioned, and often owned, by the enterprise. Exemplary types of communication devices 160 include, without limitation, any capable phone, hardphone, sofiphone, SIPcapable phone. H.323--capable phone. smartphone, cellular phone, PC, laptop, tablet, and/or digital telephone. Examples of suitable telephones include the 1600 TM, 2400 TM, 4600 TM, 5400 TM, S600TM, 9600M, 96201M, 9630TM, 9640TM, 9640C11M. 9650TM, arid Quick EditioniM telephones, Il> wireless telephones (such as Avaya Inc.'s I? DECT TM phones), video phones (such as Avaya Inc.'s Videophone'1M), and softphones of Avaya, Inc. 10068 The enterprise database 176 includes enterprise subscriber information, such as name, Job title, electronic address information (e.g., telephone number, email address, instant messaging handle, direct dia' extension, and the like), subscriber contact lists (e.g., contact name and elecutinic address information), other employee records, and the like. Additionally or alternatively, the enterprise database 176 may contain presence information for a user, communication capabilities for a user, and any other dynamic variable that is retrievable by the communication server 128 and/or CE 136. in sonic embodiments, the database 176 may comprise data in a certain structural format (eg.. hierarchical database, SQL database, etc.) or an unstnictured format (e.g., NoSQL database, etc.). The database 176 may include persistent storage (disk) or may he only an in-memory database.
10069! In accordance with at least some embodiments, the communications server 1 28 determines an. application sequence and causes one or more applications 144 to be sequenced into a communication session in accordance with the sequencing rules 132 in particular, the communications server 128 is configured to analyze a particular user's sequencing rules 132 and invoke the necessary applications 152 and routing to fulfill such preferences. When operating in concert with the CE 136, the communication server 128 may determine and invoke enterprise applications 152 for traditional phone-to-phone communication sessions, browser-to-phone communication sessions, and/or browser-to-browser cornmumcatiorm sessions. Thus, although the communication server 128 is depicted as being separate from the CE 136, it should be appreciated that the comrnanication server 128 and CE 136 may be executed on a single server and, in some embodiments, the ft[nctionality of one component may be incorporated into the other component (e.g., CE 136 functionality may be incorporated into the communication server 128 or the communication server 128 functionality may be incorporated into the CE 136).
100701 Once an application sequence is determined by the communications server 128, the communications server 128 passes the communication--establishing message to a first application 152 in the application sequence, thus allowing the first application to determine the parameters of the conununication session, insert itself into the control and/or media stream of the communication session, and thereby bind itself to the communication session. Once the first application has inserted itself into the communication session, the Lu-st application either passes the communicaton-establishing message back to the communications server 128 to identify the next application in the application sequence (e.g., based on the sequencing rules 132) or passes the communication-establishing message directly to a second application 152 in the application sequence. Alternatively, or in addition, the message may be redirected, rejccted, or the like.
Moreover, parties and/or media servers may be added to the call by an application 152.
10071 Examples of the types of applications 152 that may be provided by the application server 148 include, without limitation, call recording applications, communication log services, conferencing applications, security applications, encryption applications, collaboration applications, whxteboard applications, mobility applications, presence applications, media apphcations, messaging applicatIons, bridging applications, and any other type of application that can supplement or enhance communicaflons. As wkth the communtcations server and CE 136, the appIicaton server 148 or applications 152 may be co-located with the CF. 136 and/or communication server 128, or vice versa, without departing from the scope of the present
disclosure.
10072 With reference now to Fig. 2, additional details of the CE 136 will be described in accordance with at least some embodiments of the present disclosure. Specifically, the CE 136 is shown to include a collaboration bus 204, a call/media API 2.08. a first protocol adapter 212, a second protocol adapter 216, and a protocol agnostic feature invoker 220. Fig. 2 also shows that the CE 136 may comprise one or more native applications 152, which may be the same or similar to the other applications 152 described herein.
0073] The first and second protocol adapters 212, 216 may he configured to perform protocol nonnahzation such that everything else inside the CE 136 is protocol agnostic. More specifically, die protocol adapters 212, 216 enable the collaboration bus 204. call! media API 208, and ibature invoker 220 to all operate in a protocol agnostic manner. Non-limiting examples of suitable protocol adapters 212, 216 include an IMS Service Control (ISC) interface, a plain SIP Uk an Advanced SIP Telephony (ASf) interface, and a WehRTC gateway. The protocol adapters 212, 216 may also be configured to present. a control and/or signaling interface to the web applications 184 and/or browsers 116, 168, In some embodiments, the web applications 184 may be configured to provide simple commands to a protocol adapter 212 and/or 21.6 such as "make call" commands. ihe browsers 116, 168. on the other hand, may utilize the JavaScript library 188 provided by the web applications 184 to exchange control and/or status signals with the CE 136. Specifically, the JavaScript library 188 may provide the browsers 116, 168 with instnictions for communicating with the protocol adapters 212, 216.
Moreover, the exchanges between the browsers 116, 168 and CE 136 may be perfornied in accordance with WebRTC protocols.
0074 As can be appreciated, the protocol adapters 212, 216 may enable the CE 136 and its components to exchange communications within the enteiprise network 104 and outside the enterprise network (e.g., with the communication network 108). Inside the CE 136. however, the communications may be protocol agnostic. The CE 136 may, therefore, be configured. to translate communications between WebRTC, SIP, 11323, and any other nonweb*ased protocol.
As wiH be discussed herein, the protocol adapters 212 may enabl.e the CE 136 to exchange communications with the application media server 156, thereby enabling the CE 136 to invoke the application media server 56 for a hrowsertophone or browser4ohrowser communication session. It should be rioted that the application media server 156 may not he needed for hrowser tobrowser communication sessions since pont-to--point RIP is supported in WehR.TC; however, it may be desirable to include one or more application media servers 156 to play announcements, provide recording capabilities, etc., for a WebRTC call.
[00751 In sonic embodiments, the call / media API 208 enables the protocol agnostic idature invoker 220 to invoke one or more applications 152 contained within the CE 136.
Advantageously, the applications 1 52 can be tunction without concern tbr the underlyin.g protocol used between endpoints during a communication session, [00761 As shown in Fig. 2, the call / media API interfaces with the protocol agnostic feature invoker 220 via the collaboration bus 204. The collaboration bus 204 may be similar in nature to an Enterprise Service Bus or JMS bus. Coimnunications between the protocol agnostic feature invoker 220 and call / media APi 208 all pass through the collaboration bus 204.
100771 The protocol agnostic feature invoker 220, in sonic embodiments, may utilize or have access to die sequencing rules 132 to help determine which applications 152 should he invoked for a particular communication session. The call / media API 208 may provide the interface between the protocol agnostic feature invoker 220 and the applications 152, In some embodiments, the collaboration bus 204. call / media API 208, and protocol agnostic feature invoker 220 may be collectively referred to as the protocol agnostic communications API 144.
[0078] In some embodiments, the protocol adapters 212, 216 may communicate with the protocol agnostic feature invoker 220 via the collaboration bus 204. More specifically, the protocol adapters 212, 216 may exchange information with the protocol agnostic feature invoker 220 via Session Description Protocol (SDP) messages.
[0079] With reference now to Fig. 3, additional details of the CE 136 and its interaction with a browser 308 will be described iii accordance with embodiments of the present disclosure, As shown in Fig. 3. the first protocol adapter 212 may correspond to a WebRTC gateway and the second protocol adapter 216 may correspond to an endpoint adapter 140. The endpoint adapter 216 interfaces the CE 136 to an enterprise network 304, such as a SIP network. It should be appreciated that the enterprise network 301* may be a 1-1.323 network or any other network' using any type of conununication protocol known in the art.
Fig. 3 also shows how the web browser 308 interfaces with the CE 136 via the WehR'['C gateway 212. In partictilar, the web browser 308 may receive information for interfacing with the WebRTC gateway 212 from the JavaScript library 188 on the web application or web server 184. Using the functionality of the.lavaScript library 188, the web browser 308 can initiate and achieve WebRTC sessions that ineorporaLe applications 152 from the enterprise communication network 104. It should also he noted that the signaling between the web browser 308 and CE 136 might actually he relayed by the web server 184 to the CE 136 in cases where Cross-Origin Resource Sharing (COR.S) is not supported. In other words, embodiments of the present disclosure enables a browser 308 to interface directly to another server than that front which it got the HTML! JavaScript.
0081] In sonic embodiments, the web browser 308 may correspond to a browser operating on an internal chent 164 or external client 116.
[00821 Fig. 3 also depicts how the protocol agnostic feature invoker 220k provided with the ability to invoke an application media server 156 for a communication session involving a web browser 308. More particularly, protocol agnostic feature invoker 220 may invoke the application media server 156 to convert WebRTC RTP streams (e.g., RTP streams transmitted and understood by the web browser 308) to SIP!H.323 RTP streams (e.g., RIP streams transmitted and understood by the communication device 312). The application media server 156 may also be configured to provide media services to the CE 136 (e.g., to support rnedia specific applications 152 operating in the CE 136).
10083] In accordance with at least some embodiments, the browser 308 may comprise JavaScript 312 from the web application, a CE Java.Script library exposing a CE API 316, and a.
WebRTC API 320. As will be discussed in further detail herein, the JavaScript 312, CE API 316, and WebRTC API 320 may cooperate to enable the browser 308 to exchange communications with the CE 136 via the WehRTC gateway 212. In operation. when the user requests a registration by clicking a URL or iccn displayed in the browser 308, the web application 184 may receive a call or invocation command from the browser 308. I.lpon invocation, the web application JavaSeript 31 2 may invoke a register() operation on the CE API (316). This causes the CE API 316 to send a register message to the WehRTC Gateway?. 12 with the user's credentials. The WebRIC Gateway 212 validates the user's credentials, then invokes the SEA 216 to register a virtual SIP endpoint with the SIP network 304. A binding now exists between the browser 308 and the SIP network 304 such that the crowser appears to the SIP network as a fully functionaL SIP endpoint capable for making calls, receiving calls and perforn:ung advanced call control operations.
O084i Once the registration is complete, the Web Application 184 may contn.ue interacting with the CE API 316 in order to initiate or otherwise control calls, For instance, the Web Application JavaScript 312 may invoke a makeCaili) operation on the CE API (316) to initiate a call to a particular phone number or Address of Record. This causes the CE API 316 on the web browser 30$ to invoke a getMediaOffer() to the WebRTC API 320 on the browser 308. A makeCaElrnessage is then sent from the CE API 316 to the Web WIC gateway 212 with the media offer and the destination address.
0O8S] After the registration step, the CE 136 is able to represent the browser 308 to the enterprise communication network 304 via the SEA 216, Furthennore, the CE 136 may enable the establishment of a conununication session for the browser 308 that incorporates one or more enterprise applications from the enterprise network 304 and/or one or more applications 152 within the CE 136 into the communication session. For applications 152 outside the CE 136, this may he done by the CE 1 36 transmitting an INVITE message to the device addressed in the makeCall() operation originally transmitted by the web browser 30$. For applications 152 within the CE 136, the protocol agnostic feature invoker 220 may invoke one or more applications 152 via the call/media API 208. Of course, the INVITE message may traverse several servers on its way to the destination address so that one or more apph.eation.s can he sequenced into the communication session. in some embodiments, the CE 136 represents the browser 308 to all servers and communications endpoints of the enterprise network 304 and such representations arc made via SIP and/or 1-1323 (e.g., a protocol em.ploed by the enterprise network 304).
[0086 Fig-4 shows an alternative architecture that may be employed by the CE 136 to accomplish simruiar or identical fenctions of the architecture depicted in Figs. 13. Specifically.
the CE 136 is shown to include a WebRTC gateway 404, which may be similar or identical to the WebRTC gateway 212 of Fig, 3. I'he WebRTC gateway 404 comprises an HTTP signaling component 408 that flares toward the browser 308 and an internal interface 412 that faces toward other components of the CE 136. The HIlT signaling 408 may exchange communications with the browser 308 via web-centric WebRTC protocols and. the internal interface 412 may exchange conunui.ucations within the CF 136 in a protocol agnostic fashion.
j0087 The CE 136 further comprises an endpoint adapter 420, which may be similar or identical to the endpoint adapter 140 depicted. in Fig. I -The endpoint adapter 420 may comprise a plurality of protocol components 424 that enable the endpoint adapter 420 to communicate with an external session. manager 436 in any protocol understood by the session manager 4.36. In sonic embodiments, the enclpont adapter 420 may further he confiired to invoke an ex.tenia! media server 156, much like the protocol agnostic feature invoker 220 of Fig. 3.
*088 The session manager 436 may he similar or identical to the communications server 128 of Fig. I in that the session manager 436 may be responsible for determining an application sequence for a connnunication session. Alternatively or additionally, feature invocation may be performed at a feature invoker 428 internal to the CE 136. The internal feature invoker 438 may he similar or identical to the protocol agnostic feature invoker 220 and may facilitate a native mode of operation for the CE 136 as will be discussed in further detail below, Like the endpoint adapter 420, the feature invoker 428 may comprise a plurality of protocol components 432 that enable the feature invoker 428 to exchange communications via any protocol supported by the enterprise network 304 (e.g., SIP, H,323, etc.).
0*89 The CE 136 of Fig. 4 is also depicted as including a protocol agnostic AP1416. This protoco agnostic API 416 may be similar or identical to the communications API 144 and/or call / media API 208. Ihe protocol agnostic APi 416 may provide a conduit between the feawre invoker 428 and native applications 152 contained within the CE 136. Additionally or alternatively, the protocol agnostic AlP 416 may also provide an interface between the CE 136 and an external media server 156, which may be part of the enterprise network 304 or external to the enterprise network 304.
0090I With reference now to Fig. 5, methods of invoking browser4o-browser and/or browser-to-phone corninurucation sessons with the assistance of the CE 136 will be described in accordance with embodiments of the present disclosure. It should be appreciated that the method of Fig. 5 nmy he performed by any type of system architecture depicted and described herein.
Specifically, the architecture of Fig. 1, Fig. 2, Fig. 3, and/or Fig. 4 may be employed to execute some or all of the method steps described in connection with Fig 5.
009i] The method begins when a user initiates registration of their web browser 308 with an enterprise network 304 via the CE 136 (step 504). In some embodiments, registration of the web browser 308 may include having a user provide a user name, password, and/or other authentication tniormation to the CE 136 via an open web browser 308. It shordd also be noted that the CE JavaScript Library 188 and the CE AP 316 exposed by that JavaSeript library may he used for the registration step as well.
0092J Once the registration has beer! initiated, the method continues with the WebApp JavaScript invoking a registration method on the CE JavaScript library 312 (step 508). in response to the registration method being invoked, the CE JavaScript library 312 sends a registration request to the WCbRTC gateway 212 (step 512), At this point, the CE 136 can control the registration of the browser 308 and its user with the other network infrastructure.
Accordingly, the CE 136 may continue the registration method by having the SEA 216 send the registration request to the SIP network 304, thereby registering the user with the enterprise network 304 (e.g., via a communications scnter 128) (steps 516 and 520).
0093I In some embodiments, the infonnation provided from the web browser 308 to the CE 136 during registration may include a user name and password. The CE 136 may verify the authenticity of the user name and password combination or provide the information to an autnentxeation server contained in the enterprise network 304. Once authenticated. the CE 136 may use its second protocol adapter 216 (e.g., a SEA) to persistently represent the user and the user's browser 308 to the enterprise network 304 until the user logs off, closes the browser 308, or performs some other action that indicates the desire to discontinue the registration of the user V)094 Once the user has completed registration, that user has their identity and the address (e.g. IP Address) of the browser 308 bound to a known identity in the enterprise network 304, Accordingly, when the user initiates a call via the browser 308 or receives a call directed toward their identity (e.g, AoR), the enterprise network 304 is conbgured to begin processing the calh initiation message (e.g., INVITE) in accordance with conununicaton preferences of the user.
IO95I The method continues with the pi.tcessiitg of a request to initiate a communication session at the CE 36 (step 524). The request to initiate a communication session may be received from the browser 308 as a WebRTC message (e.g., make call operation) or the request maybe receaved from the enterprise network 304 (eg., as an INVITE message). In some embodiments, registration of a user as discussed above in connection with steps 504, 508, 512, 516, and 5.20 can occur simultaneous with., heibre, or after the receipt of a call originating from or directed toward a browser 308, %ccordingly, although step 524 is shown as occurring after registration. it should he appreciated that a communication session between the browser 308 and CE 136 is set up at registration time, not after a request to make a call. Furthermore, the CE JavaScnpt library 188 may correspond to the entity that directly handles the communication session (like SIP stack) rather than serving as a lookip Ibr the browser, 100961 Regardless of when the session is initiated, the browser 308 may obtain information from the web application 184 to f cilitate a WebRTC communication session with the CE 136 (step 528), This intbrmation obtained at the browser 308 may correspond to information already contained in the JavaScript 31.2, CE. API 316, and/or WehRTC API 320 or it may correspond to additional script in{bnnation obtained from the JavaScript library 188 of the web server 184.
Additionally or alternatively, the CE JavaScript library 188 may correspond to the entity that directly handles the communication session, much like a SIP stack, rather tFan serving as a lookup for the browser 308. This inibrination is used by the browser 308 or the CE JavaScript library 188 itself to establish a connection with the ebRTC gateway 212 (step 532).
100971 When the CE 1.36 determines that the browser 308 has connected thereto via the WehRTC gateway 212, the method continues with the CE. 13.6 presenting the browser 308 to the enterprise network 304 as an enterprise user communicating on an enterprise communication device (step 536). En other words, the CE 136 presents the browser 308 and its user to the enterprise network 304 in such a way that the network 304 is unaware that the browser 308 is communicating via WehRTC, instead, the network 304 is allowed to utilize native protoeok (e.g., SIP, 11.323, etc.) and the user operating the browser 308 is n'eated as if he/she were using a SIP or U.323enahled communication device. Similarly, the applications 152 within the CE 136 view the browser 308 as sri endpoint and have no regard for the protocols being employed between the browser 308 and WebRTC gatewa.y 212 100981 Fig. 6 depicts the communication method as viewed from the CE 136. The method is initiated when the CE 136 receives the request from a web application 184 to initiate or "make" a call (step 604). Thereafter, the CE 136 and/or communications server 128 examines the call request or signaling received fron.i the browser 308 to determine coimnunication preferences for the calhng and/or called party (step 608). In sonic embodiments, the analysis may be performed based on the user that previously registered with the CE 136 via the browser 308 (e.g., analyzing calling preferences of a user that registered the browser 308 with the CE 136).
Based on the analysi.s of step 608, one orniore enterprise applications 152 are selected for incorporation into the communication session (step 612). The CE 136 is capable of jnvoking such applications 157. internally and/or via the enterprise network 304 as if the call was originated by a phone (step 616). Thus, the applications 1 52 can he developed for SIP and/or ft323. hut still he used in a WehRTC call.
100100] The Ci.. 136 may thrther invoke the application media server 156 to convert the WehRTC stream into SIP/H.323-cornpatih!e RIP (step 620). It should he noted, however, that the application media server 156 is not necessary for sinmie calls in the native mode of operation although it could still be used for features such as playing announcements and the like, If and when the application media server 156 has been invoked, the CE 136 completes the call construction by sequencing any additional applications and establishing a media path via the application media server 156 (step 624) .At this point, the communication session is established between the browser 308 (or specifically the client 112 using the browser 308) and another device, which may be another browser 308 or a communication device 160.
[00101] With reference now to Figs. 7-9, additional details of the CE's 136 ability to operate in a native mode will be described in accordance with at least some embodiments of the present disclosure. Specifically, Fig. 7 depicts an architecture similar to Figs. 2 and 3'where the protocol adapters 212, 216 are both WehRTC gateways 704, 708. The WehRTC gateways 704, 708 are used to facilitate a browser-to-browser communication session. The browsers involved in. the communication session may be internal browsers 168, external browsers 1.1.6, or a combination.
thereof In some embodiments, because the communication session solely involves browsers 308, the CE 136 is enabled to operate in a native mode of operation. In other words, the CE 136 does not have to utilize a SEA to present a browser to an enterprise communication network.
Instead, processing of the communication session and application sequencing may occur entirely within the boundaries of the CE 136. In other words, the protocol agnostic feature invoker 220 may solely invoke native applications 152 via the call / media API 208.
I00i02 Fig, 8 depicts an analogous architecture to that of Fig. 4. Again, the CE 136 is facilitating a browser4o*browser communication session between browsers 704, 708, which may he similar or identic& to the browsers $08 depicted and described in Fig. 7. While operating in this native mode, the CL 136 is able to hyi:.ass the endpoint adapter 420 and all application sequencing and processing occurs internal to the CL 136. Thus. on!y internal applications 152 are invoked in a protocol-agnostic fashion while the CE 136 is operating in a native mode. The session manager 436 and a connection to an enterprise network 304 are not required in this mode o operation.
l0103 With reference now to Fig. 9, a method of invoking a native or nonnative mode of operation at the CL 136 will he described in accordance with embodiments of the present disclosure. The method begins after a browser 308 has registered with the CE 136 and when a make call request is received at the CE 136 (step 904). The CE 136 then ana!yzes the call request and determines whether the call request was made by a browser 308, directed to a browser 308. and/or or whether the call request caine from or is directed to a traditional phone (e.g. SIP-enabled or H.323enabled phone) (step 908). If the CE 136 determines that the call is going to include two browsers 308 (e.g., the call will not involve a legacy communication protocol such as SIP or H.323). then the CE 136 begins operating in a native mode of operation (step 912). While in the native mode of operation, the CE 136 uses its native interface (e.g., protocol agnostic feature invoker 220, call / media API 208, and/or feature invoker 428) to access the internal applications 152 in a protocol-agnostic fashion (step 916).
00i04 Referring back to step 908, if the call does not involve WebRTC. then the CE 136 will invoke the traditional mode of operation (step 920) and access the enterprise applications 152 as per a normal call (step 924).
00I0S] Following step 916 or 924, the method continues with the CE 136 optionally invoking the application media server 156 (step 928) and completing the call construction so that a media path is established between the participant's communication endpoints, which may be browser-based, phones, or a combination thereof (step 932) .As noted above, one or more of the applications 152 may have access to the media of the communication session via the application media server 156, but this is an optional step that does not necessarily have to be followed.
OOiO6 in the foregoing description, for the purposes of illustration, methods were described in a particular order. ft should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used. to cause a machine, such as a general-purpose or specialpurpose processor (CJPU or CPU) or logic circuits programmed with the instructions to perfbnn the methods (FPGA). These machine-executable instructions may be stored on one or more machine readable mediums, such as CDROMs or other type of optical disks, floppy diskettes, RUMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory. or other types of machine-readable mediums suitable for storing electronic instructions.
Alternatively, the methods may be performed by a combination of hardware and software.
f001071 Specific details were given in the description to provide a thorough understandin.g of the embodiments. However, it will he understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. in other instances. well--known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
O!O8 Also. ii is noted that the embodiments were described as a rroeess which is depicted as a flowchart, a flow diagram, a data f ow diagram, a structure diagram. or a block diagram.
Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re--arraiigd A process is terminated when its operations are completed, but could have additional steps not included in the flgure. A process may correspond to a method. a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the fhnction to the calling function or the main function.
[001091 Furthermore. embodiments may he imolernented by harthvare, software, firmware, nuddleware. microcode, hardware description languages. or any combination thereof, When implemented in software, firmware. middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium A processor(s) may perform the necessary tasks, A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program satemen.ts. A code segment may he coupled to another code segment or a hardware circuit by passing andior receiving information, data, arguments, parameters. or memory contents.
Information, arguments, parameters, data, etc. tray he passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. O61 I O While illustrative embodiments of the disclosure have been described in detail herein, it is to he understood that the inventive concepts may he otherwise vartousy embodied and employed, and thst the appended claims are intended to he construed to inckude such variations,
except as limited by the prior art.
Claims (10)
- Claims: A communication network, comprising: a collaboration environment including an interface adapted to receive a request from a webbased application that includes at least one browser as an endpoint to the communteatuin session, analyze the request to detennine conHnu.nication preferences for the communication session, and invoke at least one enterprise application to fulfill the communication preferences for the communication session.
- 2. The network of claim 1, wherein the communication preferences correspond to at least one participant's communication preferences defined in an enterprise communication network.
- 3, The network of claim 1, wherein the collaboration envirotunern is further configured to create a binding association between an identity of thc at least one participant in the enterprise communication network and the at least one browser thereby enabling the at least one browser to access applications within the enterprise communication network.
- 4. The network of claim 1, wherein the applications provide rich Unified Communications (UC) ibatures to the at least one browser during a communication session.
- 5. The network of claim 1, wherein the collaboration environment is fltrther adapted to receive the request via a Web Realtime Communications (WebRTC) gateway, wherein the browser cooperates with the WebRTC gateway to create the binding, and wherein the collaboration environment maintains the association between the browser and the enterprise communication network for at least one of a predetermined amount of time and until a predetermined event or series of events occurs, and wherein the protocol other than the webbased. protocol comprises at least one of Session Initiation Protocol (SIP) and H.323.
- 6. The network of claim I, wherein the wehhased application comprises a Web Realtime Communications (WehRTC) protocol, wherein the one or more applications made accessible to the browser are configured to provide communication features not available via the WehRTC protoco', and wherein the communication ibat-ures include one or more rich unified communication.s operations selected from the following: call transfer, call forward, conference, join call, record call, and block call.
- 7. The network of claim i further comprising: an application media server to convert a Realtime Protocol (RTP) stream from a first protocol to a second protocol for the communication session.
- 8. The network of claim I, wherein the collaboration environment is further configured to receiving a request to initiate a cwnmunication session with the browser; in response to receiving the request, analyzing user preferences of a user identity that was bound to the browser during creation of the association between the browser and the enterprise communication network; and based on the analysis of the user preferences, identifying an application sequence to invoke for the communication session.
- 9. The network of claim 8. wherein the request to initiate the communication session is received from the browser.
- 10. 1he network of claim 8, wherein the request to initiate the communication session is directed toward the browser.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361798865P | 2013-03-15 | 2013-03-15 | |
US14/054,275 US9571529B2 (en) | 2013-03-15 | 2013-10-15 | Browser-based communications enhanced with enterprise communication features |
GB1322999.2A GB2512970B (en) | 2013-03-15 | 2013-12-24 | Browser-based communications enhanced with enterprise communication features |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201512416D0 GB201512416D0 (en) | 2015-08-19 |
GB2525783A true GB2525783A (en) | 2015-11-04 |
GB2525783B GB2525783B (en) | 2016-05-25 |
Family
ID=50114746
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1512416.7A Active GB2525783B (en) | 2013-03-15 | 2013-12-24 | Browser-based communications enhanced with enterprise communication features |
GB1322999.2A Active GB2512970B (en) | 2013-03-15 | 2013-12-24 | Browser-based communications enhanced with enterprise communication features |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1322999.2A Active GB2512970B (en) | 2013-03-15 | 2013-12-24 | Browser-based communications enhanced with enterprise communication features |
Country Status (1)
Country | Link |
---|---|
GB (2) | GB2525783B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269160B1 (en) * | 2000-05-26 | 2007-09-11 | Buffalo International, Inc. | Voice over internet call center integration |
EP2299675A1 (en) * | 2009-09-16 | 2011-03-23 | Avaya Inc. | Network framework associating non-enterprise phones with enterprise users |
GB2480550A (en) * | 2010-05-19 | 2011-11-23 | Avaya Inc | SIP anchor points to provide real-time information to a centralised communication log |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8644817B1 (en) * | 2012-09-26 | 2014-02-04 | Avaya Inc. | System and method for presenting a single persistent view of a multi-module communication device to a network |
EP2909995B1 (en) * | 2012-10-19 | 2018-01-24 | Unify GmbH & Co. KG | Method and system for creating a virtual sip user agent by use of a webrtc enabled web browser |
-
2013
- 2013-12-24 GB GB1512416.7A patent/GB2525783B/en active Active
- 2013-12-24 GB GB1322999.2A patent/GB2512970B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269160B1 (en) * | 2000-05-26 | 2007-09-11 | Buffalo International, Inc. | Voice over internet call center integration |
EP2299675A1 (en) * | 2009-09-16 | 2011-03-23 | Avaya Inc. | Network framework associating non-enterprise phones with enterprise users |
GB2480550A (en) * | 2010-05-19 | 2011-11-23 | Avaya Inc | SIP anchor points to provide real-time information to a centralised communication log |
Also Published As
Publication number | Publication date |
---|---|
GB2525783B (en) | 2016-05-25 |
GB2512970A (en) | 2014-10-15 |
GB201322999D0 (en) | 2014-02-12 |
GB2512970B (en) | 2015-10-07 |
GB201512416D0 (en) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9544340B2 (en) | Application programming interface enabling communication features for different communication protocols | |
US20210297408A1 (en) | Method and system for creating a virtual sip user agent by use of a webrtc enabled web browser | |
US10454762B2 (en) | System and method of processing media traffic for a hub-based system federating disparate unified communications systems | |
US10819757B2 (en) | System and method for real-time communication by using a client application communication protocol | |
JP6138782B2 (en) | Hybrid unified communication deployment between cloud and on-premises | |
US8484704B2 (en) | Next generation integration between different domains, such as, enterprise and service provider using sequencing applications and IMS peering | |
US8379637B2 (en) | Bypassing routing rules during a conversation | |
US8462768B2 (en) | Providing session initiation protocol (SIP) call control functions to public switched telephone network (PSTN)-based call controller | |
CN113632443A (en) | Methods, systems, and computer readable media for establishing a communication session between a Public Switched Telephone Network (PSTN) endpoint and a WEB real-time communication (WEBRTC) endpoint | |
WO2013155939A1 (en) | Method for sharing internet and operator network services, service provider, and webpage gateway | |
KR101481285B1 (en) | System and method for enabling hot-desking | |
EP2299647B1 (en) | Next generation integration between different domains, such as, enterprise and service provider using sequencing applications and IMS peering | |
EP2876858B1 (en) | Call transfer with network spanning back-to-back user agents | |
US8631469B2 (en) | Executing commands on devices through presence applications | |
GB2525783A (en) | Browser-based communications enhanced with enterprise communication features | |
WO2016179538A1 (en) | System and method of processing media traffic for a hub-based system federating disparate unified communications systems | |
CA2962264A1 (en) | System and method for enabling use of a single user identifier across incompatible networks for ucc functionality |