Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

1. Introduction

AstriDevCon 2011 was held on Monday, October 24th. It was held on the day prior to AstriCon at the same location. A group of active development community members met and discussed a number of topics, including:

  • Review of AstriDevCon 2011 (Asterisk)

2. Developers Present

  • Erik Klein: Humbug Telecom
  • Dunling Li: BTS
  • Chris May
  • Shaun Ruffell: Digium
  • Bryan Johns: Digium
  • Mark Murawski: Telesoft
  • Kevin Fleming: Digium
  • Byron Clark: Jack Communications
  • Jamual Starkey: Headland Communications
  • Leif Madsen: LeifMadsen Enterprises, Inc / Digium
  • Matt Riddel: Asterisk Daily News
  • Nir Simonivich: Greenfield Technologies / Humbug Telecom
  • Paul Belanger: Digium
  • Claude Patry
  • Jason Parker: Digium
  • David Vossel: Digium
  • Matt Jordan: Digium
  • Ben Klang: Mojo Lingo / Adhearsion
  • Brad Watkins: Copyware

3. Asterisk 10 Ideas

We spent probably half of the day discussing Asterisk 10. We came up with a list of development projects we'd like to get done and then prioritized them.

3.1. (P0)

P0 are committed projects that are going to get done.

  • T.38 Gateway (Digium)
  • Performance of State Change Processing (Stefan Schmidt)
    • (work is already being done on this front)
  • SIP path support (Olle)
  • Group variables (Kobaz)
    • (on review board, in progress)
    • Review 2011: Code written and then re-written this year, tested in production for a year. Feels good code wise. Some suggestions on reviewboard and should be converted to ao2.
  • Pre-Dial (Kobaz)
  • Distributed extension state using SIP (Olle)
    • (resources in place, doing it, 1.4 done before Christmas, project pinana)
    • Review 2011: No changes known. Idle.
  • Manager event docs (Paul Belanger)
    • Review 2011: Code was created and working, but did not pass code review. Talked about it again a couple of months ago, and some work done.
      • About a day or two to get the framework completed
      • Then just need to insert the documentation into the code and then it could be completed.
  • Cross-platform documentation (Ben Klang)
    • (caveats for using Asterisk on operating system xyz; pull a PDF of the Wiki documentation into the source, don't forget to include basic installation information, and do it all in .txt - Ben)
    • Review 2011: Documentation updated for Solaris. Is on the wiki, and just needs to be put into a better location. Leif will help restructure part of the wiki to make the Linux and Solaris documentation (and other operating systems) a better format.
  • Fix libs to optionally init OpenSSL (Digium)
    • (or use existing tools; sort of a bug)
    • Review 2011: Code on reviewboard, need to confirm that the code solves the problem, confirmed it doesn't cause harm
      • Testing required on multiple platforms and libraries
  • Make ast_channel an opaque type (Digium)
    • Review 2011: Large project and has not been started. Should not be on P0.

3.2. (P1)

P1 is the highest priority.

  • Who hung up? (there's a branch, shouldn't take too much time - Olle)
    • Review 2011: Jason Parker thinks something like that may have been committed a few months ago by Jeffrey C. Ollie. Will need to review to see if anything has actually been done there.
      • Kobaz has a 2-3 line code change that simply adds events to Softhangup() and Hangup()
      • On a failed call, there is no access to the causecodes – would be powerful if we had access to it
        • Would need to develop some code that created a generic layer to convert between channel drivers (each does it different)
        • Need to investigate if there are any CEL events already created that will give some of that information
  • Codecs (SILK, OPUS), Media Negotiation (Digium)
    • Review 2011: Every version of Asterisk had a fixed bitfield, and we needed to be conscious about adding new codecs (limited). Project was to remove that limitation. Reworked how media formats are represented in Asterisk. Integration of codecs like SILK and CELT. Helps with better support for video as well.
      • Framework in place
      • Need to now start using the framework to help add functionality to Asterisk
      • For Asterisk 11, would be nice to add re-invite support so that clients and re-negotiate resolutions (for video). End-to-end negotiation. Framework in place to do that, just need to add the functionality.
  • RTCP (Olle)
    • Pinefrog; Work to be done - Ported to trunk, added to CEL
    • Review 2011: Idle
  • Conferencing that supports a new magic media (Digium)
    • Review 2011: Completed and in Asterisk 10. Updated ConfBridge() application which was pretty much re-written. Now supports high resolution codecs and voice activity video switching within ConfBridge().
    • higher sampling rates
    • Review 2011: Part of the codec negotiation framworks.

3.3. (P2)

  • Async DNS (TCP DNS and use a good resolver)
    • Review 2011: No change known.
  • Named ACLs (deluxepine)
    • Review 2011: Idle
  • SIP Security Events
    • Review 2011: Additional work was updated and put into Asterisk 10. Only reported manager authentication events prior to Asterisk 10.
      • Prior to Asterisk 10 relaxed policy a bit and added chan_sip security events (only for inbound registration).
      • Additional work needed throughout Asterisk to add more events.
  • Light weight means of holding NAT open in SIP (less complex than current qualify, Consider it done)
    • Review 2011: No change.
  • IPv6 for the restivus (IAX, Jabber/XMPP/Gtalk, Manager, etc.)
    • Review 2011: No change.
  • ConfBridge feature complete with MeetMe
    • Review 2011: Not entirely true, but very close.
  • Support sound file containers (matroska)
    • Review 2011: Suggestion to have (media) files used by Asterisk not just headerless files, so you could actually do things properly, like storing G729 that contains silent suppression information.
      • No change in Asterisk, but has been getting worked on for Asterisk SCF. Very complicated. Matroska is just a framework. Once stable for Asterisk SCF, we can consider building it for Asterisk as well.

3.4. (P3)

  • Unique identifier for filtering log data to a call
    • (finishing what was already begun w/ Clod's project, CLI filtering; should take a look at what Stephan from's created)
    • Review 2011: Claude's patch was only for CLI filtering.
      • Discussion about in the logger.conf to change the configuration so that the 'core set verbose 5' (or debug, etc) that it does not affect all the configuration files when you just want to change the verbosity on the console.
      • Configuration could be under a header, and then create your own filters for channels, and what verbosity,debug,etc. is output to a log file and console per file

3.5. (P4, Simon's features)

  • Multiple SIP Sockets
    • (Listen on multiple ports or on multiple interfaces, but not all; also set binding for RTP)...alternate idea / solution would be to make Asterisk capable of loading multiple SIP profiles, it might be easier
  • Multiple DNS results
    • (need to be able to traverse a list of DNS results, rather than just getting back one result)
  • ICE-lite
    • (no code, responding correctly to ICE connectivity checks (STUN multiplexed on the RTP port) and understanding the SDP); it makes NAT traversal work for clients that do ICE; also addressed lightweight NAT refresh)

3.6. (P5)

  • AstDB replacement SQLite
    • (realtime, there's code, nearly ready)
  • SIP identity
    • (on reviewboard; needs to be forward ported; important for organizations w/ federated identities; a requirement for DTLS SRTP; not widely deployed)
  • RTMP client channel driver

3.7. (P6)

  • Structured identifiers for errors
    • (tag an error message with a unique string, specific to the error message and where it came from; should be alphanumeric to keep them short)
  • AMI SetVar, Context limits
    • (there's code already...Olle has it)
  • AMI filters on demand
    • (not likely to be widely deployed in the next 12 months)

3.8. (P7, not kobaz)

  • Asterisk register for XMPP account (Leif)
  • Write a Specification for AMI (not kobaz)
  • Multiple TLS server certs
    • (1 socket, requires support by OpenSSL; simpler to implement than multiple SIP profiles; don't know if any clients use it yet; needs more research)

3.9. (P8, nice to have)

  • Make resource modules that talk to DBs attempt reconnects
  • Apple's new file streaming format, derived from .m3u
  • Make MixMonitor and Monitor feature compatible

3.10. (P?, Research Required)

  • New app_queue (as if? no, seriously? talking about this scares Russell)
  • Identify and fix all bugs in AMI
  • Broadsoft or Dialog Info shared line appearance (SLA) support
    • (Tabled for later discussion)
  • LDAP from within the dialplan
    • (we may already have it, needs research to see if the realtime driver does what's desired - Leif)
  • Device state normalization
  • Anything DB over HTTP(s) with failover handling
  • Use a channel as a MoH Source
  • Kill Masquerades
  • Bridging thread pool
  • Threadify chan_sip
  • Export ISDN ROSE information up to Asterisk channels

4. Testing Framework Ideas

We discussed the automated testing that has been built for Asterisk and discussed ideas for future improvements.

  • Add Adhearsion
  • Media Analysis (Quality)
  • TestServer / TestClient
  • Emulate phone-specific behavior
  • Test ${RESULT} vars
  • Check memory usage (for leaks)
  • Custom statistics over time
  • Automated load tests
  • Valgrind integration
  • Tone generation and analysis
  • Broken dial strings
  • Bad options to applications
  • Make tests more generic so they can be toggled to run across multiple channels, or channel types, more easily
  • Try to access features that are disallowed
  • Test calls between versions of Asterisk
  • Randomize call length and application during load testing - "Fuzzing"
  • Automated crash analysis (generate backtraces and logs, etc)
  • Testing against a SIP Proxy
  • Non-root isolated test suite
  • RFC4475 and RFC5118 tests (SIP Torture tests)
  • More chan_sip parsing unit tests
  • SDP testing multiple media streaming
  • protos SIP tester
  • TAHI SIP tester for IPv6
  • test SSL / TLS SIP connectivity
  • Sound file I/O
  • Manager events for scenarios
  • Basic calls with all channel types
  • Connected party ID
  • Tonezone tests
  • Language tests

5. Release Policy Discussion

We discussed Asterisk release policy. Specifically, we were considering the current policy that excludes features from a release branch. After a bit of discussion, it was decided that no changes to policy would be made. We did agree that a new self contained module that was not compiled by default would be fine, but that it would be rare that it would provide benefit, since most projects are modifications of existing code.

6. Photos of attendees

We rock.

  • No labels