Advanced RingCentral API Use Cases

Byrne Reese
Byrne ReesePrincipal at Endevver, LLC
Advanced RingCentral
API Use Cases
Byrne Reese, Sr. Product Manager
CoderCruise 2019
Byrne Reese
Senior Product Manager, RingCentral
I love building great
developer experiences.
byrne.reese@ringcentral.com
medium.com/@byrnereese
● Established in 1999
● #1 Cloud Communications Provider
● Provides Voice, SMS, Team Messaging,
Meetings, and Fax with a single app and across
multiple devices
● Over 400,000 customers ranging from small
businesses to enterprises
● Established in 1999
● Provides Voice, SMS, Team Messaging,
Meetings, and Fax with a single app and across
multiple devices
● #1 Cloud Communications Provider
● Over 400,000 customers ranging from small
businesses to enterprises
● APIs for voice, call routing, SMS, team
messaging and collaboration, meetings,
fax, data, and more.
Nordic APIs: 2018 Best API Award
Call Routing & Call Control
Bridge Operator Console is an
application which provides
essential functions for today’s
modern receptionists.
Features
● User presence & availability
● Call routing
● Active call control
● Parked call alerts
● AI-powered call routing suggestions
Bridge Operator Console Architecture
Key Endpoints and APIs
● Call Control
● Presence
● Answering Rules
● Call Log
● Call Monitoring
● Messaging
Key Events
● Telephony Sessions Event
● User Presence Event
Events
API Calls
Bridge Operator Console Architecture
Key Endpoints and APIs
● Call Control
● Presence
● Answering Rules
● Call Log
● Call Monitoring
● Messaging
Key Events
● Telephony Sessions Event
● User Presence Event
Events
API Calls
Call Routing and Control Diagram
ext. A
Transfer
warm vs cold
ext. B
Call Routing and Control Diagram
ext. A
Transfer
Call Queue
ext. B
ext. C
ext. D
Try each in
sequence...
ext. D
Call Routing and Control Diagram
ext. A
Park
Park Group
ext. B
ext. C
ext. D
Only these
extensions
can answer
ext. B
Call Routing and Control Diagram
ext. A
Transfer
Call Forwarding
ext. B
Ring
simultaneously
or sequentially
Call Routing and Control Diagram
ext. A
Reject
{
"uuid": "837270960869181944",
"subscriptionId": "5c37f936-fa66-4b4b-95af-1e94b51a748d",
"pn_apns": {
"body": {
"sessionId": "402936341008",
"telephonySessionId": "Y3MxNzE4NDE5MDM0MzQwMTgzODRAMTAuNjIuMjUuMTEx",
"parties": [
{
"extensionId": "400144455008",
"id": "cs171841903434018384-2",
"direction": "Inbound",
"to": { "phoneNumber": "102", "name": "Tom Sawyer", "extensionId": "400144455008" },
"from": { "phoneNumber": "103", "name": "The Cat Jerry", "extensionId": "400144457008" },
"status": { "code": ”Answered" },
"missedCall": false,
"muted": false
}
],
}
}
}
Telephony Sessions Event
(snipped to fit on a slide)
Setup, Proceeding, Answered,
Disconnected, Gone, Parked, Hold,
VoiceMail, FaxReceive,
VoiceMailScreening
Call Control API (Javascript)
const SDK = require('ringcentral');
const rcsdk = new SDK({
server: 'serverURL',
appKey: 'clientId',
appSecret: 'clientSecret'
});
const platform = rcsdk.platform();
await platform.login({
username: 'username',
password: 'password'
});
sid = "402936341008"
pid = "cs171841903434018384-2"
uri = `/restapi/v1.0/account/~/telephony/sessions/${sid}/parties/${pid}/transfer`
const r = await platform.post(uri, {
phoneNumber: '+1-510-555-1212'
});
Authentication Stuff
Call Control API (Javascript)
const SDK = require('ringcentral');
const rcsdk = new SDK({
server: 'serverURL',
appKey: 'clientId',
appSecret: 'clientSecret'
});
const platform = rcsdk.platform();
await platform.login({
username: 'username',
password: 'password'
});
sid = "402936341008"
pid = "cs171841903434018384-2"
uri = `/restapi/v1.0/account/~/telephony/sessions/${sid}/parties/${pid}/transfer`
const r = await platform.post(uri, {
phoneNumber: '+1-510-555-1212'
});
hold
unhold
reject
forward
Embeddable Communications
Zoho CRM helps businesses drive
sales processes, support customers,
and promote customer success.
Features
● Call-pop
● Click-to-dial
● Contact syncing
● Call notes
● Call logging
Advanced RingCentral API Use Cases
Embeddable Phone
We wanted to make embedding a
fully functional phone and
communication device on the web
as plug-and-play as possible.
Features
● Phone (with dial-pad)
● SMS
● Call History
● Team Messaging
● Read Faxes
Initialize the Embeddable Widget
<script src="https://ringcentral.github.io/ringcentral-web-widget/adapter.js? 
appKey=myAppKey& 
appServer=https://platform.devtest.ringcentral.com& 
redirectUri=https://ringcentral.github.io/ringcentral-web-widget/redirect.html”></script>
Initialize the Embeddable Widget
(function() {
var rcs = document.createElement("script");
rcs.src = "https://ringcentral.github.io/ringcentral-web-widget/adapter.js?" +
"appKey=myAppKey&" +
"appServer=https://platform.devtest.ringcentral.com&" +
"redirectUri=https://ringcentral.github.io/ringcentral-web-widget/redirect.html";
var rcs0 = document.getElementsByTagName("script")[0];
rcs0.parentNode.insertBefore(rcs, rcs0);
if (window.RCAdapter) {
window.RCAdapter.setMinimized(false);
}
})();
<script src="https://ringcentral.github.io/ringcentral-web-widget/adapter.js? 
appKey=myAppKey& 
appServer=https://platform.devtest.ringcentral.com& 
redirectUri=https://ringcentral.github.io/ringcentral-web-widget/redirect.html”></script>
Or…
(function () {
window.addEventListener('message', function(e) {
const data = e.data;
if (data) {
switch (data.type) {
case 'rc-call-ring-notify':
var id = number2id(data.call.from, number2user);
if (id) {
var contact = id2user[id];
window.title = contact.character.displayName;
window.history.pushState("", contact.character.displayName, "?id="+id);
displayUserDOM(id, id2user); // your custom display function
}
break;
default:
break;
}
}
})
})();
Create a Call Pop
Call
Recording
Analysis
(in 2 case studies)
Gong is a conversation analytics company that uses
machine learning to help sales organizations have more
effective conversations with their customers.
Advanced RingCentral API Use Cases
Advanced RingCentral API Use Cases
Theta Lake uses AI to detect compliance risks in
videos, audio/call recordings, and other rich media
content. Detections feed into intuitive, AI-assisted
supervision workflow with secure retention and
compliant archiving options.
Features
● Risk detection alerts
● Call, meeting and message analysis
● Configurable data retention
● Content indexing for quick access
● Scene change detection in meetings
● Workflow design tools
Since 2008, more than
$240B
in fines have been levied against
banks for compliance violations
1 Scheduled process triggers
scan for new content
2
Theta Lake retrieves and
processes content
3
Theta Lake analyzes &
assesses risk
Speech to Text Service
Scheduled Task
4
Theta Lake indexes content
and alerts agents
Message Store
(Fax, SMS)
Call Log
(Call Recordings)
Glip
(Compliance Exports)
Meetings
(Cloud Recordings
BETA)
Advanced RingCentral API Use Cases
Request
const SDK = require('ringcentral');
const rcsdk = new SDK({
server: 'serverURL',
appKey: 'clientId',
appSecret: 'clientSecret'
});
const platform = rcsdk.platform();
await platform.login({
username: 'username',
extension: 'extension',
password: 'password'
});
uri = `/restapi/v1.0/account/~/extension/~/call-log/${rId}`
const r = await platform.get(uri, {});
Response
{
"uri": "..snip..?view=Simple",
"id": "IXPCm_tIkCduk4I",
"sessionId": "404412141008",
"startTime": "2015-06-25T14:57:30.000Z",
"duration": 60,
"type": "Voice",
"direction": "Inbound",
"action": "Phone Call",
"result": "Accepted",
"to": {
"phoneNumber": "+18772160007",
"name": "John Smith"
},
"from": {
"phoneNumber": "+18882400004",
"name": "Jane Smith"
},
"recording": {
"uri": "..snip../40119014/recording/40154",
"id": "401547458008",
"type": "OnDemand",
"contentUri": "..snip../40154/content"
}
}
Real-time Call Monitoring
Velvetech is a custom software development
company that developed a real-time
transcription service and framework.
Features
● Real-time Transcription
● Speaker identification
● Real-time Conversation Analysis
+
● AI-driven prompt suggestion engine
● Modular speech recognition,
language models and transcription
Call Monitoring Groups
ext. A
ext. B
ext. C
ext. E
ext. G
Call Monitoring Group
ext. D
ext. F
ext. H
Supervisors
ext. I ext. Kext. J ext. L
Call Monitoring by a Virtual Agent
{
"uuid": "837270960869181944",
"subscriptionId": "5c37f936-fa66-4b4b-95af-1e94b51a748d",
"pn_apns": {
"body": {
"sessionId": "402936341008",
"telephonySessionId": "Y3MxNzE4NDE5MDM0MzQwMTgzODRAMTAuNjIuMjUuMTEx",
"parties": [
{
"extensionId": "400144455008",
"id": "cs171841903434018384-2",
"direction": "Inbound",
"to": { "phoneNumber": "102", "name": "Tom Sawyer", "extensionId": "400144455008" },
"from": { "phoneNumber": "103", "name": "The Cat Jerry", "extensionId": "400144457008" },
"status": { "code": "Answered" },
"missedCall": false,
"muted": false
}
],
}
}
}
Telephony Sessions Event
(snipped to fit on a slide)
Call Monitoring in Ruby
require 'ringcentral'
rc = RingCentral.new(
'client_id',
'client_secret',
'https://platform.ringcentral.com')
rc.authorize( username: '+16505550100',
password: 'my_password')
sid = "402936341008"
uri = '/restapi/v1.0/account/{accountId}/telephony/sessions/{sid}/supervise'
res = rc.post, payload: {
"mode": "Listen",
"extensionNumber": "108",
"deviceId": "60727004"
}
Thank You.
Q&A
1 of 38

Recommended

Single Sign On with OAuth and OpenID by
Single Sign On with OAuth and OpenIDSingle Sign On with OAuth and OpenID
Single Sign On with OAuth and OpenIDGasperi Jerome
5.2K views23 slides
CIS 2012 - Going Mobile with PingFederate and OAuth 2 by
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2scotttomilson
3.7K views48 slides
Blockchain Intro to Hyperledger Fabric by
Blockchain Intro to Hyperledger Fabric Blockchain Intro to Hyperledger Fabric
Blockchain Intro to Hyperledger Fabric Araf Karsh Hamid
2K views68 slides
Mit 2014 introduction to open id connect and o-auth 2 by
Mit 2014   introduction to open id connect and o-auth 2Mit 2014   introduction to open id connect and o-auth 2
Mit 2014 introduction to open id connect and o-auth 2Justin Richer
15.2K views202 slides
CIS14: Consolidating Authorization for API and Web SSO using OpenID Connect by
CIS14: Consolidating Authorization for API and Web SSO using OpenID ConnectCIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
CIS14: Consolidating Authorization for API and Web SSO using OpenID ConnectCloudIDSummit
1.1K views19 slides
Troubleshooting Novell Access Manager 3.1 by
Troubleshooting Novell Access Manager 3.1Troubleshooting Novell Access Manager 3.1
Troubleshooting Novell Access Manager 3.1Novell
8.7K views37 slides

More Related Content

Similar to Advanced RingCentral API Use Cases

Security Architecture Consulting - Hiren Shah by
Security Architecture Consulting - Hiren ShahSecurity Architecture Consulting - Hiren Shah
Security Architecture Consulting - Hiren ShahNSConclave
130 views31 slides
Architecting io t solutions with microisoft azure ignite tour version by
Architecting io t solutions with microisoft azure ignite tour versionArchitecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour versionAlon Fliess
361 views55 slides
Ezhilarasu_C,C++,Telecom,Resume by
Ezhilarasu_C,C++,Telecom,ResumeEzhilarasu_C,C++,Telecom,Resume
Ezhilarasu_C,C++,Telecom,ResumeEzhilarasu A
356 views4 slides
Application Services On The Web Sales Forcecom by
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomQConLondon2008
1.7K views26 slides
Consul: Service Mesh for Microservices by
Consul: Service Mesh for MicroservicesConsul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesArmonDadgar
459 views78 slides
TADHack Oracle Alerant Optare Webinar by
TADHack Oracle Alerant Optare WebinarTADHack Oracle Alerant Optare Webinar
TADHack Oracle Alerant Optare WebinarAlan Quayle
1.5K views45 slides

Similar to Advanced RingCentral API Use Cases(20)

Security Architecture Consulting - Hiren Shah by NSConclave
Security Architecture Consulting - Hiren ShahSecurity Architecture Consulting - Hiren Shah
Security Architecture Consulting - Hiren Shah
NSConclave130 views
Architecting io t solutions with microisoft azure ignite tour version by Alon Fliess
Architecting io t solutions with microisoft azure ignite tour versionArchitecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour version
Alon Fliess361 views
Ezhilarasu_C,C++,Telecom,Resume by Ezhilarasu A
Ezhilarasu_C,C++,Telecom,ResumeEzhilarasu_C,C++,Telecom,Resume
Ezhilarasu_C,C++,Telecom,Resume
Ezhilarasu A356 views
Application Services On The Web Sales Forcecom by QConLondon2008
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
QConLondon20081.7K views
Consul: Service Mesh for Microservices by ArmonDadgar
Consul: Service Mesh for MicroservicesConsul: Service Mesh for Microservices
Consul: Service Mesh for Microservices
ArmonDadgar459 views
TADHack Oracle Alerant Optare Webinar by Alan Quayle
TADHack Oracle Alerant Optare WebinarTADHack Oracle Alerant Optare Webinar
TADHack Oracle Alerant Optare Webinar
Alan Quayle1.5K views
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser... by VMware Tanzu
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
VMware Tanzu424 views
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie by VMware Tanzu
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
VMware Tanzu867 views
Dave Carroll Application Services Salesforce by deimos
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
deimos1.4K views
WSO2 Summit London 2018: Introduction by WSO2
WSO2 Summit London 2018: IntroductionWSO2 Summit London 2018: Introduction
WSO2 Summit London 2018: Introduction
WSO2422 views
The Momentum of Collaboration and the Customer Experience by Avaya Inc.
The Momentum of Collaboration and the Customer ExperienceThe Momentum of Collaboration and the Customer Experience
The Momentum of Collaboration and the Customer Experience
Avaya Inc.3.1K views
Client & Virtual User Experience Monitoring mit Splunk by Georg Knon
Client & Virtual User Experience Monitoring mit SplunkClient & Virtual User Experience Monitoring mit Splunk
Client & Virtual User Experience Monitoring mit Splunk
Georg Knon557 views
Client & Virtual User Experience Monitoring mit Splunk by Georg Knon
Client & Virtual User Experience Monitoring mit SplunkClient & Virtual User Experience Monitoring mit Splunk
Client & Virtual User Experience Monitoring mit Splunk
Georg Knon859 views
Real time Communication with Signalr (Android Client) by Deepak Gupta
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)
Deepak Gupta10.3K views
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습 by Oracle Korea
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
Oracle Korea390 views
CQRS and Event Sourcing by Inho Kang
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
Inho Kang1.4K views

More from Byrne Reese

Melody Designer Training by
Melody Designer TrainingMelody Designer Training
Melody Designer TrainingByrne Reese
2.9K views77 slides
Building Web Sites With Movable Type by
Building Web Sites With Movable TypeBuilding Web Sites With Movable Type
Building Web Sites With Movable TypeByrne Reese
1.5K views39 slides
Hacking Movable Type Training - Day 2 by
Hacking Movable Type Training - Day 2Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2Byrne Reese
1.8K views34 slides
Hacking Movable Type Training - Day 1 by
Hacking Movable Type Training - Day 1Hacking Movable Type Training - Day 1
Hacking Movable Type Training - Day 1Byrne Reese
9.3K views55 slides
Online Communities by
Online CommunitiesOnline Communities
Online CommunitiesByrne Reese
512 views67 slides
Timespeople Community Features by
Timespeople Community FeaturesTimespeople Community Features
Timespeople Community FeaturesByrne Reese
482 views17 slides

More from Byrne Reese(7)

Melody Designer Training by Byrne Reese
Melody Designer TrainingMelody Designer Training
Melody Designer Training
Byrne Reese2.9K views
Building Web Sites With Movable Type by Byrne Reese
Building Web Sites With Movable TypeBuilding Web Sites With Movable Type
Building Web Sites With Movable Type
Byrne Reese1.5K views
Hacking Movable Type Training - Day 2 by Byrne Reese
Hacking Movable Type Training - Day 2Hacking Movable Type Training - Day 2
Hacking Movable Type Training - Day 2
Byrne Reese1.8K views
Hacking Movable Type Training - Day 1 by Byrne Reese
Hacking Movable Type Training - Day 1Hacking Movable Type Training - Day 1
Hacking Movable Type Training - Day 1
Byrne Reese9.3K views
Online Communities by Byrne Reese
Online CommunitiesOnline Communities
Online Communities
Byrne Reese512 views
Timespeople Community Features by Byrne Reese
Timespeople Community FeaturesTimespeople Community Features
Timespeople Community Features
Byrne Reese482 views
Evolution Of Open by Byrne Reese
Evolution Of OpenEvolution Of Open
Evolution Of Open
Byrne Reese3.9K views

Recently uploaded

Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
33 views43 slides
The details of description: Techniques, tips, and tangents on alternative tex... by
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...BookNet Canada
127 views24 slides
Scaling Knowledge Graph Architectures with AI by
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
30 views15 slides
HTTP headers that make your website go faster - devs.gent November 2023 by
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
22 views151 slides
Design Driven Network Assurance by
Design Driven Network AssuranceDesign Driven Network Assurance
Design Driven Network AssuranceNetwork Automation Forum
15 views42 slides
SUPPLIER SOURCING.pptx by
SUPPLIER SOURCING.pptxSUPPLIER SOURCING.pptx
SUPPLIER SOURCING.pptxangelicacueva6
15 views1 slide

Recently uploaded(20)

Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman33 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada127 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri16 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst478 views
Serverless computing with Google Cloud (2023-24) by wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi127 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson85 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab19 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex22 views

Advanced RingCentral API Use Cases

  • 1. Advanced RingCentral API Use Cases Byrne Reese, Sr. Product Manager CoderCruise 2019
  • 2. Byrne Reese Senior Product Manager, RingCentral I love building great developer experiences. byrne.reese@ringcentral.com medium.com/@byrnereese
  • 3. ● Established in 1999 ● #1 Cloud Communications Provider ● Provides Voice, SMS, Team Messaging, Meetings, and Fax with a single app and across multiple devices ● Over 400,000 customers ranging from small businesses to enterprises
  • 4. ● Established in 1999 ● Provides Voice, SMS, Team Messaging, Meetings, and Fax with a single app and across multiple devices ● #1 Cloud Communications Provider ● Over 400,000 customers ranging from small businesses to enterprises ● APIs for voice, call routing, SMS, team messaging and collaboration, meetings, fax, data, and more. Nordic APIs: 2018 Best API Award
  • 5. Call Routing & Call Control
  • 6. Bridge Operator Console is an application which provides essential functions for today’s modern receptionists. Features ● User presence & availability ● Call routing ● Active call control ● Parked call alerts ● AI-powered call routing suggestions
  • 7. Bridge Operator Console Architecture Key Endpoints and APIs ● Call Control ● Presence ● Answering Rules ● Call Log ● Call Monitoring ● Messaging Key Events ● Telephony Sessions Event ● User Presence Event Events API Calls
  • 8. Bridge Operator Console Architecture Key Endpoints and APIs ● Call Control ● Presence ● Answering Rules ● Call Log ● Call Monitoring ● Messaging Key Events ● Telephony Sessions Event ● User Presence Event Events API Calls
  • 9. Call Routing and Control Diagram ext. A Transfer warm vs cold ext. B
  • 10. Call Routing and Control Diagram ext. A Transfer Call Queue ext. B ext. C ext. D Try each in sequence... ext. D
  • 11. Call Routing and Control Diagram ext. A Park Park Group ext. B ext. C ext. D Only these extensions can answer ext. B
  • 12. Call Routing and Control Diagram ext. A Transfer Call Forwarding ext. B Ring simultaneously or sequentially
  • 13. Call Routing and Control Diagram ext. A Reject
  • 14. { "uuid": "837270960869181944", "subscriptionId": "5c37f936-fa66-4b4b-95af-1e94b51a748d", "pn_apns": { "body": { "sessionId": "402936341008", "telephonySessionId": "Y3MxNzE4NDE5MDM0MzQwMTgzODRAMTAuNjIuMjUuMTEx", "parties": [ { "extensionId": "400144455008", "id": "cs171841903434018384-2", "direction": "Inbound", "to": { "phoneNumber": "102", "name": "Tom Sawyer", "extensionId": "400144455008" }, "from": { "phoneNumber": "103", "name": "The Cat Jerry", "extensionId": "400144457008" }, "status": { "code": ”Answered" }, "missedCall": false, "muted": false } ], } } } Telephony Sessions Event (snipped to fit on a slide) Setup, Proceeding, Answered, Disconnected, Gone, Parked, Hold, VoiceMail, FaxReceive, VoiceMailScreening
  • 15. Call Control API (Javascript) const SDK = require('ringcentral'); const rcsdk = new SDK({ server: 'serverURL', appKey: 'clientId', appSecret: 'clientSecret' }); const platform = rcsdk.platform(); await platform.login({ username: 'username', password: 'password' }); sid = "402936341008" pid = "cs171841903434018384-2" uri = `/restapi/v1.0/account/~/telephony/sessions/${sid}/parties/${pid}/transfer` const r = await platform.post(uri, { phoneNumber: '+1-510-555-1212' }); Authentication Stuff
  • 16. Call Control API (Javascript) const SDK = require('ringcentral'); const rcsdk = new SDK({ server: 'serverURL', appKey: 'clientId', appSecret: 'clientSecret' }); const platform = rcsdk.platform(); await platform.login({ username: 'username', password: 'password' }); sid = "402936341008" pid = "cs171841903434018384-2" uri = `/restapi/v1.0/account/~/telephony/sessions/${sid}/parties/${pid}/transfer` const r = await platform.post(uri, { phoneNumber: '+1-510-555-1212' }); hold unhold reject forward
  • 18. Zoho CRM helps businesses drive sales processes, support customers, and promote customer success. Features ● Call-pop ● Click-to-dial ● Contact syncing ● Call notes ● Call logging
  • 20. Embeddable Phone We wanted to make embedding a fully functional phone and communication device on the web as plug-and-play as possible. Features ● Phone (with dial-pad) ● SMS ● Call History ● Team Messaging ● Read Faxes
  • 21. Initialize the Embeddable Widget <script src="https://ringcentral.github.io/ringcentral-web-widget/adapter.js? appKey=myAppKey& appServer=https://platform.devtest.ringcentral.com& redirectUri=https://ringcentral.github.io/ringcentral-web-widget/redirect.html”></script>
  • 22. Initialize the Embeddable Widget (function() { var rcs = document.createElement("script"); rcs.src = "https://ringcentral.github.io/ringcentral-web-widget/adapter.js?" + "appKey=myAppKey&" + "appServer=https://platform.devtest.ringcentral.com&" + "redirectUri=https://ringcentral.github.io/ringcentral-web-widget/redirect.html"; var rcs0 = document.getElementsByTagName("script")[0]; rcs0.parentNode.insertBefore(rcs, rcs0); if (window.RCAdapter) { window.RCAdapter.setMinimized(false); } })(); <script src="https://ringcentral.github.io/ringcentral-web-widget/adapter.js? appKey=myAppKey& appServer=https://platform.devtest.ringcentral.com& redirectUri=https://ringcentral.github.io/ringcentral-web-widget/redirect.html”></script> Or…
  • 23. (function () { window.addEventListener('message', function(e) { const data = e.data; if (data) { switch (data.type) { case 'rc-call-ring-notify': var id = number2id(data.call.from, number2user); if (id) { var contact = id2user[id]; window.title = contact.character.displayName; window.history.pushState("", contact.character.displayName, "?id="+id); displayUserDOM(id, id2user); // your custom display function } break; default: break; } } }) })(); Create a Call Pop
  • 25. Gong is a conversation analytics company that uses machine learning to help sales organizations have more effective conversations with their customers.
  • 28. Theta Lake uses AI to detect compliance risks in videos, audio/call recordings, and other rich media content. Detections feed into intuitive, AI-assisted supervision workflow with secure retention and compliant archiving options. Features ● Risk detection alerts ● Call, meeting and message analysis ● Configurable data retention ● Content indexing for quick access ● Scene change detection in meetings ● Workflow design tools Since 2008, more than $240B in fines have been levied against banks for compliance violations
  • 29. 1 Scheduled process triggers scan for new content 2 Theta Lake retrieves and processes content 3 Theta Lake analyzes & assesses risk Speech to Text Service Scheduled Task 4 Theta Lake indexes content and alerts agents Message Store (Fax, SMS) Call Log (Call Recordings) Glip (Compliance Exports) Meetings (Cloud Recordings BETA)
  • 31. Request const SDK = require('ringcentral'); const rcsdk = new SDK({ server: 'serverURL', appKey: 'clientId', appSecret: 'clientSecret' }); const platform = rcsdk.platform(); await platform.login({ username: 'username', extension: 'extension', password: 'password' }); uri = `/restapi/v1.0/account/~/extension/~/call-log/${rId}` const r = await platform.get(uri, {}); Response { "uri": "..snip..?view=Simple", "id": "IXPCm_tIkCduk4I", "sessionId": "404412141008", "startTime": "2015-06-25T14:57:30.000Z", "duration": 60, "type": "Voice", "direction": "Inbound", "action": "Phone Call", "result": "Accepted", "to": { "phoneNumber": "+18772160007", "name": "John Smith" }, "from": { "phoneNumber": "+18882400004", "name": "Jane Smith" }, "recording": { "uri": "..snip../40119014/recording/40154", "id": "401547458008", "type": "OnDemand", "contentUri": "..snip../40154/content" } }
  • 33. Velvetech is a custom software development company that developed a real-time transcription service and framework. Features ● Real-time Transcription ● Speaker identification ● Real-time Conversation Analysis + ● AI-driven prompt suggestion engine ● Modular speech recognition, language models and transcription
  • 34. Call Monitoring Groups ext. A ext. B ext. C ext. E ext. G Call Monitoring Group ext. D ext. F ext. H Supervisors ext. I ext. Kext. J ext. L
  • 35. Call Monitoring by a Virtual Agent
  • 36. { "uuid": "837270960869181944", "subscriptionId": "5c37f936-fa66-4b4b-95af-1e94b51a748d", "pn_apns": { "body": { "sessionId": "402936341008", "telephonySessionId": "Y3MxNzE4NDE5MDM0MzQwMTgzODRAMTAuNjIuMjUuMTEx", "parties": [ { "extensionId": "400144455008", "id": "cs171841903434018384-2", "direction": "Inbound", "to": { "phoneNumber": "102", "name": "Tom Sawyer", "extensionId": "400144455008" }, "from": { "phoneNumber": "103", "name": "The Cat Jerry", "extensionId": "400144457008" }, "status": { "code": "Answered" }, "missedCall": false, "muted": false } ], } } } Telephony Sessions Event (snipped to fit on a slide)
  • 37. Call Monitoring in Ruby require 'ringcentral' rc = RingCentral.new( 'client_id', 'client_secret', 'https://platform.ringcentral.com') rc.authorize( username: '+16505550100', password: 'my_password') sid = "402936341008" uri = '/restapi/v1.0/account/{accountId}/telephony/sessions/{sid}/supervise' res = rc.post, payload: { "mode": "Listen", "extensionNumber": "108", "deviceId": "60727004" }