From e836ed5ea3e5a5074b9615edf1c90cf652c12f87 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Fri, 9 Mar 2007 23:59:10 +0000 Subject: [PATCH] Merge some updates to the SLA documentation. I plan to keep working on this to explain all of the expected behavior with call handling, configuration details for specific phones, and other things. However, I got tired of doing it in plain text, so I switched to using LaTeX. I have included the PDF version. I haven't been able to get a nice looking plain text version out of it yet, but I'm not terribly concerned since this is supposed to be more of the manual, while the plain text sample configuration file is the reference. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@58638 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- doc/sla.pdf | Bin 0 -> 66509 bytes doc/sla.tex | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/sla.txt | 225 ---------------------------------- 3 files changed, 339 insertions(+), 225 deletions(-) create mode 100644 doc/sla.pdf create mode 100644 doc/sla.tex delete mode 100644 doc/sla.txt diff --git a/doc/sla.pdf b/doc/sla.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e61bdeeb229f2de3a55ee94d87c747ac069c77cd GIT binary patch literal 66509 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 s,1,SLATrunk(line1) + +[line2] +exten => s,2,SLATrunk(line2) + +[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) + +\end{verbatim} + +\subsection{Trunks} +\label{trunks} + +An SLA trunk is a mapping between a virtual trunk and a real Asterisk device. +This device may be an analog FXO line, or something like a SIP trunk. A trunk +must be configured in two places. First, configure the device itself in the +channel specific configuration file such as zapata.conf or sip.conf. Once the +trunk is configured, then map it to an SLA trunk in sla.conf. + +\begin{verbatim} +[line1] +type=trunk +device=Zap/1 +\end{verbatim} + +Be sure to configure the trunk's context to be the same one that is set for the +"autocontext" option in sla.conf if automatic dialplan configuration is used. +This would be done in the regular device entry in zapata.conf, sip.conf, etc. +Note that the automatic dialplan generation creates the SLATrunk() extension +at extension 's'. This is perfect for Zap channels that are FXO trunks, for +example. However, it may not be good enough for an IP trunk, since the call +coming in over the trunk may specify an actual number. + +If the dialplan is being built manually, ensure that calls coming in on a trunk +execute the SLATrunk() application with an argument of the trunk name, as shown +in the dialplan example before. + +IP trunks can be used, but they require some additional configuration to work. + +For this example, let's say we have a SIP trunk called "mytrunk" that is going +to be used as line4. Furthermore, when calls come in on this trunk, they are +going to say that they are calling the number "12564286000". Also, let's say +that the numbers that are valid for calling out this trunk are NANP numbers, +of the form \_1NXXNXXXXXX. + +In sip.conf, there would be an entry for [mytrunk]. For [mytrunk], +set context=line4. + + +\begin{verbatim} +[line4] +type=trunk +device=Local/disa@line4_outbound +\end{verbatim} + + +\begin{verbatim} +[line4] +exten => 12564286000,1,SLATrunk(line4) + +[line4_outbound] +exten => disa,1,Disa(no-password|line4_outbound) +exten => _1NXXNXXXXXX,1,Dial(SIP/\${EXTEN}@mytrunk) +\end{verbatim} + + +So, when a station picks up their phone and connects to line 4, they are +connected to the local dialplan. The Disa application plays dialtone to the +phone and collects digits until it matches an extension. In this case, once +the phone dials a number like 12565551212, the call will proceed out the +SIP trunk. + +\subsection{Stations} + +An SLA station is a mapping between a virtual station and a real Asterisk device. +Currently, the only channel driver that has all of the features necessary to +support an SLA environment is chan\_sip. So, to configure a SIP phone to use +as a station, you must configure sla.conf and sip.conf. + +\begin{verbatim} +[station1] +type=station +device=SIP/station1 +trunk=line1 +trunk=line2 +\end{verbatim} + +Here are some hints on configuring a SIP phone for use with SLA: + +\begin{enumerate} +\item Add the SIP channel as a [station] in sla.conf. + +\item Configure the phone in sip.conf. If automatic dialplan configuration was + used by enabling the "autocontext" option in sla.conf, then this entry in + sip.conf should have the same context setting. + +\item On the phone itself, there are various things that must be configured to + make everything work correctly: + + Let's say this phone is called "station1" in sla.conf, and it uses trunks + named "line1" and line2". + \begin{enumerate} + + \item Two line buttons must be configured to subscribe to the state of the + following extensions: + - station1\_line1 + - station1\_line2 + + \item The line appearance buttons should be configured to dial the extensions + that they are subscribed to when they are pressed. + + \item If you would like the phone to automatically connect to a trunk when it + is taken off hook, then the phone should be automatically configured to + dial "station1" when it is taken off hook. + + \end{enumerate} +\end{enumerate} + + +\section{Configuration Examples} +\subsection{SLA and Voicemail} +\label{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 Zap/1 and Zap/2. The stations are SIP/station1, SIP/station2, and +SIP/station3. + +In zapata.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: +\begin{verbatim} +[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 + +\end{verbatim} + + +extensions.conf: +\begin{verbatim} +[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(Zap/1/${EXTEN}) +exten => 8500,1,VoicemailMain(1234) + +[line2_outbound] +exten => disa,1,Disa(no-password|line2_outbound) +exten => _1NXXNXXXXXX,1,Dial(Zap/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) + +\end{verbatim} + +\section{Call Handling} +\subsection{Summary} + +This section is intended to describe how Asterisk handles calls inside of the +SLA system so that it is clear what behavior is expected. + +Note that this section is not yet complete. + +\subsection{Station goes off hook (not ringing)} + +When a station goes off hook, it should initiate a call to Asterisk with the +extension that indicates that the phone went off hook without specifying a +specific line. In the examples in this document, for the station named +"station1", this extension is simply named, "station1". + +Asterisk will attempt to connect this station to the first available trunk +that is not in use. Asterisk will check the trunks in the order that they +were specified in the station entry in sla.conf. If all trunks are in use, +the call will be denied. + +If Asterisk is able to acquire an idle trunk for this station, then trunk +is connected to the station and the station will hear dialtone. The station +can then proceed to dial a number to call. As soon as a trunk is acquired, +all appearances of this line on stations will show that the line is in use. + +\subsection{Station goes off hook (ringing)} + +When a station goes off hook while it is ringing, it should simply answer +the call that had been initiated to it to make it ring. Once the station +has answered, Asterisk will figure out which trunk to connect it to. It +will connect it to the highest priority trunk that is currently ringing. +Trunk priority is determined by the order that the trunks are listed in +the station entry in sla.conf. + +\subsection{Line button on a station is pressed} + +When a line button is pressed on a station, the station should initiate a +call to Asterisk with the extension that indicates which line button was +pressed. In the examples given in this document, for a station named +"station1" and a trunk named "line1", the extension would be "station1\_line1". + +If the specified trunk is not in use, then the station will be connected to it and +will hear dialtone. All appearances of this trunk will then show that it +is now in use. + +If the specified trunk is on hold by this station, then this station will be +reconnected to the trunk. The line appearance for this trunk on this station +will now show in use. If this was the only station that had the call on hold, +then all appearances of this trunk will now show that it is in use. Otherwise, +all stations that are not currently connected to this trunk will show it +on hold. + +If the specified trunk is on hold by a different station, then this station +will be connected to the trunk only if the trunk itself and the station(s) that +have it on hold do not have private hold enabled. If connected, the appeareance +of this trunk on this station will then show in use. All stations that are not +currently connected to this trunk will show it on hold. + +\end{document} diff --git a/doc/sla.txt b/doc/sla.txt deleted file mode 100644 index acb9cb07b0..0000000000 --- a/doc/sla.txt +++ /dev/null @@ -1,225 +0,0 @@ -------------------------------------------------------------------------------- ---- Shared Line Appearances --------------------------------------------------- -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- -INTRODUCTION - -The "SLA" functionality in Asterisk is intended to allow a setup that emulates -a simple key system. It uses the various abstraction layers already built into -Asterisk to emulate key system functionality across various devices, including -IP channels. -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- -DIALPLAN CONFIGURATION - -The SLA implementation can automatically generate the dialplan necessary for -basic operation if the "autocontext" option is set for trunks and stations in -sla.conf. However, for reference, here is an automatically generated dialplan -to help with custom building of the dialplan to include other features, such as -voicemail. - -However, note that there is a little bit of additional configuration needed if -the trunk is an IP channel. This is discussed in the TRUNKS section. - -[line1] -exten => s,1,SLATrunk(line1) - -[line2] -exten => s,2,SLATrunk(line2) - -[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) -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- -TRUNKS - -Be sure to configure the trunk's context to be the same one that is set for the -"autocontext" option in sla.conf if automatic dialplan configuration is used. -This would be done in the regular device entry in zapata.conf, sip.conf, etc. -Note that the automatic dialplan generation creates the SLATrunk() extension -at extension 's'. This is perfect for Zap channels that are FXO trunks, for -example. However, it may not be good enough for an IP trunk, since the call -coming in over the trunk may specify an actual number. - -If the dialplan is being built manually, ensure that calls coming in on a trunk -execute the SLATrunk() application with an argument of the trunk name, as shown -in the dialplan example before. - -IP trunks can be used, but they require some additional configuration to work. - -For this example, let's say we have a SIP trunk called "mytrunk" that is going -to be used as line4. Furthermore, when calls come in on this trunk, they are -going to say that they are calling the number "12564286000". Also, let's say -that the numbers that are valid for calling out this trunk are NANP numbers, -of the form _1NXXNXXXXXX. - -In sip.conf, there would be an entry for [mytrunk]. For [mytrunk], -set context=line4. - - -sla.conf: - -[line4] -type=trunk -device=Local/disa@line4_outbound - - -extensions.conf: - -[line4] -exten => 12564286000,1,SLATrunk(line4) - -[line4_outbound] -exten => disa,1,Disa(no-password|line4_outbound) -exten => _1NXXNXXXXXX,1,Dial(SIP/${EXTEN}@mytrunk) - - -So, when a station picks up their phone and connects to line 4, they are -connected to the local dialplan. The Disa application plays dialtone to the -phone and collects digits until it matches an extension. In this case, once -the phone dials a number like 12565551212, the call will proceed out the -SIP trunk. -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -STATIONS - -Currently, the only channel driver that has all of the features necessary to -support an SLA environment is chan_sip. Here are some hints on configuring -a SIP phone for use with SLA: - -1) Add the SIP channel as a [station] in sla.conf. - -2) Configure the phone in sip.conf. If automatic dialplan configuration was - used by enabling the "autocontext" option in sla.conf, then this entry in - sip.conf should have the same context setting. - -3) On the phone itself, there are various things that must be configured to - make everything work correctly: - - Let's say this phone is called "station1" in sla.conf, and it uses trunks - named "line1" and line2". - - a) Two line buttons must be configured to subscribe to the state of the - following extensions: - - station1_line1 - - station1_line2 - - b) The line appearance buttons should be configured to dial the extensions - that they are subscribed to when they are pressed. - - c) If you would like the phone to automatically connect to a trunk when it - is taken off hook, then the phone should be automatically configured to - dial "station1" when it is taken off hook. -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -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 Zap/1 and Zap/2. The stations are SIP/station1, SIP/station2, and -SIP/station3. - -In zapata.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(Zap/1/${EXTEN}) -exten => 8500,1,VoicemailMain(1234) - -[line2_outbound] -exten => disa,1,Disa(no-password|line2_outbound) -exten => _1NXXNXXXXXX,1,Dial(Zap/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) - --------------------------------------------------------------------------------