フリー・エンジニア
高橋隆雄 フリー・エンジニア
高橋隆雄

AsteriskとSkypeを組み合わせて使うことができれば,コスト・パフォーマンスの高い電話システムが構築できそうだ。だが,実際に組み合わせて連携させるのは難しい。今回は,問い合わせが多いAsteriskとSkypeを組み合わせて運用する方法などを解説する。

 本連載は今回が本年初めてとなる。本年も皆様,どうぞよろしくお願いいたします。

 さて,Asteriskに関して日ごろよく筆者が聞かれるのが「Skypeとつながりますか?」や「SkypeとAsteriskの関係はどうなっているのか?」という質問だ。Skypeと言えば,今やよく知られた“無料”のインターネット電話システムの一つ。多くの方が興味を持つのも当然である。そんなわけで今回はSkypeとAsteriskの関係について解説することにしよう。

比較すべきものではない

 ごくまれにではあるが,「SIPよりSkypeの方が優れている」とか「AsteriskよりSkype」という主張をされる方がいて少々困ってしまうことがある。明らかな誤解というか,錯誤と言った方がよいからだ。

 そもそも「Skype」とはサービスのことであって,単なるソフトウエアやプロトコルのことではない。Skypeが提供しているのはインターネット上でP2P(ピア・ツー・ピア)の技術を使って音声をやりとりするサービスそのものである。これに対してSIP(session initiation protocol)は,ご承知の通り一プロトコルのことであり,方やAsteriskはソフトウエアの名称である。サービスとプロトコル,サービスとソフトウエアを比較すること自体がなじまないのである。「Asteriskを使ってインターネット上で通話できるサービス」を,どこかの会社が提供しているのあれば,そのサービスとSkypeを比較するのは間違いではない。

電話番号と「Skype名」

 そもそも我々が「電話番号」という場合は,数字による番号体系のことを指している。03-1234-5689のような0AB~J番号であったり,090-xxxx-xxxxのような携帯電話の番号であったり,番号だけで相手先を決める手段のことを指す。

 これに対してSkypeでは「Skype名」と呼ばれる「名前」が相手先として使われる。このことはSkypeを電話としてみた場合には大きな問題であり,電話機からどうやってダイヤルするのか?という疑問が生じる。

 普段何気なく電話機の電話帳機能を使っているユーザーから見ると,このことは大した問題ではないように思える。電話帳から相手を検索してダイヤルするという動作をするのだから,発信する際には相手が番号であろうが名前であろうが,そんなことは関係ないと考えるからだ。

 これだけインターネットが普及していると,電話番号なんて“古臭い”ものだと思う方がいるかもしれない。メール・アドレスで電話がかけられたら便利だといった主張が出てくるのも分かるが,電話機のインタフェースを今一度見直してみてほしい。たった12個のボタンで相手に接続できるというのは今もって重要なポイントなのである。

 もちろん,携帯電話でメールをやりとりすることが,ごく当たり前に行われている日本では,メール・アドレスの方が簡単だという主張はもっともではある。だが,例えばあなたが私に電話をかける際,takahashi_takao@なんちゃら.comのようなダイヤルをしますか?ということである。電話番号を押して相手に電話をかけるという方法は,固定電話でも携帯電話でも,国内でも海外でも基本的には同じである。それだけ優れたインタフェースだということだ。

「違い」を吸収できるAsterisk

 Skypeの場合でも「名前」で相手と接続する手段だけでなく,加入電話や携帯電話あてにかけたり,またその逆に電話番号を使ってSkype側と接続する手段が提供されている。それが「SkypeOut」と「SkypeIn」である。

 SkypeOutはSkypeから加入電話や携帯電話に番号を使って電話をかけること,SkypeInは相手が電話番号を使ってSkype側に着信させることである。発信する場合は,極端なことを言えば番号は何でもかまわないが,着信の場合は自分の番号が必要となる。そこでSkype側で電話番号とSkype名の紐付けが行われるというわけだ。

 ではAsteriskはSkypeが使っているような「名前」体系と通話できないかというとそんなことはない。現在でもAsteriskは「GoogleTalk」(GTalk)をサポートしている。GoogleTalkは名前体系を採用しているが,Asteriskがサポートできる理由はその柔軟なエクステンション(内線定義)方法にある。もちろん電話機からダイレクトに「名前」をダイヤルできるわけではないが,Asterisk内部で名前と番号の紐付けができるようになっている。

exten => 123456,1,Dial(Gtalk/asterisk/asterisk.takahashi@gmail.com)

 この例ではGoogleTalkのユーザーである“asterisk.takahashi”を呼び出している。電話機からダイヤルするには内線“123456”をダイヤルするとこの行が実行され,GoogleTalk(Gtalkチャネル)に接続されるしくみだ。着信側はさらに簡単でGoogleTalkから着信があった場合にはどの電話機(内線番号)を鳴らすかを定義するだけである。

 このようにして名前であってもAsteriskは扱うことができるため,名前体系間と番号体系間の接続にも使用することができる。