SLA and Voicemail
Keywords: asterisk

##
SLA and Voicemail

This is an example of how you could set up a single voicemail box for the phone system. The voicemail box number used in this example is 1234, which would be configured in voicemail.conf.

For this example, assume that there are 2 trunks and 3 stations. The trunks are DAHDI/1 and DAHDI/2. The stations are SIP/station1, SIP/station2, and SIP/station3.

In dahdi.conf, channel 1 has context=line1 and channel 2 has context=line2.

In sip.conf, all three stations are configured with context=sla_stations.

When the stations pick up their phones to dial, they are allowed to dial NANP numbers for outbound calls, or 8500 for checking voicemail.

sla.conf:

-     [line1]
      type=trunk
      device=Local/disa@line1_outbound

      [line2]
      type=trunk
      device=Local/disa@line2_outbound

      [station](!)
      type=station
      trunk=line1
      trunk=line2

      [station1](station)
      device=SIP/station1

      [station2](station)
      device=SIP/station2

      [station3](station)
      device=SIP/station3

extensions.conf:

-     [macro-slaline]
      exten => s,1,SLATrunk(${ARG1})
      exten => s,n,Goto(s-${SLATRUNK_STATUS},1)
      exten => s-FAILURE,1,Voicemail(1234,u)
      exten => s-UNANSWERED,1,Voicemail(1234,u)

      [line1]
      exten => s,1,Macro(slaline,line1)

      [line2]
      exten => s,2,Macro(slaline,line2)

      [line1_outbound]
      exten => disa,1,Disa(no-password,line1_outbound)
      exten => _1NXXNXXXXXX,1,Dial(DAHDI/1/${EXTEN})
      exten => 8500,1,VoicemailMain(1234)

      [line2_outbound]
      exten => disa,1,Disa(no-password|line2_outbound)
      exten => _1NXXNXXXXXX,1,Dial(DAHDI/2/${EXTEN})
      exten => 8500,1,VoicemailMain(1234)

      [sla_stations]

      exten => station1,1,SLAStation(station1)
      exten => station1_line1,hint,SLA:station1_line1
      exten => station1_line1,1,SLAStation(station1_line1)
      exten => station1_line2,hint,SLA:station1_line2
      exten => station1_line2,1,SLAStation(station1_line2)

      exten => station2,1,SLAStation(station2)
      exten => station2_line1,hint,SLA:station2_line1
      exten => station2_line1,1,SLAStation(station2_line1)
      exten => station2_line2,hint,SLA:station2_line2
      exten => station2_line2,1,SLAStation(station2_line2)

      exten => station3,1,SLAStation(station3)
      exten => station3_line1,hint,SLA:station3_line1
      exten => station3_line1,1,SLAStation(station3_line1)
      exten => station3_line2,hint,SLA:station3_line2
      exten => station3_line2,1,SLAStation(station3_line2)