Architecture

uContact could be cloud (Google Cloud) or on premises-based in one or two servers (depending on the load of the customer), having one server for the Application Server (Ubuntu, MySQL, Java) and other for the telephony (Ubuntu, C). It also uses a stun server that can be a public one or uContact STUN server, The application is full WebRTC so there is no plugin for audio or video.


Overview

The connection is via HTTPS with a level 3 certificate via (https://xxxx.ucontactcloud.com), uContact uses HTTPS (http2) with a REST API and Secure Websockets (wss).

The connection is made through Secure Websockets   https://xxxx.ucontactcloud.com:8089/ws (for SIP signaling).

Our STUN Server  (stun.ucontactcloud.com)

Agent and Telephony server negotiate with STUN Server gathering ICE candidates.

After that the connection is made from the agent to the telephony server, bridging the communication with the telephony provider (via SIP, SIP TLS, SIP WebRTC).

The telephony server does the bridging to host all the recordings, transcoding, etc.

Codecs: We use alaw, ulaw, opus, vp8, h264.   Al the transcoding part takes action in the telephony server.

QoS: We can do TOS and COS tag  (on the server-side) the packets with multiple parameters in different actions  (video, audio, text)

 

 

 

 


Security

Google Cloud Security Plus is our security layer with Force Brut attack detection with all communications encrypted.

The server prefers cipher suites supporting Perfect-Forward-Secrecy.

The server provides HTTP Strict Transport Security.

The server provides HTTP Public Key Pinning.

X-XSS-Protection

 


Hardware Sizing (On-Premise)

Size

Agents

Telephony

Backend

Database

Size

Agents

Telephony

Backend

Database

Small

< 30

1

0

0

Medium

< 500

1

1

0

Big

> 500

1

1

1

Accepted Telecommunications Equipment

Digium or Sangoma Cards, Xorcom, Dinstar, KHOMP, SIP Gateways, SIP Hardphones.

Telephony and Database Server

  • Processor: Intel® Xeon® E7-8893 v4 . 3.2 GHz

  •  Memory: 8 GB RAM

  •  Disk: 500 GB (Raid 1)

  •  Controller: Raid 0/1/10 (software)

  •  LAN: 100/1000 MB (Dual)

  •  Compatible with Ubuntu Linux

Telephony and Database Server

  • Processor: Intel® Xeon® E7-8893 v4 . 3.2 GHz

  •  Memory: 16 GB RAM

  •  Disk: 1TB (Raid 1) – 10K RPM

  •  Controller: Raid 0/1/10 (software)

  •  LAN: 100/1000 MB (Dual)

  •  Compatible with Ubuntu Linux

Telephony

  • Processor: Intel® Xeon® E7-4809 v4 2.10 GHz

  • Memory: 16 GB RAM

  • Disk:   1TB (Raid 1) – 10K RPM 

  • Controller: Raid 0/1/10 (software)

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

DataBase

  • Processor: Intel® Xeon® E7-4809 v4 2.10 GHz

  • Memory: 16 GB RAM

  • Disk: 500 GB (Raid 1) – 10K RPM 

  • Controller: Raid 0/1/10 (software)

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

Telephony

  • Processor:  Intel® Xeon® E7-4820 v4 2.00 GHz

  • Memory: RAM 32 GB

  • Disk: HDD 2TB

  • Controller: Raid 5 with disks SAS 15krpm

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

DataBase

  • Processor:  Intel® Xeon® E7-4820 v4 2.00 GHz

  • Memory: RAM 32 GB

  • Disk: HDD 1TB

  • Controller: Raid 5 with disks SAS 15krpm

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

Telephony

  • Processor:  Intel® Xeon® E7-8870 v4  3.00 GHz 

  • Memory: RAM 64 GB

  • Disk: HDD 3TB

  • Controller: Raid 5 with disks SAS 15krpm

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

DataBase

  • Processor:  Intel® Xeon® E7-8870 v4  3.00 GHz 

  • Memory: RAM 64 GB

  • Disk: HDD 1TB

  • Controller: Raid 5 with disks SAS 15krpm

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

Telephony

  • Processor:  Intel® Xeon® Platinum 8276  3.00 GHz (x 2)

  • Memory: RAM 128 GB

  • Disk: HDD 7 TB

  • Controller: Raid 5 con discos SSD

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

DataBase

  • Processor:  Intel® Xeon® Platinum 8276  3.00 GHz (x 2)

  • Memory: RAM 128 GB

  • Disk: HDD 2 TB

  • Controller: Raid 5 con discos SSD

  • LAN: 100/1000 MB (Dual)

  • Compatible with Ubuntu Linux

The servers should be certified in Ubuntu, check: http://www.ubuntu.com/certification/server/

The teams of agents and supervisors must have the following minimum requirements:

Agent Desktop

  • Processor: Core i5 2.0 GHz

  • Memory: 8GB RAM

  • Resolution: 1366 x 768  (minimum)

  • Disk: 160 GB

Supervisor Desktop

  • Processor: Core i5 2.5 GHz

  • Memory: 8 GB RAM

  • Resolution: 1366 x 768  (minimum)

  • Disk: 160 GB


Communication

 

 


Component Versions

BBDD: Mysql: 8 or 5.7

WebServer: NGINX 1.17. 0 (latest)

OS: Ubuntu 20.04, 18.04, 16.04

Telephony: Asterisk Modificado branch 13

Frontend: HTML5 y JS

Backend:  Java 8


Structure

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /etc/IntegraServer/web/ IntegraPortalWS.war IntegraChannels.war IntegraGamification.war /forms/ /images/ /uContact/ /workflowdesigner/ /formsdesigner/ /tmp/ /webchatclient/ /etc/IntegraServer/reports/ /etc/IntegraServer/server/ IntegraServer.jar /jasper/*.jar /jdbc/*.jar /mail/*jar /others/*.jar /ssh/*.jar /ws/*.jar

Network requirements for video calls

Bandwidth

  • 1MB/s simétrico

Latency for toll-quality

  • <100 ms total

Jitter

  • < 20 ms jitter

Packet loss

  • < 1 % for voice calls

Codec

  • VP8

Network requirements for VoIP

 

Bandwidth

  • 256 kbps per call

Latency for toll-quality

  • <100 ms total

Jitter

  • < 20 ms jitter

Packet loss

  • < 1 % for voice calls

Codec

  • ulaw, alaw


Required recordings Storage (audio y video)

 

Duration

Required Storage for audio (.gsm)

Required Storage for video (.webm)

Duration

Required Storage for audio (.gsm)

Required Storage for video (.webm)

1 Minute

100 kb

1.5 MB

10 Minutes

1 MB

20 MB

20 Minutes

2.8 MB

44 MB

30 Minutes

3.8 MB

100 MB