Wednesday, March 2, 2016

Free IVR and voicemail system for MS Lync/SFB Part 1

The problem

I faced a problem a lot when implementing Lync/SFB as IP PBX, it is IVR and attendant systems.
I heard requests from customer like:
  • Why I need MS exchange if I'll only install Lync/SFB.
  • I need to change the language of all prompts not only greeting and so on.
  • I need more options and flexibility in the IVR option (example, inform caller of transferring the call while calling the internal extension)
  • I have google cloud and need to have missed calls and voice mails to be sent to users email
also I faced a lot customers have Exchange online and when we integrate it with Lync/SFB we experience delay till the call answer by exchange auto attendant and I think it is due to the fact that exchange is on internet , we opened  a lot of tickets with MS and apply all possible QoS methods with slightly enhanced but it still noticed by the caller.

We was about to loss or lost a lot of hot opportunities cause of things like this.

The Solution

so what is the solution ??!!.

It is 3rd party IVR and voicemail system which I developed by myself using Asterisk PBX and Postfix on a Linux machine.

The Design

  • As blow image I insert the IVR system in middle of incoming calls between Voice gateway and Lync/SFB system while leaving the outbound call path as it is.
  • All incoming calls pass through IVR first then it answer the call and run the prompts as needed workflow, and waiting to get the caller digits.
  • Then the IVR system transfer the call of Lync/SFB with monitoring the status of the call if didn't answered the IVR contact the mail server and send voicemail and/or missed call notification mail to the called person.

  • I already have basic IVR workflow as below image which I will represent it in this blog

Installation of IVR

First I won't go though Linux installation also you could choose any distribuation of Linux but to use the same commands for asterisk installation, use Centos 6.x.

for Asterisk installation do below:
  • Update Centos
yum update -y
  • Disable firewall
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
iptables -P INPUT ACCEPT
iptables -F
iptables -X
/etc/init.d/iptables save

    • Install prerequisites
    yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel
    • Download Asterisk Source
    cd /usr/src/
    • Extract and Install Asterisk
    tar zxvf asterisk*
    cd /usr/src/asterisk*
    for 32 bit:
    ./configure && make menuselect && make && make install
    for 64 bit:
    ./configure --libdir=/usr/lib64 && make menuselect && make && make install
    • Start asterisk
    service asterisk start
    asterisk -rvvv

    check  Part 2 and Part 3