SlideShare a Scribd company logo
1 of 28
Stringee - Communication APIs
for Voice, Video, Chat, SMS and Customer Service Software
Dau Ngoc Huy
Founder & CEO
huy@stringee.com
ARCHITECTURE & TECHNOLOGY
#1 Overview
Stringee is a Communication Platform
which provides:
✓ APIs for Voice, Video, Chat, SMS and
Contact Center
✓ Customer service software
About us
Stringee
Call APIs
Stringee
Chat APIs
Stringee
SMS APIs
Stringee
Video Conference
APIs
Stringee Programmable Contact Center APIs
StringeeX - Contact Center platform
APIs
Complete
Software
#2 Technology Technologies in use
Programing languages
• Server: C/C++, Java, PHP
• Client: Objective-C, C/C++, Java, HTML 5, JavaScript (Vuejs)
Protocols
• SIP 2.0, RTP
• Signaling: custom protocol
Database
• MySQL
• Solr (Apache Lucene), Redis, Memcached,…
Message broker
• RabbitMQ, Apache Kafka
#4 Kiến trúc
#3 System Architecture
#3.1 Stringee Call API Architecture
Outbound call flow
#4 Luồng callout
Stringee Call API Architecture
#4 Luồng callout
1. Stringee Server: Run Stringee's main functions:
• Authenticate
• Process call scenarios by processing SCCO (record call, play file, connect app-to-app/app-to-phone/..., record
voicemail)
• Run chat functions (chat 1-1, chat group)
• Write CDR/reporting
• Send events to event_url
• …
2. Push Server: Wakes apps up to receive calls
3. Daemon Server: Run periodic tasks: Block accounts after trial expired, send emails, task remind,…
4. Charging Server: Realtime billing, monitor limits, block/stop calls due to invalid account balance
5. Media Server: Communicate with Telcos, process transcoding media,…
6. api.stringee.com: Receive REST API requests from developers to run: stop call, transfer call, download recorded file,...
7. ICE Server: Connect client-apps using STUN/TURN protocol, for client-apps to make App-to-App calls(get public IP, NAT
traversal)
#7 Năng lực
#3.2 Stringee PCC API Architecture
PCC modules
PCC modules
1. ICC Server:
• Process IVR tree: Play messages in nodes accordingly, connect to Queue,…
• Process Queues, find available Agent to receive calls
• Bring callers back to Queue when assigned Agent does not pick up the call
• …
2. icc-api.stringee.com:
• Allow developers creating IVR trees/nodes/keypresses..., Queue,… through REST APIs
• Empty cache on ICC Server
• …
#4 High Availability/Load Balancing
#4 HA/LB
High Availability
• The design has no dead spots, all modules run at least on 2 different physical nodes
• The modules have a PING mechanism allow them to Ping each other, ensuring that
when one node dies, the call will not be distributes to dead node
Load balancing
• Modules are designed to expand horizontally easily
• Adding/deleting nodes does not require system restart
We designed our system to be an Active-Active Cluster for High Availability
Client connect
Stringee Server
node_1
Stringee Server
node_2
Stringee Server
node_3
DNS Server
Client
A DNS query n1.stringee.com
n1.stringee.com=6.6.6.1
n1.stringee.com=6.6.6.1
n2.stringee.com=6.6.6.2
Try connect and authenticate
Response
{list_servers: ["n1.stringee.com:6789", "n2.stringee.com:6789"]}
Client connect to failed node
Stringee Server
node_1
Stringee Server
node_2
Stringee Server
node_3
DNS Server
Client
A DNS query n1.stringee.com
n1.stringee.com=6.6.6.1
n1.stringee.com=6.6.6.1
n2.stringee.com=6.6.6.2
Try connect and authenticate
{list_servers: ["n1.stringee.com:6789", "n2.stringee.com:6789"]}
X
A DNS query n2.stringee.com
n2.stringee.com=6.6.6.2
Try connect and authenticate
Authentication flow
Stringee Server
node_1
Stringee Server
node_2
Client 1 Client 2
Redis Server
client_1: node_1
client_2: node_2
Handle connections
from multiple devices
Stringee Server
node_1
Stringee Server
node_2
Client 1
(device 1)
Client 1
(device 2)
Redis Server
client_1: node_1
checkAndSet(client_1, node_1)
result(“OK”, “node_1”)
checkAndSet(client_1, node_2)
result(“FAIL”, “node_1”)
https://redis.io/topics/transactions#cas
X
Call/Chat flow
Stringee Server
node_1
Stringee Server
node_2
Client 1 Client 2
Redis Server
client_1: node_1
client_2: node_2
getUserLocation(client_2)
node_2
Stringee Server <==> Charging Server
Stringee Server
node_1
Stringee Server
node_2
Charging Server
node_1
Charging Server
node_2
Physical server 1 Physical server 2
Ping Stringee Servers
Ping Concurrent Calls
Ping Charging Servers
#4 HA/LB
Same configuration for other server pairs
• Stringee Server <> Push Server
• Stringee Server <> Media Server
• Stringee Server <> ICC Server
REST & HTTP Servers
HAProxy
node_1
api.stringee.com
node_1
Physical server 1 Physical server 2
api.stringee.com
node_2
HAProxy
node_2
keepalived
node_1
Developer Server
VIP IP: 6.6.6.3 keepalived
node_2
DNS Server
api.stringee.com = 6.6.6.3
Thank you!
#7 Năng lực

More Related Content

Recently uploaded

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Recently uploaded (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

The Architecture and Technologies backed Stringee - a system serving 40 million users

  • 1. Stringee - Communication APIs for Voice, Video, Chat, SMS and Customer Service Software Dau Ngoc Huy Founder & CEO huy@stringee.com ARCHITECTURE & TECHNOLOGY
  • 2. #1 Overview Stringee is a Communication Platform which provides: ✓ APIs for Voice, Video, Chat, SMS and Contact Center ✓ Customer service software About us
  • 3. Stringee Call APIs Stringee Chat APIs Stringee SMS APIs Stringee Video Conference APIs Stringee Programmable Contact Center APIs StringeeX - Contact Center platform APIs Complete Software
  • 4. #2 Technology Technologies in use Programing languages • Server: C/C++, Java, PHP • Client: Objective-C, C/C++, Java, HTML 5, JavaScript (Vuejs) Protocols • SIP 2.0, RTP • Signaling: custom protocol Database • MySQL • Solr (Apache Lucene), Redis, Memcached,… Message broker • RabbitMQ, Apache Kafka
  • 5. #4 Kiến trúc #3 System Architecture
  • 6. #3.1 Stringee Call API Architecture
  • 9. Stringee Call API Architecture
  • 11. 1. Stringee Server: Run Stringee's main functions: • Authenticate • Process call scenarios by processing SCCO (record call, play file, connect app-to-app/app-to-phone/..., record voicemail) • Run chat functions (chat 1-1, chat group) • Write CDR/reporting • Send events to event_url • … 2. Push Server: Wakes apps up to receive calls 3. Daemon Server: Run periodic tasks: Block accounts after trial expired, send emails, task remind,… 4. Charging Server: Realtime billing, monitor limits, block/stop calls due to invalid account balance 5. Media Server: Communicate with Telcos, process transcoding media,… 6. api.stringee.com: Receive REST API requests from developers to run: stop call, transfer call, download recorded file,... 7. ICE Server: Connect client-apps using STUN/TURN protocol, for client-apps to make App-to-App calls(get public IP, NAT traversal)
  • 13. #3.2 Stringee PCC API Architecture
  • 16. 1. ICC Server: • Process IVR tree: Play messages in nodes accordingly, connect to Queue,… • Process Queues, find available Agent to receive calls • Bring callers back to Queue when assigned Agent does not pick up the call • … 2. icc-api.stringee.com: • Allow developers creating IVR trees/nodes/keypresses..., Queue,… through REST APIs • Empty cache on ICC Server • …
  • 18. #4 HA/LB High Availability • The design has no dead spots, all modules run at least on 2 different physical nodes • The modules have a PING mechanism allow them to Ping each other, ensuring that when one node dies, the call will not be distributes to dead node Load balancing • Modules are designed to expand horizontally easily • Adding/deleting nodes does not require system restart We designed our system to be an Active-Active Cluster for High Availability
  • 19. Client connect Stringee Server node_1 Stringee Server node_2 Stringee Server node_3 DNS Server Client A DNS query n1.stringee.com n1.stringee.com=6.6.6.1 n1.stringee.com=6.6.6.1 n2.stringee.com=6.6.6.2 Try connect and authenticate Response {list_servers: ["n1.stringee.com:6789", "n2.stringee.com:6789"]}
  • 20. Client connect to failed node Stringee Server node_1 Stringee Server node_2 Stringee Server node_3 DNS Server Client A DNS query n1.stringee.com n1.stringee.com=6.6.6.1 n1.stringee.com=6.6.6.1 n2.stringee.com=6.6.6.2 Try connect and authenticate {list_servers: ["n1.stringee.com:6789", "n2.stringee.com:6789"]} X A DNS query n2.stringee.com n2.stringee.com=6.6.6.2 Try connect and authenticate
  • 21. Authentication flow Stringee Server node_1 Stringee Server node_2 Client 1 Client 2 Redis Server client_1: node_1 client_2: node_2
  • 22. Handle connections from multiple devices Stringee Server node_1 Stringee Server node_2 Client 1 (device 1) Client 1 (device 2) Redis Server client_1: node_1 checkAndSet(client_1, node_1) result(“OK”, “node_1”) checkAndSet(client_1, node_2) result(“FAIL”, “node_1”) https://redis.io/topics/transactions#cas X
  • 23. Call/Chat flow Stringee Server node_1 Stringee Server node_2 Client 1 Client 2 Redis Server client_1: node_1 client_2: node_2 getUserLocation(client_2) node_2
  • 24. Stringee Server <==> Charging Server Stringee Server node_1 Stringee Server node_2 Charging Server node_1 Charging Server node_2 Physical server 1 Physical server 2 Ping Stringee Servers Ping Concurrent Calls Ping Charging Servers
  • 25. #4 HA/LB Same configuration for other server pairs • Stringee Server <> Push Server • Stringee Server <> Media Server • Stringee Server <> ICC Server
  • 26. REST & HTTP Servers HAProxy node_1 api.stringee.com node_1 Physical server 1 Physical server 2 api.stringee.com node_2 HAProxy node_2 keepalived node_1 Developer Server VIP IP: 6.6.6.3 keepalived node_2 DNS Server api.stringee.com = 6.6.6.3
  • 27.