「Skype for Asterisk」の版間の差分
(aQTgIidTerPEX) |
細 (180.150.131.250 (会話) による編集を MR G による版へと差し戻しました。) |
||
1行目: | 1行目: | ||
− | + | {{Template:書きかけ}} | |
+ | Skype for Asterisk(SFA)<br> | ||
+ | Digium純正のAsterisk用Skypeチャネル。<br> | ||
+ | :http://www.digium.com/en/products/software/skypeforasterisk.php<br> | ||
+ | 価格: Digium オンラインショップで $66/チャネル (G.729コーデック 1ch分の料金を含む) | ||
+ | ==要件== | ||
+ | Asterisk 1.4.25以上<br> | ||
+ | Asterisk 1.6.0.6以上<br> | ||
+ | Asterisk 1.6.1.5以上<br> | ||
+ | ==購入== | ||
+ | エンドユーザの場合には、Digiumのオンラインショップで購入します。<br> | ||
+ | :http://store.digium.com/<br> | ||
+ | 購入すると、ダウンロードURLと登録キーが送られてきます。<br> | ||
+ | ==インストール== | ||
+ | ===プロダクトの登録=== | ||
+ | まず、登録用のソフトregisterをダウンロードします。登録は使用するマシンのNICに基づいて行われるため、使用するAsteriskをインストールしたマシン上で行います。Linuxの場合には、wgetなどで入手するかと思いますが、その際にはchmod +x registerして./registerを実行してください。この時に、購入時に送られてきたキーが必要となります。<br> | ||
+ | Digiumの他のプロダクトもそうですが、ライセンスキーは /var/lib/asterisk/licenses/ に保存されます。このファイルは<br> | ||
+ | :S4A-xxxxxxxxxxxx.lic | ||
+ | のようなファイル名で、S4Aがプロダクト(Skype4Asterisk)です。G.729ならG729-のようなファイル名になります。<br> | ||
+ | このファイルは'''大切な'''ライセンスファイルなので、バックアップしておくことをお勧めします。<br> | ||
+ | ===インストール=== | ||
+ | ソースファイルを入手した場合には、makeしてmake installするだけです。Linuxの場合、32bit用と64bit用が別に配布されているので注意してください。<br> | ||
+ | chan_skype.so res_skypeforasterisk.so のふたつがAsteriskのモジュールとしてインストールされます。 | ||
+ | |||
+ | ==設定== | ||
+ | ===注意=== | ||
+ | Skype for Asteriskで使えるSkypeアカウントは、Skypeビジネスコントロールパネル(BCP)で管理されているアカウントだけです。単に登録しただけのSkypeアカウントは使用できないので注意してください。<br> | ||
+ | :http://www.skype.com/intl/ja/business/products/business-control-panel/ | ||
+ | 既存のSkypeアカウントがあればBCPに登録することができます。<br> | ||
+ | ===chan_skype.conf=== | ||
+ | ソースを展開したディレクトリに chan_skype.conf.sample というファイルがありますので、これを編集するか、以下を参照して設定ファイルを作ってください。<br> | ||
+ | '''[general]'''セクション | ||
+ | [general] | ||
+ | engine_directory=/var/lib/asterisk/skype | ||
+ | default_user=Skypeログイン名 | ||
+ | bind_address=IPアドレス | ||
+ | bind_port=ポート番号 | ||
+ | disable_tcpauto=yes | ||
+ | *engine_directory | ||
+ | :Skypeエンジンが使用するテンポラリディレクトリを指定します。デフォルトでは/tmpです。 | ||
+ | :上記の例では /var/lib/asterisk/skype を使用しています。この場合にはディレクトリを作成し、chown asterisk:asterisk /var/lib/asterisk/skype を実行しておいてください。 | ||
+ | *default_user | ||
+ | :デフォルトで使用するSkypeのログイン名を指定します。 | ||
+ | *bind_address | ||
+ | :SkypeがlistenするIPアドレス(サーバの)を指定します。デフォルトでは全てのIPアドレスですが、複数のインタフェースを持つAsteriskマシンの場合には明示的にIPアドレスを指定します。 | ||
+ | *bind_port | ||
+ | :このポート番号の設定は少し注意してください。デフォルトではこの値は、あくまでも「ヒント」として使用されるだけで、Skypeエンジンは空いているポートを自動的に使おうとします。 | ||
+ | *disable_tcpauto | ||
+ | :デフォルトはnoに設定されています。デフォルトの設定では、Skypeエンジンは「適当な空いている」ポートを自動的に使います。サーバ機などで明示的にポートを指定したり、ファイアウォールでポートを特定する場合にはbind_portを指定し、このdisable_tcpautoをyesに指定します。 | ||
+ | '''[ユーザ]'''セクション<br> | ||
+ | Skypeログイン名に対応するセクションを作成します。 | ||
+ | [Skypeログイン名] | ||
+ | secret=パスワード | ||
+ | context=skype-in | ||
+ | exten=s | ||
+ | disallow=all | ||
+ | allow=ulaw,g729 | ||
+ | direction=both | ||
+ | auth_policy=accept | ||
+ | buddy_autoadd=buddies,hints | ||
+ | buddy_presence=yes | ||
+ | *[]セクション | ||
+ | :Skypeのログイン名を指定します。 | ||
+ | *secret | ||
+ | :Skypeのログインパスワードを指定します。 | ||
+ | *context | ||
+ | :このセクションが使用するコンテキストを使用します。この例ではskype-inとしています。 | ||
+ | *exten | ||
+ | :コンテキスト内の着信extenを指定します。デフォルトはユーザ名です。 | ||
+ | *disallow, allow | ||
+ | :他のチャネル同様に使用できるCODECを指定します。指定できるCODECはulaw,alaw,g729のいずれか、またはその組み合わせです。G.729 1チャネル分のライセンスはSFAに含まれています。 | ||
+ | *direction | ||
+ | :このユーザが発信、着信、またはその両方が使用できるかを制限します。incoming, outgoing, both のいずれかを指定します。 | ||
+ | *auth_policy | ||
+ | :相手を認証するポリシーを指定します。上の例では全て自動認証します。 | ||
+ | :accept:Skype名 を指定すると、指定された相手は自動認証します。 | ||
+ | *buddy_autoadd | ||
+ | :相手を自動追加するかどうかを指定します。デフォルトは no です。プレゼンス情報を用意に扱うために、ここにはbuddiesまたはhints、あるいはその両方を指定することができます。 | ||
+ | *buddy_presence | ||
+ | :相手のプレゼンス情報の扱いを指定します。 | ||
+ | |||
+ | ===extensions.conf=== | ||
+ | 上記の例をもとにextensions.confの記述を簡単に説明します。 | ||
+ | *着信 | ||
+ | :上の例ではコンテキストをskype-in、extenを s としましたので、以下のように書きます。 | ||
+ | [skype-in] | ||
+ | |||
+ | exten s,1,Dial(SIP/201) | ||
+ | このように記述すると、Skypeからの着信はSIP/201に接続されます。 | ||
+ | *発信 | ||
+ | Dial(Skype/自分側の名前@相手の名前) | ||
+ | 自分側の名前は[ユーザ]のセクションで指定したSkype名です。相手は発信したいSkypeユーザの名前です。Asteriskは番号体系で動作していますが、Skypeは名前で動作してるため、これらの間のマッピングはextensions.conf内で行います。例えば | ||
+ | exten => 123456,1,Dials(Skype/my_name_of_skype@buddy_name_of_skype) | ||
+ | のように記述し、番号と名前を紐付けてダイヤルします。 | ||
+ | exten => 123456,1,Dial(Skype/buddy_name_of_skype) | ||
+ | このように記述した場合には、.confで指定したデフォルトのユーザ名が発信元になります。 | ||
+ | *番号に紐付けしないで発信 | ||
+ | SIP電話機など、ダイヤルする際に例えば | ||
+ | peername@asterisk.mydomain.tld | ||
+ | のような形で発信できる、あるいは電話帳登録が出来る場合には、extenを次のように記述してしまいます。 | ||
+ | exten => buddy_name_of_skype,1,Dials(Skype/my_name_of_skype@buddy_name_of_skype) | ||
+ | そうすると、名前を使って発信することができます。 | ||
+ | *CID | ||
+ | デフォルトでは相手のSkype名が通知されます。このため、SIP電話機などでは | ||
+ | Skype名@AsteriskのIPアドレス | ||
+ | のような形で通知が行われるため、そのままではリダイヤルできません。<br> | ||
+ | リダイヤルしたい場合には、CALLERIDをセットして適切な番号に置換するか、あるいは名前での直接発信ができるようにextenを作っておきます。 | ||
+ | ==便利な使い方== | ||
+ | 上記の『Skype名』による発着信を応用します。着信コンテキストをskype-in、extenを s とします。<br> | ||
+ | まず、着信コンテキストを次のように記述します。 | ||
+ | [skype-in] | ||
+ | |||
+ | exten => s,1,Set(CALLERID(num)=SFA-${CALLERID(num)}) | ||
+ | exten => s,n,Dial(SIP/201) | ||
+ | |||
+ | 上記例では、Skypeから着信するとSIP/201を呼び出しますが、この際にCIDとしてプレフィクス、SFA-をつけて通知します。例えば takao.takahashi というSkype名から着信すると、SFA-takao.takahashi が通知されます。<br> | ||
+ | 次にSkypeへの発信extenとして以下のように記述します。<br> | ||
+ | exten => _SFA-.,1,Dial(Skype/my_skype_name@${EXTEN:4}) | ||
+ | 数字による発信の場合と同じで、SFA-で始まる名前がダイヤルされると、このextenに飛んできます。SFA-の後ろは任意で、後ろの部分を相手のSkype名としてSkypeチャネルに対して発信します。相手と自分の設定にもよりますが、「誰からでも」着信できるようになっている場合には、この方法で発着信が行えますし、コールバックも行えます。<br> | ||
+ | NokiaのEシリーズの場合、電話帳にInternet Telephoneの登録ができますが、この登録には「名前」(URI)でも行えます。ですので、SFA-なんちゃら@Asterisサーバ、という形で登録しておけば電話帳からSkypeコンタクトに対してダイヤルすることも可能になります。<br> | ||
+ | 上の例ではプレフィクスをSFA-としていますが、この部分を数字にしてもかまいません。<br> | ||
+ | <br> | ||
+ | Polycomの謎: Polycom IP450では着信履歴から発信すると、ちゃんと発信しますが手動ダイヤルでURL入力を行う場合には英小文字しか入らないのと、sip:が頭に付いていきます。なので、以下のようなhackをしてしまえばPolycomから直接、Skypeへダイヤルできます。 | ||
+ | exten => sip:_sfa-.,1,Dial(Skype/my_skype_name@${EXTEN:8}) | ||
+ | [[Category:Asterisk]] | ||
+ | [[Category:Skype]] |
2010年3月14日 (日) 16:02時点における版
Skype for Asterisk(SFA)
Digium純正のAsterisk用Skypeチャネル。
価格: Digium オンラインショップで $66/チャネル (G.729コーデック 1ch分の料金を含む)
目次
要件
Asterisk 1.4.25以上
Asterisk 1.6.0.6以上
Asterisk 1.6.1.5以上
購入
エンドユーザの場合には、Digiumのオンラインショップで購入します。
購入すると、ダウンロードURLと登録キーが送られてきます。
インストール
プロダクトの登録
まず、登録用のソフトregisterをダウンロードします。登録は使用するマシンのNICに基づいて行われるため、使用するAsteriskをインストールしたマシン上で行います。Linuxの場合には、wgetなどで入手するかと思いますが、その際にはchmod +x registerして./registerを実行してください。この時に、購入時に送られてきたキーが必要となります。
Digiumの他のプロダクトもそうですが、ライセンスキーは /var/lib/asterisk/licenses/ に保存されます。このファイルは
- S4A-xxxxxxxxxxxx.lic
のようなファイル名で、S4Aがプロダクト(Skype4Asterisk)です。G.729ならG729-のようなファイル名になります。
このファイルは大切なライセンスファイルなので、バックアップしておくことをお勧めします。
インストール
ソースファイルを入手した場合には、makeしてmake installするだけです。Linuxの場合、32bit用と64bit用が別に配布されているので注意してください。
chan_skype.so res_skypeforasterisk.so のふたつがAsteriskのモジュールとしてインストールされます。
設定
注意
Skype for Asteriskで使えるSkypeアカウントは、Skypeビジネスコントロールパネル(BCP)で管理されているアカウントだけです。単に登録しただけのSkypeアカウントは使用できないので注意してください。
既存のSkypeアカウントがあればBCPに登録することができます。
chan_skype.conf
ソースを展開したディレクトリに chan_skype.conf.sample というファイルがありますので、これを編集するか、以下を参照して設定ファイルを作ってください。
[general]セクション
[general] engine_directory=/var/lib/asterisk/skype default_user=Skypeログイン名 bind_address=IPアドレス bind_port=ポート番号 disable_tcpauto=yes
- engine_directory
- Skypeエンジンが使用するテンポラリディレクトリを指定します。デフォルトでは/tmpです。
- 上記の例では /var/lib/asterisk/skype を使用しています。この場合にはディレクトリを作成し、chown asterisk:asterisk /var/lib/asterisk/skype を実行しておいてください。
- default_user
- デフォルトで使用するSkypeのログイン名を指定します。
- bind_address
- SkypeがlistenするIPアドレス(サーバの)を指定します。デフォルトでは全てのIPアドレスですが、複数のインタフェースを持つAsteriskマシンの場合には明示的にIPアドレスを指定します。
- bind_port
- このポート番号の設定は少し注意してください。デフォルトではこの値は、あくまでも「ヒント」として使用されるだけで、Skypeエンジンは空いているポートを自動的に使おうとします。
- disable_tcpauto
- デフォルトはnoに設定されています。デフォルトの設定では、Skypeエンジンは「適当な空いている」ポートを自動的に使います。サーバ機などで明示的にポートを指定したり、ファイアウォールでポートを特定する場合にはbind_portを指定し、このdisable_tcpautoをyesに指定します。
[ユーザ]セクション
Skypeログイン名に対応するセクションを作成します。
[Skypeログイン名] secret=パスワード context=skype-in exten=s disallow=all allow=ulaw,g729 direction=both auth_policy=accept buddy_autoadd=buddies,hints buddy_presence=yes
- []セクション
- Skypeのログイン名を指定します。
- secret
- Skypeのログインパスワードを指定します。
- context
- このセクションが使用するコンテキストを使用します。この例ではskype-inとしています。
- exten
- コンテキスト内の着信extenを指定します。デフォルトはユーザ名です。
- disallow, allow
- 他のチャネル同様に使用できるCODECを指定します。指定できるCODECはulaw,alaw,g729のいずれか、またはその組み合わせです。G.729 1チャネル分のライセンスはSFAに含まれています。
- direction
- このユーザが発信、着信、またはその両方が使用できるかを制限します。incoming, outgoing, both のいずれかを指定します。
- auth_policy
- 相手を認証するポリシーを指定します。上の例では全て自動認証します。
- accept:Skype名 を指定すると、指定された相手は自動認証します。
- buddy_autoadd
- 相手を自動追加するかどうかを指定します。デフォルトは no です。プレゼンス情報を用意に扱うために、ここにはbuddiesまたはhints、あるいはその両方を指定することができます。
- buddy_presence
- 相手のプレゼンス情報の扱いを指定します。
extensions.conf
上記の例をもとにextensions.confの記述を簡単に説明します。
- 着信
- 上の例ではコンテキストをskype-in、extenを s としましたので、以下のように書きます。
[skype-in] exten s,1,Dial(SIP/201)
このように記述すると、Skypeからの着信はSIP/201に接続されます。
- 発信
Dial(Skype/自分側の名前@相手の名前)
自分側の名前は[ユーザ]のセクションで指定したSkype名です。相手は発信したいSkypeユーザの名前です。Asteriskは番号体系で動作していますが、Skypeは名前で動作してるため、これらの間のマッピングはextensions.conf内で行います。例えば
exten => 123456,1,Dials(Skype/my_name_of_skype@buddy_name_of_skype)
のように記述し、番号と名前を紐付けてダイヤルします。
exten => 123456,1,Dial(Skype/buddy_name_of_skype)
このように記述した場合には、.confで指定したデフォルトのユーザ名が発信元になります。
- 番号に紐付けしないで発信
SIP電話機など、ダイヤルする際に例えば
peername@asterisk.mydomain.tld
のような形で発信できる、あるいは電話帳登録が出来る場合には、extenを次のように記述してしまいます。
exten => buddy_name_of_skype,1,Dials(Skype/my_name_of_skype@buddy_name_of_skype)
そうすると、名前を使って発信することができます。
- CID
デフォルトでは相手のSkype名が通知されます。このため、SIP電話機などでは
Skype名@AsteriskのIPアドレス
のような形で通知が行われるため、そのままではリダイヤルできません。
リダイヤルしたい場合には、CALLERIDをセットして適切な番号に置換するか、あるいは名前での直接発信ができるようにextenを作っておきます。
便利な使い方
上記の『Skype名』による発着信を応用します。着信コンテキストをskype-in、extenを s とします。
まず、着信コンテキストを次のように記述します。
[skype-in] exten => s,1,Set(CALLERID(num)=SFA-${CALLERID(num)}) exten => s,n,Dial(SIP/201)
上記例では、Skypeから着信するとSIP/201を呼び出しますが、この際にCIDとしてプレフィクス、SFA-をつけて通知します。例えば takao.takahashi というSkype名から着信すると、SFA-takao.takahashi が通知されます。
次にSkypeへの発信extenとして以下のように記述します。
exten => _SFA-.,1,Dial(Skype/my_skype_name@${EXTEN:4})
数字による発信の場合と同じで、SFA-で始まる名前がダイヤルされると、このextenに飛んできます。SFA-の後ろは任意で、後ろの部分を相手のSkype名としてSkypeチャネルに対して発信します。相手と自分の設定にもよりますが、「誰からでも」着信できるようになっている場合には、この方法で発着信が行えますし、コールバックも行えます。
NokiaのEシリーズの場合、電話帳にInternet Telephoneの登録ができますが、この登録には「名前」(URI)でも行えます。ですので、SFA-なんちゃら@Asterisサーバ、という形で登録しておけば電話帳からSkypeコンタクトに対してダイヤルすることも可能になります。
上の例ではプレフィクスをSFA-としていますが、この部分を数字にしてもかまいません。
Polycomの謎: Polycom IP450では着信履歴から発信すると、ちゃんと発信しますが手動ダイヤルでURL入力を行う場合には英小文字しか入らないのと、sip:が頭に付いていきます。なので、以下のようなhackをしてしまえばPolycomから直接、Skypeへダイヤルできます。
exten => sip:_sfa-.,1,Dial(Skype/my_skype_name@${EXTEN:8})