Voicemail & Missed Call Service
Configuration and implementation of voicemail service with SMS notifications.
Related Documentation
Core Documentation
- 📋 Main README - Overview and quick start
- 🔧 Configuration Guide - Voicemail configuration (timezone, SMSc, notification templates)
- 🔧 Operations Guide - Voicemail management in Control Panel
Call Processing Integration
- 🔀 Dialplan Configuration - Voicemail deposit/retrieval in dialplan
- ⚙️ Supplementary Services - Call forward on busy/no-answer to voicemail
- 🔊 TTS Prompts - Voicemail greeting prompts
Related Services
- 🔢 Number Translation - Voicemail access number translation
Monitoring
- 📊 Metrics Reference - Voicemail usage metrics
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."
}
}