What is MWI?¶
This page explains the resources available for Message Waiting Indicator(or Indication) functionality in Asterisk and how to configure.
Documentation Under Construction
Here we talk about configuring Asterisk to provide MWI to endpoints or other systems.
Providing MWI to chan_pjsip endpoints¶
Providing MWI to a chan_pjsip endpoint requires configuring the "mailboxes" option in either the endpoint type config section, or the aor section.
See the descriptions linked below which explain when to use the option in each section.
Configuring External MWI¶
Let's look at configuring Asterisk to receive MWI from other systems.
Depending on your Asterisk version and configuration, there are a few different ways to configure receiving MWI from external sources.
- chan_sip: outbound MWI subscriptions and receiving unsolicited MWI NOTIFY messages
- res_external_mwi: A module providing an API for other systems to communicate MWI state to Asterisk
- chan_pjsip: Setting
incoming_mwi_mailboxon an endpoint
!!! note ** **res_pjsip : The functionality for outbound SIP subscription is not available in res_pjsip yet. Internal infrastructure is built that would allow it, so if this is something you want to work on, please contact the Asterisk development community.
Outbound MWI subscription with chan_sip¶
Asterisk can subscribe to receive MWI from another SIP server and store it locally for retrieval by other phones. At this time, you can only subscribe using UDP as the transport. Format for the MWI register statement is:
;mwi => user[:secret[:authuser]]@host[:port]/mailbox
;mwi => 1234:email@example.com/1234
;mwi => 1234:firstname.lastname@example.org:6969/1234
;mwi => 1234:password:email@example.com/1234
;mwi => 1234:password:firstname.lastname@example.org:6969/1234
MWI received will be stored in the 1234 mailbox of the SIP_Remote context. It can be used by other phones by setting their SIP peers "mailbox" option to the
Reception of unsolicited MWI NOTIFY with chan_sip¶
A chan_sip peer can be configured to receive unsolicited MWI NOTIFY messages and associate them with a particular mailbox.
If the remote SIP server sends an unsolicited MWI NOTIFY message the new/old message count will be stored in the configured virtual mailbox. It can be used by any device supporting MWI by specifying mailbox=
External sources can use the API provided by res_external_mwi to communicate MWI and mailbox state.
Documentation Under Construction
res_external_mwi.so is mutually exclusive with app_voicemail.so. You'll have to load only the one you want to use.
The endpoint parameter
incoming_mwi_mailbox (introduced in 13.18.0 and 14.7.0) takes a <
mailbox>@<context> value. When an unsolicited NOTIFY message is received from this endpoint with an event type of
message-summary and the
incoming_mwi_mailbox parameter is set, Asterisk will automatically publish the new/old message counts for the specified mailbox on the internal stasis bus for any other module to use. For instance, if you have an analog phone and you specify
mailbox=userx@default in chan_dahdi.conf, when a NOTIFY comes in on a pjsip endpoint with
incoming_mwi_mailbox=userx@default, chan_dahdi will automatically pick that up and turn the MWI light on on the analog phone.