Asterisk

Het is erg handig als iemand de voicemail inspreekt op de Asterisk server, dat deze voicemail dan verstuurd wordt naar de gebruiker. Je kunt dan direct terugbellen indien nodig. Doe het volgende om voicemail te configureren.

Aanmaken van voicemail.conf

In voicemail.conf staat de configuratie voor het versturen van voicemail emails en de voicemail boxen voor elk toestel nr.

We maken deze als volgt aan met ‘vi’:

$ vi /etc/asterisk/voicemail.conf

Hierin komt alleen het volgende in te staan, als de file niet leeg is, verwijder dan alles.

[general]
serveremail = uw@emailadres.nl ; The from address of a voicemail notification message
sendvoicemail = yes     ; Allow the user to compose and send a voicemail while inside
attach = yes            ; Attach the voicemail as attachement to email
maxsecs=180             ; Maximum length of a voicemail message in seconds
minsecs=2               ; Minimum length of a voicemail message in seconds for the message to be kept
maxgreet=60             ; Maximum length of greetings in seconds
skipms = 3000           ; How many milliseconds to skip forward/back when rew/ff in message playback
maxsilence = 3          ; How many seconds of silence before we end the recording
silencethreshold = 128  ; Silence threshold (what we consider silence: the lower, the more sensitive)
maxlogins = 3           ; Max number of failed login attempts
operator = no
saycid = yes            ; Read back caller's telephone number prior to playing the incoming message
sayduration = no
envelope = no
review = no

emailsubject = Er heeft iemand gebeld naar huis
emailbody = Er heeft iemand een voicemail ingesproken op de NAS.\n\nTelefoonnr was: ${VM_CALLERID}\nDe voicemail is toegevoegd als bijlage.\n\nGroeten,\nArjan
emaildateformat=%A, %d %B %Y at %H:%M:%S   ; 24h date format
format = wav            ; Format for writing Voicemail

; You can override the default program to send e-mail if you wish, too
;mailcmd=/usr/sbin/sendmail -t
mailcmd=/opt/bin/msmtp -t

[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM

[default]
;phone => pin,name,mailaddress
6001 => 1243,Naam Gebruiker 1,gebruiker1@mailadres.nl
6002 => 1243,Naam Gebruiker 2,gebruiker2@mailadres.nl
6003 => 1243,Naam Gebruiker 3,gebruiker3@mailadres.nl
6004 => 1243,Naam Gebruiker 4,gebruiker4@mailadres.nl

Wijzig de volgende instellingen van bovenstaande configuratie:

  • serveremail: zet hier het email adres waar de email vandaan zal komen (From)
  • emailsubject en emailbody: Wijzig deze naar wens
  • Wijzig in sectie ‘[default] ‘, de pin, naam en email adres

Versturen via email programma

Bovenstaande configuratie is geschikt voor ‘msmtp’, welke bijvoorbeeld standaard op de Synology DSM staan. Je kunt ook het lichtgewichte ‘msmtp’ tool installeren, zier hier voor informatie: msmtp.sourceforge.net Als ‘sendmail’ op de server geïnstalleerd is, haal dan ‘;’ teken voor sendmail weg en zet deze voor ‘msmtp’:

;mailcmd=/usr/sbin/sendmail -t
mailcmd=/opt/bin/msmtp -t

Verwijderen oude voicemail berichten

Er is een optie binnen Asterisk om alleen de voicemail via email te versturen, maar dit lijkt niet te werken. Dit is namelijk ‘emailonly=yes’ in de ‘[general]’ sectie. Een oplossing hiervoor is om elke nacht een scriptje te draaien met de volgende inhoud. Hiermee worden uit de voicemail boxen voicemails ouder dan 5 dagen verwijderd. Zet deze aanroep in de crontab.

#!/bin/bash
find /var/spool/asterisk/voicemail/default/6001/INBOX/ -mtime +5 -exec rm {} \;
find /var/spool/asterisk/voicemail/default/6002/INBOX/ -mtime +5 -exec rm {} \;
find /var/spool/asterisk/voicemail/default/6003/INBOX/ -mtime +5 -exec rm {} \;
find /var/spool/asterisk/voicemail/default/6004/INBOX/ -mtime +5 -exec rm {} \;

Voor de Synology DSM software ziet het script er als volgt uit:

#!/bin/ash
find /var/packages/Asterisk/target/var/spool/asterisk/voicemail/default/6001/INBOX/ -mtime +5 -exec rm {} \;
find /var/packages/Asterisk/target/var/spool/asterisk/voicemail/default/6002/INBOX/ -mtime +5 -exec rm {} \;
find /var/packages/Asterisk/target/var/spool/asterisk/voicemail/default/6003/INBOX/ -mtime +5 -exec rm {} \;
find /var/packages/Asterisk/target/var/spool/asterisk/voicemail/default/6004/INBOX/ -mtime +5 -exec rm {} \;

Zet dit script bijvoorbeeld in ‘/var/packages/Asterisk/target/etc/clean_voicemailbox’ en stel het op de Synology in dat deze periodiek gestart wordt. En deze aan te roepen in de taakplanner, eenmaal per dag.

Dit artikel behoort tot de ‘Asterisk configureren’ gids. De andere artikelen zijn:

  1. Asterisk configuratie zonder NAT
  2. Asterisk en de Grandstream HT704 VOIP adapter
  3. Asterisk beltonen instellen in het Nederlands
  4. Asterisk voicemail configureren
  5. Asterisk in het Nederlands
  6. Het gebruiken van Asterisk
  7. Foutmelding: Retransmission timeout reached on transmission