Asterisk and Instant Messaging

October 26th, 2005

The Asterisk community is now working on Instant Messaging, not being totally unaffected by the buzz about integration of voice and messaging in the market.

Asterisk 1.2 will have support for SIMPLE notifications of device presence.
We will show if a phone is on a call, if it\’s ringing or if it\’s off line (not registered).
We have no support for SIMPLE messaging outside of a call. Within a call, you can send text with
sendtext() in the dial plan to SIP phones that supports it.

Josh Colp has a patch in the tracker that adds messaging only PBX
channels and a SIP implementation of that.

Matt O\’Gorman has published another patch that integrates Jabber/XMPP in an interesting way,
but not as a channel so you can send messages from SIP to Jabber. He
integrates messaging and presence with the queue system through chan_agent.

The way forward…
Both of these are proof-of-concepts that we need to use as a basis to
determine the way forward for IM and messaging in Asterisk. I would like
to see the messaging part as a text-only channel driver that can handle
text only \”calls\”. That way, we can have chan_xmpp, chan_msn, chan_aol
and integrate SIMPLE in chan_sip. Trunking messaging over chan_iax2
between servers would be cool, if that protocol could be enhanced to
proxy presence and relay messages.

For the presence part, we need a user object. Neither of these patches
look into that. I have published a few old slides that describes a possible
solution for that.

The critical part that is missing, is a design for how to take a
messaging-only \”call\” to the dialplan and process it there. We need to be
able to check presence and make message routing in the dial plan, set up
text chat rooms (text-only meetme\’s) and look into meetme integration
with chat rooms. This will be looked at in the Asterisk 1.3 development process.

Messaging and presence is important for Asterisk. We\’re getting there.

Asterisk is now domain aware!

October 1st, 2005

The Asterisk SIP channel got an important update a few days ago. It is now SIP domain aware. It means:

  • Domain hosting: Like a mail server, you can tell Asterisk which domains it is responsible for. This is important so that we do not accept registrations for domains we do not host on one server.
  • Call routing: Each domain can get an incoming default context. If you host multiple domains on one server, incoming un-authenticated calls will get routed to the proper domain. info@onedomain is now different from info@otherdomain
  • Dial plan control: You can now check if the call is going to a locally hosted domain or a foreign domain with a dialplan function. This makes it much easier to check if you should call out with the help of DNS SRV records or look up an entry in the local dialplan.

Asterisk has also recently been patched to handle URL-encoded characters in SIP URI\’s in an improved way. Just turn pedantic on in sip.conf, and Asterisk will behave much more standard compliant!

Asterisk at SIPit 17 - an interesting challenge!

September 19th, 2005

Last week I took Asterisk to SIPit 17 - the SIP interoperability tests in Stockholm. It was interesting, since the Asterisk SIP stack is designed from ground up not on SIP, but on another channel driver. This means that it is very hard to make the SIP channel fully SIP compatible. It will require a total redesign. After one week of testing, I am not surprised that I have a long list of to-do:s. Asterisk works pretty well with SIP phones connecting directly to Asterisk. As soon as you introduce one or several SIP proxies between Asterisk and the SIP device, you will start seeing odd behaviour.

SIPit was a lot of fun and I learned a lot about SIP. Also, equally important, I got to know a lot of new friends in the SIP community, both from Open Source projects and from commercial vendors. A big thank you to all of you for all the input on how to improve Asterisk. See you at next SIPit!

SIP - we are not trying harder

August 26th, 2005

There is a few recent changes to the SIP channel in Asterisk I want to explain:

  • Registrations: When Asterisk registers with a SIP service, the old version tried registering forever, even if it was obvious that the host did not exist or the password was wrong. In the current development version, we fail registration. You can revert to the old behaviour by setting the registerattempts configuration variable to 0 (zero). Asterisk will send an event to the manager interface when a registration fails.
  • Invites: If we call a SIP service that challenges us for authentication and there is no authentication credentials available or we fail to authenticate, the call fails. In 1.0.9. Asterisk will try calling forever, without going back to the dial plan with a failure. CVS head will return CONGESTION as a result of this call.
  • Retransmissions: We have no implemented the very basic SIP retransmassion timer described in the SIP RFC, called timer T1. Previously we did retransmit unacknowledged SIP messages with the same interval, a bit too fast. Now, Asterisk doubles the time between each transmission, following the RFC. If we monitor the peer we\’re calling (qualify=on in sip.conf), we base retransmission on the known round-trip time.

To summarize, we have been trying too hard before, these changes make Asterisk a bit more friendly in a SIP network.
The SIP channel is getting more RFC-compliant and robust every month. In september, I will participate in the SIPit interoperability tests with Asterisk 1.2, which is a first for Asterisk, something I wouldn\’t have dared a year ago with the 1.0 version of chan_sip. We still have a lot of work to do with the SIP support in Asterisk.

Together with Digium, I will soon start working on a new generation of the SIP channel aimed for Asterisk 1.4. That version will not be fully backwards compatible with the current SIP channel, but much more SIP compatible. Before that project takes off, we concentrate on releasing 1.2, an Asterisk relase that is a huge step forward compared with 1.0!

UserFriendly Comic Strip mentions Asterisk

August 16th, 2005

UserFriendly mentions Asterisk in a comic strip this week. Gnome and Asterisk are the mentioned Open Source Softwares.
The strip is about bounties, a tool used in many Open Source projects to offer money in a cooperative fashion in order to get someone interested in adding a wanted feature.

Network World: ICE helps VoIP traverse firewalls

August 2nd, 2005

Good reading about NAT handling with ICE:

The Interactive Connectivity Establishment (ICE) draft, developed by the IETF\’s MMUSIC working group, provides a framework to unify the various NAT traversal techniques. This enables SIP-based VoIP clients to successful traverse the variety of firewalls that may exist between a remote user and a network.

ICE defines a standardized method for SIP-enabled clients (or clients based on other multimedia session protocols) to determine what type of NAT firewall(s) exist between clients and determine a set of IP addresses by which clients can establish contact. Using a number of protocols and network connectivity mechanisms, such as STUN, Traversal Using Relay NAT (TURN) and Realm Specific IP (RSIP), ICE learns about the network topology in which the clients exist and the various sets of network addresses by which these devices can communicate.

Asterisk version 1.2 - what’s new?

July 28th, 2005

In response to a large number of questions on the mailing list I’ve
decided to publish a presentation I have been running in the Asterisk
bootcamp
- our one-week training class.

This presentation covers many, but does not claim to cover ALL, new
features of Asterisk version 1.2. I hope it will wet your appetite to
help us test the new code.

The presentation is available here:

For information on how you can help with Asterisk 1.2, see here:

If I’ve forgotten a new feature that you think is important, I’m
grateful for all feedback!

Asterisk book from O\’Reilly

July 26th, 2005

Finally, it\’s out in the open! The Asterisk documentation project book is soon coming out, published by O\’Reilly. It\’s a great book (I\’ve read parts of it as a reviewer) and will make a lot of change to the acceptance of Asterisk. The book will be available in book stores soon.

So you are probably wondering what we\’ve been doing over the last seven months - well . . . we\’ve been writing a book! Thanks to the generosity of O\’Reilly Media, the dreams we had for our first two volumes have been realized in the upcoming book, Asterisk: The Future of Telephony

Meet the authors at Astricon 2005 in Anaheim!

Asterisk 1.2 on the horizon - please help us reach target!

July 26th, 2005

Asterisk 1.0 was released at Astricon 2004, in September last year. It\’s
been almost a year and we haven\’t been able to go ahead and release a
new version. Now is the time to try to move forward again.

As we\’ve outlined before, the process is this:

  • Code freeze: At this point, we\’ll stop accepting new additions
    (new functions) to the source code. Bug fixes are more than
    welcome, but additions will be postponed until after release
    and added to the 1.3dev source code base (the new HEAD).
  • Release candidate: A release candidate will be produced as a
    tar.gz file on the FTP site.
  • Release of 1.2: The new release version of Asterisk, that replaces
    Asterisk 1.0
  • Release of 1.2.1: The working version :-) of the new version of
    Asterisk

So why 1.2.1? Well, the common feeling among developers is that

\”No one really tests anything until we release, so we will receive
bug reports from the hour we release 1.2.0\”

Let\’s try to prove
that they are wrong!
Read the rest of this entry »

Astricon Call for Speakers

July 26th, 2005

Astricon 2005 will take place in Anaheim, California October 12-14 2005.
Astricon is the Asterisk conference, arranged by IPsando LLC in
cooperation with Digium.

We are now looking for speakers. The conference will be bigger than last
year, so we are looking for more speakers than before in the conference part of
Astricon.

In addition to the tutorials, we\’re adding a three-track conference day
with a focus on call/contact centers, carriers and enterprise use of
Asterisk. The full program for Astricon 2005 looks like this:

  • Tuesday, Oct 11th: Pre-conference events: Developer meeting,
    Meet Asterisk: Introduction to Asterisk for beginners
  • Wednesday, Oct 12th: Tutorials
  • Thursday, Oct 13th: Three track conference:
    • Asterisk for Call and Contact centers
    • Asterisk for service providers
    • Asterisk for business use
  • Friday, Oct 14th: One track general conference

Please visit http://www.astricon.net/2005/speakers/ to read more on
how to submit your speaker\’s proposal.

Asterisk Solutions Showcase

For the first year, we\’re running an Asterisk Solutions Showcase on
Astricon! This will be part of the Astricon Exhibition. Asterisk-related
Open Source projects will be able to showcase their solutions in this
area. Also, if you have a good, funny, scary or just impressive solution
based on Asterisk that you want to share, please apply for a booth in
the Asterisk Solutions Showcase. Brian Capouch will be there showing
Asterisk on Linksys Routers amongst other projects.

Please send proposals describing your solution to info@ipsando.com no
later than july 30th. If you want to show commercial solutions that you
sell, you need to buy a booth in the exhibition. Ask for more
information by e-mailing info@astricon.net.