「Asterisk」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎インストール: 節中linphoneのリンク切れを修正)
(4人の利用者による、間の8版が非表示)
1行目: 1行目:
 
[[Category:電話と音声]]
 
[[Category:電話と音声]]
 
[[en:Asterisk]]
 
[[en:Asterisk]]
[http://www.asterisk.org Asterisk] は完全な PBX (電話交換機) ソフトウェアです。Linux, BSD, Windows, OS X などで動作し、PBX が通常備えている機能は全て含まれています。Asterisk は4つのプロトコルによる VoIP ができ、比較的安価なハードウェアでほぼ全ての規格の電話装置と一緒に使うことが可能です。
+
[http://www.asterisk.org Asterisk] は完全な PBX (電話交換機) ソフトウェアです。Linux, BSD, Windows, macOS などで動作し、PBX が通常備えている機能は全て含まれています。Asterisk は4つのプロトコルによる VoIP ができ、比較的安価なハードウェアでほぼ全ての規格の電話装置と一緒に使うことが可能です。
   
 
Asterisk はボイスメールサービス、電話帳、電話会議、自動音声応答、コールキューイングを実現します。また、三者通話、発信者番号通知サービス、ADSI、IAX、SIP、H.323 (クライアントとゲートウェイの両方)、MGCP (コールマネージャのみ)、SCCP/Skinny をサポートしています。
 
Asterisk はボイスメールサービス、電話帳、電話会議、自動音声応答、コールキューイングを実現します。また、三者通話、発信者番号通知サービス、ADSI、IAX、SIP、H.323 (クライアントとゲートウェイの両方)、MGCP (コールマネージャのみ)、SCCP/Skinny をサポートしています。
9行目: 9行目:
 
==インストール==
 
==インストール==
   
  +
{{AUR|asterisk}} パッケージをインストールしてください。Cisco の IP 電話を使用する場合はパッチが適用されている {{AUR|asterisk-cisco}} パッケージを使うことが推奨されます ([https://issues.asterisk.org/jira/browse/ASTERISK-13145 https://issues.asterisk.org/jira/browse/ASTERISK-13145] を参照)。
[[AUR]] から {{AUR|asterisk}} をインストールして、{{ic|asterisk.service}} を使ってサーバーを[[起動]]してください。
 
   
  +
インストールしたら {{ic|asterisk.service}} でサーバーを[[起動]]してください。
{{aur-mirror|asterisk-addons}} や {{AUR|zaptel-svn}} もインストールすると良いかもしれません。また、SIP [[アプリケーション一覧/インターネット#VoIP / ソフトフォン|ソフトフォン]]と最低2つのマシンが必要です。SIP フォンとしては[[公式リポジトリ]]の [http://www.linphone.org/ linphone] ({{Pkg|linphone}}) や [[AUR]] の [http://www.xten.net/index.php?menu=X-Series x-lite] ({{AUR|xlite_bin}}) が推奨されます。
 
   
  +
SIP [[アプリケーション一覧/インターネット#VoIP / ソフトフォン|ソフトフォン]]と最低2つのマシンが必要です。SIP フォンとしては [http://www.linphone.org/ linphone] ({{AUR|linphone-desktop-all}}) や [http://www.counterpath.com/x-lite/ X-Lite] ({{AUR|xlite_bin}}) が推奨されます。
ilbc コーデックのサポートを有効にするには PKGBUILD の build セクションの最初に以下を追加してください:
 
  +
{{bc|<nowiki> cd ${srcdir}/${pkgname}-${pkgver}/contrib/scripts
 
  +
ilbc コーデックのサポートを有効にするには PKGBUILD の {{ic|build}} セクションの冒頭に以下を追加してください:
echo | ./get_ilbc_source.sh</nowiki>}}
 
  +
{{bc|<nowiki>
  +
cd ${srcdir}/${pkgname}-${pkgver}/contrib/scripts
  +
echo | ./get_ilbc_source.sh
  +
</nowiki>}}
   
 
==設定==
 
==設定==
52行目: 56行目:
 
[default]
 
[default]
 
mode=files
 
mode=files
directory=/var/lib/asterisk/mohmp3
+
directory=mohmp3
}}
 
Now go into your sip.conf
 
{{bc|1=
 
musiconhold=default
 
 
}}
 
}}
   
84行目: 84行目:
 
上記の場合、'Me' というユーザー名でメールアドレスが me@mydomain.com、パスワードが 1234 のメールボックス 100 が設定されます。
 
上記の場合、'Me' というユーザー名でメールアドレスが me@mydomain.com、パスワードが 1234 のメールボックス 100 が設定されます。
   
次にこのボイスメールにメッセージを残す方法と、れにアクセスする方法が必要です。このため、{{ic|extensions.conf}} に戻、既存のエントリを次のように変更します。
+
それから、ボイスメールボックスにメッセージを残す方法と、記録さたメッセージにアクセスする手段を用意する必要があります。
  +
  +
{{ic|extensions.conf}} に戻り、既存のエントリを次のように変更します:
 
exten => 100,1,Dial(SIP/me1,20)
 
exten => 100,1,Dial(SIP/me1,20)
 
exten => 100,2,Voicemail(100@default)
 
exten => 100,2,Voicemail(100@default)
'exten' の1行目'Dial()'して20秒間電話を呼び出します。
+
最初の 'exten' は 'Dial()'20秒間電話を呼び出します。応答がない場合、default コンテキストの 100 番のボイスメールボックスに転送します。
もし、応答しない場合、defaultコンテキストの 100番のボイスメールボックスに向かいます。
 
   
に以下のように設定して実際にあなたのボイスメールにアクセスます
+
さらに以下のように設定することで実際にボイスメールにアクセスすることができます:
 
exten => 600,1,VoiceMailMain,s100@default
 
exten => 600,1,VoiceMailMain,s100@default
  +
So when we call 600, the application 'VoiceMailMain' goes to 100 in the default context. The {{Ic|s}} allows for automatic login.
 
  +
600 番を呼び出すと、'VoiceMailMain' アプリケーションは default コンテキストの 100 番に行きます。{{Ic|s}} で自動ログインが許可されます。
   
 
{{Note|The 'VoiceMail' applications have a significant amount of options, so it is suggested reading over some additional documentation. This is just for a basic, home use setup. Also note that it is generally a good idea to use extensions higher then your users extensions for accessing 'VoiceMail'. This way someone dialing 208 does not hit someone's voice-mail at 205.}}
 
{{Note|The 'VoiceMail' applications have a significant amount of options, so it is suggested reading over some additional documentation. This is just for a basic, home use setup. Also note that it is generally a good idea to use extensions higher then your users extensions for accessing 'VoiceMail'. This way someone dialing 208 does not hit someone's voice-mail at 205.}}
   
 
===PSTN に接続===
 
===PSTN に接続===
  +
ここまで設定できたら、次は外線と繋ぎましょう。[https://www.onsip.com/ OnSIP] などのプロバイダが必要です。asterisk に接続する手順がプロバイダによって用意されているかもしれないため、このセクションは共通のことだけ記述します。
Now that you have the previous setup, it is time to actually connect to the outside world. To do this, you will need a provider such as [http://pstn.junctionnetworks.com/ Junction Networks]. Your provider should have instructions on connecting to asterisk, so this section is very general.
 
   
 
====一般的なセットアップ====
 
====一般的なセットアップ====
131行目: 133行目:
 
}}
 
}}
   
  +
*outbound コンテキストでは、ダイアルした番号を全てサービスプロバイダに送信します。2 の 'whatever' は {{ic|sip.conf}} の設定と一致させる必要があります。
*In the outbound context, any number dialed will be sent out to your service provider. The 'whatever' in the 2 priority should match what you have in your sip.conf.
 
 
*Of course, the inbound dial-plan can be modified to do what you want. For instance, you can have {{Ic|Dial(SIP/me1)}} so when someone calls your number they are routed to your SIP phone on your computer. Then add in voice-mail and so on.
 
*Of course, the inbound dial-plan can be modified to do what you want. For instance, you can have {{Ic|Dial(SIP/me1)}} so when someone calls your number they are routed to your SIP phone on your computer. Then add in voice-mail and so on.
   
137行目: 139行目:
 
The first step is to log into FWD and enable their side of IAX. It is under extra features, and keep in mind that the authors claim it takes a little while to activate.
 
The first step is to log into FWD and enable their side of IAX. It is under extra features, and keep in mind that the authors claim it takes a little while to activate.
   
Now edit your iax.conf with the following in the 'general' section:
+
そして {{ic|iax.conf}} 'general' セクションを以下のように編集:
 
{{bc|1=
 
{{bc|1=
 
register => FWDNUMBER:PASSWORD@iax2.fwdnet.net
 
register => FWDNUMBER:PASSWORD@iax2.fwdnet.net
144行目: 146行目:
 
}}
 
}}
   
  +
そして末尾に以下を追加:
And at the bottom add:
 
 
{{bc|1=
 
{{bc|1=
 
[iaxfwd]
 
[iaxfwd]
156行目: 158行目:
   
 
=====extensions.conf=====
 
=====extensions.conf=====
  +
'[globals]' の一番上に以下を記述:
Place this at the top under '[globals]':
 
 
{{bc|1=
 
{{bc|1=
 
FWDNUMBER=MYFWDNUMBER ; your calling number
 
FWDNUMBER=MYFWDNUMBER ; your calling number
217行目: 219行目:
 
999 にダイアルすることで会議 1000 に入ることができます。{{Ic|<nowiki>|M</nowiki>}} を設定することで誰もいないときは保留音が鳴ります。誰かが会議に参加すると保留音は自動的に消えます。
 
999 にダイアルすることで会議 1000 に入ることができます。{{Ic|<nowiki>|M</nowiki>}} を設定することで誰もいないときは保留音が鳴ります。誰かが会議に参加すると保留音は自動的に消えます。
   
  +
{{Note|MeetMe を使うには zaptel パッケージが必要です。asterisk を起動する前にインストールして {{Ic|modprobe ztdummy}} を実行してください。それによって TDM が利用できるようになります。}}
{{Note|You ''must'' have the zaptel package in order for MeetMe to work. Install it and run {{Ic|modprobe ztdummy}} before running asterisk. This provides digium timing for us without cards so we can utilize TDM.}}
 
   
 
==Asterisk コンソールとソフトフォン==
 
==Asterisk コンソールとソフトフォン==
  +
Asterisk を立ち上げてください:
Now lets get Asterisk going:
 
 
# asterisk -vvvvvvc
 
# asterisk -vvvvvvc
  +
This will give us the Asterisk CLI with verbose output. If Asterisk is already running you will need to use:
 
  +
詳細な出力がされる Asterisk CLI が立ち上がります。
  +
  +
Asterisk が既に起動している場合、以下のコマンドを実行:
 
# asterisk -r
 
# asterisk -r
  +
Now fire up your SIP clients and set them up with the information in the sip.conf. Switch back to your Asterisk CLI and you should see:
 
  +
SIP クライアントを起動して {{ic|sip.conf}} の情報にあわせて設定してください。Asterisk CLI に戻って以下のように表示されることを確認:
 
Registered SIP 'me1' at 192.168.0.142 port 5061 expires 60
 
Registered SIP 'me1' at 192.168.0.142 port 5061 expires 60
   
Now you should be able to dial {{Ic|101}} from {{Ic|me1}} and talk to {{Ic|me2}}.
+
これで {{Ic|me1}} から {{Ic|101}} にダイアルして {{Ic|me2}} と会話できるはずです。
   
 
==トラブルシューティング==
 
==トラブルシューティング==

2020年2月2日 (日) 09:53時点における版

Asterisk は完全な PBX (電話交換機) ソフトウェアです。Linux, BSD, Windows, macOS などで動作し、PBX が通常備えている機能は全て含まれています。Asterisk は4つのプロトコルによる VoIP ができ、比較的安価なハードウェアでほぼ全ての規格の電話装置と一緒に使うことが可能です。

Asterisk はボイスメールサービス、電話帳、電話会議、自動音声応答、コールキューイングを実現します。また、三者通話、発信者番号通知サービス、ADSI、IAX、SIP、H.323 (クライアントとゲートウェイの両方)、MGCP (コールマネージャのみ)、SCCP/Skinny をサポートしています。

この記事では家庭ネットワークにおけるシンプルな設定を説明し、SIP ソフトフォンを使って LAN 上の他の SIP ソフトフォンと会話できるようにします。

インストール

asteriskAUR パッケージをインストールしてください。Cisco の IP 電話を使用する場合はパッチが適用されている asterisk-ciscoAUR パッケージを使うことが推奨されます (https://issues.asterisk.org/jira/browse/ASTERISK-13145 を参照)。

インストールしたら asterisk.service でサーバーを起動してください。

SIP ソフトフォンと最低2つのマシンが必要です。SIP フォンとしては linphone (linphone-desktop-allAUR) や X-Lite (xlite_binAUR) が推奨されます。

ilbc コーデックのサポートを有効にするには PKGBUILD の build セクションの冒頭に以下を追加してください:

cd ${srcdir}/${pkgname}-${pkgver}/contrib/scripts
echo | ./get_ilbc_source.sh

設定

SIP

asterisk サーバーを動かしたら、後は2つのファイルを編集すれば設定できます: sip.confextensions.conf。asterisk の設定ディレクトリ (/etc/asterisk) に移動して、sip.conf を編集して以下を記述してください:

[me1]
type=friend
username=me1
secret=PASSWORD
host=dynamic
context=house

[me2]
type=friend
username=me2
secret=PASSWORD
host=dynamic
context=house

これで house コンテキストに二人の SIP ユーザー me1me2 が作成されます。パスワードは PASSWORD です。

次にコンテキストを定義します。extensions.conf を以下のように編集:

[house]
exten => 100,1,Dial(SIP/me1)

exten => 101,1,Dial(SIP/me2)

これでコンテキスト house が作成され SIP ユーザー me1 にエクステンション 100 が、SIP ユーザー me2 にエクステンション 101 が割り当てられます。後は実際に動作するか確認するだけです。

保留音

保留音はとても楽しい機能です。簡単に設定することができます。/etc/asterisk/musiconhold.conf を編集して以下を追加してください:

[default]
mode=files
directory=mohmp3

後はお気に入りの MP3 を /var/lib/asterisk/mohmp3 にコピーしてください。

ボイスメール

Asterisk にはボイスメール機能が存在します。設定する方法は多数ありますが、この記事ではシンプルな設定方法だけを紹介します。

voicemail.conf を作成・編集:

[general]
format=gsm|wav49|wav
serveremail=asterisk
attach=no
mailcmd=/usr/sbin/sendmail -t
maxmessage=180
maxgreet=60

[default]
100 => 1234,Me,me@mydomain.com

[general] の設定の内容は こちら を見て下さい。Postfix が正しくセットアップされていれば PBX からメールの通知がユーザーに送信され、attach=yes と定義されている場合、メールに音声ファイルが添付されます。

次にメールボックスの設定です。フォーマットは:

mailbox => password,user,email

上記の場合、'Me' というユーザー名でメールアドレスが me@mydomain.com、パスワードが 1234 のメールボックス 100 が設定されます。

それから、ボイスメールボックスにメッセージを残す方法と、記録されたメッセージにアクセスする手段を用意する必要があります。

extensions.conf に戻り、既存のエントリを次のように変更します:

exten => 100,1,Dial(SIP/me1,20)
exten => 100,2,Voicemail(100@default)

最初の 'exten' は 'Dial()' で20秒間電話を呼び出します。応答がない場合、default コンテキストの 100 番のボイスメールボックスに転送します。

さらに以下のように設定することで実際にボイスメールにアクセスすることができます:

exten => 600,1,VoiceMailMain,s100@default

600 番を呼び出すと、'VoiceMailMain' アプリケーションは default コンテキストの 100 番に行きます。s で自動ログインが許可されます。

ノート: The 'VoiceMail' applications have a significant amount of options, so it is suggested reading over some additional documentation. This is just for a basic, home use setup. Also note that it is generally a good idea to use extensions higher then your users extensions for accessing 'VoiceMail'. This way someone dialing 208 does not hit someone's voice-mail at 205.

PSTN に接続

ここまで設定できたら、次は外線と繋ぎましょう。OnSIP などのプロバイダが必要です。asterisk に接続する手順がプロバイダによって用意されているかもしれないため、このセクションは共通のことだけ記述します。

一般的なセットアップ

sip.conf
[general]
register => username:password@sip.specific.com

[whatever]                   
fromdomain=specific.com     
host=sip.specific.com
insecure=very    ; check with provider
username=usernameduh
secret=passwordduh
type=peer
extensions.conf
[outboundwithCID]  ; this can be whatever
exten => _1NXXNXXXXXX,1,SetCIDNum(15555551234)
exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@whatever)
exten => _1NXXNXXXXXX,3,Congestion()
exten => _1NXXNXXXXXX,103,Busy()

[default]  ; This should be set in your sip.conf for incoming calls

;These should to be changed to your actual number
; ie     15555555555
exten => 1NXXNXXXXXX,1,Answer()
exten => 1NXXNXXXXXX,2,Playback(ttt-weasels)
exten => 1NXXNXXXXXX,3,HangUp()
  • outbound コンテキストでは、ダイアルした番号を全てサービスプロバイダに送信します。2 の 'whatever' は sip.conf の設定と一致させる必要があります。
  • Of course, the inbound dial-plan can be modified to do what you want. For instance, you can have Dial(SIP/me1) so when someone calls your number they are routed to your SIP phone on your computer. Then add in voice-mail and so on.
iax.conf

The first step is to log into FWD and enable their side of IAX. It is under extra features, and keep in mind that the authors claim it takes a little while to activate.

そして iax.conf の 'general' セクションを以下のように編集:

register => FWDNUMBER:PASSWORD@iax2.fwdnet.net 
disallow = all
allow = ulaw

そして末尾に以下を追加:

[iaxfwd]
type=user
context=fromiaxfwd
auth=rsa
inkeys=freeworlddialup

This allows calls from FWD.

extensions.conf

'[globals]' の一番上に以下を記述:

FWDNUMBER=MYFWDNUMBER ; your calling number
FWDCIDNAME="MyName"; your caller id
FWDPASSWORD=MYFWDPASSWORD ; your password
FWDRINGS=sip/office ; the phone to ring
FWDVMBOX=1000 ; the VM box for this user

Next, add this to a context for outgoing:

exten => _393.,1,SetCallerId,${FWDCIDNAME}
exten => _393.,2,Dial(IAX2/${FWDNUMBER}:${FWDPASSWORD}@iax2.fwdnet.net/${EXTEN:3},60,r)
exten => _393.,3,Congestion

You can change the '393' to whatever you want. This is what you will dial before dialing a 'fwd' number. For instance, to dial '744561' you would dial '393744561'.

And lastly, the incoming calls:

[fromiaxfwd]
exten => ${FWDNUMBER},1,Dial(${FWDRINGS},20,r)
exten => ${FWDNUMBER},2,Voicemail,u${FWDVMBOX}
exten => ${FWDNUMBER},102,Voicemail,b${FWDVMBOX}
ノート: If you have problems try removing the variables from extensions.conf. These instructions are from FWD's site and I have not been tested by this article's author.

Extensions to try calling are 55555 (a volunteer maned test line) and 514 (conference).

音声

音声は /var/lib/asterisk/xx フォルダに保存します。xx は言語コードです。例えば英語なら "en" になります。新しい音声を追加したいときはこのフォルダにコピーしてください。以下のフォルダ構造を守って下さい:

/var/lib/asterisk/sounds/xx
/var/lib/asterisk/sounds/xx/digits
/var/lib/asterisk/sounds/xx/letters
/var/lib/asterisk/sounds/xx/phonetic

sip.conf の language パラメータを編集してください:

[general]
...
language=en
...

音声が入手できる場所:

MeetMe

MeetMe は電話会議をできるようにするアプリケーションです。設定は簡単です。

meetme.conf を編集:

conf => 1000

extensions.conf を編集:

exten => 999,1,MeetMe(1000|M)

999 にダイアルすることで会議 1000 に入ることができます。|M を設定することで誰もいないときは保留音が鳴ります。誰かが会議に参加すると保留音は自動的に消えます。

ノート: MeetMe を使うには zaptel パッケージが必要です。asterisk を起動する前にインストールして modprobe ztdummy を実行してください。それによって TDM が利用できるようになります。

Asterisk コンソールとソフトフォン

Asterisk を立ち上げてください:

# asterisk -vvvvvvc

詳細な出力がされる Asterisk CLI が立ち上がります。

Asterisk が既に起動している場合、以下のコマンドを実行:

# asterisk -r

SIP クライアントを起動して sip.conf の情報にあわせて設定してください。Asterisk CLI に戻って以下のように表示されることを確認:

Registered SIP 'me1' at 192.168.0.142 port 5061 expires 60

これで me1 から 101 にダイアルして me2 と会話できるはずです。

トラブルシューティング

404 Not Found エラーが表示される場合は extensions.conf とダイアルした電話番号を確認してください。