Document a limitation in the AVAILSTATUS variable from ChanIsAvail and provide

a workaround for it that does not change existing behavior.

(closes issue #14426)
Reported by: macli


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@229965 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2009-11-13 17:19:59 +00:00
parent 251f196760
commit 2ef94c5196
2 changed files with 7 additions and 2 deletions

View File

@@ -55,7 +55,12 @@ static char *synopsis = "Check channel availability";
static char *descrip = static char *descrip =
" ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): \n" " ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): \n"
"This application will check to see if any of the specified channels are\n" "This application will check to see if any of the specified channels are\n"
"available. The following variables will be set by this application:\n" "available. Note that the AVAILSTATUS variable is used for both device state\n"
"and cause code. It is therefore possible for it to give a value that may\n"
"indicate a device is available when it is not. It is suggested that the\n"
"AVAILORIGCHAN variable is used instead to see whether a device is available\n"
"or not.\n"
"The following variables will be set by this application:\n"
" ${AVAILCHAN} - the name of the available channel, if one exists\n" " ${AVAILCHAN} - the name of the available channel, if one exists\n"
" ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel\n" " ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel\n"
" ${AVAILSTATUS} - the status code for the available channel\n" " ${AVAILSTATUS} - the status code for the available channel\n"

View File

@@ -449,7 +449,7 @@ exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into Voice
; ${ARG1} - Device to page ; ${ARG1} - Device to page
exten => s,1,ChanIsAvail(${ARG1}|js) ; j is for Jump and s is for ANY call exten => s,1,ChanIsAvail(${ARG1}|js) ; j is for Jump and s is for ANY call
exten => s,n,GoToIf([${AVAILSTATUS} = "1"]?autoanswer:fail) exten => s,n,GoToIf([${AVAILORIGCHAN} = ""]?fail:autoanswer)
exten => s,n(autoanswer),Set(_ALERT_INFO="RA") ; This is for the PolyComs exten => s,n(autoanswer),Set(_ALERT_INFO="RA") ; This is for the PolyComs
exten => s,n,SIPAddHeader(Call-Info: Answer-After=0) ; This is for the Grandstream, Snoms, and Others exten => s,n,SIPAddHeader(Call-Info: Answer-After=0) ; This is for the Grandstream, Snoms, and Others
exten => s,n,NoOp() ; Add others here and Post on the Wiki!!!! exten => s,n,NoOp() ; Add others here and Post on the Wiki!!!!