swift.agi

Example AGI for Swift.

extensions.conf


exten=> s,1,agi(swift.agi|This is some text\, which needs to be converted to speech.)


shell script


 #!/bin/sh
 # Assign the value sent from the exten=> line to "$text" so it can be used below
 text=`echo $*`
 
 # Set $stdin to something
 stdin="0"
 
 while [ "$stdin" != "" ]
   do
     read stdin
      if [ "$stdin" != "" ]
       then
        stdin2=`echo $stdin | sed -e 's/: /=/' -e 's/"//g' -e 's/$/"/' -e 's/=/="/'`
        eval `echo $stdin2`
       fi
   done
 
 calleridnum=`echo $agi_callerid | cut -f2 -d\< | cut -f1 -d\>`
 calleridname=`echo $agi_callerid | cut -f1 -d\< `
 
 /usr/local/bin/swift -o /tmp/$agi_uniqueid.wav -p audio/channels=1,audio/sampling-rate=8000 " $text "
 
 # Now, tell asterisk to play that file
 echo "stream file /tmp/$agi_uniqueid #"
 
 # Read the reply from asterisk to our command
 read stream
 
 # Clean up our mess and delete that file
 rm /tmp/$agi_uniqueid.wav

exit 0


Example AGI for Swift.

extensions.conf


exten=> s,1,agi(swift.agi|This is some text\, which needs to be converted to speech.)


shell script


 #!/bin/sh
 # Assign the value sent from the exten=> line to "$text" so it can be used below
 text=`echo $*`
 
 # Set $stdin to something
 stdin="0"
 
 while [ "$stdin" != "" ]
   do
     read stdin
      if [ "$stdin" != "" ]
       then
        stdin2=`echo $stdin | sed -e 's/: /=/' -e 's/"//g' -e 's/$/"/' -e 's/=/="/'`
        eval `echo $stdin2`
       fi
   done
 
 calleridnum=`echo $agi_callerid | cut -f2 -d\< | cut -f1 -d\>`
 calleridname=`echo $agi_callerid | cut -f1 -d\< `
 
 /usr/local/bin/swift -o /tmp/$agi_uniqueid.wav -p audio/channels=1,audio/sampling-rate=8000 " $text "
 
 # Now, tell asterisk to play that file
 echo "stream file /tmp/$agi_uniqueid #"
 
 # Read the reply from asterisk to our command
 read stream
 
 # Clean up our mess and delete that file
 rm /tmp/$agi_uniqueid.wav

exit 0


Created by: shaneyoung, Last modification: Wed 28 of Dec, 2011 (18:42 UTC) by catdsnny
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+