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)