I have an old PBX VM system that allowed me to wrap around during voicemail message selection. At the first message I am able to select "previous" and have it jump back to the last message (so I could keep playing them in reverse order). Similar for the last message, it allows me to select "next" and it will jump to the first message. This does not force a change to the order of playback it just allows you to go in a circle to get the message you want quickly.
This new feature is enabled by default but can be disabled in the voicemail.conf file. The system knows if there are no messages, or just one, and does not play the prompts for prev/next since it's pointless.
This patch is for Branch 1.4.
Included english audio files are not correctly licensed for distribution with asterisk and should be re-recorded to match the other asterisk prompts anyway.
vm-goingtofirst.wav "Going to the first message."
vm-goingtolast.wav "Going to the last message."
Copy WAV files to /var/lib/asterisk/sounds (and transcode as needed).
Copy patch to main asterisk source directory and run patch -p0 <vm.patch and rebuild.
I now use Cepstral as a cost effective (but not free) solution.
Cepstral is easy to use, supports Linux and Solairs, works well, sounds very good, and has a choice of voices including Allison (who records the packaged prompts for Asterisk). They offer full demo downloads so you can test a working setup before you pay for it.
At their current prices, it's $30 for the each voice and a single queued FIFO license (no matter how may voices you have paid for). For additional "ports" (concurrent use) it's $50/each in addition to the voices. You have to pay for at least 2 total concurrent uses ($100) to get beyond the FIFO setup.
There are at least three ways to use Cepstral with Asterisk:
Config options include:
[cache] directory=/var/lib/asterisk/swiftcache generalinfofile=speech.txt individualinfofile=yes forcerebuild=no autorebuild=0
exten => 440,n,Swift(Allison likes bigfoot.)
exten => 441,n,SwiftCache(Allison likes bigfoot.)
exten => 441,n,Playback(${SWIFTCACHE_FILE})
In 440 speech audio is sent directly to the channel.
After an attended SIP transfer is completed play a beep.
This is a standard feature of 1.6
Patch file for 1.4 (branch): transfer_beep_14.patch.gz
Copy patch file to your main asterisk source directory
run patch in Asterisk directory: patch -p0 <transfer_beep_14.patch
rebuild and install
I just add this to the [global] section of the extensions config file:
ATTENDED_TRANSFER_COMPLETE_SOUND=beep
Install additional packages needed (debian examples: apt-get install autoconf)
Download SPANDSP 0.0.4 (currently version 0.0.4pre18)
Configure SPANDSP: ./configure
Install SPANDSP: make install
Install apps in asterisk apps directory.
modified: apps/app_rxfax.c
modified: apps/app_txfax.c
updated patch: fax.patch (for branch 1.4 04-Dec-2007)
Copy patch file to your main asterisk source directory
run patch in Asterisk directory: patch -p0 <fax.patch
remake the asterisk configure files: bootstrap.sh
enable the applications from menuselect: make menuselect
Build Asterisk: make
[default]
exten => 8605551212,1,Macro(rxfax-email,someone@somewhere.nett)
[macro-rxfax-email]
exten => s,1,Answer()
exten => s,n,Set(TIMESTAMP=${STRFTIME(,EST5EDT,%Y%m%d-%H%M%S)})
exten => s,n,Set(FILEID=${TIMESTAMP}_${UNIQUEID})
exten => s,n,Set(FAXPAGES=0)
exten => s,n,RxFAX(/tmp/fax-${FILEID}.tif)
exten => s,n,Hangup()
exten => h,1,NoOp("Finish with RxFax")
exten => h,n,GotoIf(${FAXPAGES}>0?process:done)
exten => h,n(process),system(/usr/bin/tiff2pdf -z -n -f /tmp/fax-${FILEID}.tif | /usr/bin/mime-construct --header "From: FAX " --to "${ARG1}" --subject "FAX from ${REMOTESTATIONID} - ${FAXPAGES} Pages" --string "FAX PDF Attached" --type application/pdf --attachment "fax.pdf" --file - --output | /usr/lib/sendmail -F"FAX" -f"fax@somwhere.nett" "${ARG1}")
exten => h,n(done),system(/bin/rm /tmp/fax-${FILEID}.tif)
exten => h,n,Hangup()
My current patch I use for Branch 1.4 remote_id_branch.patch (updated 11-Nov-2007)
Copy patch file to your main asterisk source directory
run patch in Asterisk directory: patch -p0 <remote_id_branch.patch
enable the dialplan function from menuselect: make menuselect
Build Asterisk: make
Notes: