Добрый день!
В последних версиях (>asterisk 10) используется возможность протокола SIMPLE (
WIKI).
Jabber модуль позволяет отсылать сообщения по xmpp через диалплан. Смотрите комманду JabberSend() (например, уведомление о пропущенном вызове), вроде еще можно статус передавать, но это не просто, не удобно и "зачем?")
А для SIMPLE в sip [general] укажите:
accept_outofcall_message = yes
outofcall_message_context = messages
auth_message_requests = no
А в вашем контексте добавьте:
exten => _XXХX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})
Тогда, если оборудование/софтфон позволяет, можно будет обменеваться сообщениями.
Но если требуется полноценный IM, то смотрите в сторону "заточенных" решений. OpenFire, например.