This project is read-only.
Project Description
TSL.NET is a library related to Twilio. This library is no longer maintained:

Update 2013-Apr-02 : I think it's time to retire/close this project This project is no longer maintained. Developers are being referred to the official libarary at GitHub.

This project was profiled on the Twilio Blog.

Update 2010-Oct-16 : A new class has been added to Facilitate access to data not provided by Twilio API. This component will always be considered Beta and separate a separate module from TSL.NET itself because it scrapes HTML rather than conforming to a defined API. Comments welcome to discussion New module gets non-API data from Twilio dashboard.

Update 2010-Sep-26 : Now enhancing TSL.NET to conform to Twilio v2010-04-01 API. Current release supporting 2008-08-01 will be published as v1.0.1 Production with some final updates. New version will start at 2.0.1 Beta and will move through to a v2.1.0 Beta. Pending final comments and changes, v2.2.0 will be the Production release supporting the new API.

Update 2010-June-30 : v0.2.1 was published today. It's being called a Beta "just in case" but it seems to be a fully functional/stable release. There are still a few open issues in the tracker but at this point it doesn't look like there are anything preventing this package from being used in a production environment.

Update 2010-June-26 : Many items were added to the Issue Tracker and many items were closed as they were processed into Release 0.2.1 Beta. This release will be published within the next few days. Note: SMS isn't as functional as was expected in v0.2.0 - sorry. All functionality has been fixed for 0.2.1.

Update 2010-June-20 : Release 0.2.0 Beta was published as a Release Candidate for v1.0.0 Production. Items in the Issue Tracker were processed and closed. Please be sure to create tracker items for any new issues found or features desired.

Developers - TSL.NET is ready for you to use!

Release 0.2.1 is now available for Download with full source and working samples!

Project Purpose
TSL.NET is for use with the services provided at

TSL.NET was created because no open source libraries were available for .NET for generating TwiML, the Twilio Markup Language / XML. There are a couple other projects here at CodePlex but they seem to have been abandoned and the source isn't available. With concern for stability and maintainability, this library was created. The project was soon expanded from being a pure server (TwiML) library to including full end-to-end functionality for both client (REST queries to Twilio) and server (postbacks from Twilio and inbound call / SMS triggers) operations.

All Verbs are supported, including Dial, Say, Gather, Play, Sms, etc.

TSL.NET was originally based on the PHP TwiML library, but was quickly adapted to make better use of strongly typed classes.

TSL.NET contains extensive XML comments, extensive test code, and is structured in a consistent manner which all developers should quickly understand.

See the Documentation page for an Overview of Twilio and TSL.NET, and samples of C# code and TwiML XML that can be generated by TSL.NET.


See Discussion thread Status 2010-06-30.
  • TSL.NET is in Beta status at release 0.2.1. Small changes will be made toward v0.3.0 and then v1.0.0.
  • The Documentation has been significantly updated from prior Alpha releases.
  • All classes are well defined and the extensive set of tests function as expected.
  • Many invalid functions are caught to help the developer.
    • For example, it's not possible to add both a Number node and a Conference node to the Dial verb.
    • All verbs are aware of which child nodes can be applied and if they have a Noun (body) associated with them.
    • In many cases the developer simply cannot create invalid object because the constructors don't allow it. But in all other cases an exception is thrown if an attempt is made to construct an invalid object.
  • There are some minor/cosmetic gaps including:
    • Verbs need more convenience methods added to avoid the need to instantiate attribute objects for simple/common attributes.
    • More constructors need to be added, again to facilitate creation of common verb objects. (Please post requests to Issue Tracker)
    • More overloads of Add methods would be helpful in the Response class and in other classes which support child nodes.
    • It's currently possible to create verbs that will not process properly in the Twilio engine. For example, currently we can have any number of copies of the same attribute on an element. For now, please just don't do that. :)
  • Specific issues will continue to be added to the Issue Tracker.

Last edited Apr 2, 2013 at 5:21 PM by TonyGravagno, version 16