[Asterisk-Users] festival text for weather report

Ernie Ankele ernie at ankele.net
Thu Feb 17 15:38:36 MST 2005


Dean,
Here is a rough starting point for you.
Put this into your /var/lib/asterisk/agi-bin/  directory. I used the  
name getforecast. (Change the ZIP code info, line 29) and make it  
executable.
<<< - FILE BEGIN ->>>
#!/bin/bash
# I grab the data from asterisk even though I don't use it
while read -e ARG && [ "$ARG" ] ; do
         array=(` echo $ARG | sed -e 's/://'`)
         export ${array[0]}=${array[1]}
done

checkresults()
{
         while read line
         do
         case ${line:0:4} in
         "200 " ) echo $line >&2
                 return;;
         "510 " ) echo $line >&2
                 return;;
         "520 " ) echo $line >&2
                 return;;
         *      ) echo $line >&2;;
         esac
         done
}
# answer the line and give some preliminary feedback
echo "ANSWER "
checkresults
echo "STREAM FILE national-weather-service \"\" "
checkresults
# Grab the forecast info page -- 80003 is MY zipcode, CHANGE TO YOUR  
ZIPCODE!
tempstr=` curl -s "http://weather.toolbot.com/?where=80003&RSS" `
# Cleanup the results, get rid of html tags etc. (Could probably be  
condensed)
tempstr=` echo $tempstr | sed 's:<?.*&lt;h3&gt;::g' | sed 's:=&lt.*$::'  
| sed 's:&lt;br /&gt;:~:g'|\
         sed 's:&lt;[br /h3]*&gt;::g' | sed 's:nbsp;: :g' | sed  
's:&amp;::g' | sed 's:mph:miles per hour:g' `
# Create 'EOF' Mark in tempstr
tempstr=`echo $tempstr "~XOX" `
# Loop through string, echoing to file, convert to wave, speak them,  
etc.
until [ "$tempstr" == "XOX" ]
do
         lineout=`echo $tempstr | cut -f1 -d"~" `
         echo $lineout > /tmp/linetospeak.txt
         text2wave -f 8000 -o /tmp/forecastline.wav /tmp/linetospeak.txt
         echo "STREAM FILE /tmp/forecastline \"1\""
         checkresults
         tempstr=` echo $tempstr | cut -f2- -d"~" `
done
echo "STREAM FILE goodbye \"\""
checkresults
rm /tmp/linetospeak.txt
rm /tmp/forecastline.wav
echo "HANGUP "
checkresults
<<<- FILE END ->>>

I have the following in my extensions.conf:
exten => 2996,1,Answer
exten => 2996,2,wait(1)
exten => 2996,3,agi,getforecast
exten => 2996,4,Hangup

I'm not sure how you enter the extension.conf in asterisk at home.

NOTE: I am still LEARNING shell scripting & AGI, so the above may be  
kind of hack-ish. Helpful suggestions/advice very welcome!
Ernie Ankele

On Feb 16, 2005, at 9:24 PM, dean collins wrote:

> http://www.srh.noaa.gov/fwd/productviewnation.php? 
> pil=OKXZFPOKX&version=0
>
>  
>
> can anyone suggest how I could set up asterisk at home to read out  
> allowed the following text when I dial extension 850?
>
>  
> 815 PM EST WED FEB 16 2005
>  
> .OVERNIGHT...MOSTLY CLEAR. LOWS 30 TO 35. NORTHWEST WINDS 15 TO 20
> MPH WITH GUSTS UP TO 30 MPH...DIMINISHING TO 10 TO 15 MPH LATE.
> .THURSDAY...PARTLY CLOUDY. COOLER WITH HIGHS AROUND 40. NORTHWEST
> WINDS AROUND 15 MPH.
> .THURSDAY NIGHT...PARTLY CLOUDY. LOWS IN THE MID 20S. WEST WINDS
> AROUND 15 MPH.
> .FRIDAY...PARTLY CLOUDY AND BRISK. HIGHS IN THE MID 30S. NORTHWEST
> WINDS 15 TO 25 MPH.
> .FRIDAY NIGHT...PARTLY CLOUDY AND BRISK. LOWS AROUND 17. NORTHWEST
> WINDS 15 TO 25 MPH.
>
>  
>
>  
>
>  
>
>  
>
> There’s $20 via paypal to the first person to help me complete this  
> (I’ll then post it on the the wiki so anyone can replicate it)
>
> (anyone wanting to add to that bounty email me)
>
>  
>
> Also if it is not too difficult I’d like it to skip to the next block  
> each time you press ‘1’ (eg go from overnight to Thursday)
>
>  
>
> Also it doesn’t need to be this particular web page that it connects  
> to but something with current weather etc.
>
>  
>
>  
>
>  
>
> Cheers,
>
> Dean
>
>  
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users



More information about the asterisk-users mailing list