例えば"http://<サーバのFQDN>/cgi-bin/recv.py"にあたるファイルの
スクリプトの内容が以下のようになるようにします。
なお1行目のpythonへのフルパスは環境に合わせて変更してください。
#!/usr/local/bin/python # coding:utf-8 import cgi form = cgi.FieldStorage() if form.has_key("Digits"): d=1 digits=form["Digits"].value else: d=0 print "Content-Type: text/xml; charset=utf-8\n" print '<?xml version="1.0" encoding="UTF-8"?>' print "<Response>" if d==0: print '<Gather timeout="10" numDigits="1">' print '<Say language="ja-jp" voice="woman">営業課につなぎます。課の番号1から3を押してください。</Say>' print '</Gather>' else: if digits=="1": print '<Say language="ja-jp" voice="woman">営業1課につなぎます。</Say>' elif digits=="2": print '<Say language="ja-jp" voice="woman">営業2課につなぎます。</Say>' elif digits=="3": print '<Say language="ja-jp" voice="woman">営業3課につなぎます。</Say>' else: print '<Gather timeout="10" numDigits="1">' print '<Say language="ja-jp" voice="woman">営業課につなぎます。課の番号1から3を押してください。</Say>' print '</Gather>' print "</Response>"
次いでTwilioにログインし、
メニューの[電話番号]から着信時の動作を設定したい電話番号をクリックし、
その[音声通話]の[Request URL]に
"http://<サーバのFQDN>/cgi-bin/recv.py"を設定して[保存]をクリックします。
実際に電話をかけてみるとメッセージが流れ、
押すダイヤルボタンによって処理が分岐されるのが体験できます。
これを応用して呼び出すスクリプトファイルを変えたり、XMLファイルを適宜生成することで
複雑な処理をさせることができます。
このXMLはTwiMLと呼ばれているらしく、
リファレンスを見ながら試行錯誤すればいろいろできそうです。
通話料の無駄ですが、電話によるミュージックストリーミングだって可能です。
ところで前述の[Request URL]のデフォルト値は
http://twimlets.com/echo?Twiml=%3CResponse%3E%3CSay+language%3D%22ja-jp%22+voice%3D%22woman%22%3E%E3%82%82%E3%81%97%E3%82%82%E3%81%97%E3%81%AA%E3%82%93%E3%81%A8%E3%81%8B%E3%81%95%E3%82%93%E3%81%A7%E3%81%99%E3%81%8B%E3%80%82%3C%2FSay%3E%3C%2FResponse%3Eのようになっています。
つまり、外部ウェブサーバを持っていなくても
http://twimlets.com/echo?Twiml=<XML文字列>としておけば固定動作はさせられます。
自分のウェブサーバの負担軽減のために飛ばし先として使うのもありですね。
0 件のコメント:
コメントを投稿