利用者:Takuroのソースを表示
←
利用者:Takuro
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます: メール確認された利用者、
管理者
。
このページのソースの閲覧やコピーができます。
== 俺得な設定 == とりあえず、Takuroの俺得設定を連ねる。 スクリプトはすべてGPLv3とします。 //思ったけどこれすっごいgdgd ---- == Fax for Asterisk用シェルスクリプト == このサイトの、Fax2Mail.shだと意味不明な文章(uuencodeのせいだと思う)で面倒くさいし、とあるサイトで見つけたFax2Mail.plだとPostfixが嫌がるので、仕方なくこんなスクリプトをゴリゴリ書いた。 <?php //Setting Value $basedir='/var/spool/asterisk'; $faxin='faxin'; $faxpdf='faxpdf'; $mailfrom='hoge@example.com'; $mailto='fuga@example.com'; $header .= "Content-Type: multipart/mixed; boundary=\"__PHPRECIPE__\"\r\n"; $header .= "\r\n"; $body = "--__PHPRECIPE__\r\n"; $body .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\r\n"; $body .= "\r\n"; $body .= $mailbody . "\r\n"; $body .= "--__PHPRECIPE__\r\n"; $data = fopen($pdfname, 'r'); $attachdata = fread($data, filesize($pdfname)); fclose($data); $attach64 = base64_encode($attachdata); $body .= "Content-Type: application/pdf; name=\"$filename\"\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n"; $body .= "Content-Disposition: attachment; filename=\"$filename\"\r\n"; $body .= "\r\n"; $body .= chunk_split($attach64) . "\r\n"; $body .= "--__PHPRECIPE__--\r\n"; if (ini_get('safe_mode')) { $result = mb_send_mail($mailto, $mailsubject, $body, $header); } else { $result = mb_send_mail($mailto, $mailsubject, $body, $header,'-f' . $mailreturn); } if($result){ unlink($tiffname); unlink($pdfname); exit(0); }else{ exit(1); } ?> 適当にFax2Mail.plのいいところとFax2Mail.shのいいところを掛けあわせてやった。 == 簡単にFaxoutを実行できやがるスクリプト == 僕のGistに乗せてあるのでパクってきた #!/bin/sh file=faxout.tif if [ -e $file ]; then echo "$file Found, Do Send fax." echo -n "Please input send fax number: " read faxnum if expr "$faxnum" : '[0-9]*' > /dev/null ; then echo 'OK' > /dev/null else echo "This is not number. Please try agein." exit 1 fi while true; do echo -n "Send number is ${faxnum} is this correct? [y/N]: " read confirm case $confirm in y) echo "OK,It will Start within 3seconds." echo "Note: You need Administrator Password" sudo asterisk -rx "originate SIP/${faxnum}@brastel extension send@fax-tx" if [ "$?" -eq 0 ]; then echo 'Send Fax Was Successed.' echo 'Now Removing faxout.tif' rm -r faxout.tif exit 0 else echo 'Send Fax Was Failed.' echo 'Please check it' exit 1 fi break ;; *) echo "Aborting." exit 1 break ;; esac done else echo "$file not found." echo "If you have tif file, please rename faxout.tif" exit 1 fi @brastelとかは勝手に書き換えてね。faxout.tifと同じディレクトリにおいて試してくだせえ。 == お天気予報 == 177もどき。僕が書いているサイトでも載せてあるのでまんまぱくる。 jqとOpen J Talk、Meiが必要で、適宜書き換えてくだせえ。 extensions.confは載せてやる。お前のためだけに。 ;Weather Service exten => 177,1,Answer() exten => 177,n,Playback(queue-callswaiting) exten => 177,n,System(/usr/local/bin/weathertalk) exten => 177,n,Playback(weather) exten => 177,n,Hangup() ↑フレッシュなデータが聞けるぜぇ #!/bin/sh date +"%Y年%m月%d日 %I時%M分現在の天気予報をお伝えします。" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow /tmp/announce.wav wget 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010' -O- -q | jq -M -c '.description .text' | sed 's/\"//g' - | sed 's/\\n//g' - | sed 's/ //g' - | sed 's/寒気/かんき/g' - | sed 's/所々/ところどころ/g' - | sed 's/日中/にっちゅう/g' - | cut -c 1-804 | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow /tmp/weather1.wav>/dev/null 2>&1 WORD=`wget 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010' -O- -q | jq -M -c '.description .text' | sed 's/\"//g' - | sed 's/\\n//g' - | sed 's/ //g' - | sed 's/寒気/かんき/g' - | sed 's/所々/ところどころ/g' - | sed 's/日中/にっちゅう/g' -| wc -c` if `test $WORD -le 804` ; then echo 'Noting for Todo'>/dev/null 2>&1 else wget 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010' -O- -q | jq -M -c '.description .text' | sed 's/\"//g' - | sed 's/\\n//g' - | sed 's/ //g' - | sed 's/寒気/かんき/g' - | sed 's/所々/ところどころ/g' - | sed 's/日中/にっちゅう/g' - | cut -c 805-1600 | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow /tmp/weather2.wav>/dev/null 2>&1 fi echo '以上、お伝えしました。ご利用ありがとうございました。' | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow /tmp/end.wav>/dev/null 2>&1 if `test $WORD -le 804` ; then mv /tmp/weather1.wav /tmp/weather3.wav else sox /tmp/weather1.wav /tmp/weather2.wav /tmp/weather3.wav fi sox /tmp/announce.wav /tmp/weather3.wav /tmp/weather4.wav sox /tmp/weather4.wav /tmp/end.wav /tmp/weather5.wav sox /var/lib/asterisk/sounds/ja/callup.wav /tmp/weather5.wav /tmp/weather6.wav sox /tmp/weather6.wav -r 8000 /tmp/weather7.wav>/dev/null 2>&1 sox /tmp/weather7.wav /tmp/weather.ul>/dev/null 2>&1 sox /tmp/weather7.wav /tmp/weather.gsm>/dev/null 2>&1 mv /tmp/weather.gsm /var/lib/asterisk/sounds/ja/ mv /tmp/weather.ul /var/lib/asterisk/sounds/ja/weather.ulaw rm /tmp/announce.wav /tmp/weather3.wav /tmp/weather4.wav /tmp/weather5.wav /tmp/weather6.wav /tmp/weather7.wav /tmp/end.wav if `test $WORD -le 804` ; then echo 'Noting to do' >/dev/null 2>&1 else rm /tmp/weather1.wav /tmp/weather2.wav fi == オートコールバック == これ食うと凍る(コレクトコール)。 掛けると一旦話し中でぶった切られるけど、5秒後にお電話がかけ直してきやがるやつ。 で、IVRで電話番号入れやがれと言われるので、繋ぎたい内線or外線をDTMFでダイヤルするといいって感じ。 extensions.confは仕方ねぇ、載せてやる。 exten => 108,1,System(nohup /var/lib/asterisk/collect.sh ${CALLERID(number)} &) exten => 108,n,Busy exten => collect,1,Set(CNT=1) exten => collect,2,Ringing exten => collect,3,Wait(1) exten => collect,4,Answer exten => collect,5,Wait(1) exten => collect,6,Background(vm-enter-num-to-call) exten => collect,7,WaitExten(5) exten => collect,8,GotoIf($[${CNT} >= 3]?11:9) exten => collect,9,Set(CNT=$[${CNT} + 1]) exten => collect,10,Goto(collect,6) exten => collect,11,Playback(tt-monkeysintro) exten => collect,12,Hangup で、collect.sh #!/bin/bash sleep 5 FromNum=`echo -n $1 | wc -m` typeset -i RET="1" if [ "$1" = "201" ] ; then typeset -i RET="0" fi if [ "$1" = "202" ] ; then typeset -i RET="0" fi if [ "$1" = "203" ] ; then typeset -i RET="0" fi if [ "$1" = "0330000000" ] ; then typeset -i RET="0" fi if [ "$RET" = "1" ] ; then echo "NOT ACCEPTED NUMBER" exit 1 fi if test $FromNum -le 4 ; then echo "Called to Inline" echo "Channel: SIP/${1} CallerID: CollectCall <108> MaxRetries: 1 RetryTime: 15 WaitTime: 30 Extension: collect Priority: 1" > /var/spool/asterisk/outgoing/inline.txt else echo "Called to Outline" echo "Channel: SIP/${1}@brastel CallerID: CollectCall <05068630000> MaxRetries: 1 RetryTime: 15 WaitTime: 30 Context: default Extension: collect Priority: 1" > /var/spool/asterisk/outgoing/outline.txt fi これでいいはずだぜ。 興味があったら随時追加していってやる。
利用者:Takuro
に戻る。
ナビゲーション メニュー
個人用ツール
アカウント作成
ログイン
名前空間
利用者ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
ヘルプ
広告
サイトコンテンツ
コミュニティ
Asterisk
Asterisk 18
Asterisk 20
Asterisk 22
IP電話機
購入情報
導入事例
回線接続
ベンダー
ひかり電話
セキュリティ
イベント情報
スペシャル
Asterisk pjsip
ABS
黒電話 ハック
ツール
リンク元
関連ページの更新状況
利用者の投稿記録
記録
利用者グループの表示
特別ページ
ページ情報