Skip to content
bklang edited this page Mar 28, 2013 · 13 revisions

Possible projects:

Adhearsion Framework Ideas

Internationalization

Support for internationalisation built in to the framework as a first class feature, ensuring that applications are built internationalisation-ready by default with little effort. Should include both prompt files and TTS, and allow for a variety of methods for adding languages to an application, including a UI.

Speech Recognition

Create new Adhearsion CallController methods for collecting and interpreting speech, and renovating the existing input methods to handle prompt barge-in correctly.

Declarative IVR dialogs / dialog states

Many applications which implement IVR functionality have to create a state machine for dialogs by hand, and write tests for them. Baking in support for a declarative IVR DSL to standardise this and centralise the implementation and testing burden would simplify many of these applications and make them faster to write and cheaper to maintain, as well as more understandable.

Async CallController API

First-class mixers

Adhearsion currently has no support for audio mixing. Adhearsion needs to be able to track state for mixers, including participant details, simple joining and management, seamlessly moving collections of calls into a mixer, etc. This would include adding support for mixers on Asterisk based on ConfBridge.

Asterisk ideas

While Asterisk does not directly fall under the Adhearsion project, there are features within Asterisk on which we rely heavily. As such, it is in our interest to sponsor these ideas and get them merged into Asterisk upstream.

Asterisk res_rayo

Asterisk is the only platform supported by Adhearsion which does not yet have a native Rayo implementation in the works. Such an implementation would greatly simplify the Adhearsion implementation (being able to focus on a single protocol), improve Adhearsion's performance on Asterisk, and give Asterisk a sane 3PCC API which would benefit other projects similar to Adhearsion.

Adhearsion Plugins

Call center plugin (agent queue) with live dashboard

Short list of features:

  • Allow hotdesking (login via user ID + PIN)
  • Select from multiple distribution methods (round-robin, least-recently-used, ring-all)

Conference call plugin with live dashboard

Depends on first class mixer support

Short list of features:

  • Enable PIN-based conference logins
  • Creation of conference rooms via web UI
  • Invite/Kick/Mute/Unmute individual call legs via web UI
  • Create separate listen-only PINs and speaker PINs for the same room

Adhearsion-Twilio

  • Help finish the existing work

Punchblock ideas

Punchblock is the telephony engine abstraction library that powers Adhearsion. In a nutshell, Punchblock is responsible for taking the CallController methods and translating them to the telephony-engine-specific API calls. For Asterisk this means that Punchblock speaks AMI and AsyncAGI; for FreeSWITCH this means Punchblock speaks EventSocket. The following are ideas to extend Punchblock's translation capabilities within existing telephony engines and even to add support for new ones.

Mobicents support

  • Get basic call control working

SEMS support

SIP Express Media Server is an open source media server for use within a SIP infrastructure, usually SIP Express Router.

Adhearsion-related ideas

Super Sexy SIP Stress Tester with pretty dashboard

  • Take a YAML with simplified syntax and use it to generate (compile down) to an XML file and PCAP audio file suitable for use with SIPp
  • Ability to quickly set DTMF playtimes during the call (after pickup, wait 10 seconds, then 1-2-3..), play media, automate run-throughs of full stack components
  • Use queuing mechanism to allow for high concurrency.
  • Make it pretty, make it easy.