Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 38

Advanced RingCentral API Use Cases

0

Share

Download to read offline

Get a tour of some of RingCentral’s most advanced integrations: What do they do? Who built them? How are they architected and what APIs do they call upon? We answer these questions to inspire developers about the possibilities of a unified communication platform, and to offer insight on how they were built so that customers might begin to understand how they might go about building solutions themselves.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Advanced RingCentral API Use Cases

  1. 1. Advanced RingCentral API Use Cases Byrne Reese, Sr. Product Manager CoderCruise 2019
  2. 2. Byrne Reese Senior Product Manager, RingCentral I love building great developer experiences. byrne.reese@ringcentral.com medium.com/@byrnereese
  3. 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. 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. 5. Call Routing & Call Control
  6. 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. 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. 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. 9. Call Routing and Control Diagram ext. A Transfer warm vs cold ext. B
  10. 10. Call Routing and Control Diagram ext. A Transfer Call Queue ext. B ext. C ext. D Try each in sequence... ext. D
  11. 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. 12. Call Routing and Control Diagram ext. A Transfer Call Forwarding ext. B Ring simultaneously or sequentially
  13. 13. Call Routing and Control Diagram ext. A Reject
  14. 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. 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. 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
  17. 17. Embeddable Communications
  18. 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
  19. 19. 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
  20. 20. 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>
  21. 21. 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…
  22. 22. (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
  23. 23. Call Recording Analysis (in 2 case studies)
  24. 24. Gong is a conversation analytics company that uses machine learning to help sales organizations have more effective conversations with their customers.
  25. 25. 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
  26. 26. 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)
  27. 27. 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" } }
  28. 28. Real-time Call Monitoring
  29. 29. 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
  30. 30. 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
  31. 31. Call Monitoring by a Virtual Agent
  32. 32. { "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)
  33. 33. 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" }
  34. 34. Thank You. Q&A

×