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 4 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.

  • Codecs (SILK, OPUS), Media Negotiation (Digium)
  • RTCP (Olle)
    • Pinefrog; Work to be done - Ported to trunk, added to CEL
  • Conferencing that supports a new magic media (Digium)
    • higher sampling rates

3.3. (P2)

  • Async DNS (TCP DNS and use a good resolver)
  • Named ACLs (deluxepine)
  • SIP Security Events
  • Light weight means of holding NAT open in SIP (less complex than current qualify, Consider it done)
  • IPv6 for the restivus (IAX, Jabber/XMPP/Gtalk, Manager, etc.)
  • ConfBridge feature complete with MeetMe
  • Support sound file containers (matroska)

3.4. (P3)

  • Who hung up? (there's a branch, shouldn't take too much time - Olle)
  • 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)

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