SlideShare una empresa de Scribd logo
1 de 11
Free Software/Open Source Telephony Summit 2005
Developing GNU Bayonne
* What is GNU Bayonne and how is it used?
* How do you start large and complex FS/OS projects?
* History and design elements of Bayonne architecture
* What we learned about subdividing projects from Bayonne
* Where we are today in Bayonne
* Future plans for Bayonne development
Free Software/Open Source Telephony Summit 2005
What is Bayonne & How is it used?
* Free software for computer telephony
* Bayonne as a computer telephony toolkit
* Bayonne as a script driven IVR
* Embedded adjuncts and Legacy Integration.
* High port count applications; IDT Debit
* IVR as a network service; voice broadcasting
Port density
High Cap.
Bayonne
Embedded.
Bayonne
Community
? Yate ?
Free Software/Open Source Telephony Summit 2005
From Concept to Production Release
1991 Year of Linux Kernel,
first ACS design, under QNX...
1997 DBS Server; CTI as Free
Software! QNX had no future...
1999 year of OpenH323 and
also ACS; C++ everywhere!
2001 Transition to Bayonne
and mature libraries
* Clear articulated design
* Building upon past work
* Why we choose C++
* Scalability & threading
* Logical breakdown of coding
* Why free software licensing & Community?
1995 U.S. Federal Govt telecom
infrastructure goes (gnu/)Linux!
2004 First Telephony Conf!
sip/h323 drivers in Bayonne
Free Software/Open Source Telephony Summit 2005
Hallmarks of Bayonne Design
Why our own traffic engineered scripting language:
* parallelism & scaling to 1000 concurrent ports (and above)
* very tight control of cpu execution
* reduction of heap memory fragmentation
* non-blocking script operations and program execution
* non-blocking reload of application scripts.
Abuse of C++ and other oddities
* pre-linking by exporting process images
* plugins and mapped constructors
* plugins mapped to server image do not need to relocate!
* forced inheritance in scripting and state machine logic.
* Abstraction of telephony hardware
Free Software/Open Source Telephony Summit 2005
Dividing up the puzzle
* Large project as a whole of interest to very small number of people
* Finding parts of a project that have wider interest and spinning those off into
separate packages.
* Separate packages means separate and simplified component debugging.
* Large projects already often depend on other external packages so additional
dependencies that are locally controlled does not add to complexity.
Free Software/Open Source Telephony Summit 2005
The GNU Bayonne components
Current Component Packages:
* GNU Common C++ “2” - core c++ threading, sockets, etc
* GNU ccAudio - c++ audio manipulation
* GNU ccScript - inheritable script engine
* GNU ccRTP - high performance rtp protocol library
Future and Soon-to-be Updated Component Packages:
* GNU ccAudio2 - added standalone uses, fully endian aware!
* GNU ccScript3 - core Bayonne code moved into script engine
and rigorously enforce scripting syntax
* new GNU phrasebook library for localized language voice prompts
Free Software/Open Source Telephony Summit 2005
Where we are today...?
Current development trees:
* Production branch, used worldwide, limited changes over time
* “Stable” Branch; OST Development
* Individual per customer branches
* “testing” Branch for future production releases
Problems in Bayonne today (many not solved in testing branch):
* Too many trees; customer branches are often changes lost
* Lack of rigorous spec for core scripting language itself
* many script side effects and script debugging issues
* Over-engineered and tuned for corner cases only
* Too many hard-coded limits
* Mission creep outside of core IVR functionality
* Driver development model very complex
* Lack of supporting gui ide and other infrastructure projects
Free Software/Open Source Telephony Summit 2005
Immediate development goals underway
Reverse library consolidation of stable and testing branches:
* ccScript3 - externalize Bayonne database & script extensions
* ccaudio2 - externalize most Bayonne audio processing
* phrasebook - externalize Bayonne voice libraries for use by others
Redesign server around self contained IVR engine library:
* standardize state & script extensions rather than per driver
* move most driver state machine code into common base class
* easy external build of telephony driver plugins (fix licensing issues)
* simplify server debug and testing starting with ivr engine library
* Bayonne everywhere! xBSD, Solaris, HP-UX, OSX, even W32?!
Eliminate fixed constants:
* no more 1000 port capacity limit!
* remove odd symbol size restrictions
Free Software/Open Source Telephony Summit 2005
Other possible future development goals
GNU ccScript3 related enhancements:
* all new C++ abuses! Sideway class inheritance
* split of script library so drivers inherit core runtime only
* server can inherit language spec or run VoiceXML framework
* multi-homed scripts used for project oriented ide & exec environment
GNU ccAudio2 related enhancements:
* framework for ogg-vorbis, mpeg audio, and other codecs
Other fun and possible infrastructure projects:
* bayonneide, common infrastructure for other projects
* telephony panel applets for call agents for use with Yate & Bayonne
* gui administration interface, using Yate protocol?
* specific pbx legacy integration servers derived off Bayonne core?
* web based call accounting/billing system for Yate?
Free Software/Open Source Telephony Summit 2005
Some longer term thoughts...
ccScript3
Common C++
Phrasebook
ccAudio2
Bayonne
CTI Server
Drivers
ccRTP/yartp
yass/oh323
Bayonne
XML Server
Bayonne VoIP
script engine
Troll Gateway
Server
Drivers
Other IP
Telephony
Servers
(Yate, etc)
* Bayonne split into
CTI server & VoIP
IVR services
* Legacy drivers
moved to Troll
and maybe yate? softphone
client
Free Software/Open Source Telephony Summit 2005
Additional Resources
HTTP://www.gnu.org/software/bayonne
HTTP://yate.null.ro
HTTP://www.gnue.org
HTTP://www.gnutelephony.org (coming soon)
HTTP://www.gnu.org/software/commoncpp
mailto:dyfet@gnu.org

Más contenido relacionado

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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 ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Destacado

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
ThinkNow
 
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
Kurio // The Social Media Age(ncy)
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
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...
 

Developing GNU Bayonne

  • 1. Free Software/Open Source Telephony Summit 2005 Developing GNU Bayonne * What is GNU Bayonne and how is it used? * How do you start large and complex FS/OS projects? * History and design elements of Bayonne architecture * What we learned about subdividing projects from Bayonne * Where we are today in Bayonne * Future plans for Bayonne development
  • 2. Free Software/Open Source Telephony Summit 2005 What is Bayonne & How is it used? * Free software for computer telephony * Bayonne as a computer telephony toolkit * Bayonne as a script driven IVR * Embedded adjuncts and Legacy Integration. * High port count applications; IDT Debit * IVR as a network service; voice broadcasting Port density High Cap. Bayonne Embedded. Bayonne Community ? Yate ?
  • 3. Free Software/Open Source Telephony Summit 2005 From Concept to Production Release 1991 Year of Linux Kernel, first ACS design, under QNX... 1997 DBS Server; CTI as Free Software! QNX had no future... 1999 year of OpenH323 and also ACS; C++ everywhere! 2001 Transition to Bayonne and mature libraries * Clear articulated design * Building upon past work * Why we choose C++ * Scalability & threading * Logical breakdown of coding * Why free software licensing & Community? 1995 U.S. Federal Govt telecom infrastructure goes (gnu/)Linux! 2004 First Telephony Conf! sip/h323 drivers in Bayonne
  • 4. Free Software/Open Source Telephony Summit 2005 Hallmarks of Bayonne Design Why our own traffic engineered scripting language: * parallelism & scaling to 1000 concurrent ports (and above) * very tight control of cpu execution * reduction of heap memory fragmentation * non-blocking script operations and program execution * non-blocking reload of application scripts. Abuse of C++ and other oddities * pre-linking by exporting process images * plugins and mapped constructors * plugins mapped to server image do not need to relocate! * forced inheritance in scripting and state machine logic. * Abstraction of telephony hardware
  • 5. Free Software/Open Source Telephony Summit 2005 Dividing up the puzzle * Large project as a whole of interest to very small number of people * Finding parts of a project that have wider interest and spinning those off into separate packages. * Separate packages means separate and simplified component debugging. * Large projects already often depend on other external packages so additional dependencies that are locally controlled does not add to complexity.
  • 6. Free Software/Open Source Telephony Summit 2005 The GNU Bayonne components Current Component Packages: * GNU Common C++ “2” - core c++ threading, sockets, etc * GNU ccAudio - c++ audio manipulation * GNU ccScript - inheritable script engine * GNU ccRTP - high performance rtp protocol library Future and Soon-to-be Updated Component Packages: * GNU ccAudio2 - added standalone uses, fully endian aware! * GNU ccScript3 - core Bayonne code moved into script engine and rigorously enforce scripting syntax * new GNU phrasebook library for localized language voice prompts
  • 7. Free Software/Open Source Telephony Summit 2005 Where we are today...? Current development trees: * Production branch, used worldwide, limited changes over time * “Stable” Branch; OST Development * Individual per customer branches * “testing” Branch for future production releases Problems in Bayonne today (many not solved in testing branch): * Too many trees; customer branches are often changes lost * Lack of rigorous spec for core scripting language itself * many script side effects and script debugging issues * Over-engineered and tuned for corner cases only * Too many hard-coded limits * Mission creep outside of core IVR functionality * Driver development model very complex * Lack of supporting gui ide and other infrastructure projects
  • 8. Free Software/Open Source Telephony Summit 2005 Immediate development goals underway Reverse library consolidation of stable and testing branches: * ccScript3 - externalize Bayonne database & script extensions * ccaudio2 - externalize most Bayonne audio processing * phrasebook - externalize Bayonne voice libraries for use by others Redesign server around self contained IVR engine library: * standardize state & script extensions rather than per driver * move most driver state machine code into common base class * easy external build of telephony driver plugins (fix licensing issues) * simplify server debug and testing starting with ivr engine library * Bayonne everywhere! xBSD, Solaris, HP-UX, OSX, even W32?! Eliminate fixed constants: * no more 1000 port capacity limit! * remove odd symbol size restrictions
  • 9. Free Software/Open Source Telephony Summit 2005 Other possible future development goals GNU ccScript3 related enhancements: * all new C++ abuses! Sideway class inheritance * split of script library so drivers inherit core runtime only * server can inherit language spec or run VoiceXML framework * multi-homed scripts used for project oriented ide & exec environment GNU ccAudio2 related enhancements: * framework for ogg-vorbis, mpeg audio, and other codecs Other fun and possible infrastructure projects: * bayonneide, common infrastructure for other projects * telephony panel applets for call agents for use with Yate & Bayonne * gui administration interface, using Yate protocol? * specific pbx legacy integration servers derived off Bayonne core? * web based call accounting/billing system for Yate?
  • 10. Free Software/Open Source Telephony Summit 2005 Some longer term thoughts... ccScript3 Common C++ Phrasebook ccAudio2 Bayonne CTI Server Drivers ccRTP/yartp yass/oh323 Bayonne XML Server Bayonne VoIP script engine Troll Gateway Server Drivers Other IP Telephony Servers (Yate, etc) * Bayonne split into CTI server & VoIP IVR services * Legacy drivers moved to Troll and maybe yate? softphone client
  • 11. Free Software/Open Source Telephony Summit 2005 Additional Resources HTTP://www.gnu.org/software/bayonne HTTP://yate.null.ro HTTP://www.gnue.org HTTP://www.gnutelephony.org (coming soon) HTTP://www.gnu.org/software/commoncpp mailto:dyfet@gnu.org