2005 August

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

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.