About russellbryant

I'm an open source software engineer working for Red Hat on the OpenStack project.

Automated Testing Update

Greetings,

A while back, I posted a message about an effort to improve automated testing in the Asterisk project. I wanted to give an update on how that project has progressed for those that have not been following along very closely.

We started using Bamboo as a continuous integration tool, which you can find running at http://bamboo.asterisk.org/. Note that some of the pass/fail statistics on there are a bit skewed, as the Bamboo server was just rebuilt and things were failing as everything was put back together.

A lot of really good automated test cases have been developed, and more are constantly being added. There are currently 85 test cases that run against Asterisk trunk after every change to the code. While some tests are small in scope, many of them cover significant call scenarios, such as various methods of doing transfers and call parking.

I apologize for the previous flood of Bamboo emails to the -dev list. 🙂 I now have a new mailing list created for those that would like to subscribe to those messages.

http://lists.digium.com/mailman/listinfo/test-results

Additionally, one of the latest updates to our Bamboo setup is automated testing code coverage analysis. It will tell us exactly what code ran as a result of our automated test cases. It provides a good metric to start using to help identify areas of Asterisk that are in need of more test cases. You can find the code coverage reports for the latest builds of Asterisk trunk and 1.8 on Linux in the artifacts tab when viewing the details of a build.

http://bamboo.asterisk.org/browse/AST-TRUNK/latest

I’m proud of the progress we have made so far and am excited to continue aggressive development of automated test cases for Asterisk. The tests we have are already catching problems on a regular basis. The resulting quality improvements make the job of the development team easier, as well as result in a better experience for end users.

If you’re looking for a way to contribute to Asterisk and you are more comfortable writing scripts instead of C code, then the external test suite is a great way to get involved and help out.

Thank you all for your continued support of Asterisk!

Best Regards,


Russell Bryant
Digium, Inc. | Engineering Manager, Open Source Software
445 Jan Davis Drive NW – Huntsville, AL 35806 – USA
jabber: rbryant@digium.com -=- skype: russell-bryant
http://www.digium.com -=- http://www.asterisk.org -=- blogs.asterisk.org

LibPRI 1.4.12-beta1 Now Available

The Asterisk Development Team has announced the release of libpri version 1.4.12-beta1. This release is available for immediate download at http://downloads.asterisk.org/pub/telephony/libpri/

This beta release contains some fixes and several new features, among them:

  1. ETSI and Q.SIG Call Completion Supplementary Service (CCSS) support
  2. ETSI Advice Of Charge (AOC) support
  3. ETSI Explicit Call Transfer (ECT) support
  4. ETSI Call Waiting support for ISDN phones
  5. ETSI Malicious Call ID support

For a full list of changes in the current release candidate, please see the ChangeLog:

http://downloads.asterisk.org/pub/telephony/libpri/releases/ChangeLog-1.4.12-beta1

Thank you for your continued support of Asterisk!

Asterisk 1.8.0-beta1 Now Available

The Asterisk Development Team has announced the release of Asterisk 1.8.0-beta1. This release marks the beginning of the testing process for the eventual release of Asterisk 1.8.0.

This release is available for immediate download at http://downloads.asterisk.org/pub/telephony/asterisk/

All interested users of Asterisk are encouraged to participate in the 1.8 testing process. Please report any issues found to the issue tracker, http://issues.asterisk.org/. It is also very useful to hear successful test reports. Please post those to the asterisk-dev mailing list.

Asterisk 1.8 is the next major release series of Asterisk. It will be a Long Term Support (LTS) release, similar to Asterisk 1.4. For more information about support time lines for Asterisk releases, see the Asterisk versions page.

http://www.asterisk.org/asterisk-versions

Asterisk 1.8 contains many new features over previous releases of Asterisk. A short list of included features includes:

  • Secure RTP
  • IPv6 Support
  • Connected Party Identification Support
  • Calendaring Integration
  • A new call logging system, Channel Event Logging (CEL)
  • Distributed Device State using Jabber/XMPP PubSub
  • Call Completion Supplementary Services support
  • Advice of Charge support
  • Much, much more!

A full list of new features can be found in the CHANGES file.

http://svn.digium.com/view/asterisk/branches/1.8/CHANGES?view=checkout

For a full list of changes in the current release, please see the ChangeLog:

http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-1.8.0-beta1

Thank you for your continued support of Asterisk!

Asterisk 1.8 beta is near …

Asterisk 1.8 will be the next major release of Asterisk with Long Term Support. It has been under heavy development for a while now. The first beta release of Asterisk 1.8 will be available by the end of July 2010.

There are many exciting features in Asterisk 1.8. Here are just a couple of the more recent changes that have been merged in:

  • IPv6: Asterisk 1.8 will have IPv6 support for SIP and RTP.
  • SRTP: Asterisk 1.8 will have support for secure RTP to allow the media to be encrypted for a SIP call.

The list of new features is quite long. Take a look for a list of what is in Asterisk trunk (which will soon become Asterisk 1.8).

When Asterisk 1.8 is available as a beta and release candidate, please help by testing things out to help make this the best release yet!

Asterisk Testing

See the original post on the asterisk-dev list.

Greetings,

I think we can do a much better job at testing within the Asterisk project and I suspect you do, too. The vast install base and wide variety of uses gets us very good feedback. However, it is clear that we can do better within the development community at improving the quality of the code before it makes it out in any type of release (beta, RC, or full release).

I would like to propose that we adopt an automated testing approach as a part of our development process. There are 4 pieces to this:

  1. Testing with our eyes
  2. Bottom-Up testing using unit tests within Asterisk
  3. Top-Down testing using an external test suite
  4. Tests running constantly using a continuous integration framework

While this isn’t automated testing, it is too valuable not to mention. One of the most effective ways of finding bugs in code is by peer code review. We see this more and more as we continue to increase our usage of ReviewBoard for peer review before changes are merged. It’s rare that a change goes in as the first proposed patch that goes on ReviewBoard. While it has never been a hard rule, it is strongly encouraged that every committer to seek a sign-off from at least one other committer via ReviewBoard for _every_ non-trivial change.

https://reviewboard.asterisk.org/

For unit testing, we have a new API in Asterisk trunk for writing unit tests within the code. We’re up to 20 unit tests. Writing these tests has already found multiple bugs and running them continuously has caught one regression before it made it into a release.

See include/asterisk/test.h

The beginnings of an external test suite have been created. There is still design work to do, but hopefully it will begin to be populated with tests soon. In general, though, this will become a suite of tests that can use whatever external tools are necessary to verify Asterisk functionality. There is a README.txt that documents what is there so far.

$ svn co http://svn.digium.com/svn/testsuite/asterisk/trunk

On the continuous integration front, we have been using buildbot for a long time for doing compilation on various systems. It’s time that we extend our continuous integration approach to not only compile Asterisk, but also run regression tests. After evaluating some different options, Bamboo has been installed and configured for our use. So far, it is compiling all release branches of Asterisk. For Asterisk trunk, it is running all of the unit tests after every change to the code. The results of the tests are integrated into the application.

Bamboo – The Asterisk Project

The only build slave right now is Linux. This will be extended to other operating systems. If you would be interested in providing a build slave and assisting with its maintenance, please talk to me. We can configure up to 25 build slaves (“remote agents” in Bamboo terminology).

If you have commit access, you are strongly encouraged to sign up for an account on bamboo.asterisk.org and associate your account with your svn username. That way, bamboo can notify you by email and/or jabber if there any problems associated with changes that you make.

As you work on changes to the Asterisk code, you should consider this approach to testing along side your development. If there is a unit test you could write to help prove your code works or prevent a bug from showing up again, then please write one! If there is an external test you could write to help verify some piece of functionality you are using continues to work precisely as expected, then let’s figure out how to get that into the test suite. This kind of testing not only prevents regressions but it also guarantees that expected behavior will remain intact across releases.

I am excited about what this effort can do for the quality of Asterisk in the long term, and I hope you are, too. I look forward to your feedback on the approach as well as participation in the development of our testing infrastructure.

Thanks,


Russell Bryant
Digium, Inc. | Engineering Manager, Open Source Software
445 Jan Davis Drive NW – Huntsville, AL 35806 – USA
http://www.digium.com -=- http://www.asterisk.org -=- blogs.asterisk.org

Asterisk Developers European Meet-Up

John Todd originally posted this message to the asterisk-dev mailing list. I will be attending, and would love to see you there!

[Note: Please pass this note along to European developers who you may know are not actively scanning the -dev list!]

The European Asterisk development community may be the largest number of active participants on a per-continent basis, depending on how the measurement is done. There have been a few meetings of Asterisk developers in Europe over the last ten years, but recently there has not been a planned get-together of developers like has been arranged at AstriDevCon (following Astricon) in North America. It is too infrequent that Digium engineering members get to see some of those participants, and also we’d like to encourage the development community by getting everyone together once in a while to meet and talk in a way that is more personable than email, IRC, or by voice alone. Therefore, I’d like to announce that there will be an Asterisk Developer European Meet-Up held in Rostock, Germany on May 2nd and 3rd for the purposes of meeting old friends, introductions to new coders, and getting some good work done towards furthering Asterisk open-source development.

The meeting will be held immediately before AMOOCON on the Saturday/Sunday before the conference. We’ve been given a room and Internet connectivity for the purposes of having the meet-up, and I suspect there are some good restaurants and bars in the area which might be suitable for post-coding discussion as well.

There is a small group who I’ve already been in touch with on this, and in order to get a good quorum of developers we’d like to open up the session to a wider audience of development participants. This is really for people who write core Asterisk code – the subjects covered will not be applicable to “user” portions of Asterisk, so please respond only if you’re actively writing code within the Asterisk project. If you’d like more general topics, the AMOOCON conference will cover a broader range of VoIP areas. You are encouraged to sign up for the AMOOCON (http://www.amoocon.de/) event which is happening right after the meet-up and is a paid event, but keep in mind the Asterisk Developer European Meet-Up is free to participants. There will be a good handful of attendees from Digium – Kevin, Russell, and perhaps other as-yet-undecided engineering staff, but it’s your participation that is what is going to make the meeting productive – we look forward to hearing from you!

Please send your interest to me and I’ll add you to the list of attendees.

What: Asterisk Developer European Meet-Up
When: May 2-3, 2009
Where: Rostock, Germany
Why: Coding, discussion, testing, bugfixing, drinking, etc.
Who: Replies to jtodd at digium.com