・出会い
〜引用〜「○○だぜぇ~? ワイルドだろ~?」と言いながら、ワイルド、というより、勢いでやってしまって取り返しのつかないようなことを言い続けるネタを披露している。〜引用〜
・ワイルドの定義
[形動]1 野生であるさま。自然のままであるさま。2 荒々しく力強いさま。「―なイメージ」
〜引用〜「○○だぜぇ~? ワイルドだろ~?」と言いながら、ワイルド、というより、勢いでやってしまって取り返しのつかないようなことを言い続けるネタを披露している。〜引用〜
[形動]1 野生であるさま。自然のままであるさま。2 荒々しく力強いさま。「―なイメージ」
on

こんにちは、開発担当の千葉です。
【第5回 JAWS-UG-Sapporo 勉強会】で発表した構成にて、050番号による外線接続を実現したので投稿します。
外線番号には、高品質でイニシャルコストが魅力的なFusion IP-Phoneサービスを利用しました。
以下の構成で検証してみたいと思います。
IP-Phoneの申し込みが完了すると、以下の様な情報が連絡されます。
| SIPドメイン | foo.sip.bar.net |
|---|---|
| IP加入電話番号 | 050-xxxx-xxxx |
| アカウントID | xxxxxxxx |
| IP加入電話パスワード | !aaa%bbb&ccc |
これらの情報をもって、3ステップで環境を構築したいと思います。
編集対象となるファイルは以下の2ファイルです。
[general] port=5060 disallow=all allow=gsm localnet=192.168.0.0/255.255.0.0 externip=zzz.zzz.zzz.zzz ;[fusion1] register => xxxxxxxx:!aaa%bbb&ccc@fusion1/xxxxxxxx [201] type=friend defaultuser=201 secret=pass canreinvite=no host=dynamic dtmfmode=rfc2833 callgroup=1 pickupgroup=1 mailbox=201 [fusion1] type=friend username=xxxxxxxx fromuser=xxxxxxxx secret=!aaa%bbb&ccc canreinvite=no context=incoming insecure=port,invite host=foo.sip.bar.net fromdomain=foo.sip.bar.net dtmfmode=auto allowsubscribe=no nat=never
編集対象行を以下に列挙します。
[globals]
MYNUMBER1=xxxxxxxx
[default]
exten => 316,1,Goto(at,1)
exten => at,1,Wait(3)
exten => at,2,Answer()
exten => at,3,AGI(example.php)
;From fusion
exten => ${MYNUMBER1},1,Wait(6)
exten => ${MYNUMBER1},2,Answer()
exten => ${MYNUMBER1},3,AGI(example.php)
exten => ${MYNUMBER1},n,Dial(SIP/${EXTEN}@fusion1)
exten => ${MYNUMBER1},n,Hangup
編集対象行を以下に列挙します。
これまでの作業で設定ファイルの編集は完了です。
asteriskを起動し、B2BUAへ正しく接続されているか確認しましょう。
(※ 1、15、21行目でコマンドを実行しています)
[root@ip-xxx-xxx-xxx-xxx ~]# asterisk -vvvvvvvvc == Registered custom function 'LOCAL' Asterisk 1.8.9.1, Copyright (C) 1999 - 2011 Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= == Parsing '/etc/asterisk/asterisk.conf': == Found 〜〜〜〜〜〜〜〜〜〜〜 中略 〜〜〜〜〜〜〜〜〜〜〜 *CLI> *CLI> sip show peers Name/username Host Dyn Forcerport ACL Port Status 201/201 000.000.000.000 D N 61796 Unmonitored fusion1/xxxxxx 000.000.000.000 N 5060 Unmonitored 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 0 offline] *CLI> *CLI> sip show peer fusion1 * Name : fusion1 Secret : <Set> MD5Secret : <Not set> Remote Secret: <Not set> Context : incoming Subscr.Cont. : <Not set> Language : AMA flags : Unknown Transfer mode: open CallingPres : Presentation Allowed, Not Screened FromUser : xxxxxxxx FromDomain : foo.sip.bar.net Port 5060 Callgroup : 〜〜〜〜〜〜〜〜〜〜〜 中略 〜〜〜〜〜〜〜〜〜〜〜 RTP Engine : asterisk Parkinglot : Use Reason : No Encryption : No *CLI>
050-xxxx-xxxx(IP加入電話番号)をコールすると、前回に316でコールしていた
IVR処理と同じ様に『Hello world』と言われるハズです。
Fusion社の『IP-Phone』+『B2BUA』を利用することで、低投資で外線を利用したIVRサービスの構築が可能です。
『B2BUA』を利用することで、NTT東西が提供するフレッツサービス/AWS Direct Connect等の高価な回線を契約をせずに
外線を利用したAsterisk環境を構築することが可能です。
次回は、音声読み上げをやってみようと思います。
プログラマの新井です。
障害が起きた際にメールなどで通知するのもよいですが、折角なので通知用のサービスを活用してみましょう。
また、自動で通知することを考えるとAPI利用は当然ですね。
というわけで、今回は AWS SDK for Ruby を使用して Amazon SNS から通知の送信を行なってみようと思います。
Amazon Simple Notification Service (Amazon SNS) は、通知の送信を簡単にするウェブサービスです。
このアプリケーションからメッセージを発行して、それらを直ちに受信者またはその他のアプリケーションに伝達することができます。
「プッシュ」方式を利用しているため、クライアントからの定期的な確認を必要としません。
また、通知プロトコルにはHTTP/HTTPS、Email、Amazon SQSなどが利用できます。
まずAWS SDK for Rubyをインストールします。
Rubyは1.9.3-p125を利用しています。
$ gem install aws-sdk
次に利用するAmazon SNSのトピックを作成します。
また、今回は送信先にAmazon SQSを利用するため、合わせてキューの作成をしています。
リージョンはTokyoリージョンを設定しています。
実行後にARNが出力されます。
次で利用しますので忘れずにメモをしておきましょう。
送信した通知の内容が出力されました。やりましたね!
次回は通知された内容を利用してみます。