2005 October

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

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!