The document discusses plans for the next major version (2.0) of the Adhearsion telephony framework. It describes extracting Asterisk-specific code into a new library called Punchblock that will provide a common call control API across platforms. This will allow Adhearsion applications to run on Asterisk, FreeSWITCH or other backends. It also outlines changes to the API and goals for AdhearsionConf 2012, including porting apps to 3 platforms and gaining new contributors. Questions are posed about scaling, multi-platform use cases, needed features, and desired new capabilities.
4. Goals for AdhearsionConf 2012
• Application portability across 3 distinct platforms
• 100 attendees
5. Goals for AdhearsionConf 2012
• Application portability across 3 distinct platforms
• 100 attendees
• 50 plugins on ahnhub.com
6. Goals for AdhearsionConf 2012
• Application portability across 3 distinct platforms
• 100 attendees
• 50 plugins on ahnhub.com
• 10 new core contributors
7. Goals for AdhearsionConf 2012
• Application portability across 3 distinct platforms
• 100 attendees
• 50 plugins on ahnhub.com
• 10 new core contributors
• 1 new major version
10. Adhearsion 2.0
• The next major evolution of Adhearsion
• Many improvements including:
11. Adhearsion 2.0
• The next major evolution of Adhearsion
• Many improvements including:
• Core architecture overhaul
12. Adhearsion 2.0
• The next major evolution of Adhearsion
• Many improvements including:
• Core architecture overhaul
• A reduction in internal complexity and line-count
13. Adhearsion 2.0
• The next major evolution of Adhearsion
• Many improvements including:
• Core architecture overhaul
• A reduction in internal complexity and line-count
• Scope reduction; non-core functionality will be
extracted to gems
14. Adhearsion 2.0
• The next major evolution of Adhearsion
• Many improvements including:
• Core architecture overhaul
• A reduction in internal complexity and line-count
• Scope reduction; non-core functionality will be
extracted to gems
• Further deployment, monitoring, scaling support
18. Adhearsion 2.0 continued
• Overhaul of the component system
• Renaming to ‘plugins’
• Railties-like modular hooks into the core system
19. Adhearsion 2.0 continued
• Overhaul of the component system
• Renaming to ‘plugins’
• Railties-like modular hooks into the core system
• Advanced initialisation routines
20. Adhearsion 2.0 continued
• Overhaul of the component system
• Renaming to ‘plugins’
• Railties-like modular hooks into the core system
• Advanced initialisation routines
• Better support for unit testing of plugins
21. Adhearsion 2.0 continued
• Overhaul of the component system
• Renaming to ‘plugins’
• Railties-like modular hooks into the core system
• Advanced initialisation routines
• Better support for unit testing of plugins
• Scaffolding for advanced application layouts
22. Adhearsion 2.0 continued
• Overhaul of the component system
• Renaming to ‘plugins’
• Railties-like modular hooks into the core system
• Advanced initialisation routines
• Better support for unit testing of plugins
• Scaffolding for advanced application layouts
• Modular application constructs (voicemail, queueing, etc) as
plugins
26. Punchblock
• Low level telephony platform abstraction library
• Asterisk (+ SCF in the future)
27. Punchblock
• Low level telephony platform abstraction library
• Asterisk (+ SCF in the future)
• Rayo (Voxeo Prism today; tomorrow the world)
28. Punchblock
• Low level telephony platform abstraction library
• Asterisk (+ SCF in the future)
• Rayo (Voxeo Prism today; tomorrow the world)
• FreeSWITCH?
29. Punchblock
• Low level telephony platform abstraction library
• Asterisk (+ SCF in the future)
• Rayo (Voxeo Prism today; tomorrow the world)
• FreeSWITCH?
• Mirrors Rack for HTTP
30. Punchblock
• Low level telephony platform abstraction library
• Asterisk (+ SCF in the future)
• Rayo (Voxeo Prism today; tomorrow the world)
• FreeSWITCH?
• Mirrors Rack for HTTP
• Designed to be the basis of higher level frameworks, not
for end-use to build applications
33. Adhearsion on Punchblock
• Extraction of all Asterisk-specific code from Adhearsion into
Punchblock
• A consistent call control API for Adhearsion applications
34. Adhearsion on Punchblock
• Extraction of all Asterisk-specific code from Adhearsion into
Punchblock
• A consistent call control API for Adhearsion applications
• Application portability between backend platforms
35. Adhearsion on Punchblock
• Extraction of all Asterisk-specific code from Adhearsion into
Punchblock
• A consistent call control API for Adhearsion applications
• Application portability between backend platforms
• As long as you stay within the bounds of common
functionality
36. Adhearsion on Punchblock
• Extraction of all Asterisk-specific code from Adhearsion into
Punchblock
• A consistent call control API for Adhearsion applications
• Application portability between backend platforms
• As long as you stay within the bounds of common
functionality
• Unification of events into something meaningful
37. Adhearsion on Punchblock
• Extraction of all Asterisk-specific code from Adhearsion into
Punchblock
• A consistent call control API for Adhearsion applications
• Application portability between backend platforms
• As long as you stay within the bounds of common
functionality
• Unification of events into something meaningful
• Access to raw platform if you need it
39. API Changes
• The dialplan DSL will have some modifications, but will
be mostly backward compatible
40. API Changes
• The dialplan DSL will have some modifications, but will
be mostly backward compatible
• #join -> #conference
41. API Changes
• The dialplan DSL will have some modifications, but will
be mostly backward compatible
• #join -> #conference
• Parameters may change slightly
42. API Changes
• The dialplan DSL will have some modifications, but will
be mostly backward compatible
• #join -> #conference
• Parameters may change slightly
• On release of Adhearsion 2.0, a full changelog and
migration guide will be provided
53. Questions for you
• How important is scaling Adhearsion across multiple
back-ends (1 Adhearsion to every 5 Asterisk)?
54. Questions for you
• How important is scaling Adhearsion across multiple
back-ends (1 Adhearsion to every 5 Asterisk)?
• Would you be interested in using a single Adhearsion
application on multiple platforms simultaneously?
55. Questions for you
• How important is scaling Adhearsion across multiple
back-ends (1 Adhearsion to every 5 Asterisk)?
• Would you be interested in using a single Adhearsion
application on multiple platforms simultaneously?
• What features do you need in Adhearsion?
56. Questions for you
• How important is scaling Adhearsion across multiple
back-ends (1 Adhearsion to every 5 Asterisk)?
• Would you be interested in using a single Adhearsion
application on multiple platforms simultaneously?
• What features do you need in Adhearsion?
• What would you love to be able to do with Adhearsion
that you can’t today?