FCSDK Architecture Guide
FCSDK Architecture Guide
FCSDK Architecture Guide
Updated: 2022-05-02
iOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used
under license by Apple Inc.
Linux® is a registered trademark of Linus Torvalds, owner of the mark on a world-wide basis.
Microsoft, Lync and Windows are either registered trademarks or trademarks of Microsoft
Corporation in the United States and/or other countries.
Red Hat is a trademark of Red Hat, Inc. in the United States and other countries.
Contact Information
Related Documentation
Make and receive voice and video calls directly from a Web browser to telephones and
other browsers, without employing web plugins.
The Core SDK, which developers can use to develop browser-based applications
The iOS SDK, which developers can use to develop applications for iOS and OSX based
devices.
The Android SDK, which developers can use to develop applications for Android devices
Fusion Client SDK also includes components which allow the enterprise to deploy the
applications which they develop.
Network Components
The Web Gateway communicates with the client using the TCP-based WebSockets protocol,
providing a standard way for the server to send content to the client without being solicited, and
allowing messages to be passed back and forth while keeping the connection open.
Make voice calls from a native client to desk phones from any PBX vendor
Make calls across the public switched telephone network (PSTN) to phones in the public
domain
Only allow clients that have been authorized by the Web application to create sessions
Create and manage application collaboration sessions, sharing data and sending messages
to client applications.
The Web Gateway communicates with the Media Broker using the HTTP-based Proxy control
protocol
Requirements
The Web Gateway runs on Fusion Application Server 2.6.x; refer to the Fusion Application
Server Release Notes for details of the supported operating systems.
The Web Gateway can be co-hosted with any other application on Fusion Application Server
or deployed on a Fusion Application Server of its own.
Any Fusion Application Server on which the Web Gateway is installed must have a Load
Balancer installed on it; see the FAS Installation Guide for details.
The Web Gateway must have a domain assigned to it that is DNS resolvable. When installed on
its own Fusion Application Server, the domain can be set to the Fusion Application Server IP
address. For more details, refer to FCSDK Installation Guide.
High Availability
In a high availability (HA) solution, failure of a Web Gateway node will not impact existing voice
and video calls unless the failure occurs mid-transaction. Client applications will attempt to re-
establish a connection in the event of a Web Gateway failure or network outage.
As with signaling interworking, it must handle RTP media streams and integrate them with SIP
environments. For example, client applications may use a different video standard (VP8) than
most enterprise video systems (H.264); as a result, applications cannot share video calls with
enterprise-based systems unless there is media transcoding between the two. The Media Broker
provides that service in the network by transcoding between VP8 and H.264 video, and G.729 to
Opus or G.711 audio.
The Fusion Client SDK for iOS supports the H.264 codec, ensuring there is no need for
transcoding with this API.
With the Media Broker, employees and customers can share secure video calls on a wide variety
of devices,and join video conferences from almost any endpoint.
Convert between client RTP streams and RTP streams compatible with SIP entities.
Change the video frame rate and resolution according to client capabilities.
Requirements
If your Fusion Client SDK installation requires video transcoding, Fusion Client SDK includes a
virtual machine template package containing the OS for the Media Brokers. Refer to FAS
Installation Guide for instructions.
If your Fusion Client SDK installation does not require video transcoding, the Media Broker can
be installed on Linux (RedHat or CentOS).
The Media Broker requires Java SE Development Kit (see FCSDK Release Notes for the
supported versions).
High Availability
Multiple Media Brokers can be deployed to provide service availability for RTP traffic. If a Media
Broker fails, it is possible that the endpoints may tear down the call because they are not
receiving RTP.
Fusion Client SDK enables you to develop your own Web Application or integrate with an
existing application.
In the diagrams, the different network components are represented by separate boxes, but this
does not mean that they need to run on separate physical hardware.
Logging In
The Web Application allows the user to log in, so that the application can identify and
authenticate the user:
1. The Client connects to the custom Web Application and logs in with user credentials. The
Web Application authenticates the user and determines what services the user can use.
3. The Client sends a message to the Web Gateway containing the session token. The Web
Gateway ensures that the targeted Application session is valid (that is, it contains session
information populated when the Web Application requested the token).
4. Depending on the features the Web Application has enabled for the user, the client
communicates with the rest of the network to register externally (for example, sending a SIP
REGISTER request to receive voice and video calls).
Outbound Calling
1. The Client initiates a call to the Web Gateway by passing the required information over
WebSockets.
3. The Web Gateway issues an INVITE to the SIP network. The call is answered and relevant
SIP signaling occurs.
4. The Web Gateway communicates with the Media Broker to complete the route information.
5. The Web Gateway notifies the client of the progress of the call, and its establishment.
6. RTP is transmitted via the Media Broker, where transcoding occurs if required.
Inbound Calling
2. The Web Gateway communicates with the Media Broker over HTTP/HTTPS to reserve a
route and negotiate SDP.
4. The Client answers the call and notifies the Web Gateway.
5. The Web Gateway completes the route set up on the Media Broker and returns a 200
response to the SIP network.
6. RTP is transmitted via the Media Broker, where transcoding occurs if required.
Application Event Distribution (AED) allows multiple clients to connect to a single session and
set, get, and be notified of, updates to the AED data held in that session.
1. The Client requests to create or look up a collaboration session. The Web Gateway verifies
that the Client has access to AED and links the user to the identified collaboration session.
3. The Client requests to set a value in the session identified by a key. The Web Gateway sets
the value and notifies all clients that have subscribed to the session of the update.
HA solutions ensure that if an individual cluster component fails, the service continues.
The simplest deployment available is one where all the network components are hosted on the
same physical (or virtual) machine.
You can make this type of deployment HA by adding more Fusion Application Server instances
and Media Brokers on other hosts:
If they are on different hosts, you can scale your Fusion Application Server instances and
Media Brokers independently of each other, depending on the scalability requirements of each
component:
The Client Application, whether it is based in the browser or on a mobile device, is situated in the
public internet.
The Reverse Proxy and Media Broker are based in a DMZ, which is protected from the public
internet by a firewall.
The Web Application and Web Gateway are on the enterprise’s internal network, as is the SIP
telephony network. The internal network is protected from the DMZ by a firewall.
This section also lists the secure protocols supported by Fusion Client SDK, and details the
connections over which they are used.
Reverse Proxy
A Reverse Proxy deployed in the DMZ can act as a proxy to components in the internal network,
hiding their topology. The Reverse Proxy can serve up static and dynamic content on behalf of
the application, reducing the amount of traffic that has to enter the internal network, and the
amount of processing required by the Fusion Application Server.
The Reverse Proxy can also perform user authentication on behalf of the Web Application,
ensuring that only authenticated connections can reach the internal network. It can also take
advantage of hardware SSL accelerators to provide SSL termination, decrypt the data on behalf
of the application, and establish a secure context with the client.
Once the secure context has been established, all subsequent communication between the
client and the server is within that context. This allows the administrator to set up rules on the
Reverse Proxy to stop it establishing WebSocket connections with the Web Gateway if they are
not part of an already established security context.
Media Broker
The Media Broker segregates its traffic, so that it communicates with the external network on a
different network interface to the Proxy Control Protocol traffic between itself and the Web
Gateway, and to the RTP traffic with the internal network. The network administrator can restrict
access to the internal-facing network interfaces to only servers in the internal network, and
ensure that no external traffic can try to access any other network port. Additionally, the Media
Broker uses RTP multiplexing and SSRC identifiers to ensure that only a single port is required
on the external firewall to forward all RTP traffic to the Media Broker. Only RTP packets that
conform to the limits set for packet size and throughput rate are allowed into the Media Broker
(see FCSDK Administration Guide for details on setting these limits).
Fusion Client SDK secures the media stream between the client and the Media Broker using
SRTP.
Gateway
The Web Gateway exists in the internal network, and the only non-internal network components
with which it communicates directly are the Web Application and the Reverse Proxy.
The Web Application communicates with the Web Gateway over HTTPS, and the Web Gateway
only establishes sessions that the Web Application has requested on behalf of client
applications. Client applications can only communicate with the Web Gateway through the
Reverse Proxy, which manages the security context into the network. Client applications which
do not have the correct session token will not be able to connect to the Web Gateway.
The Web Gateway connects to the Media Broker in the DMZ using the details configured for the
control protocol; the Media Broker does not need to establish a connection into the Web
Gateway.
The following diagrams show how the Fusion Client SDK security features are used in the
Logging in (see the Logging In section on page 8) and Outbound Calling (see the Outbound
Logging In
With the Web Gateway residing in the internal network, Fusion Client SDK uses the Reverse
Proxy to ensure that there is no way to access the Web Gateway outside of the secure context
that is established between the client application, Reverse Proxy, and Web Application.
1. The client application calls into the DMZ, via the Reverse Proxy. The Reverse Proxy
establishes a secure context by authenticating the user.
3. In the internal network, the Web Application creates a session on the Web Gateway.
4. The Web Gateway returns a session token over the secure context to the client, via the Web
Application and Reverse Proxy. This session token cannot be viewed or intercepted by any
malicious entities.
6. The Reverse Proxy establishes the WebSockets connection with the Web Gateway. The
Web Gateway validates that the session, identified by the session token, exists. If the
session does not exist, connection is rejected.
Outbound Calling
1. The client application generates SDP, containing an SSRC, and passes it to the Web
Gateway via the secure WebSocket established during login.
2. The Web Gateway communicates out of the internal network, configuring the route to the
Media Broker, on the port configured for the control protocol. The Media Broker records the
information in the SDP, including the SSRC, and returns the SDP describing its own media
capabilities.
The Media Broker will only process SRTP packets with a valid SSRC and a route defined on the
Media Broker. It will discard SRTP packets with an invalid SSRC, along with any packets which
do not conform to the limits set on packet size and throughput rate.