Skip to main content

Voicemail & Missed Call Service

📖 Back to Main Documentation

Configuration and implementation of voicemail service with SMS notifications.

Core Documentation

Call Processing Integration

Monitoring


Voicemail / Missed Call Service

Voicemail is added in the XML dialplan as needed and is not turned on unless you call it in your dialplan.

You can view the voicemail box usage and message status from the Control Pannels' voicemail tab, for example putting this after your bridge command, to be called if the bridge fails:

  <action application="log"
data="INFO Failed to bridge Call - Routing to Call Forward No-Answer Destination" />
<action application="set"
data="sip_h_History-Info=<sip:${destination_number}@${ims_domain}>;index=1.1" />
<action application="set" data="sip_call_id=${sip_call_id};CALL_FORWARD_NO_ANSWER" />
<action application="log" data="DEBUG Called Voicemail Deposit Number for ${msisdn}" />
<action application="set" data="default_language=fr"/>
<action application="answer" />
<action application="sleep" data="500"/>
<!--This notifies the TAS of missed calls or deposited voicemails so we can send notifications after the call hangs up-->
<action application="set" data='vm_post_body=mailbox=${msisdn}&caller=${effective_caller_id_number}&action="deposit"'/>
<action application="set" data='api_hangup_hook=curl http://localhost:8080/vm_end content-type application/x-www-form-urlencoded post ${vm_post_body}'/>
<action application="voicemail" data="default default ${msisdn}"/>

You can also access voicemails with a block like this:

  <extension name="Static-Route-Voicemail-Check">
<condition field="${tas_destination_number}" expression="^(2222|55512411520)$">
<action application="log" data="DEBUG Called Voicemail Check Number" />
<action application="set" data="default_language=fr"/>
<action application="answer" />
<action application="set" data="voicemail_authorized=true"/>
<action application="set" data='vm_post_body=mailbox=${msisdn}&action="clear"'/>
<action application="set" data='api_hangup_hook=curl http://localhost:8080/vm_end content-type application/x-www-form-urlencoded post ${vm_post_body}'/>
<action application="voicemail" data="check auth default default ${msisdn}"/>
</condition>
</extension>

You can also enable missed call (but no voicemail left) SMS notifications and voicemail MWI notification SMS from the configuration.

Variables available in the missed call notification include:

                bindings = [
caller: caller,
day: day,
month: month,
hour: hour,
minute: minute,
message_count: message_count
]

NB: message_count is only set when message count is greater than 1.

config :tas,
...
voicemail: %{
timezone: "Pacific/Tahiti", #Timezone used in Timestamps
smsc: %{
smsc_url: "http://10.8.81.215", #SMSc API Base URL
smsc_api_key: "nicktestkey123", #API key on SMSc
source_msisdn: "2222" #Source (Sender) for the notification messages
},
#For usage of variables in this section see docs.
voicemail_notification_text: %{
not_left:
"Vous avez 1 appel manqué du <%= caller %> le <%= day %>/<%= month %> à <%= hour %>:<%= minute %>",
single_voicemail:
"Vous avez un nouveau message vocal du <%= caller %> le <%= day %>/<%= month %> à <%= hour %>:<%= minute %>. Pour le consulter, composez le 2222.",
multiple_voicemails:
"Vous avez <%= message_count %> nouveaux messages vocaux. Pour les consulter, composez le 2222."
}
}