From: Joshua Colp Date: Fri, 13 Nov 2009 17:19:59 +0000 (+0000) Subject: Document a limitation in the AVAILSTATUS variable from ChanIsAvail and provide X-Git-Tag: 1.4.28-rc1~11^2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ef94c5196ed6130f3a5b718c0bd08dad32fd253;p=thirdparty%2Fasterisk.git 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 --- diff --git a/apps/app_chanisavail.c b/apps/app_chanisavail.c index c6931d8dba..f089392ead 100644 --- a/apps/app_chanisavail.c +++ b/apps/app_chanisavail.c @@ -55,7 +55,12 @@ static char *synopsis = "Check channel availability"; static char *descrip = " ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): \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" " ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel\n" " ${AVAILSTATUS} - the status code for the available channel\n" diff --git a/configs/extensions.conf.sample b/configs/extensions.conf.sample index ece57e072b..c9447cf6b1 100644 --- a/configs/extensions.conf.sample +++ b/configs/extensions.conf.sample @@ -449,7 +449,7 @@ exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into Voice ; ${ARG1} - Device to page 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,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!!!!