<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://www.voip-info.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Takatyan</id>
	<title>VoIP-Info.jp - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="http://www.voip-info.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Takatyan"/>
	<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Takatyan"/>
	<updated>2026-05-03T13:36:06Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12427</id>
		<title>Asterisk on Docker</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12427"/>
		<updated>2025-09-07T03:40:03Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Asterisk 22]]をDockerで動かそう！&amp;lt;br/&amp;gt;&lt;br /&gt;
Dockerとは、コンテナ仮想化のためのプラットフォームです。&lt;br /&gt;
&lt;br /&gt;
Asteriskには公式のDockerイメージがないようです。&lt;br /&gt;
インターネットを探すと、有志が構築したイメージやDockerfileがありますが、古かったり、マルチステージビルドでなく最終イメージのサイズが大きかったりして、良さそうなものがなかったので、独自のDockerfileを作成しました。&lt;br /&gt;
&lt;br /&gt;
Linuxで、x86_64のマシンで試しています。[[Opusコーデック]]がARM非対応のため、ARMは試しておりません。&lt;br /&gt;
&lt;br /&gt;
==イメージをビルドする==&lt;br /&gt;
次のDockerfileとdocker-entrypoint.shを用意します。&lt;br /&gt;
&lt;br /&gt;
===Dockerfile===&lt;br /&gt;
このDockerfileは、[[Opusコーデック]]を使用しています。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;FROM debian:bookworm-slim AS base&lt;br /&gt;
&lt;br /&gt;
RUN echo &amp;quot;APT::Install-Recommends 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; echo &amp;quot;APT::Install-Suggests 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get update -qq \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install readline-common uuid libxml2 libsqlite3-0 libssl3 net-tools dnsutils ca-certificates curl xmlstarlet \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
FROM base AS build&lt;br /&gt;
ARG asterisk_version=22.5.1&lt;br /&gt;
ENV TZ Asia/Tokyo&lt;br /&gt;
WORKDIR /build&lt;br /&gt;
RUN apt-get update \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install build-essential libedit-dev uuid-dev pkg-config libxml2-dev libsqlite3-dev sqlite3 libssl-dev net-tools dnsutils \&lt;br /&gt;
\&lt;br /&gt;
 &amp;amp;&amp;amp; curl http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${asterisk_version}.tar.gz | tar xfz - \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /build/asterisk-${asterisk_version} \&lt;br /&gt;
 &amp;amp;&amp;amp; ./configure --with-jansson-bundled \&lt;br /&gt;
 &amp;amp;&amp;amp; make menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; menuselect/menuselect --enable codec_opus --enable CORE-SOUNDS-EN-WAV --disable CORE-SOUNDS-EN-GSM menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; make -j$(nproc) \&lt;br /&gt;
 &amp;amp;&amp;amp; make install \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives \&lt;br /&gt;
 &amp;amp;&amp;amp; cd / &amp;amp;&amp;amp; tar cfz libasterisk.tar.gz usr/lib/libasteriskpj.* usr/lib/libasteriskssl.*&lt;br /&gt;
&lt;br /&gt;
FROM base&lt;br /&gt;
RUN mkdir /usr/lib/asterisk&lt;br /&gt;
COPY --from=build /usr/lib/asterisk/modules /usr/lib/asterisk/modules&lt;br /&gt;
COPY --from=build /usr/sbin/astcanary /usr/sbin/astdb2bdb /usr/sbin/astdb2sqlite3 /usr/sbin/asterisk /usr/sbin/astversion /usr/sbin/astgenkey /usr/sbin/autosupport /usr/sbin/&lt;br /&gt;
COPY --from=build /usr/sbin/rasterisk /usr/sbin/safe_asterisk /usr/sbin/&lt;br /&gt;
COPY --from=build /var/lib/asterisk /var/lib/asterisk_orig&lt;br /&gt;
COPY --from=build /var/spool/asterisk /var/spool/asterisk_orig&lt;br /&gt;
COPY --from=build /libasterisk.tar.gz /libasterisk.tar.gz&lt;br /&gt;
RUN tar xf /libasterisk.tar.gz \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /var/lib/asterisk/sounds \&lt;br /&gt;
 &amp;amp;&amp;amp; curl -o core-sound-ja.tgz -L https://github.com/takao-t/asterisk-sound-ja/raw/refs/heads/master/core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; tar xf core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -f core-sound-ja.tgz&lt;br /&gt;
&lt;br /&gt;
ADD docker-entrypoint.sh /&lt;br /&gt;
RUN [&amp;quot;chmod&amp;quot;, &amp;quot;755&amp;quot;, &amp;quot;docker-entrypoint.sh&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
WORKDIR /&lt;br /&gt;
ENTRYPOINT [&amp;quot;./docker-entrypoint.sh&amp;quot;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===docker-compose.sh===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ -d &amp;quot;/var/spool/asterisk&amp;quot; ]; then&lt;br /&gt;
  # フォルダ構成だけでもコピー　ファイルは上書きしない&lt;br /&gt;
  cp -r -n /var/spool/asterisk_orig/* /var/spool/asterisk&lt;br /&gt;
fi&lt;br /&gt;
if [ ! -e &amp;quot;/var/lib/asterisk/astdb.sqlite3&amp;quot; ]; then&lt;br /&gt;
  # astdb.sqlite3がないということは初回の起動またはマウントされてない&lt;br /&gt;
  if [ -d &amp;quot;/var/lib/asterisk&amp;quot; ]; then&lt;br /&gt;
    # フォルダはある。初回起動&lt;br /&gt;
    cp -r -n /var/lib/asterisk_orig/* /var/lib/asterisk&lt;br /&gt;
  else&lt;br /&gt;
    # フォルダもない。マウントされてない。リネームで対応&lt;br /&gt;
    mv /var/lib/asterisk_org /var/lib/asterisk&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exec /usr/sbin/asterisk -f&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/var/lib/asteriskにastdb.sqlite3がなければ初回起動として、ファイルをコピーします。&lt;br /&gt;
&lt;br /&gt;
===ビルド===&lt;br /&gt;
 docker build --build-arg asterisk_version=22.5.1 -t asterisk:22.5.1 .&lt;br /&gt;
&lt;br /&gt;
このイメージはビルドすると409MB程度となります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==イメージを起動する==&lt;br /&gt;
設定ファイルは別途用意してください。&lt;br /&gt;
&lt;br /&gt;
通常、Dockerでイメージを起動する場合、ネットワークはbridgeネットワークを用い、-pオプションでポートを指定しますが、Asteriskでbridgeネットワークを使用すると、UDPポートでの通信がうまく行かなかったため、--network hostを使い、直接Dockerホストのポートで待ち受けをさせます。&lt;br /&gt;
&lt;br /&gt;
例えば、設定ファイルは&#039;&#039;&#039;./asterisk-conf&#039;&#039;&#039;、ログファイルは&#039;&#039;&#039;./asterisk-log&#039;&#039;&#039;に配置、更に、astdb.sqlite3を含むastvarlibdir、録音ファイルや留守番電話のastspooldirをボリュームマウントする場合、次のように起動します。&lt;br /&gt;
&lt;br /&gt;
 docker run -d --name asterisk --rm --network host -v $(pwd)/asterisk-conf:/etc/asterisk:ro -v $(pwd)/asterisk-log:/var/log/asterisk:rw -v $(pwd)/asterisk-spool:/var/spool/asterisk:rw -v $(pwd)/asterisk-lib:/var/lib/asterisk:rw asterisk:22.5.1&lt;br /&gt;
&lt;br /&gt;
特に問題なく動けばOKです。&lt;br /&gt;
&lt;br /&gt;
==Asterisk CLIに入る==&lt;br /&gt;
 docker exec -it asterisk asterisk -vvvvcr&lt;br /&gt;
&lt;br /&gt;
で入れます。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunk_@nifty%E3%83%95%E3%82%A9%E3%83%B3-C&amp;diff=12426</id>
		<title>Asterisk pjsip trunk @niftyフォン-C</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunk_@nifty%E3%83%95%E3%82%A9%E3%83%B3-C&amp;diff=12426"/>
		<updated>2025-09-04T03:40:24Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: Asterisk 22の情報追加、他アップデート。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:Pjsip]]&lt;br /&gt;
[[カテゴリ:ITSP]]&lt;br /&gt;
== [http://ipphone.nifty.com/niftyphone/c @niftyフォン-C]とは ==&lt;br /&gt;
&lt;br /&gt;
インターネットサービスプロバイダ「@nifty」の提供するIP電話サービスで、050番のIP電話の1つです。&amp;lt;BR&amp;gt;&lt;br /&gt;
NTTコミュニケーションズの基盤を利用しています([http://ipphone.nifty.com/niftyphone/c/kiyaku/index.htm @niftyフォン-Cの利用規約] 第1条 第1項)。&lt;br /&gt;
&lt;br /&gt;
== 特徴 ==&lt;br /&gt;
&lt;br /&gt;
=== メリット ===&lt;br /&gt;
* @niftyの接続サービスを利用していれば(@niftyをプロバイダとして利用しているだけでもOK)&#039;&#039;&#039;基本料金0円&#039;&#039;&#039;で維持費がユニバーサルサービス料のみ。&lt;br /&gt;
* 同じくNTTコミュニケーションズの基盤を利用する、050plus等のIP電話への通話料が無料。&lt;br /&gt;
* Asteriskに収容可能(&#039;&#039;&#039;重要&#039;&#039;&#039;、ただし非公式)。&lt;br /&gt;
* 2025年8月現在でも(@niftyの接続サービスを利用していれば)新規申し込み可能。&lt;br /&gt;
* 携帯電話から発信するよりは、通話料は安い。&lt;br /&gt;
&lt;br /&gt;
=== デメリット ===&lt;br /&gt;
* 050IP電話の需要は減少傾向らしくサービスの継続性に疑問がある。&lt;br /&gt;
* @niftyの接続サービスにロックインされ、他の事業者に番号を持ち運べない。&lt;br /&gt;
* 110, 119等1XY 特番、0120, 0570等0AB0 特番には発信できない。&lt;br /&gt;
* 2024年よりNTTの固定電話の発信も全国一律料金となり、050IP電話も通話料金が安いとは今や言えなくなっている。&lt;br /&gt;
&lt;br /&gt;
== Asterisk 22 ==&lt;br /&gt;
&lt;br /&gt;
Asterisk 16から設定を変更せずとも発着信可能(2025年8月)&lt;br /&gt;
&lt;br /&gt;
== Asterisk 16 ==&lt;br /&gt;
&lt;br /&gt;
以下の設定で発着信可能(2020年8月)&lt;br /&gt;
&lt;br /&gt;
=== pjsip.conf ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; 050NNNNNNNN は@niftyフォン-Cの050電話番号&lt;br /&gt;
; ABCDEFGHIはVoIPユーザ ID&lt;br /&gt;
; abcdefghiはVoIPユーザパスワード&lt;br /&gt;
; v???NN.nifty.comはVoIPサーバ名(SIPサーバアドレス、REGISTERサーバアドレス)&lt;br /&gt;
; nifty.comはSIP-URL(SIPドメイン名)&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=aor&lt;br /&gt;
contact=sip:ABCDEFGHI@v???NN.nifty.com&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=identify&lt;br /&gt;
endpoint=atniftyphone&lt;br /&gt;
match=v???NN.nifty.com&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=auth&lt;br /&gt;
auth_type=userpass&lt;br /&gt;
username=ABCDEFGHI&lt;br /&gt;
password=abcdefghi&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=registration&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
outbound_auth=atniftyphone&lt;br /&gt;
contact_user=050NNNNNNNN&lt;br /&gt;
server_uri=sip:v???NN.nifty.com&lt;br /&gt;
client_uri=sip:050NNNNNNNN@nifty.com&lt;br /&gt;
retry_interval=60&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=endpoint&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
context=from-atniftyphone&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=ulaw&lt;br /&gt;
dtmf_mode=inband&lt;br /&gt;
direct_media=no&lt;br /&gt;
send_pai=yes&lt;br /&gt;
inband_progress=no&lt;br /&gt;
outbound_auth=atniftyphone&lt;br /&gt;
from_user=050NNNNNNNN&lt;br /&gt;
from_domain=nifty.com&lt;br /&gt;
aors=atniftyphone&lt;br /&gt;
language=ja ; お好みで&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== extensions.conf ===&lt;br /&gt;
&lt;br /&gt;
一例です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; 発信&lt;br /&gt;
[default]&lt;br /&gt;
exten =&amp;gt; _0.,1,Dial(PJSIP/${EXTEN}@atniftyphone)&lt;br /&gt;
same  =&amp;gt;     n,Congestion&lt;br /&gt;
same  =&amp;gt;     n,Hangup&lt;br /&gt;
&lt;br /&gt;
; 着信&lt;br /&gt;
[globals]&lt;br /&gt;
ATNIFTYPHONENUMBER=050NNNNNNNN&lt;br /&gt;
&lt;br /&gt;
[from-atniftyphone]&lt;br /&gt;
exten =&amp;gt; ${ATNIFTYPHONENUMBER},1,Dial(.....) ; 着信先を設定する&lt;br /&gt;
same  =&amp;gt; n,Congestion&lt;br /&gt;
same  =&amp;gt; n,Hangup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 確認 ===&lt;br /&gt;
[[Asterisk CLI]]で&amp;lt;code&amp;gt;pjsip registrations show&amp;lt;/code&amp;gt;を実行し、次のようにRegisteredと表示されればOK&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;Registration/ServerURI..............................&amp;gt;  &amp;lt;Auth....................&amp;gt;  &amp;lt;Status.......&amp;gt;&lt;br /&gt;
==========================================================================================&lt;br /&gt;
&lt;br /&gt;
 atniftyphone/sip:v???NN.nifty.com                       atniftyphone                Registered        (exp. 1740s)&lt;br /&gt;
&lt;br /&gt;
Objects found: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(上記はAsterisk 22の表示です)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;Unregistered&#039;&#039;の場合はしばらく待つ。&#039;&#039;Rejected&#039;&#039;の場合は、設定間違いまたは、下記注意点を参照。&lt;br /&gt;
&lt;br /&gt;
=== 注意点 ===&lt;br /&gt;
@niftyフォン-CはPPPoE接続経由でのアクセスが必須？のようであり、IPv4 over IPv6技術を利用したv6プラスやOCNバーチャルコネクト経由では使用できませんので、PPPoE接続を併用するなどの工夫が必要となります。&lt;br /&gt;
&lt;br /&gt;
@niftyフォン-Cはqualifyには非対応のようで、qualify_frequency、authenticate_qualifyを設定するとうまくいきませんのでご注意ください。&lt;br /&gt;
&lt;br /&gt;
また、@niftyフォン-Cのサーバーには、過剰なREGISTERを拒否する仕組みがあるようで、Asteriskの再起動を繰り返すなどしてREGISTERが繰り返されると、REGISTERを拒否されることがあるようです(上記確認で&#039;&#039;Rejected&#039;&#039;と表示される)。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_Startup_systemd&amp;diff=12425</id>
		<title>Asterisk Startup systemd</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_Startup_systemd&amp;diff=12425"/>
		<updated>2025-09-02T10:39:28Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
systemdは2010年頃から、それまでのSystem V initに代わって導入された、システム・サービスマネージャです。&lt;br /&gt;
&lt;br /&gt;
Asteriskは16頃から、systemdとの連携に対応しており、systemdと連携することにより、Asteriskの起動成功をsystemdに報告することができます。&lt;br /&gt;
:参考：https://github.com/asterisk/asterisk/commit/07b95f7c65b7c083724f1af2b26f93cc22cad58c&lt;br /&gt;
&lt;br /&gt;
==systemd連携を利用する==&lt;br /&gt;
&lt;br /&gt;
configureを実行する前に、Debian系列ではlibsystemd-dev、RedHatの系列ではsystemd-develをインストールしておきます。&lt;br /&gt;
その後Asteriskをビルドします。&lt;br /&gt;
&lt;br /&gt;
ビルドが済んだasteriskの実行ファイルにlddを実行し、libsystemdへのリンクが表示されれば、systemdと連携するAsteriskがビルドできています。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$ ldd /usr/sbin/asterisk&lt;br /&gt;
(略)&lt;br /&gt;
	libsystemd.so.0 =&amp;gt; /lib64/libsystemd.so.0 (0x00007fe58cda0000)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
現在では、&amp;lt;code&amp;gt;make config&amp;lt;/code&amp;gt;でインストールされるsystemdユニットファイルはsystemdとの連携を利用する形式になっています。&lt;br /&gt;
&lt;br /&gt;
==systemdと連携しない場合==&lt;br /&gt;
&lt;br /&gt;
systemdとの連携機能を使用せず、単にsystemdにAsteriskを起動するだけをさせたい場合、以下の内容で /etc/systemd/system/asterisk.service ファイルを作成します。&amp;lt;br&amp;gt;&lt;br /&gt;
:出所 https://community.asterisk.org/t/solved-centos-7-compatible-init-d-or-systemd-script-for-asterisk-13/66359&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Asterisk PBX and telephony daemon&lt;br /&gt;
 Documentation=man:asterisk(8)&lt;br /&gt;
 Wants=network.target&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 #User=asterisk&lt;br /&gt;
 #Group=asterisk&lt;br /&gt;
 Environment=HOME=/var/lib/asterisk&lt;br /&gt;
 WorkingDirectory=/var/lib/asterisk&lt;br /&gt;
 ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf&lt;br /&gt;
 ExecStop=/usr/sbin/asterisk -rx &#039;core stop now&#039;&lt;br /&gt;
 ExecReload=/usr/bin/asterisk -rx &#039;core reload&#039;&lt;br /&gt;
 &lt;br /&gt;
 # safe_asterisk emulation&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=10&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
User/Groupをasteriskにする場合にはコメントを外してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==起動と終了==&lt;br /&gt;
以下を実行して起動します。&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl enable&lt;br /&gt;
 systemctl start asterisk&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox/Asterisk_on_Docker&amp;diff=12424</id>
		<title>利用者:Takatyan/sandbox/Asterisk on Docker</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox/Asterisk_on_Docker&amp;diff=12424"/>
		<updated>2025-09-01T03:59:12Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: Takatyan がページ「利用者:Takatyan/sandbox/Asterisk on Docker」を「Asterisk on Docker」に移動しました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#転送 [[Asterisk on Docker]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12423</id>
		<title>Asterisk on Docker</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12423"/>
		<updated>2025-09-01T03:59:12Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: Takatyan がページ「利用者:Takatyan/sandbox/Asterisk on Docker」を「Asterisk on Docker」に移動しました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Asterisk 22]]をDockerで動かそう！&lt;br /&gt;
Dockerとは、コンテナ仮想化のためのプラットフォームです。&lt;br /&gt;
&lt;br /&gt;
Asteriskには公式のDockerイメージがないようです。&lt;br /&gt;
インターネットを探すと、有志が構築したイメージやDockerfileがありますが、古かったり、マルチステージビルドでなく最終イメージのサイズが大きかったりして、良さそうなものがなかったので、独自のDockerfileを作成しました。&lt;br /&gt;
&lt;br /&gt;
Linuxで、x86_64のマシンで試しています。[[Opusコーデック]]がARM非対応のため、ARMは試しておりません。&lt;br /&gt;
&lt;br /&gt;
==Dockerfile==&lt;br /&gt;
このDockerfileは、[[Opusコーデック]]を使用しています。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;FROM debian:bookworm-slim AS base&lt;br /&gt;
&lt;br /&gt;
RUN echo &amp;quot;APT::Install-Recommends 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; echo &amp;quot;APT::Install-Suggests 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get update -qq \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install readline-common uuid libxml2 libsqlite3-0 libssl3 net-tools dnsutils ca-certificates curl xmlstarlet \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
FROM base AS build&lt;br /&gt;
ARG asterisk_version=22.5.1&lt;br /&gt;
ENV TZ Asia/Tokyo&lt;br /&gt;
WORKDIR /build&lt;br /&gt;
RUN apt-get update \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install build-essential libedit-dev uuid-dev pkg-config libxml2-dev libsqlite3-dev sqlite3 libssl-dev net-tools dnsutils \&lt;br /&gt;
\&lt;br /&gt;
 &amp;amp;&amp;amp; curl http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${asterisk_version}.tar.gz | tar xfz - \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /build/asterisk-${asterisk_version} \&lt;br /&gt;
 &amp;amp;&amp;amp; ./configure --with-jansson-bundled \&lt;br /&gt;
 &amp;amp;&amp;amp; make menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; menuselect/menuselect --enable codec_opus --enable CORE-SOUNDS-EN-WAV --disable CORE-SOUNDS-EN-GSM menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; make -j$(nproc) \&lt;br /&gt;
 &amp;amp;&amp;amp; make install \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives \&lt;br /&gt;
 &amp;amp;&amp;amp; cd / &amp;amp;&amp;amp; tar cfz libasterisk.tar.gz usr/lib/libasteriskpj.* usr/lib/libasteriskssl.*&lt;br /&gt;
&lt;br /&gt;
FROM base&lt;br /&gt;
RUN mkdir /usr/lib/asterisk&lt;br /&gt;
COPY --from=build /usr/lib/asterisk/modules /usr/lib/asterisk/modules&lt;br /&gt;
COPY --from=build /usr/sbin/astcanary /usr/sbin/astdb2bdb /usr/sbin/astdb2sqlite3 /usr/sbin/asterisk /usr/sbin/astversion /usr/sbin/astgenkey /usr/sbin/autosupport /usr/sbin/&lt;br /&gt;
COPY --from=build /usr/sbin/rasterisk /usr/sbin/safe_asterisk /usr/sbin/&lt;br /&gt;
COPY --from=build /var/lib/asterisk /var/lib/asterisk&lt;br /&gt;
COPY --from=build /libasterisk.tar.gz /libasterisk.tar.gz&lt;br /&gt;
RUN tar xf /libasterisk.tar.gz \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /var/lib/asterisk/sounds \&lt;br /&gt;
 &amp;amp;&amp;amp; curl -o core-sound-ja.tgz -L https://github.com/takao-t/asterisk-sound-ja/raw/refs/heads/master/core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; tar xf core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -f core-sound-ja.tgz&lt;br /&gt;
&lt;br /&gt;
ENTRYPOINT [&amp;quot;/usr/sbin/asterisk&amp;quot;, &amp;quot;-f&amp;quot;, &amp;quot;-C&amp;quot;, &amp;quot;/etc/asterisk/asterisk.conf&amp;quot;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==イメージをビルドする==&lt;br /&gt;
 docker build --build-arg asterisk_version=22.5.1 -t asterisk:22.5.1 .&lt;br /&gt;
&lt;br /&gt;
このイメージはビルドすると409MB程度となります。&lt;br /&gt;
&lt;br /&gt;
==イメージを起動する==&lt;br /&gt;
設定ファイルは別途用意してください。&lt;br /&gt;
&lt;br /&gt;
通常、Dockerでイメージを起動する場合、ネットワークはbridgeネットワークを用い、-pオプションでポートを指定しますが、Asteriskでbridgeネットワークを使用すると、UDPポートでの通信がうまく行かなかったため、--network hostを使い、直接Dockerホストのポートで待ち受けをさせます。&lt;br /&gt;
&lt;br /&gt;
例えば、設定ファイルは&#039;&#039;&#039;./asterisk-conf&#039;&#039;&#039;、ログファイルは&#039;&#039;&#039;./asterisk-log&#039;&#039;&#039;に配置する場合、&lt;br /&gt;
&lt;br /&gt;
 docker run -d --name asterisk --rm --network host -v $(pwd)/asterisk-conf:/etc/asterisk:ro -v $(pwd)/asterisk-log:/var/log/asterisk:rw asterisk:22.5.1&lt;br /&gt;
&lt;br /&gt;
特に問題なく動けばOKです。&lt;br /&gt;
&lt;br /&gt;
==Asterisk CLIに入る==&lt;br /&gt;
 docker exec -it asterisk asterisk -vvvvcr&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12422</id>
		<title>Asterisk on Docker</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12422"/>
		<updated>2025-09-01T03:58:53Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Asterisk 22]]をDockerで動かそう！&lt;br /&gt;
Dockerとは、コンテナ仮想化のためのプラットフォームです。&lt;br /&gt;
&lt;br /&gt;
Asteriskには公式のDockerイメージがないようです。&lt;br /&gt;
インターネットを探すと、有志が構築したイメージやDockerfileがありますが、古かったり、マルチステージビルドでなく最終イメージのサイズが大きかったりして、良さそうなものがなかったので、独自のDockerfileを作成しました。&lt;br /&gt;
&lt;br /&gt;
Linuxで、x86_64のマシンで試しています。[[Opusコーデック]]がARM非対応のため、ARMは試しておりません。&lt;br /&gt;
&lt;br /&gt;
==Dockerfile==&lt;br /&gt;
このDockerfileは、[[Opusコーデック]]を使用しています。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;FROM debian:bookworm-slim AS base&lt;br /&gt;
&lt;br /&gt;
RUN echo &amp;quot;APT::Install-Recommends 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; echo &amp;quot;APT::Install-Suggests 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get update -qq \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install readline-common uuid libxml2 libsqlite3-0 libssl3 net-tools dnsutils ca-certificates curl xmlstarlet \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
FROM base AS build&lt;br /&gt;
ARG asterisk_version=22.5.1&lt;br /&gt;
ENV TZ Asia/Tokyo&lt;br /&gt;
WORKDIR /build&lt;br /&gt;
RUN apt-get update \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install build-essential libedit-dev uuid-dev pkg-config libxml2-dev libsqlite3-dev sqlite3 libssl-dev net-tools dnsutils \&lt;br /&gt;
\&lt;br /&gt;
 &amp;amp;&amp;amp; curl http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${asterisk_version}.tar.gz | tar xfz - \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /build/asterisk-${asterisk_version} \&lt;br /&gt;
 &amp;amp;&amp;amp; ./configure --with-jansson-bundled \&lt;br /&gt;
 &amp;amp;&amp;amp; make menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; menuselect/menuselect --enable codec_opus --enable CORE-SOUNDS-EN-WAV --disable CORE-SOUNDS-EN-GSM menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; make -j$(nproc) \&lt;br /&gt;
 &amp;amp;&amp;amp; make install \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives \&lt;br /&gt;
 &amp;amp;&amp;amp; cd / &amp;amp;&amp;amp; tar cfz libasterisk.tar.gz usr/lib/libasteriskpj.* usr/lib/libasteriskssl.*&lt;br /&gt;
&lt;br /&gt;
FROM base&lt;br /&gt;
RUN mkdir /usr/lib/asterisk&lt;br /&gt;
COPY --from=build /usr/lib/asterisk/modules /usr/lib/asterisk/modules&lt;br /&gt;
COPY --from=build /usr/sbin/astcanary /usr/sbin/astdb2bdb /usr/sbin/astdb2sqlite3 /usr/sbin/asterisk /usr/sbin/astversion /usr/sbin/astgenkey /usr/sbin/autosupport /usr/sbin/&lt;br /&gt;
COPY --from=build /usr/sbin/rasterisk /usr/sbin/safe_asterisk /usr/sbin/&lt;br /&gt;
COPY --from=build /var/lib/asterisk /var/lib/asterisk&lt;br /&gt;
COPY --from=build /libasterisk.tar.gz /libasterisk.tar.gz&lt;br /&gt;
RUN tar xf /libasterisk.tar.gz \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /var/lib/asterisk/sounds \&lt;br /&gt;
 &amp;amp;&amp;amp; curl -o core-sound-ja.tgz -L https://github.com/takao-t/asterisk-sound-ja/raw/refs/heads/master/core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; tar xf core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -f core-sound-ja.tgz&lt;br /&gt;
&lt;br /&gt;
ENTRYPOINT [&amp;quot;/usr/sbin/asterisk&amp;quot;, &amp;quot;-f&amp;quot;, &amp;quot;-C&amp;quot;, &amp;quot;/etc/asterisk/asterisk.conf&amp;quot;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==イメージをビルドする==&lt;br /&gt;
 docker build --build-arg asterisk_version=22.5.1 -t asterisk:22.5.1 .&lt;br /&gt;
&lt;br /&gt;
このイメージはビルドすると409MB程度となります。&lt;br /&gt;
&lt;br /&gt;
==イメージを起動する==&lt;br /&gt;
設定ファイルは別途用意してください。&lt;br /&gt;
&lt;br /&gt;
通常、Dockerでイメージを起動する場合、ネットワークはbridgeネットワークを用い、-pオプションでポートを指定しますが、Asteriskでbridgeネットワークを使用すると、UDPポートでの通信がうまく行かなかったため、--network hostを使い、直接Dockerホストのポートで待ち受けをさせます。&lt;br /&gt;
&lt;br /&gt;
例えば、設定ファイルは&#039;&#039;&#039;./asterisk-conf&#039;&#039;&#039;、ログファイルは&#039;&#039;&#039;./asterisk-log&#039;&#039;&#039;に配置する場合、&lt;br /&gt;
&lt;br /&gt;
 docker run -d --name asterisk --rm --network host -v $(pwd)/asterisk-conf:/etc/asterisk:ro -v $(pwd)/asterisk-log:/var/log/asterisk:rw asterisk:22.5.1&lt;br /&gt;
&lt;br /&gt;
特に問題なく動けばOKです。&lt;br /&gt;
&lt;br /&gt;
==Asterisk CLIに入る==&lt;br /&gt;
 docker exec -it asterisk asterisk -vvvvcr&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12421</id>
		<title>Asterisk on Docker</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_on_Docker&amp;diff=12421"/>
		<updated>2025-08-28T06:01:12Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「Asterisk 22をDockerで動かそう！  Asteriskには公式のDockerイメージがないようです。 インターネットを探すと、有志が構築したイメージやDockerfileがありますが、古かったり、マルチステージビルドでなく最終イメージのサイズが大きかったりして、良さそうなものがなかったので、独自のDockerfileを作成しました。  Linuxで、x86_64のマシンで試しています…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Asterisk 22]]をDockerで動かそう！&lt;br /&gt;
&lt;br /&gt;
Asteriskには公式のDockerイメージがないようです。&lt;br /&gt;
インターネットを探すと、有志が構築したイメージやDockerfileがありますが、古かったり、マルチステージビルドでなく最終イメージのサイズが大きかったりして、良さそうなものがなかったので、独自のDockerfileを作成しました。&lt;br /&gt;
&lt;br /&gt;
Linuxで、x86_64のマシンで試しています。[[Opusコーデック]]がARM非対応のため、ARMは試しておりません。&lt;br /&gt;
&lt;br /&gt;
==Dockerfile==&lt;br /&gt;
このDockerfileは、[[Opusコーデック]]を使用しています。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;FROM debian:bookworm-slim AS base&lt;br /&gt;
&lt;br /&gt;
RUN echo &amp;quot;APT::Install-Recommends 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; echo &amp;quot;APT::Install-Suggests 0;&amp;quot; &amp;gt;&amp;gt; /etc/apt/apt.conf.d/01norecommends \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get update -qq \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install readline-common uuid libxml2 libsqlite3-0 libssl3 net-tools dnsutils ca-certificates curl xmlstarlet \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
FROM base AS build&lt;br /&gt;
ARG asterisk_version=22.5.1&lt;br /&gt;
ENV TZ Asia/Tokyo&lt;br /&gt;
WORKDIR /build&lt;br /&gt;
RUN apt-get update \&lt;br /&gt;
 &amp;amp;&amp;amp; apt -y install build-essential libedit-dev uuid-dev pkg-config libxml2-dev libsqlite3-dev sqlite3 libssl-dev net-tools dnsutils \&lt;br /&gt;
\&lt;br /&gt;
 &amp;amp;&amp;amp; curl http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${asterisk_version}.tar.gz | tar xfz - \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /build/asterisk-${asterisk_version} \&lt;br /&gt;
 &amp;amp;&amp;amp; NOISY_BUILD=yes ./configure --with-jansson-bundled \&lt;br /&gt;
 &amp;amp;&amp;amp; make menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; menuselect/menuselect --enable codec_opus --enable CORE-SOUNDS-EN-WAV --disable CORE-SOUNDS-EN-GSM menuselect.makeopts \&lt;br /&gt;
 &amp;amp;&amp;amp; make -j$(nproc) \&lt;br /&gt;
 &amp;amp;&amp;amp; make install \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get autoremove -y \&lt;br /&gt;
 &amp;amp;&amp;amp; apt-get clean \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists /var/cache/apt/archives \&lt;br /&gt;
 &amp;amp;&amp;amp; cd / &amp;amp;&amp;amp; tar cfz libasterisk.tar.gz usr/lib/libasteriskpj.* usr/lib/libasteriskssl.*&lt;br /&gt;
&lt;br /&gt;
FROM base&lt;br /&gt;
RUN mkdir /usr/lib/asterisk&lt;br /&gt;
COPY --from=build /usr/lib/asterisk/modules /usr/lib/asterisk/modules&lt;br /&gt;
COPY --from=build /usr/sbin/astcanary /usr/sbin/astdb2bdb /usr/sbin/astdb2sqlite3 /usr/sbin/asterisk /usr/sbin/astversion /usr/sbin/astgenkey /usr/sbin/autosupport /usr/sbin/&lt;br /&gt;
COPY --from=build /usr/sbin/rasterisk /usr/sbin/safe_asterisk /usr/sbin/&lt;br /&gt;
COPY --from=build /var/lib/asterisk /var/lib/asterisk&lt;br /&gt;
COPY --from=build /libasterisk.tar.gz /libasterisk.tar.gz&lt;br /&gt;
RUN tar xf /libasterisk.tar.gz \&lt;br /&gt;
 &amp;amp;&amp;amp; cd /var/lib/asterisk/sounds \&lt;br /&gt;
 &amp;amp;&amp;amp; curl -o core-sound-ja.tgz -L https://github.com/takao-t/asterisk-sound-ja/raw/refs/heads/master/core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; tar xf core-sound-ja.tgz \&lt;br /&gt;
 &amp;amp;&amp;amp; rm -f core-sound-ja.tgz&lt;br /&gt;
&lt;br /&gt;
ENTRYPOINT [&amp;quot;/usr/sbin/asterisk&amp;quot;, &amp;quot;-f&amp;quot;, &amp;quot;-C&amp;quot;, &amp;quot;/etc/asterisk/asterisk.conf&amp;quot;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==イメージをビルドする==&lt;br /&gt;
 docker build --build-arg asterisk_version=22.5.1 -t asterisk:22.5.1&lt;br /&gt;
&lt;br /&gt;
このイメージはビルドすると416MB程度となります。&lt;br /&gt;
&lt;br /&gt;
==イメージを起動する==&lt;br /&gt;
設定ファイルは別途用意してください。&lt;br /&gt;
&lt;br /&gt;
通常、Dockerでイメージを起動する場合、ネットワークはbridgeネットワークを用い、-pオプションでポートを指定しますが、Asteriskでbridgeネットワークを使用すると、UDPポートでの通信がうまく行かなかったため、--network hostを使い、直接Dockerホストのポートで待ち受けをさせます。&lt;br /&gt;
&lt;br /&gt;
例えば、設定ファイルは&#039;&#039;&#039;./asterisk-conf&#039;&#039;&#039;、ログファイルは&#039;&#039;&#039;./asterisk-log&#039;&#039;&#039;に配置する場合、&lt;br /&gt;
&lt;br /&gt;
 docker run -d --name asterisk --rm --network host -v $(pwd)/asterisk-conf:/etc/asterisk:ro -v $(pwd)/asterisk-log:/var/log/asterisk:rw asterisk:22.5.1&lt;br /&gt;
&lt;br /&gt;
特に問題なく動けばOKです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk&amp;diff=11867</id>
		<title>Asterisk</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk&amp;diff=11867"/>
		<updated>2024-08-14T08:46:53Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* バージョン */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Asterisk]]&lt;br /&gt;
[[Category:VoIP]]&lt;br /&gt;
==Asterisk: Open Source Communication Framework== &lt;br /&gt;
AsteriskはオープンソースのPBXでDigiumのMark Spencerによって始められました。(主に)Linuxプラットフォーム上で動作します。&amp;lt;br&amp;gt;&lt;br /&gt;
PBXというと会社内の電話やビジネスホン等を思い浮かべるのですが、Asteriskが使用されるのは、いわゆる電話の分野だけではありません。通話を繋いだり切ったり(呼制御)、通話を必要とするサービスは旧来の電話だけで使われるわけではありません。様々な音声サービスに使用できるのがAsteriskです。このため電話交換機からインターネット上の音声サービスまで様々に使用されているのがAsteriskです。&amp;lt;br&amp;gt;&lt;br /&gt;
日本でAsteriskが広く知られるようになったのは2005年頃からです。&amp;lt;br&amp;gt;&lt;br /&gt;
===対応するプロトコル===&lt;br /&gt;
*IP系&lt;br /&gt;
:SIP&lt;br /&gt;
:H.323&lt;br /&gt;
:UNISTIM&lt;br /&gt;
:IAX(Inter Asterisk eXchange)&lt;br /&gt;
:MGCP&lt;br /&gt;
:Skinny(Cisco)&lt;br /&gt;
*レガシー系&lt;br /&gt;
:BRI/PRI(ISDNボード必要)&lt;br /&gt;
:アナログ(アナログボード必要)&lt;br /&gt;
:ゲートウェイを使用することでSIP-アナログ、SIP-ISDNも、もちろん接続できます&lt;br /&gt;
===[[導入事例]]===&lt;br /&gt;
[[導入事例]]のページにサマリーをまとめてあります。&lt;br /&gt;
&lt;br /&gt;
==バージョン==&lt;br /&gt;
Asterisk 1.8まで&lt;br /&gt;
:偶数番号(1.0,1.2,1.4,1.6,1.8)がリリースバージョン&lt;br /&gt;
:奇数番号は開発バージョンで一般には公開されない&lt;br /&gt;
Asterisk 10以降&lt;br /&gt;
:11,13,16,18&lt;br /&gt;
::LTS(Long Term Support:長期サポートバージョン)&lt;br /&gt;
:10,12,14,15,17&lt;br /&gt;
::STD(Standard:標準サポートバージョン)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! バージョン !! リリース日(現地時間) !! サポート期限 !! セキュリティサポート期限 !! LTS&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 10 ||  ||  ||  || ✗&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 11 ||  ||  ||  || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 12 ||  ||  ||  || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 13]] || 2014年10月24日 || 2020年10月24日 || 2021年10月24日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 14 || 2016年09月26日 || 2017年09月26日 || 2018年09月26日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 15 || 2017年10月03日 || 2018年10月03日 || 2019年10月03日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 16]] || 2018年10月09日 || 2026年10月19日 || 2027年10月09日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 17 || 2019年10月28日 || 2020年10月28日 || 2021年10月28日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 18]] || 2020年10月20日 || 2024年10月20日 || 2025年10月20日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 19 || 2021年11月02日 || 2022年11月02日 || 2023年11月02日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 20]] || 2022年10月19日 || 2026年10月19日 || 2027年10月19日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 21]] || 2023年10月18日 || 2025年10月18日 || 2026年10月18日 || ✗&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Asteriskの入手とインストール==&lt;br /&gt;
Asteriskは http://www.asterisk.org から入手することができます。ソースの配布はftp/httpダウンロードの他、Subversionでも行われています。Subversionでの入手方法は[[Asterisk Subversion]]のページを参照してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===どのバージョンをインストールすれば？===&lt;br /&gt;
現在(2023年11月)時点で安定していると思われるのはAsterisk 18です。&amp;lt;br&amp;gt;&lt;br /&gt;
EOLまでの時間を気にする場合にはAsterisk 20を検討してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===オプションのパッケージ===&lt;br /&gt;
*[[DAHDI]](旧Zaptel)&amp;lt;br&amp;gt;&lt;br /&gt;
:Asterisk 1.4.20以降およびAsterisk 1.6からはZaptelにかわり[[DAHDI]]が使用されます。&amp;lt;br&amp;gt;&lt;br /&gt;
:アナログ、BRI/PRIのボードを使用しない場合には不要です。&lt;br /&gt;
*libpri&amp;lt;br&amp;gt;&lt;br /&gt;
:PRIを使用しなければ必要ありません。&amp;lt;br&amp;gt;&lt;br /&gt;
*OS/ディストリ依存情報&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Asteriskインストールメモ]]&amp;lt;br&amp;gt;&lt;br /&gt;
*よくわからない場合は[[謎の補助説明ページ]]もどうぞ(このページを見ても疑問が氷解するとは限りませんが) &lt;br /&gt;
:[[Asterisk サンプル設定ファイル]]を使ってみてください。&amp;lt;br&amp;gt; &lt;br /&gt;
:[[extension道場]]も参考になります。&amp;lt;br&amp;gt;&lt;br /&gt;
===各バージョンの情報===&lt;br /&gt;
*旧バージョンの情報&lt;br /&gt;
:[[Asterisk 旧バージョン]]&lt;br /&gt;
*Asterisk 13&lt;br /&gt;
:[[Asterisk 13]] (EOLは2019年→2021/10/24に延長[https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions])&lt;br /&gt;
*Asterisk 14&lt;br /&gt;
:STDリリースのため使用は推奨しません。&amp;lt;br&amp;gt;&lt;br /&gt;
*Asterisk 15&lt;br /&gt;
:2017年リリース(Standard)&lt;br /&gt;
:STDリリースのため使用は推奨しません。&amp;lt;br&amp;gt;&lt;br /&gt;
*Asterisk 16&lt;br /&gt;
:2018年10月リリース。LTS。(Security Onlyは2022/10、EOLは2023/10)&lt;br /&gt;
*Asterisk 17&lt;br /&gt;
:STDリリースのため使用は推奨しません。&amp;lt;br&amp;gt;&lt;br /&gt;
*Asterisk 18&lt;br /&gt;
:2020年10月リリース。LTS。(Security Onlyは2024/10、EOLは2025/10)&lt;br /&gt;
*Asterisk 20&lt;br /&gt;
:2022年10月リリース。LTS。&lt;br /&gt;
&lt;br /&gt;
===DAHDIへの移行===&lt;br /&gt;
:[[DAHDIインストール]]&lt;br /&gt;
===Asterisk+DB===&lt;br /&gt;
&#039;&#039;&#039;注意:今後の方向性としてMySQLの直接サポートはなくなるようです。ODBCを使用して下さい。&#039;&#039;&#039;&lt;br /&gt;
:[[Asterisk+MySQL]]&lt;br /&gt;
:[[Asterisk+PostgreSQL]]&lt;br /&gt;
:[[Asterisk CDR SQLite]]&lt;br /&gt;
:[[Asterisk 11 ODBC]]&lt;br /&gt;
&lt;br /&gt;
===使用する上でのヒント===&lt;br /&gt;
*[[Asterisk Tips]]&lt;br /&gt;
===注意点などの追加情報===&lt;br /&gt;
*[[Asterisk 追加情報]]&lt;br /&gt;
===セキュリティ===&lt;br /&gt;
*[[利用者:MR G]]の[[パケットフィルタリング]]&lt;br /&gt;
*&#039;&#039;&#039;[[Asterisk SIP セキュリティ]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[SIP-Fail2ban]]&#039;&#039;&#039;&lt;br /&gt;
*[[Asteriskが使用するポート一覧]]&lt;br /&gt;
&lt;br /&gt;
===参考になるページ===&lt;br /&gt;
MR Gさんのページ [[利用者:MR G]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asterisk NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
kei_ef_2000(a.k.a ふかうみ)さんの「Asterisk SugarLookup」解説ページ[[利用者:kei ef 2000]]&amp;lt;br&amp;gt;&lt;br /&gt;
===参考になるかどうかよくわからないページ===&lt;br /&gt;
[[バカstarisk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[あすりん(仮)]]&lt;br /&gt;
&lt;br /&gt;
==派生ディストリビューション==&lt;br /&gt;
[[Asteriskの派生ディストリビューション]]&lt;br /&gt;
==アンインストール==&lt;br /&gt;
[[アンインストール情報]]のページへ&lt;br /&gt;
&lt;br /&gt;
==Asteriskの動作する環境==&lt;br /&gt;
IA系のマシンでLinuxをOSとして使用します。多くのLinuxディストリビューションで動作しています。ただしLinux 2.4カーネルを使用する場合には、ZatelがUSB-UHCIを必要とするため注意が必要です。Linux 2.6カーネル以降ならば問題はありません。&lt;br /&gt;
===OS===&lt;br /&gt;
[[Asterisk動作確認済みOS]]&lt;br /&gt;
===関連情報===&lt;br /&gt;
[[Asterisk Timer]]&amp;lt;br&amp;gt; &lt;br /&gt;
[[Zaptel udev]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asterisk MacOSXでの動作]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asterisk FreeBSDでの動作]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===特殊なプラットフォーム===&lt;br /&gt;
*小型アプライアンス類&lt;br /&gt;
:コンパクトなAsteriskマシンが欲しい方は[[アプライアンス]]ページを参照&amp;lt;br&amp;gt;&lt;br /&gt;
*OpenWRT&amp;lt;br&amp;gt;&lt;br /&gt;
:ルータ用代替ファームウェア。Asteriskのインストールも可能。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Asteriskと回線や電話機等の接続==&lt;br /&gt;
AsteriskはSIPやH.323といったIPベースの接続の他、アナログやISDNなど様々な回線に対応します。&lt;br /&gt;
===IP===&lt;br /&gt;
*[[IP電話機]]&lt;br /&gt;
*[[ITSP接続]]&lt;br /&gt;
*[[ENUM]]&lt;br /&gt;
===アナログ===&lt;br /&gt;
*[[アナログ回線の接続]]&lt;br /&gt;
*[[アナログ電話機の接続]]&lt;br /&gt;
===ISDN===&lt;br /&gt;
*[[ISDN接続]]&lt;br /&gt;
===ひかり電話===&lt;br /&gt;
*[[ひかり電話対応]]&lt;br /&gt;
===回線交換機（アナログ式PBX）===&lt;br /&gt;
*[[OD接続(E&amp;amp;M)]]&lt;br /&gt;
*[[FXS接続]]&lt;br /&gt;
*[[FXO接続]]&lt;br /&gt;
&lt;br /&gt;
=== 携帯電話 ===&lt;br /&gt;
&lt;br /&gt;
*[[Bluetooth接続(chan_mobile)]]&lt;br /&gt;
*chan_dongle&lt;br /&gt;
:USB経由でHuaweiのUSBドングルを接続するチャネルドライバ。音声/SMS(日本語も)/USSDに対応。開発は活発ではないけど使える模様。&lt;br /&gt;
&lt;br /&gt;
===Skype===&lt;br /&gt;
*[[Skype for Asterisk]]&lt;br /&gt;
:Digiumのプロダクト。ディスコン。&lt;br /&gt;
*[https://www.skype.com/ja/features/skype-connect/ Skype Connect]&lt;br /&gt;
:Skype公式のSIP接続サービス。US$6.95/ch/月&lt;br /&gt;
&lt;br /&gt;
===FAX===&lt;br /&gt;
*[[Fax for Asterisk]]&lt;br /&gt;
:Digiumのプロダクト&lt;br /&gt;
*spandsp + res_fax_spandsp&lt;br /&gt;
:Asterisk13以降。なおapp_faxは非推奨&lt;br /&gt;
*IAXModem + Hylafax&lt;br /&gt;
&lt;br /&gt;
==Asteriskの管理==&lt;br /&gt;
*コマンドライン&lt;br /&gt;
:[[Asterisk_CLI]]&lt;br /&gt;
*[[Asterisk Manager Interface]]&lt;br /&gt;
:Asterisk管理インタフェース&lt;br /&gt;
*GUI&lt;br /&gt;
:Asteriskは基本的にはGUIを持ちません。Asterisk NOWはブラウザによる管理インタフェースを持っています。&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Asterisk-GUI]](純正)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Asterisk GUI]]&amp;lt;br&amp;gt;&lt;br /&gt;
:ADM&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部プログラムとの連携==&lt;br /&gt;
*[[自動発信|コール用ファイル]](call file)&lt;br /&gt;
*AGI: Asterisk Gateway Interface&lt;br /&gt;
*AMI: Asterisk Manager Interface&lt;br /&gt;
*ARI: Asterisk REST Interface&lt;br /&gt;
*ダイヤルプランから&lt;br /&gt;
:Application_Exec, Function_SHELL, Function_FILE&lt;br /&gt;
:Application_ReadFileは非推奨。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IP電話関連機器はどこで買えますか？==&lt;br /&gt;
日本国内での入手性も序々に良くなってきました。&amp;lt;br&amp;gt;&lt;br /&gt;
[[購入情報]] のページを参照してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==日本国内対応==&lt;br /&gt;
Asteriskを日本国内に対応させる情報は下記を参照してください。&amp;lt;br&amp;gt;&lt;br /&gt;
===ローカライズ===&lt;br /&gt;
*&amp;lt;s&amp;gt;[[Asterisk パッチ]]&amp;lt;/s&amp;gt;(現在のバージョンでは必要ありません)&lt;br /&gt;
*[[Asterisk 日本語音声]]&lt;br /&gt;
*[[音声合成]]&lt;br /&gt;
&lt;br /&gt;
===接続および使い方===&lt;br /&gt;
*[[ひかり電話対応]]&lt;br /&gt;
*[[ラインキー問題]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==書籍==&lt;br /&gt;
===日本語===&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4798011290/takahashitaka-22/ref=nosim AsteriskでつくるIP電話システム』]([[たかはし]]の著書)&lt;br /&gt;
:1.0ベースのため1.2系は当Wikiでフォローしています。&amp;lt;br&amp;gt;&lt;br /&gt;
:VoIPの基本からAsteriskのインストール/稼動までの入門向きです。&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4798016322/takahashitaka-22/ref=nosim 『Asterisk徹底活用ガイド』]([[たかはし]]の著書)&lt;br /&gt;
:Asterisk 1.2/1.4対応になっています。各種設定のリファレンスおよび設定事例など&lt;br /&gt;
:Asteriskに特化した内容となっています。&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4798017795/takahashitaka-22/ref=nosim 『AsteriskNOWではじめるIP電話』]([[たかはし]]の著書)&lt;br /&gt;
:AsteriskNOWによるAsteriskの入門書です。&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4873112893/takahashitaka-22/ref=nosim Asterisk-テレフォニーの未来-]&lt;br /&gt;
:オライリーの翻訳版。Asterisk 1.2対応も若干入っているようです。http://www.oreilly.co.jp/books/4873112893/&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4777512789/takahashitaka-22/ref=nosim Trixbox実践ガイドブック―オープンソースの「PBXソフト」で「IPビジネスフォン」を作る]&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4839922810/takahashitaka-22/ref=nosim AsteriskによるIP-PBXシステム構築ガイド]&amp;lt;br&amp;gt;&lt;br /&gt;
:1.2ベースの本のようです。1.2のソースCD付。&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4274066835/takahashitaka-22/ref=nosim Asterisk運用・開発ガイド]&amp;lt;br&amp;gt;&lt;br /&gt;
:APIなど開発/運用者向けの詳細な記載あり、上級者向け。&amp;lt;br&amp;gt;&lt;br /&gt;
*[https://www.amazon.co.jp/dp/B00B0NJ6I8/takahashitaka-22/ref=nosim Ubuntu 12.04 と EC2で作る Asterisk電話サーバ](kindle)&lt;br /&gt;
&lt;br /&gt;
===洋書=== &lt;br /&gt;
*[http://www.amazon.co.jp/Asterisk-Telephony-Jim-Van-Meggelen/dp/0596009623/takahashitaka-22/ref=nosim Asterisk : The Future of Telephony]&amp;lt;br&amp;gt;&lt;br /&gt;
:こちらも1.0ベースの本。&amp;lt;br&amp;gt;&lt;br /&gt;
:Asterisk : The Future of Telephony (Asterisk Documentation Project)&amp;lt;br&amp;gt;&lt;br /&gt;
:The Future of TelephonyはCreative Commons licenseの元、オンライン(PDF文書)で公開されています。&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/Asterisk-Telephony-Jim-Van-Meggelen/dp/0596510489/takahashitaka-22/ref=nosim Asterisk : The Future of Telephony (2nd Edition)]&amp;lt;br&amp;gt;&lt;br /&gt;
:2ndエディションで1.4対応だそうです。&lt;br /&gt;
*[http://www.amazon.co.jp/Asterisk-Telephony-Jim-Van-Meggelen/dp/059652692X/takahashitaka-22/ref=nosim Asterisk Cookbook (Cookbook)]&amp;lt;br&amp;gt;&lt;br /&gt;
:発売日：2008/12/30何度か発売が伸びています。日本語版は出るのかは不明です。[http://www.asteriskcookbook.com/wiki/index.php/Main_Page Asterisk Cookbook Wiki]などあるようです。&lt;br /&gt;
*[http://www.amazon.co.jp/dp/B00HQ0RA8M/takahashitaka-22/ref=nosim Asterisk: The Definitive Guide 4th edition]&lt;br /&gt;
:Asterisk 11に対応。pjprojectの記述はまだありません。&lt;br /&gt;
&lt;br /&gt;
==問い合わせ先など==&lt;br /&gt;
*[[Asteriskコンサルタント]]&lt;br /&gt;
*セミナー/イベントなど&lt;br /&gt;
:[[イベント情報]]のページで告知しています。&lt;br /&gt;
&lt;br /&gt;
==外部リンク==&lt;br /&gt;
Asteriskの日本国内情報は[[外部リンク]]ページを参照してください。&lt;br /&gt;
:Digium http://www.digium.com&amp;lt;br&amp;gt;&lt;br /&gt;
:Asterisk http://www.asterisk.org&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip&amp;diff=11847</id>
		<title>Asterisk pjsip</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip&amp;diff=11847"/>
		<updated>2024-08-12T15:54:59Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: CLIからcore reloadでリロードする方法を記載。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
&lt;br /&gt;
AsiteriskでチャネルにPjSIPを使用する際の設定方法など&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;注意！：Asterisk 21(non LTS)ではchan_sipが削除されています。次のAsterisk 22(LTS)でもchan_sipは提供されないと思われますので、早急にpjsipへの移行を進めてください。&amp;lt;/strong&amp;gt;&lt;br /&gt;
==コンパイル==&lt;br /&gt;
Asterisk 13まではpjprojectを別個インストールするか、configureに--with-pjproject-bundledを付けて実行する必要がありましたが、Asterisk 16からはデフォルトでbundledインストールされるようになりました。&amp;lt;BR&amp;gt;&lt;br /&gt;
各バージョン毎のインストール方法についてはAsteriskのそれぞれのページを参照してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Asterisk 13]]&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Asterisk 16]]&amp;lt;BR&amp;gt;&lt;br /&gt;
※Asterisk 16以降ではデフォルトでコンパイルされるためasteriskをmakeするだけです。&lt;br /&gt;
&lt;br /&gt;
==変換ツール==&lt;br /&gt;
Asterisk 13以降であれば ソースディレクトリ/contrib/scripts/sip_to_pjsip の下にPythonのスクリプトがあります(複数)。sip.confのあるディレクトリでこれを実行するとpjsip.confに変換してくれます。#includeしている場合にはそれらも変換してくれますが、完璧ではないです。&lt;br /&gt;
==Asterisk 16以降における注意点==&lt;br /&gt;
PjSIPはres_statsd.soに依存します。このためres_statsdがloadされていないと、res_pjsipがloadされない問題が発生します。&amp;lt;BR&amp;gt;&lt;br /&gt;
(Asterisk 16ではモジュールの依存関係チェックが厳密化されています)&amp;lt;BR&amp;gt;&lt;br /&gt;
res_statsdモジュールはstatsd.confファイルが無いとloadされないため、statsd.confファイルが無いだけで、PjSIPが使えないという困った状態になります。ソースファイルに含まれる statsd.conf.sample を /etc/asterisk/statsd.conf にコピーしておいてください。もっとも、このファイルはコメントされた行だけなので要するに空なのですが。&lt;br /&gt;
&lt;br /&gt;
==パラメータ一覧==&lt;br /&gt;
[[Asterisk pjsip parameters]]&lt;br /&gt;
&lt;br /&gt;
==基本設定==&lt;br /&gt;
*間違いやすいところ&lt;br /&gt;
:sip.confでは1wordだったのがアンダーバーが入る&lt;br /&gt;
:dtmfmode → dtmf_mode&lt;br /&gt;
:fromdomain → from_domain&lt;br /&gt;
===グローバル設定===&lt;br /&gt;
設定は基本としてはpjsip.confに書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#GLOBAL]]&amp;lt;BR&amp;gt;&lt;br /&gt;
グローバル設定を使用する場合にはtype=globalのセクションを書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[global]&lt;br /&gt;
type=global&lt;br /&gt;
max_forwards = 50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
SIPの基本パラメータやPjSIPの動作に関わるパラメータはSystemで設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#SYSTEM]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===インクルード===&lt;br /&gt;
Asteriskの他の設定ファイル同様に#includeが使えます。なので、電話機と回線は別ファイルにした方が見通しは良いかもしれません。例えば&amp;lt;BR&amp;gt;&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
 &lt;br /&gt;
 #include pjsip_phones.conf&lt;br /&gt;
 #include pjsip_trunk_hikari.conf&lt;br /&gt;
のようにファイルを分割し、includeすると管理が楽になります。&lt;br /&gt;
&lt;br /&gt;
基本で必要なものは以下です。&lt;br /&gt;
&lt;br /&gt;
===トランスポート===&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
sip.confに書いていたものと同じですが、トランスポートはセクションで明示指定します。上の例では5070ポートにbindさせていますが、5060を使用する場合にはここを5060にします。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
ACLの例は次の通りです。&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
※deny,permitはこの順でないとpermitしてdenyしてしまう模様で、逆に書くと誰も使えなくなります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
pjsip.confに複数のACL(type=acl)を書くとそのセクション名にかかわらず後ろにあるACLの方が勝つ模様。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
 &lt;br /&gt;
 [acl-my]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=10.10.0.0/16&lt;br /&gt;
と、書くとacl-myが勝つので要注意です。複数を許可したい場合には1セクションで&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
 permit=10.10.0.0/16&lt;br /&gt;
のように書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#ACL.28res_pjsip_acl.29]]&lt;br /&gt;
→[[Asterisk pjsip ACL]]&lt;br /&gt;
&lt;br /&gt;
===認証情報(Auth)===&lt;br /&gt;
sip_confではピア(エンドポイント)の認証がわかりにくかったのですが、PjSIPでは別なセクションで(type=auth)認証情報を定義するようになりました。このため、認証情報がピア名(sip.confの[ ])に紐付かなくなりました。&amp;lt;BR&amp;gt;&lt;br /&gt;
慣れないとわかりにくい感じがしますが、管理がより柔軟になります。例えば&lt;br /&gt;
 [some-phone]&lt;br /&gt;
 type = endpoint&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 auth = phone-auth&lt;br /&gt;
 outbound_auth = phone-out-auth&lt;br /&gt;
のようなendpointが定義されている場合には、2つのauthセクションが必要です。&lt;br /&gt;
 [phone-auth]&lt;br /&gt;
 type = auth&lt;br /&gt;
 username = phone123&lt;br /&gt;
 password = phonepassword&lt;br /&gt;
このAuthは&#039;[some-phone]&#039;エンドポイントに接続、つまり外からの&amp;quot;入り&amp;quot;の際の認証情報です。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [phone-out-auth]&lt;br /&gt;
 略&lt;br /&gt;
このAuthはoutbound_authで設定されているので、このエンドポイントからの&amp;quot;出&amp;quot;の際の認証情報です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==電話機==&lt;br /&gt;
電話機の接続は [[Asterisk pjsip 電話機]] のページへ&lt;br /&gt;
==トランク==&lt;br /&gt;
回線接続側は [[Asterisk pjsip trunks]]のページへ&lt;br /&gt;
&lt;br /&gt;
==Wizard==&lt;br /&gt;
Asteriskにはpjsip_wizardが組み込まれており、PjSIPの設定を簡素化することができます。使う場合の条件は以下の通りです。&lt;br /&gt;
*基本の設定はpjsip.confに書く&lt;br /&gt;
:transportなどの情報はpjsip.confに書く必要があります&lt;br /&gt;
*Wizard用のファイル名はpjsip_wizard.conf&lt;br /&gt;
*共通化したテンプレート内で各セクションを指定するにはスラッシュ(/)で区切る&lt;br /&gt;
*Wizardは電話機でもトランクでも使用できる&lt;br /&gt;
:registration/を書くとregistrationセクションがつくられる&lt;br /&gt;
記述例:&lt;br /&gt;
:endpoint/context=mycontext&lt;br /&gt;
:endpoint/dtmf_mode=inband&lt;br /&gt;
:aor/max_contacts = 1&lt;br /&gt;
pjsip_wizard.confの記述例&lt;br /&gt;
 ;電話機用テンプレート(共通設定)&lt;br /&gt;
 [phone-defaults](!)&lt;br /&gt;
 type=wizard&lt;br /&gt;
 transport = transport-udp&lt;br /&gt;
 accepts_registrations = yes&lt;br /&gt;
 sends_registrations = no&lt;br /&gt;
 accepts_auth = yes&lt;br /&gt;
 sends_auth = no&lt;br /&gt;
 endpoint/context = default&lt;br /&gt;
 endpoint/dtmf_mode = rfc4733&lt;br /&gt;
 endpoint/call_group = 1&lt;br /&gt;
 endpoint/pickup_group = 1&lt;br /&gt;
 endpoint/language = ja&lt;br /&gt;
 endpoint/disallow = all&lt;br /&gt;
 endpoint/allow = ulaw&lt;br /&gt;
 endpoint/rtp_symmetric = yes&lt;br /&gt;
 endpoint/force_rport = yes&lt;br /&gt;
 endpoint/direct_media = no&lt;br /&gt;
 endpoint/send_pai = yes&lt;br /&gt;
 endpoint/send_rpid = yes&lt;br /&gt;
 endpoint/rewrite_contact = yes&lt;br /&gt;
 endpoint/inband_progress = yes&lt;br /&gt;
 endpoint/allow_subscribe = yes&lt;br /&gt;
 endpoint/transport = transport-udp&lt;br /&gt;
 aor/max_contacts = 1&lt;br /&gt;
 aor/qualify_frequency = 30&lt;br /&gt;
 aor/authenticate_qualify = no&lt;br /&gt;
 &lt;br /&gt;
 ;各電話機個別設定&lt;br /&gt;
 [phone1](phone-defaults)&lt;br /&gt;
 inbound_auth/username = phone1&lt;br /&gt;
 inbound_auth/password = mypasswordishere&lt;br /&gt;
&lt;br /&gt;
==CLIコマンド==&lt;br /&gt;
*sip show peersに対応するのはpjsip show endpoints&lt;br /&gt;
*sip show peer phone1などピア情報を表示するのはpjsip show endpoint phone1&lt;br /&gt;
*AORを表示するのは一覧ならpjsip show aorsでピアの情報を表示するのはpjsip show aor phone1のようにする&lt;br /&gt;
*それぞれの設定項目で何が設定されているかを確認するには pjsip show endpoint phone1 のようにすると phone1 の endpoint パラメータ一覧が表示される。aorを見たければ pjsip show aor phone1。これはトランクの場合も同様で pjsip show registration hikari-hgw のようにするとregister関係のパラメータがみえる。&lt;br /&gt;
===デバッグ===&lt;br /&gt;
chan_sipのsip debug代わりに使えるのは、pjsip debug history。SIPメッセージの確認はこちらの方が簡単かも。&lt;br /&gt;
&lt;br /&gt;
ヒストリをクリア&lt;br /&gt;
 *CLI&amp;gt; pjsip set history clear&lt;br /&gt;
 PJSIP History cleared&lt;br /&gt;
&lt;br /&gt;
ヒストリをONに設定&lt;br /&gt;
 *CLI&amp;gt; pjsip set history on&lt;br /&gt;
 PJSIP History enable&lt;br /&gt;
&lt;br /&gt;
なんかやる&lt;br /&gt;
&lt;br /&gt;
ヒストリをOFFに設定&lt;br /&gt;
 *CLI&amp;gt; pjsip set history off&lt;br /&gt;
 PJSIP History disabled&lt;br /&gt;
&lt;br /&gt;
ヒストリをみる&lt;br /&gt;
 *CLI&amp;gt; pjsip show history&lt;br /&gt;
 No.   Timestamp  (Dir) Address                  SIP Message&lt;br /&gt;
 ===== ========== ============================== ===================================&lt;br /&gt;
 00047 1620781794 * &amp;lt;== 192.168.254.10:5060      INVITE sip:201@192.168.254.234:5070 SIP/2.0&lt;br /&gt;
 00048 1620781794 * ==&amp;gt; 192.168.254.10:5060      SIP/2.0 401 Unauthorized&lt;br /&gt;
 00049 1620781794 * &amp;lt;== 192.168.254.10:5060      ACK sip:201@192.168.254.234:5070 SIP/2.0&lt;br /&gt;
 00050 1620781794 * &amp;lt;== 192.168.254.10:5060      INVITE sip:201@192.168.254.234:5070 SIP/2.0&lt;br /&gt;
 00051 1620781794 * ==&amp;gt; 192.168.254.10:5060      SIP/2.0 100 Trying&lt;br /&gt;
 00052 1620781794 * ==&amp;gt; 192.168.254.3:5060       INVITE sip:phone1@192.168.254.3:5060 SIP/2.0&lt;br /&gt;
 00053 1620781794 * &amp;lt;== 192.168.254.3:5060       SIP/2.0 100 Trying&lt;br /&gt;
 00054 1620781795 * ==&amp;gt; 192.168.254.4:5060       OPTIONS sip:phone6@192.168.254.4:5060 SIP/2.0&lt;br /&gt;
 00055 1620781795 * &amp;lt;== 192.168.254.4:5060       SIP/2.0 200 OK&lt;br /&gt;
 00056 1620781796 * &amp;lt;== 192.168.254.3:5060       SIP/2.0 180 Ringing&lt;br /&gt;
 00057 1620781796 * ==&amp;gt; 192.168.254.10:5060      SIP/2.0 183 Session Progress&lt;br /&gt;
 00058 1620781797 * &amp;lt;== 192.168.254.3:5060       SIP/2.0 200 OK&lt;br /&gt;
 00059 1620781797 * ==&amp;gt; 192.168.254.3:5060       ACK sip:phone1@192.168.254.3:5060 SIP/2.0&lt;br /&gt;
 00060 1620781797 * ==&amp;gt; 192.168.254.10:5060      SIP/2.0 200 OK&lt;br /&gt;
 00061 1620781797 * &amp;lt;== 192.168.254.10:5060      ACK sip:192.168.254.234:5070 SIP/2.0&lt;br /&gt;
 00062 1620781799 * &amp;lt;== 192.168.254.3:5060       BYE sip:asterisk@192.168.254.234:5070 SIP/2.0&lt;br /&gt;
 00063 1620781799 * ==&amp;gt; 192.168.254.3:5060       SIP/2.0 200 OK&lt;br /&gt;
 00064 1620781799 * ==&amp;gt; 192.168.254.10:5060      BYE sip:phone3@192.168.254.10:5060 SIP/2.0&lt;br /&gt;
 00065 1620781799 * &amp;lt;== 192.168.254.10:5060      SIP/2.0 200 OK&lt;br /&gt;
&lt;br /&gt;
特定のメッセージを確認する&lt;br /&gt;
 *CLI&amp;gt; pjsip show history entry 56&lt;br /&gt;
 &amp;lt;--- History Entry 56 Received from 192.168.254.3:5060 at 1620781796 ---&amp;gt;&lt;br /&gt;
 SIP/2.0 180 Ringing&lt;br /&gt;
 Via: SIP/2.0/UDP 192.168.254.234:5070;rport=5070;received=192.168.254.234;branch=z&lt;br /&gt;
 Call-ID: fd5b758b-06e4-48cf-97e9-c815623ba9af&lt;br /&gt;
 From: &amp;quot;203&amp;quot; &amp;lt;sip:203@192.168.254.234&amp;gt;;tag=bedf1400-19fc-4c8d-80c2-f7a280ca9978&lt;br /&gt;
 To: &amp;lt;sip:phone1@192.168.254.3&amp;gt;;tag=1946423440&lt;br /&gt;
 CSeq: 4197 INVITE&lt;br /&gt;
 Allow: INVITE, ACK, CANCEL, BYE, INFO, UPDATE, OPTIONS, MESSAGE, NOTIFY, REFER&lt;br /&gt;
 Contact: &amp;lt;sip:phone1@192.168.254.3:5060&amp;gt;&lt;br /&gt;
 Server: Panasonic-KX-HDV330N/02.504 (bcc3423c1e0c)&lt;br /&gt;
 Content-Length: 0&lt;br /&gt;
 Content-Length:  0&lt;br /&gt;
&lt;br /&gt;
chan_sipのようにダラダラ出したい場合は&lt;br /&gt;
 *CLI&amp;gt; pjsip set logger on&lt;br /&gt;
&lt;br /&gt;
==挙動上の注意点==&lt;br /&gt;
===挙動そのもの===&lt;br /&gt;
chan_sipより制限が少し&amp;quot;きつい&amp;quot;です。SIPメッセージの中に少しおかしなものがあってもchan_sipでは制限が緩かったので、通っていたものがPjSIPでは通らないことがあります。CLI等で&#039;syntax error&#039;のようなメッセージが出る場合にはSIPメッセージにおかしなところがあるかもしれないので調べてください。&lt;br /&gt;
===AddHeader===&lt;br /&gt;
chan_sipの場合にはSIPAddHeaderでSIPヘッダを追加できましたが、PjSIPではファンクションPJSIP_HEDER()を使用します。ただしこのファンクションはextenの途中で使用しても効果がありません。Dial時にサブルーチンコールしてやる必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
例えばAlert-Info: hogeを追加するにはまず以下のよなルーチンを定義します。&lt;br /&gt;
 [add-alert]&lt;br /&gt;
 exten =&amp;gt; s,1,Set(PJSIP_HEADER(add,Alert-Info)=hoge)&lt;br /&gt;
 exten =&amp;gt; s,n,Return&lt;br /&gt;
Dial時に以下のようにしてコールします&lt;br /&gt;
 exten =&amp;gt; 201,1,Dial(PJSIP/201,,b(add-alert,s,1))&lt;br /&gt;
===エンドポイントの識別===&lt;br /&gt;
エンドポイントを識別する際に例えば同一IPアドレスから複数のユーザ名でREGISTERあるいはINVITEしてくるような場合、ユーザ名が正しく識別されないことがあります。これはエンドポイントを識別する際の判断要素の問題で、endpoint_identifier_order で決まります。&amp;lt;br&amp;gt;&lt;br /&gt;
グローバル設定の endpoint_identifier_order は、デフォルトでip,username,anonymous,header,auth_usernameの順で識別するため、IPアドレスが同一だと同一エンドポイントであると評価してしまいます。このためユーザ名で識別したいような場合には endpoint_identifier_order = username,ip のようにipより前にusernameを指定します。&amp;lt;br&amp;gt;&lt;br /&gt;
現在の状態を確認するにはCLIから pjsip show identifiers を実行します。&lt;br /&gt;
 *CLI&amp;gt; pjsip show identifiers&lt;br /&gt;
 Identifier Names:&lt;br /&gt;
 name not specified&lt;br /&gt;
 ip&lt;br /&gt;
 username&lt;br /&gt;
 anonymous&lt;br /&gt;
 auth_username&lt;br /&gt;
 header&lt;br /&gt;
 request_uri&lt;br /&gt;
&lt;br /&gt;
==設定変更の反映==&lt;br /&gt;
*モジュール数が多すぎて一発リロードする方法がよくわからない&lt;br /&gt;
** [[Asterisk CLI]]で &amp;lt;pre&amp;gt;core reload&amp;lt;/pre&amp;gt; を行えば、その他のモジュールといっしょにリロードできます(Asterisk 16と20で確認)。&lt;br /&gt;
*module reload res_pjsip.soを実行すれば&amp;quot;だいたい&amp;quot;はいけそう&lt;br /&gt;
:wizardのaor/を変更しても反映されない場合がある&lt;br /&gt;
&lt;br /&gt;
==PjSIPで拡張される機能==&lt;br /&gt;
[[pjsip_機能拡張]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Pjsip_%E6%A9%9F%E8%83%BD%E6%8B%A1%E5%BC%B5&amp;diff=11846</id>
		<title>Pjsip 機能拡張</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Pjsip_%E6%A9%9F%E8%83%BD%E6%8B%A1%E5%BC%B5&amp;diff=11846"/>
		<updated>2024-08-12T13:34:31Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
&lt;br /&gt;
chan_pjsipではchan_sipでは実現できなかった機能が提供されています。&lt;br /&gt;
==複数レジスト==&lt;br /&gt;
同一のユーザ名/パスワードで複数のUA(SIPクライアント)がRegisterできます。&amp;lt;BR&amp;gt;&lt;br /&gt;
AORのmax_contactsがこの数を制御します。endpointでRegisterするタイプのクライアント、要するに電話機等ではAORでmax_contacts = 1を指定することで、Asteriskに対してRegisterしてくるUAを1にしますが、これをmax_contacts = 4に設定すると、4つまでのUAがRegisterできるようになります。&amp;lt;BR&amp;gt;&lt;br /&gt;
EndppointやAORの設定は[[Asterisk pjsip]]のページを参照してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
ただし、ダイヤルする際の引数がこれまでとは異なるので注意します。&amp;lt;BR&amp;gt;&lt;br /&gt;
Dialの引数にはファンクション、PJSIP_DIAL_CONTACTSを用います。&lt;br /&gt;
 ${PJSIP_DIAL_CONTACTS(phone1,phone1)&lt;br /&gt;
 書式:PJSIP_DIAL_CONTACTS(endpoint[,aor[,request_user]])&lt;br /&gt;
上記の例ではエンドポイントphone1でAORもphone1のダイヤル先を取得します。&amp;lt;BR&amp;gt;&lt;br /&gt;
このファンクションは次のような値を返します。&lt;br /&gt;
 PJSIP/phone1/sip:phone1@192.168.1.27:5060&amp;amp;PJSIP/phone1/sip:phone1@192.168.1.14:60614;rinstance=1b2883b26cbc3051&lt;br /&gt;
上記の例ではphone1はphone1@192.168.1.27:5060と:phone1@192.168.1.14:60614からRegisterされています。この返値をDialコマンドに渡せば複数のUAに対してダイヤルします。&lt;br /&gt;
 exten =&amp;gt; 2001,1,Dial(${PJSIP_DIAL_CONTACTS(phone1,phone1))&lt;br /&gt;
このように書くことでphone1に対してRegisterしている2つのUA(電話機)に対してダイヤルすることができます。&amp;lt;BR&amp;gt;&lt;br /&gt;
ACD機能ではないので内線の複数収容には向きませんが、あるユーザにひとつのユーザIDとパスワードを発行し、デスクフォンとスマートフォンを同時に使わせるような場合には便利です。&lt;br /&gt;
===複数レジストの副作用===&lt;br /&gt;
同一エンドポイントに対して複数レジストが可能なため一部電話機において副作用が発生します。&amp;lt;br&amp;gt;&lt;br /&gt;
unregisterせずにregisterしようとする電話機ではregisterしたまま再度registerしようとするため、前のregisterと新しいregisterを「別なcontact」としてAsteriskが判断してしまいます。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では電話機のエンドポイント名は&amp;quot;FAP003&amp;quot;です。&lt;br /&gt;
 [Feb  6 08:19:35] WARNING[27107] res_pjsip_registrar.c: Registration attempt from endpoint &#039;FAP003&#039; (192.168.254.16:32062) to AOR &#039;FAP003&#039; will exceed max contacts of 2&lt;br /&gt;
このようなメッセージが出る場合、pjsipの同一エンドポイントのmax contactsに達してしまっているので、それ以上のregisterができません。&amp;lt;br&amp;gt;&lt;br /&gt;
解決方法としては再registerする(電話機が再起動したときなど)にunregisterしてからregisterするオプションを電話機で設定してください。もし、電話機でそのようなオプションがない場合には一定時間(3600秒)経つとcontactが捨てられますので、再度registerできるようになるはずですが、設定やデバッグ中などで頻繁に再起動したい場合には以下の手順でcontact情報を消すことができます。&amp;lt;br&amp;gt;&lt;br /&gt;
 *CLI&amp;gt; database show registrar/contact&lt;br /&gt;
を実行します。表示から以下のようなエントリを探します。&lt;br /&gt;
 /registrar/contact/FAP003;@fe086ca9ab600f0098c73dd73bd0487d: {&amp;quot;via_addr&amp;quot;:&amp;quot;192.168.254.16&amp;quot;,&amp;quot;qualify_timeout&amp;quot;:(略)&lt;br /&gt;
registrar/contactの&amp;quot;FAP003;@fe086ca9ab600f0098c73dd73bd0487d&amp;quot;部分がキーになっています。&amp;quot;FAP003&amp;quot;の部分は使用している電話機のエンドポイント名なので環境にあわせて読み替えてください。このエントリを削除すればmax contactsから1つ減らすことができるので、再度registerすることができるようになります。以下の例のように削除します。&lt;br /&gt;
 database del registrar/contact FAP003;@fe086ca9ab600f0098c73dd73bd0487d&lt;br /&gt;
※Grandstreamの一部電話機では再register時のunregisterを実行「しない」がデフォルト設定になっているようです。(「再起動時に登録を取り消す」オプションを「すべて」に設定するとunregisterします)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Asterisk側での解決方法====&lt;br /&gt;
PjSIPの設定で、該当するエンドポイントのAORに remove_existing = yes を入れます。remove_existing はデフォルトでは no に設定されています。これを入れると(おそらく)同一IPからのregisterは同じものとみなして再度registerされる際に元のを削除します。&amp;lt;br&amp;gt;&lt;br /&gt;
コピペで使う人もいるのでwizardの設定例にも書いておきました。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk&amp;diff=11822</id>
		<title>Asterisk</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk&amp;diff=11822"/>
		<updated>2024-08-08T02:12:45Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: バージョンの表を作成.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Asterisk]]&lt;br /&gt;
[[Category:VoIP]]&lt;br /&gt;
==Asterisk: Open Source Communication Framework== &lt;br /&gt;
AsteriskはオープンソースのPBXでDigiumのMark Spencerによって始められました。(主に)Linuxプラットフォーム上で動作します。&amp;lt;br&amp;gt;&lt;br /&gt;
PBXというと会社内の電話やビジネスホン等を思い浮かべるのですが、Asteriskが使用されるのは、いわゆる電話の分野だけではありません。通話を繋いだり切ったり(呼制御)、通話を必要とするサービスは旧来の電話だけで使われるわけではありません。様々な音声サービスに使用できるのがAsteriskです。このため電話交換機からインターネット上の音声サービスまで様々に使用されているのがAsteriskです。&amp;lt;br&amp;gt;&lt;br /&gt;
日本でAsteriskが広く知られるようになったのは2005年頃からです。&amp;lt;br&amp;gt;&lt;br /&gt;
===対応するプロトコル===&lt;br /&gt;
*IP系&lt;br /&gt;
:SIP&lt;br /&gt;
:H.323&lt;br /&gt;
:UNISTIM&lt;br /&gt;
:IAX(Inter Asterisk eXchange)&lt;br /&gt;
:MGCP&lt;br /&gt;
:Skinny(Cisco)&lt;br /&gt;
*レガシー系&lt;br /&gt;
:BRI/PRI(ISDNボード必要)&lt;br /&gt;
:アナログ(アナログボード必要)&lt;br /&gt;
:ゲートウェイを使用することでSIP-アナログ、SIP-ISDNも、もちろん接続できます&lt;br /&gt;
===[[導入事例]]===&lt;br /&gt;
[[導入事例]]のページにサマリーをまとめてあります。&lt;br /&gt;
&lt;br /&gt;
==バージョン==&lt;br /&gt;
Asterisk 1.8まで&lt;br /&gt;
:偶数番号(1.0,1.2,1.4,1.6,1.8)がリリースバージョン&lt;br /&gt;
:奇数番号は開発バージョンで一般には公開されない&lt;br /&gt;
Asterisk 10以降&lt;br /&gt;
:11,13,16,18&lt;br /&gt;
::LTS(Long Term Support:長期サポートバージョン)&lt;br /&gt;
:10,12,14,15,17&lt;br /&gt;
::STD(Standard:標準サポートバージョン)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! バージョン !! リリース日(現地時間) !! サポート期限 !! セキュリティサポート期限 !! LTS&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 10 ||  ||  ||  || ✗&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 11 ||  ||  ||  || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 12 ||  ||  ||  || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 13]] || 2014年10月24日 || 2020年10月24日 || 2021年10月24日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 14 || 2016年09月26日 || 2017年09月26日 || 2018年09月26日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 15 || 2017年10月03日 || 2018年10月03日 || 2019年10月03日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 16]] || 2018年10月09日 || 2026年10月19日 || 2027年10月09日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 17 || 2019年10月28日 || 2020年10月28日 || 2021年10月28日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 18]] || 2020年10月20日 || 2024年10月20日 || 2025年10月20日 || ◯&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk 19 || 2021年11月02日 || 2022年11月02日 || 2023年11月02日 || ✗&lt;br /&gt;
|-&lt;br /&gt;
| [[Asterisk 20]] || 2022年10月19日 || 2026年10月19日 || 2027年10月19日 || ◯&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Asteriskの入手とインストール==&lt;br /&gt;
Asteriskは http://www.asterisk.org から入手することができます。ソースの配布はftp/httpダウンロードの他、Subversionでも行われています。Subversionでの入手方法は[[Asterisk Subversion]]のページを参照してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===どのバージョンをインストールすれば？===&lt;br /&gt;
現在(2023年11月)時点で安定していると思われるのはAsterisk 18です。&amp;lt;br&amp;gt;&lt;br /&gt;
EOLまでの時間を気にする場合にはAsterisk 20を検討してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===オプションのパッケージ===&lt;br /&gt;
*[[DAHDI]](旧Zaptel)&amp;lt;br&amp;gt;&lt;br /&gt;
:Asterisk 1.4.20以降およびAsterisk 1.6からはZaptelにかわり[[DAHDI]]が使用されます。&amp;lt;br&amp;gt;&lt;br /&gt;
:アナログ、BRI/PRIのボードを使用しない場合には不要です。&lt;br /&gt;
*libpri&amp;lt;br&amp;gt;&lt;br /&gt;
:PRIを使用しなければ必要ありません。&amp;lt;br&amp;gt;&lt;br /&gt;
*OS/ディストリ依存情報&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Asteriskインストールメモ]]&amp;lt;br&amp;gt;&lt;br /&gt;
*よくわからない場合は[[謎の補助説明ページ]]もどうぞ(このページを見ても疑問が氷解するとは限りませんが) &lt;br /&gt;
:[[Asterisk サンプル設定ファイル]]を使ってみてください。&amp;lt;br&amp;gt; &lt;br /&gt;
:[[extension道場]]も参考になります。&amp;lt;br&amp;gt;&lt;br /&gt;
===各バージョンの情報===&lt;br /&gt;
*旧バージョンの情報&lt;br /&gt;
:[[Asterisk 旧バージョン]]&lt;br /&gt;
*Asterisk 13&lt;br /&gt;
:[[Asterisk 13]] (EOLは2019年→2021/10/24に延長[https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions])&lt;br /&gt;
*Asterisk 14&lt;br /&gt;
:STDリリースのため使用は推奨しません。&amp;lt;br&amp;gt;&lt;br /&gt;
*Asterisk 15&lt;br /&gt;
:2017年リリース(Standard)&lt;br /&gt;
:STDリリースのため使用は推奨しません。&amp;lt;br&amp;gt;&lt;br /&gt;
*Asterisk 16&lt;br /&gt;
:2018年10月リリース。LTS。(Security Onlyは2022/10、EOLは2023/10)&lt;br /&gt;
*Asterisk 17&lt;br /&gt;
:STDリリースのため使用は推奨しません。&amp;lt;br&amp;gt;&lt;br /&gt;
*Asterisk 18&lt;br /&gt;
:2020年10月リリース。LTS。(Security Onlyは2024/10、EOLは2025/10)&lt;br /&gt;
*Asterisk 20&lt;br /&gt;
:2022年10月リリース。LTS。&lt;br /&gt;
&lt;br /&gt;
===DAHDIへの移行===&lt;br /&gt;
:[[DAHDIインストール]]&lt;br /&gt;
===Asterisk+DB===&lt;br /&gt;
&#039;&#039;&#039;注意:今後の方向性としてMySQLの直接サポートはなくなるようです。ODBCを使用して下さい。&#039;&#039;&#039;&lt;br /&gt;
:[[Asterisk+MySQL]]&lt;br /&gt;
:[[Asterisk+PostgreSQL]]&lt;br /&gt;
:[[Asterisk CDR SQLite]]&lt;br /&gt;
:[[Asterisk 11 ODBC]]&lt;br /&gt;
&lt;br /&gt;
===使用する上でのヒント===&lt;br /&gt;
*[[Asterisk Tips]]&lt;br /&gt;
===注意点などの追加情報===&lt;br /&gt;
*[[Asterisk 追加情報]]&lt;br /&gt;
===セキュリティ===&lt;br /&gt;
*[[利用者:MR G]]の[[パケットフィルタリング]]&lt;br /&gt;
*&#039;&#039;&#039;[[Asterisk SIP セキュリティ]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[SIP-Fail2ban]]&#039;&#039;&#039;&lt;br /&gt;
*[[Asteriskが使用するポート一覧]]&lt;br /&gt;
&lt;br /&gt;
===参考になるページ===&lt;br /&gt;
MR Gさんのページ [[利用者:MR G]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asterisk NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
kei_ef_2000(a.k.a ふかうみ)さんの「Asterisk SugarLookup」解説ページ[[利用者:kei ef 2000]]&amp;lt;br&amp;gt;&lt;br /&gt;
===参考になるかどうかよくわからないページ===&lt;br /&gt;
[[バカstarisk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[あすりん(仮)]]&lt;br /&gt;
&lt;br /&gt;
==派生ディストリビューション==&lt;br /&gt;
[[Asteriskの派生ディストリビューション]]&lt;br /&gt;
==アンインストール==&lt;br /&gt;
[[アンインストール情報]]のページへ&lt;br /&gt;
&lt;br /&gt;
==Asteriskの動作する環境==&lt;br /&gt;
IA系のマシンでLinuxをOSとして使用します。多くのLinuxディストリビューションで動作しています。ただしLinux 2.4カーネルを使用する場合には、ZatelがUSB-UHCIを必要とするため注意が必要です。Linux 2.6カーネル以降ならば問題はありません。&lt;br /&gt;
===OS===&lt;br /&gt;
[[Asterisk動作確認済みOS]]&lt;br /&gt;
===関連情報===&lt;br /&gt;
[[Asterisk Timer]]&amp;lt;br&amp;gt; &lt;br /&gt;
[[Zaptel udev]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asterisk MacOSXでの動作]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asterisk FreeBSDでの動作]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===特殊なプラットフォーム===&lt;br /&gt;
*小型アプライアンス類&lt;br /&gt;
:コンパクトなAsteriskマシンが欲しい方は[[アプライアンス]]ページを参照&amp;lt;br&amp;gt;&lt;br /&gt;
*OpenWRT&amp;lt;br&amp;gt;&lt;br /&gt;
:ルータ用代替ファームウェア。Asteriskのインストールも可能。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Asteriskと回線や電話機等の接続==&lt;br /&gt;
AsteriskはSIPやH.323といったIPベースの接続の他、アナログやISDNなど様々な回線に対応します。&lt;br /&gt;
===IP===&lt;br /&gt;
*[[IP電話機]]&lt;br /&gt;
*[[ITSP接続]]&lt;br /&gt;
*[[ENUM]]&lt;br /&gt;
===アナログ===&lt;br /&gt;
*[[アナログ回線の接続]]&lt;br /&gt;
*[[アナログ電話機の接続]]&lt;br /&gt;
===ISDN===&lt;br /&gt;
*[[ISDN接続]]&lt;br /&gt;
===ひかり電話===&lt;br /&gt;
*[[ひかり電話対応]]&lt;br /&gt;
===回線交換機（アナログ式PBX）===&lt;br /&gt;
*[[OD接続(E&amp;amp;M)]]&lt;br /&gt;
*[[FXS接続]]&lt;br /&gt;
*[[FXO接続]]&lt;br /&gt;
&lt;br /&gt;
=== 携帯電話 ===&lt;br /&gt;
&lt;br /&gt;
*[[Bluetooth接続(chan_mobile)]]&lt;br /&gt;
*chan_dongle&lt;br /&gt;
:USB経由でHuaweiのUSBドングルを接続するチャネルドライバ。音声/SMS(日本語も)/USSDに対応。開発は活発ではないけど使える模様。&lt;br /&gt;
&lt;br /&gt;
===Skype===&lt;br /&gt;
*[[Skype for Asterisk]]&lt;br /&gt;
:Digiumのプロダクト。ディスコン。&lt;br /&gt;
*[https://www.skype.com/ja/features/skype-connect/ Skype Connect]&lt;br /&gt;
:Skype公式のSIP接続サービス。US$6.95/ch/月&lt;br /&gt;
&lt;br /&gt;
===FAX===&lt;br /&gt;
*[[Fax for Asterisk]]&lt;br /&gt;
:Digiumのプロダクト&lt;br /&gt;
*spandsp + res_fax_spandsp&lt;br /&gt;
:Asterisk13以降。なおapp_faxは非推奨&lt;br /&gt;
*IAXModem + Hylafax&lt;br /&gt;
&lt;br /&gt;
==Asteriskの管理==&lt;br /&gt;
*コマンドライン&lt;br /&gt;
:[[Asterisk_CLI]]&lt;br /&gt;
*[[Asterisk Manager Interface]]&lt;br /&gt;
:Asterisk管理インタフェース&lt;br /&gt;
*GUI&lt;br /&gt;
:Asteriskは基本的にはGUIを持ちません。Asterisk NOWはブラウザによる管理インタフェースを持っています。&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Asterisk-GUI]](純正)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Asterisk GUI]]&amp;lt;br&amp;gt;&lt;br /&gt;
:ADM&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部プログラムとの連携==&lt;br /&gt;
*[[自動発信|コール用ファイル]](call file)&lt;br /&gt;
*AGI: Asterisk Gateway Interface&lt;br /&gt;
*AMI: Asterisk Manager Interface&lt;br /&gt;
*ARI: Asterisk REST Interface&lt;br /&gt;
*ダイヤルプランから&lt;br /&gt;
:Application_Exec, Function_SHELL, Function_FILE&lt;br /&gt;
:Application_ReadFileは非推奨。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IP電話関連機器はどこで買えますか？==&lt;br /&gt;
日本国内での入手性も序々に良くなってきました。&amp;lt;br&amp;gt;&lt;br /&gt;
[[購入情報]] のページを参照してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==日本国内対応==&lt;br /&gt;
Asteriskを日本国内に対応させる情報は下記を参照してください。&amp;lt;br&amp;gt;&lt;br /&gt;
===ローカライズ===&lt;br /&gt;
*&amp;lt;s&amp;gt;[[Asterisk パッチ]]&amp;lt;/s&amp;gt;(現在のバージョンでは必要ありません)&lt;br /&gt;
*[[Asterisk 日本語音声]]&lt;br /&gt;
*[[音声合成]]&lt;br /&gt;
&lt;br /&gt;
===接続および使い方===&lt;br /&gt;
*[[ひかり電話対応]]&lt;br /&gt;
*[[ラインキー問題]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==書籍==&lt;br /&gt;
===日本語===&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4798011290/takahashitaka-22/ref=nosim AsteriskでつくるIP電話システム』]([[たかはし]]の著書)&lt;br /&gt;
:1.0ベースのため1.2系は当Wikiでフォローしています。&amp;lt;br&amp;gt;&lt;br /&gt;
:VoIPの基本からAsteriskのインストール/稼動までの入門向きです。&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4798016322/takahashitaka-22/ref=nosim 『Asterisk徹底活用ガイド』]([[たかはし]]の著書)&lt;br /&gt;
:Asterisk 1.2/1.4対応になっています。各種設定のリファレンスおよび設定事例など&lt;br /&gt;
:Asteriskに特化した内容となっています。&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4798017795/takahashitaka-22/ref=nosim 『AsteriskNOWではじめるIP電話』]([[たかはし]]の著書)&lt;br /&gt;
:AsteriskNOWによるAsteriskの入門書です。&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4873112893/takahashitaka-22/ref=nosim Asterisk-テレフォニーの未来-]&lt;br /&gt;
:オライリーの翻訳版。Asterisk 1.2対応も若干入っているようです。http://www.oreilly.co.jp/books/4873112893/&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4777512789/takahashitaka-22/ref=nosim Trixbox実践ガイドブック―オープンソースの「PBXソフト」で「IPビジネスフォン」を作る]&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4839922810/takahashitaka-22/ref=nosim AsteriskによるIP-PBXシステム構築ガイド]&amp;lt;br&amp;gt;&lt;br /&gt;
:1.2ベースの本のようです。1.2のソースCD付。&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/exec/obidos/ASIN/4274066835/takahashitaka-22/ref=nosim Asterisk運用・開発ガイド]&amp;lt;br&amp;gt;&lt;br /&gt;
:APIなど開発/運用者向けの詳細な記載あり、上級者向け。&amp;lt;br&amp;gt;&lt;br /&gt;
*[https://www.amazon.co.jp/dp/B00B0NJ6I8/takahashitaka-22/ref=nosim Ubuntu 12.04 と EC2で作る Asterisk電話サーバ](kindle)&lt;br /&gt;
&lt;br /&gt;
===洋書=== &lt;br /&gt;
*[http://www.amazon.co.jp/Asterisk-Telephony-Jim-Van-Meggelen/dp/0596009623/takahashitaka-22/ref=nosim Asterisk : The Future of Telephony]&amp;lt;br&amp;gt;&lt;br /&gt;
:こちらも1.0ベースの本。&amp;lt;br&amp;gt;&lt;br /&gt;
:Asterisk : The Future of Telephony (Asterisk Documentation Project)&amp;lt;br&amp;gt;&lt;br /&gt;
:The Future of TelephonyはCreative Commons licenseの元、オンライン(PDF文書)で公開されています。&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://www.amazon.co.jp/Asterisk-Telephony-Jim-Van-Meggelen/dp/0596510489/takahashitaka-22/ref=nosim Asterisk : The Future of Telephony (2nd Edition)]&amp;lt;br&amp;gt;&lt;br /&gt;
:2ndエディションで1.4対応だそうです。&lt;br /&gt;
*[http://www.amazon.co.jp/Asterisk-Telephony-Jim-Van-Meggelen/dp/059652692X/takahashitaka-22/ref=nosim Asterisk Cookbook (Cookbook)]&amp;lt;br&amp;gt;&lt;br /&gt;
:発売日：2008/12/30何度か発売が伸びています。日本語版は出るのかは不明です。[http://www.asteriskcookbook.com/wiki/index.php/Main_Page Asterisk Cookbook Wiki]などあるようです。&lt;br /&gt;
*[http://www.amazon.co.jp/dp/B00HQ0RA8M/takahashitaka-22/ref=nosim Asterisk: The Definitive Guide 4th edition]&lt;br /&gt;
:Asterisk 11に対応。pjprojectの記述はまだありません。&lt;br /&gt;
&lt;br /&gt;
==問い合わせ先など==&lt;br /&gt;
*[[Asteriskコンサルタント]]&lt;br /&gt;
*セミナー/イベントなど&lt;br /&gt;
:[[イベント情報]]のページで告知しています。&lt;br /&gt;
&lt;br /&gt;
==外部リンク==&lt;br /&gt;
Asteriskの日本国内情報は[[外部リンク]]ページを参照してください。&lt;br /&gt;
:Digium http://www.digium.com&amp;lt;br&amp;gt;&lt;br /&gt;
:Asterisk http://www.asterisk.org&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB_extensions.conf&amp;diff=11506</id>
		<title>Asterisk サンプル設定ファイル extensions.conf</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB_extensions.conf&amp;diff=11506"/>
		<updated>2022-11-28T03:33:39Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: 変更を反映させる方法とCLIからの確認・テストを記載。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;更なる例は[[Extension道場]]に記載があります。&lt;br /&gt;
&lt;br /&gt;
==context==&lt;br /&gt;
extenの設定で一番わかりにくいのがこの、コンテキストだと思います。コンテキストとは&amp;lt;nowiki&amp;gt;&#039; [ ] &#039;&amp;lt;/nowiki&amp;gt;で括られたセクションのことをいい、指定されたブロックをそのコンテキストと呼びます。&lt;br /&gt;
 [incoming]&lt;br /&gt;
 ・&lt;br /&gt;
 ・&lt;br /&gt;
 incoming context&lt;br /&gt;
 ・&lt;br /&gt;
 ・&lt;br /&gt;
 [outgoing]&lt;br /&gt;
 ・&lt;br /&gt;
 ・&lt;br /&gt;
この例では&amp;lt;nowiki&amp;gt;[incoming]&amp;lt;/nowiki&amp;gt;で指定された部分から、次の&amp;lt;nowiki&amp;gt;[outgoing]&amp;lt;/nowiki&amp;gt;の前までの部分が&lt;br /&gt;
incomingコンテキストとなります。&amp;lt;br&amp;gt;&lt;br /&gt;
sip.confやiax.confなどでcontext=incomingが指定されていると、その相手(ITSPや電話機)からの着信や接続要求はこのコンテキスト内で行われます。&lt;br /&gt;
==exten==&lt;br /&gt;
extensions.confの基本的な書き方は次の通りです。&lt;br /&gt;
 exten =&amp;gt; 番号,プライオリティ,アプリケーション&lt;br /&gt;
番号&lt;br /&gt;
:これがextenそのもので、いわゆる内線番号に相当します。&lt;br /&gt;
プライオリティ&lt;br /&gt;
:処理の順番を書きます&lt;br /&gt;
アプリケーション&lt;br /&gt;
:Asteriskのアプリケーション・コマンドを書きます&lt;br /&gt;
:この部分にはアプリケーション・コマンドだけでなくファンクションと呼ばれるもの、あるいはPBX組み込み機能を記述することができます。&lt;br /&gt;
:アプリケーション・コマンドはモジュールのプレフィクスが app_ のものです。&lt;br /&gt;
:ファンクションはモジュールプレフィクスが func_ のものです。&lt;br /&gt;
&lt;br /&gt;
==same==&lt;br /&gt;
前項extenでは、以降の例で見られるように「番号」を毎行書いていく必要があります。&lt;br /&gt;
これは面倒であり、Asterisk 1.6.2以降では、sameを使うと省略できます。&lt;br /&gt;
&lt;br /&gt;
例えば、4312番にダイヤルしたときの動作を次のように書いているとします。&lt;br /&gt;
 exten =&amp;gt; 4312,1,NoOp()&lt;br /&gt;
 exten =&amp;gt; 4312,n,Dial(ダイヤル先)&lt;br /&gt;
 exten =&amp;gt; 4312,n,Hangup&lt;br /&gt;
&lt;br /&gt;
sameを使うとこのように書けます。4312は最初のexten行のみに記載し、2行目以降はsameを使い、省略します。&lt;br /&gt;
 exten =&amp;gt; 4312,1,NoOp()&lt;br /&gt;
 same  =&amp;gt; n,Dial(ダイヤル先)&lt;br /&gt;
 same  =&amp;gt; n,Hangup&lt;br /&gt;
&lt;br /&gt;
4312番への動作を書き終わり、別の番号への動作を書くときは、また「exten =&amp;gt; 番号,1,処理」から書き始めます。&lt;br /&gt;
&lt;br /&gt;
==generalセクション==&lt;br /&gt;
その名の通り全般のオプション指定を行います。&lt;br /&gt;
 [general]&lt;br /&gt;
 writeprotect=no&lt;br /&gt;
 priorityjumping=no&lt;br /&gt;
writeprotect&lt;br /&gt;
:CLIによるextenの変更を許可するか禁止するかを指定します。&lt;br /&gt;
priorityjumping&lt;br /&gt;
:Asterisk 1.0系との互換性のためのオプションです。n+101ジャンプを使うか使わないかを指定しますが、今後は使わない方向ですのでnoを指定しておきます。&lt;br /&gt;
==globalsセクション==&lt;br /&gt;
グローバル変数を設定します。設定値は見ての通りで、Asteriskでは&lt;br /&gt;
 変数=値&lt;br /&gt;
で、変数が設定できます。&lt;br /&gt;
 [globals]&lt;br /&gt;
 USEVOICEMAIL=YES&lt;br /&gt;
 SPEAKINGCLOCK=317&lt;br /&gt;
 ECHOTEST=333&lt;br /&gt;
 ;For Hikari Denwa&lt;br /&gt;
 MYNUMBER=03XXXXXXXX&lt;br /&gt;
==defaultセクション==&lt;br /&gt;
この部分がdefaultコンテキストです。context=defaultが指定されたものは、ここで処理が行われます。&amp;lt;br&amp;gt;&lt;br /&gt;
全部を転記すると長くなりすぎるので、一部だけ解説します。&amp;lt;br&amp;gt;&lt;br /&gt;
===時報===&lt;br /&gt;
 ; Speaking Clock&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},1,Answer()&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Wait(1)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Set(FutureTime=$[${EPOCH} + 5])&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,SayUnixTime(${FutureTime},Japan,YbdAPHM)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Playback(jp-desu)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,playback(beep)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Hangup&lt;br /&gt;
ここで変数の参照を行っています。内線番号は変数、SPEAKINGCLOCKに指定された番号になります。値を参照するには&#039;&#039;&#039;${ }&#039;&#039;&#039;で括ります。&amp;lt;br&amp;gt;&lt;br /&gt;
プライオリティは本来、1,2,と順番に書くのですがAsterisk 1.2からオートインクリメントが可能になり&#039;&#039;&#039;n&#039;&#039;&#039;を記述しておくと自動的に+1するようになりました。&amp;lt;br&amp;gt;&lt;br /&gt;
===一斉呼び出し===&lt;br /&gt;
 ; Ring 201-204 phones&lt;br /&gt;
 exten =&amp;gt; 200,1,Dial(SIP/201&amp;amp;SIP/202&amp;amp;SIP/203&amp;amp;SIP/204&amp;amp;IAX2/201&amp;amp;IAX2/202&amp;amp;IAX2/203&amp;amp;IAX2/204)&lt;br /&gt;
 exten =&amp;gt; 200,n,Hangup&lt;br /&gt;
この例はSIP/201またはIAX/201～SIP/204またはIAX/204を一斉に呼び出す方法を示しています。Dialコマンドでは&amp;amp;で区切り複数の相手を指定することで、一斉に呼び出すことができます。&amp;lt;br&amp;gt;&lt;br /&gt;
===個別呼び出し===&lt;br /&gt;
 ; Local SIP/IAX phones 201-209&lt;br /&gt;
 exten =&amp;gt; _20Z,1,GotoIf($[&amp;quot;${USEVOICEMAIL}&amp;quot;=&amp;quot;YES&amp;quot;]?use-vm)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Dial(SIP/${EXTEN}&amp;amp;IAX2/${EXTEN},,tT)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Hangup&lt;br /&gt;
 exten =&amp;gt; _20Z,n(use-vm),Dial(SIP/${EXTEN}&amp;amp;IAX2/${EXTEN},60,tTwW)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,NoOp(${DIALSTATUS})&lt;br /&gt;
 exten =&amp;gt; _20Z,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot;=&amp;quot;BUSY&amp;quot;]?vm-rec)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot;=&amp;quot;NOANSWER&amp;quot;]?vm-rec)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot;=&amp;quot;CHANUNAVAIL&amp;quot;]?vm-rec)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Hangup&lt;br /&gt;
 exten =&amp;gt; _20Z,n(vm-rec),Answer()&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Wait(1)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Voicemail(${EXTEN})&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Hangup&lt;br /&gt;
まずextenの部分では_20Zのように指定してありますが、これはパターンマッチを意味します。Zは1～9までの数字に合致します。これにより個々の電話機を呼び出すextenをひとつづつ記述するのではなく、これだけで一括記述できるわけです。&amp;lt;br&amp;gt;&lt;br /&gt;
個別の内線番号を呼び出す設定ですが、ボイスメール使用可否の判断のため少し複雑になっています。&amp;lt;br&amp;gt;&lt;br /&gt;
n(use-vm) は&#039;&#039;&#039;ラベル&#039;&#039;&#039;です。Goto命令でジャンプさせる場合に、プライオリティの数字を指定するのではなくラベルを指定することができます。&amp;lt;br&amp;gt;&lt;br /&gt;
DIALSTATUSなどの変数は、各アプリケーションコマンドがセットします。例えばDIALSTATUSはDial()がセットし、ダイヤルした結果をその変数に入れます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===アプリケーション実行===&lt;br /&gt;
基本的に、Asteriskの機能はアプリケーションコマンドで実装されています。Dialもそのひとつですが、機能を「まとめて」ひとつのアプリケーションとなっている例としてはVoicemailやMeetMeがあります。&lt;br /&gt;
 exten =&amp;gt; 299,1,Answer()&lt;br /&gt;
 exten =&amp;gt; 299,n,Wait(1)&lt;br /&gt;
 exten =&amp;gt; 299,n,VoicemailMain(${CALLERID(num)},s)&lt;br /&gt;
 exten =&amp;gt; 299,n,Hangup&lt;br /&gt;
例えばこの部分はボイスメールのメニュー、再生などを行うVoicemailMainというアプリケーションを実行しています。この際の引数として発信者番号(&amp;lt;nowiki&amp;gt;${CALLERID(num)}&amp;lt;/nowiki&amp;gt;)を使い、パスワード認証を行わない(s)という呼び出し方になっています。アプリケーションの引数とその意味を簡単に確認するには、CLIから core show application voicemailmainなどのようにアプリケーション名を指定します。&lt;br /&gt;
 *CLI&amp;gt; core show application voicemailmain&lt;br /&gt;
   -= Info about application &#039;VoiceMailMain&#039; =-&lt;br /&gt;
 &lt;br /&gt;
 [Synopsis]&lt;br /&gt;
 Check Voicemail messages&lt;br /&gt;
 &lt;br /&gt;
 [Description]&lt;br /&gt;
   VoiceMailMain([mailbox][@context][,options]): This application allows the&lt;br /&gt;
 calling party to check voicemail messages. A specific mailbox, and optional&lt;br /&gt;
 corresponding context, may be specified. If a mailbox is not provided, the&lt;br /&gt;
 calling party will be prompted to enter one. If a context is not specified,&lt;br /&gt;
 the &#039;default&#039; context will be used.&lt;br /&gt;
 &lt;br /&gt;
   Options:&lt;br /&gt;
     p    - Consider the mailbox parameter as a prefix to the mailbox that&lt;br /&gt;
            is entered by the caller.&lt;br /&gt;
     g(#) - Use the specified amount of gain when recording a voicemail&lt;br /&gt;
            message. The units are whole-number decibels (dB).&lt;br /&gt;
     s    - Skip checking the passcode for the mailbox.&lt;br /&gt;
     a(#) - Skip folder prompt and go directly to folder specified.&lt;br /&gt;
            Defaults to INBOX&lt;br /&gt;
VoicemailやMeetMeそれ自体の設定は、それぞれのアプリケーション用の設定ファイルで行います。voicemail.confやmeetme.confがそれです。&lt;br /&gt;
&lt;br /&gt;
==反映とテスト==&lt;br /&gt;
extensions.confを変更したら、[[Asterisk CLI]]から次のコマンドを実行すると反映されます。&lt;br /&gt;
 dialplan reload&lt;br /&gt;
&lt;br /&gt;
現在読み込まれているextensions.confの内容(以下ダイヤルプランと言います)を見るには、Asterisk CLIで次のコマンドを実行します。&lt;br /&gt;
 dialplan show&lt;br /&gt;
&lt;br /&gt;
パターンマッチの内容のテストとして、例えばusersコンテキストから6421にダイヤルした場合の動作を表示するには、次のコマンドを実行します。&lt;br /&gt;
 dialplan show 6421@users&lt;br /&gt;
この場合、真っ先にマッチするだろうパターン以外のダイヤルプランも表示されます。&amp;lt;br&amp;gt;&lt;br /&gt;
Hangup()やBusy()アプリケーションによって発信が終了されない場合、同じコンテキスト内の、真っ先にマッチするだろうパターンでないダイヤルプランの、探すべき優先度の行にも移っていく仕様なのでご注意ください。 &lt;br /&gt;
&lt;br /&gt;
参考:https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB_extensions.conf&amp;diff=11505</id>
		<title>Asterisk サンプル設定ファイル extensions.conf</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB_extensions.conf&amp;diff=11505"/>
		<updated>2022-11-28T03:01:47Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: extensions.confでのsameの記載を追加。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==context==&lt;br /&gt;
extenの設定で一番わかりにくいのがこの、コンテキストだと思います。コンテキストとは&amp;lt;nowiki&amp;gt;&#039; [ ] &#039;&amp;lt;/nowiki&amp;gt;で括られたセクションのことをいい、指定されたブロックをそのコンテキストと呼びます。&lt;br /&gt;
 [incoming]&lt;br /&gt;
 ・&lt;br /&gt;
 ・&lt;br /&gt;
 incoming context&lt;br /&gt;
 ・&lt;br /&gt;
 ・&lt;br /&gt;
 [outgoing]&lt;br /&gt;
 ・&lt;br /&gt;
 ・&lt;br /&gt;
この例では&amp;lt;nowiki&amp;gt;[incoming]&amp;lt;/nowiki&amp;gt;で指定された部分から、次の&amp;lt;nowiki&amp;gt;[outgoing]&amp;lt;/nowiki&amp;gt;の前までの部分が&lt;br /&gt;
incomingコンテキストとなります。&amp;lt;br&amp;gt;&lt;br /&gt;
sip.confやiax.confなどでcontext=incomingが指定されていると、その相手(ITSPや電話機)からの着信や接続要求はこのコンテキスト内で行われます。&lt;br /&gt;
==exten==&lt;br /&gt;
extensions.confの基本的な書き方は次の通りです。&lt;br /&gt;
 exten =&amp;gt; 番号,プライオリティ,アプリケーション&lt;br /&gt;
番号&lt;br /&gt;
:これがextenそのもので、いわゆる内線番号に相当します。&lt;br /&gt;
プライオリティ&lt;br /&gt;
:処理の順番を書きます&lt;br /&gt;
アプリケーション&lt;br /&gt;
:Asteriskのアプリケーション・コマンドを書きます&lt;br /&gt;
:この部分にはアプリケーション・コマンドだけでなくファンクションと呼ばれるもの、あるいはPBX組み込み機能を記述することができます。&lt;br /&gt;
:アプリケーション・コマンドはモジュールのプレフィクスが app_ のものです。&lt;br /&gt;
:ファンクションはモジュールプレフィクスが func_ のものです。&lt;br /&gt;
&lt;br /&gt;
==same==&lt;br /&gt;
前項extenでは、以降の例で見られるように「番号」を毎行書いていく必要があります。&lt;br /&gt;
これは面倒であり、Asterisk 1.6.2以降では、sameを使うと省略できます。&lt;br /&gt;
&lt;br /&gt;
例えば、4312番にダイヤルしたときの動作を次のように書いているとします。&lt;br /&gt;
 exten =&amp;gt; 4312,1,NoOp()&lt;br /&gt;
 exten =&amp;gt; 4312,n,Dial(ダイヤル先)&lt;br /&gt;
 exten =&amp;gt; 4312,n,Hangup&lt;br /&gt;
&lt;br /&gt;
sameを使うとこのように書けます。4312は最初のexten行のみに記載し、2行目以降はsameを使い、省略します。&lt;br /&gt;
 exten =&amp;gt; 4312,1,NoOp()&lt;br /&gt;
 same  =&amp;gt; n,Dial(ダイヤル先)&lt;br /&gt;
 same  =&amp;gt; n,Hangup&lt;br /&gt;
&lt;br /&gt;
4312番への動作を書き終わり、別の番号への動作を書くときは、また「exten =&amp;gt; 番号,1,処理」から書き始めます。&lt;br /&gt;
&lt;br /&gt;
==generalセクション==&lt;br /&gt;
その名の通り全般のオプション指定を行います。&lt;br /&gt;
 [general]&lt;br /&gt;
 writeprotect=no&lt;br /&gt;
 priorityjumping=no&lt;br /&gt;
writeprotect&lt;br /&gt;
:CLIによるextenの変更を許可するか禁止するかを指定します。&lt;br /&gt;
priorityjumping&lt;br /&gt;
:Asterisk 1.0系との互換性のためのオプションです。n+101ジャンプを使うか使わないかを指定しますが、今後は使わない方向ですのでnoを指定しておきます。&lt;br /&gt;
==globalsセクション==&lt;br /&gt;
グローバル変数を設定します。設定値は見ての通りで、Asteriskでは&lt;br /&gt;
 変数=値&lt;br /&gt;
で、変数が設定できます。&lt;br /&gt;
 [globals]&lt;br /&gt;
 USEVOICEMAIL=YES&lt;br /&gt;
 SPEAKINGCLOCK=317&lt;br /&gt;
 ECHOTEST=333&lt;br /&gt;
 ;For Hikari Denwa&lt;br /&gt;
 MYNUMBER=03XXXXXXXX&lt;br /&gt;
==defaultセクション==&lt;br /&gt;
この部分がdefaultコンテキストです。context=defaultが指定されたものは、ここで処理が行われます。&amp;lt;br&amp;gt;&lt;br /&gt;
全部を転記すると長くなりすぎるので、一部だけ解説します。&amp;lt;br&amp;gt;&lt;br /&gt;
===時報===&lt;br /&gt;
 ; Speaking Clock&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},1,Answer()&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Wait(1)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Set(FutureTime=$[${EPOCH} + 5])&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,SayUnixTime(${FutureTime},Japan,YbdAPHM)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Playback(jp-desu)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,playback(beep)&lt;br /&gt;
 exten =&amp;gt; ${SPEAKINGCLOCK},n,Hangup&lt;br /&gt;
ここで変数の参照を行っています。内線番号は変数、SPEAKINGCLOCKに指定された番号になります。値を参照するには&#039;&#039;&#039;${ }&#039;&#039;&#039;で括ります。&amp;lt;br&amp;gt;&lt;br /&gt;
プライオリティは本来、1,2,と順番に書くのですがAsterisk 1.2からオートインクリメントが可能になり&#039;&#039;&#039;n&#039;&#039;&#039;を記述しておくと自動的に+1するようになりました。&amp;lt;br&amp;gt;&lt;br /&gt;
===一斉呼び出し===&lt;br /&gt;
 ; Ring 201-204 phones&lt;br /&gt;
 exten =&amp;gt; 200,1,Dial(SIP/201&amp;amp;SIP/202&amp;amp;SIP/203&amp;amp;SIP/204&amp;amp;IAX2/201&amp;amp;IAX2/202&amp;amp;IAX2/203&amp;amp;IAX2/204)&lt;br /&gt;
 exten =&amp;gt; 200,n,Hangup&lt;br /&gt;
この例はSIP/201またはIAX/201～SIP/204またはIAX/204を一斉に呼び出す方法を示しています。Dialコマンドでは&amp;amp;で区切り複数の相手を指定することで、一斉に呼び出すことができます。&amp;lt;br&amp;gt;&lt;br /&gt;
===個別呼び出し===&lt;br /&gt;
 ; Local SIP/IAX phones 201-209&lt;br /&gt;
 exten =&amp;gt; _20Z,1,GotoIf($[&amp;quot;${USEVOICEMAIL}&amp;quot;=&amp;quot;YES&amp;quot;]?use-vm)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Dial(SIP/${EXTEN}&amp;amp;IAX2/${EXTEN},,tT)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Hangup&lt;br /&gt;
 exten =&amp;gt; _20Z,n(use-vm),Dial(SIP/${EXTEN}&amp;amp;IAX2/${EXTEN},60,tTwW)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,NoOp(${DIALSTATUS})&lt;br /&gt;
 exten =&amp;gt; _20Z,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot;=&amp;quot;BUSY&amp;quot;]?vm-rec)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot;=&amp;quot;NOANSWER&amp;quot;]?vm-rec)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,GotoIf($[&amp;quot;${DIALSTATUS}&amp;quot;=&amp;quot;CHANUNAVAIL&amp;quot;]?vm-rec)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Hangup&lt;br /&gt;
 exten =&amp;gt; _20Z,n(vm-rec),Answer()&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Wait(1)&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Voicemail(${EXTEN})&lt;br /&gt;
 exten =&amp;gt; _20Z,n,Hangup&lt;br /&gt;
まずextenの部分では_20Zのように指定してありますが、これはパターンマッチを意味します。Zは1～9までの数字に合致します。これにより個々の電話機を呼び出すextenをひとつづつ記述するのではなく、これだけで一括記述できるわけです。&amp;lt;br&amp;gt;&lt;br /&gt;
個別の内線番号を呼び出す設定ですが、ボイスメール使用可否の判断のため少し複雑になっています。&amp;lt;br&amp;gt;&lt;br /&gt;
n(use-vm) は&#039;&#039;&#039;ラベル&#039;&#039;&#039;です。Goto命令でジャンプさせる場合に、プライオリティの数字を指定するのではなくラベルを指定することができます。&amp;lt;br&amp;gt;&lt;br /&gt;
DIALSTATUSなどの変数は、各アプリケーションコマンドがセットします。例えばDIALSTATUSはDial()がセットし、ダイヤルした結果をその変数に入れます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===アプリケーション実行===&lt;br /&gt;
基本的に、Asteriskの機能はアプリケーションコマンドで実装されています。Dialもそのひとつですが、機能を「まとめて」ひとつのアプリケーションとなっている例としてはVoicemailやMeetMeがあります。&lt;br /&gt;
 exten =&amp;gt; 299,1,Answer()&lt;br /&gt;
 exten =&amp;gt; 299,n,Wait(1)&lt;br /&gt;
 exten =&amp;gt; 299,n,VoicemailMain(${CALLERID(num)},s)&lt;br /&gt;
 exten =&amp;gt; 299,n,Hangup&lt;br /&gt;
例えばこの部分はボイスメールのメニュー、再生などを行うVoicemailMainというアプリケーションを実行しています。この際の引数として発信者番号(&amp;lt;nowiki&amp;gt;${CALLERID(num)}&amp;lt;/nowiki&amp;gt;)を使い、パスワード認証を行わない(s)という呼び出し方になっています。アプリケーションの引数とその意味を簡単に確認するには、CLIから core show application voicemailmainなどのようにアプリケーション名を指定します。&lt;br /&gt;
 *CLI&amp;gt; core show application voicemailmain&lt;br /&gt;
   -= Info about application &#039;VoiceMailMain&#039; =-&lt;br /&gt;
 &lt;br /&gt;
 [Synopsis]&lt;br /&gt;
 Check Voicemail messages&lt;br /&gt;
 &lt;br /&gt;
 [Description]&lt;br /&gt;
   VoiceMailMain([mailbox][@context][,options]): This application allows the&lt;br /&gt;
 calling party to check voicemail messages. A specific mailbox, and optional&lt;br /&gt;
 corresponding context, may be specified. If a mailbox is not provided, the&lt;br /&gt;
 calling party will be prompted to enter one. If a context is not specified,&lt;br /&gt;
 the &#039;default&#039; context will be used.&lt;br /&gt;
 &lt;br /&gt;
   Options:&lt;br /&gt;
     p    - Consider the mailbox parameter as a prefix to the mailbox that&lt;br /&gt;
            is entered by the caller.&lt;br /&gt;
     g(#) - Use the specified amount of gain when recording a voicemail&lt;br /&gt;
            message. The units are whole-number decibels (dB).&lt;br /&gt;
     s    - Skip checking the passcode for the mailbox.&lt;br /&gt;
     a(#) - Skip folder prompt and go directly to folder specified.&lt;br /&gt;
            Defaults to INBOX&lt;br /&gt;
VoicemailやMeetMeそれ自体の設定は、それぞれのアプリケーション用の設定ファイルで行います。voicemail.confやmeetme.confがそれです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E9%9B%BB%E8%A9%B1%E6%A9%9F%E3%81%AE%E6%8E%A5%E7%B6%9A&amp;diff=11465</id>
		<title>アナログ電話機の接続</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E9%9B%BB%E8%A9%B1%E6%A9%9F%E3%81%AE%E6%8E%A5%E7%B6%9A&amp;diff=11465"/>
		<updated>2022-03-19T13:30:03Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* ATA(Analog Telephone Adapter) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Asteriskと普通のアナログ電話機を接続する方法です。主に以下の手段があります。&lt;br /&gt;
==アナログ・インタフェースカード==&lt;br /&gt;
*Digium [[TDM400P]]&lt;br /&gt;
==ATA(Analog Telephone Adapter)==&lt;br /&gt;
アナログ電話機を、VoIPベースのネットワークなどの電話網に接続する製品である。&lt;br /&gt;
*[[VoIPアダプタ(NTT東西)|VoIPアダプタ]] NTT東日本/西日本がレンタル、販売していたVoIPアダプタ。&lt;br /&gt;
*[[Linksys SPA3102]]&lt;br /&gt;
*[[Linksys PAP2T]]&lt;br /&gt;
*[[Digium IAXy]]&lt;br /&gt;
*[[Grandstream HT286]]&lt;br /&gt;
&lt;br /&gt;
==VoIPルータ==&lt;br /&gt;
*[[ICOM SR-5200]]　(メーカー製造中止)&lt;br /&gt;
*[[YAMAHA RT57i|YAMAHA RT57i/RT58i]]&lt;br /&gt;
*[[YAMAHA RTV700]]&lt;br /&gt;
&lt;br /&gt;
==VoIPゲートウェイ==&lt;br /&gt;
*[[Quintum]]&lt;br /&gt;
*Grandstream GXW4004,GXW4008,GXW4024（FXSタイプ）&lt;br /&gt;
*Grandstream GXW4104,GXW4108（FXOタイプ）&lt;br /&gt;
*MultiTech MultiVOIP210&lt;br /&gt;
*MultiTech MultiVOIP410&lt;br /&gt;
*MultiTech MultiVOIP810&lt;br /&gt;
==変なアナログ電話機==&lt;br /&gt;
*[[STP1960]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=VoIP%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF(NTT%E6%9D%B1%E8%A5%BF)&amp;diff=11464</id>
		<title>VoIPアダプタ(NTT東西)</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=VoIP%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF(NTT%E6%9D%B1%E8%A5%BF)&amp;diff=11464"/>
		<updated>2022-03-19T13:26:52Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「NTT東西がレンタル・販売していた、VoIPアダプタ。&amp;lt;br&amp;gt; 固有の製品名、型番...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NTT東西がレンタル・販売していた、[[アナログ電話機の接続#ATA.28Analog_Telephone_Adapter.29|VoIPアダプタ]]。&amp;lt;br&amp;gt;&lt;br /&gt;
固有の製品名、型番のようなものがない。&lt;br /&gt;
&lt;br /&gt;
==機能==&lt;br /&gt;
Asteriskに対してREGISTし、接続されたアナログ電話機での発着信が可能。&amp;lt;br&amp;gt;&lt;br /&gt;
（NTTの公式の商品説明では、事業者の提供する050IP電話等に直接接続することが想定されているようだが、後述の仕様により使いづらい）&amp;lt;br&amp;gt;&lt;br /&gt;
アナログ電話回線(以下「加入電話」）も接続可能で、発信先電話番号によって使用する回線をIP電話・加入電話を自動で切り替える。&amp;lt;br&amp;gt;&lt;br /&gt;
（ただし加入電話回線なしでも使用可能）&lt;br /&gt;
&lt;br /&gt;
設定はWebブラウザから行う。&amp;lt;br&amp;gt;&lt;br /&gt;
他、簡易ブロードバンドルーター機能(PPPoEを喋る)搭載、UPnP対応といった機能を搭載している。&lt;br /&gt;
&lt;br /&gt;
==入手==&lt;br /&gt;
2022年現在では、NTTからの販売は終了しており、インターネットオークション等で中古品を手に入れることとなる。&lt;br /&gt;
&lt;br /&gt;
==動作・仕様==&lt;br /&gt;
本機の仕様・動作にはともちゃ氏が[https://tomocha.net/docs/voip/ 述べて]いるように、多数の注意すべき点がある。&lt;br /&gt;
&lt;br /&gt;
*「設定はWebブラウザから可能」ではあるが、本機にはRJ-45のWAN端子とLAN端子があり、LAN端子側に接続したPCからのみ可能。&lt;br /&gt;
:Webブラウザから見える設定画面には「WAN側からの保守」なる設定項目があるが、これはベンダー用の機能であって、設定画面にWAN端子側からアクセス可能になるという機能ではない。&lt;br /&gt;
&lt;br /&gt;
本品はルータモードとアダプターモードからなる2つの動作モードを備えている。しかし、次のような問題点がある。&lt;br /&gt;
&lt;br /&gt;
===ルータモード===&lt;br /&gt;
* LAN端子側のDHCPサーバーを無効化できない。&lt;br /&gt;
* 本機のWAN・LAN端子は100Mbpsまで対応で1Gbps非対応であり、またそのスループットは5Mbps程度との報告がある(https://bb.watch.impress.co.jp/cda/special/1731.html )。2022年現在ではおよそ実用的ではない。&lt;br /&gt;
* NAPT(いわゆるポート開放)機能はない。ブロードバンドルーターとしての機能は極めて簡易である。&lt;br /&gt;
&lt;br /&gt;
===アダプターモード===&lt;br /&gt;
* UPnP対応ルーターの配下で使用することが必須となる（WAN端子側にUPnP対応ルーターが見つからない場合、SIP REGISTに進まない動作となっている）。&lt;br /&gt;
* アダプターモードでも、実はルーター(L3スイッチ)として動作し、LAN端子側からWAN端子側にアクセス可能。&lt;br /&gt;
* ルータモードと同様に、LAN端子側のDHCPサーバーを無効化できない。&lt;br /&gt;
* SIPサーバーへの接続喪失時の再接続の動作に問題がある。&lt;br /&gt;
&lt;br /&gt;
==LAN内のAsteriskにREGISTして使う==&lt;br /&gt;
上記のような特徴のある本機だが、&lt;br /&gt;
WAN端子で家庭内LANに接続し、同じ家庭内LAN内にあるAsteriskにREGISTして、接続した電話機の発着信機能のみ使用して、ルーター機能等は使用しない場合には、次のように設定すると使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
VoIPアダプタのファームウェアはVer3.47、Asteriskバージョンは16.12.0にて試した。&lt;br /&gt;
&lt;br /&gt;
===接続===&lt;br /&gt;
* 本機のWAN端子は、家庭内LANに接続する。&lt;br /&gt;
* LAN端子は、設定用PCを接続する。これは設定作業時のみ接続し、終わったら外して良い。&lt;br /&gt;
* 電話機ポートにはアナログ電話機を接続する。&lt;br /&gt;
* 電話回線ポートには、電話回線を接続してもよい。&lt;br /&gt;
&lt;br /&gt;
===Asterisk側の設定===&lt;br /&gt;
&#039;&#039;&#039;重要&#039;&#039;&#039; Asterisk側では本機に対し、μ-lawコーデックの使用を許可しなければならない。&amp;lt;br&amp;gt;&lt;br /&gt;
pjsip.confでの設定例：&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[201](endpoint-default)&lt;br /&gt;
allow = !all,alaw,ulaw,opus,g722,gsm&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
他、一般的なSIPクライアント向けの設定を行う。&lt;br /&gt;
&lt;br /&gt;
===本機の設定===&lt;br /&gt;
設定画面の開き方は、説明書を参照のこと。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====「ネットワーク設定」====&lt;br /&gt;
*「PPPoE/IP設定」では、接続種別はイーサネットとする。&lt;br /&gt;
:同画面「IP設定」では、WAN側端子におけるIPアドレス設定を行う。DHCPを使用してIPアドレスを取得する場合は「ダイナミック」、静的IPアドレスを設定する場合は「スタティック」とし、各自の環境に合わせた必要な設定を行う。&lt;br /&gt;
*「ルータ/アダプタ設定、UPnP使用」画面では「ルータ」モードに設定する。「UPnP使用」は「使用しない」にする。&lt;br /&gt;
* DHCPサーバー設定などはルータモードでは変更不可能である。&lt;br /&gt;
&lt;br /&gt;
====「IP電話設定」====&lt;br /&gt;
このページは説明書通りに設定すればよい。&amp;lt;br&amp;gt;&lt;br /&gt;
「電話回線の種別」は、電話回線を接続していないときはPB(プッシュ回線)にしておくのが良いだろう。接続する電話機がダイヤル回線専用等の場合は、本機もダイヤル回線の設定にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====「設定情報の確認」====&lt;br /&gt;
設定情報の「確認」なるページにどうしてSIPサーバー情報の設定項目が配置されているのだろうか。&lt;br /&gt;
* 「SIPサーバアドレス」にはLAN内のSIPサーバーアドレスを入力する。&lt;br /&gt;
* 「REGISTERサーバアドレス」「REGISTERサーバポート番号」はそれぞれSIPサーバーのアドレスとポートを入力しておく。&lt;br /&gt;
* 「IP電話番号」はAsteriskからみた、このVoIPアダプタの電話番号を入れておく。この欄は数字しか入力できないわけではないようだ。&lt;br /&gt;
* 「市外局番」は何に使用されるのかが判然としないが、入力しておく。（市外局番を省略して発信した場合に、自動的に付加されるのか？）&lt;br /&gt;
&lt;br /&gt;
====設定の確認====&lt;br /&gt;
以上のように設定を行い、「その他設定」内「システム情報と端末の状態」ページで、「端末の状態」欄に&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
SIP: 登録が完了しました。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
と表示されていれば使用可能である。このとき、本機本体前面では、少なくとも、電源ランプ、VoIPランプ、WANランプが点灯していればよい。&lt;br /&gt;
&lt;br /&gt;
====その他====&lt;br /&gt;
&lt;br /&gt;
説明書に記載のある、「加入電話回線を選択する電話番号」にはいわゆる1XY特番が記載されており、これらの番号に対しては、IP電話経由での発信ができない。&amp;lt;br&amp;gt;&lt;br /&gt;
Asteriskでの内線通話としてこれらの番号をダイヤルすることはできないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
（110/118/119に対してダイヤルした後は「本品の再起動が必要になります」とも記載がある）&lt;br /&gt;
&lt;br /&gt;
==参考文献==&lt;br /&gt;
&lt;br /&gt;
* ともちゃ氏による動作検証・考察&lt;br /&gt;
:https://tomocha.net/docs/voip/&lt;br /&gt;
* NTT西日本の製品ページ&lt;br /&gt;
:https://www.ntt-west.co.jp/kiki/consumer/flets/voip/index.html&lt;br /&gt;
* 取扱説明書&lt;br /&gt;
:https://www.ntt-west.co.jp/kiki/download/flets/voip/VoIP-adapta0804.pdf&lt;br /&gt;
* NTT西日本 VoIPアダプタのファームウェア&lt;br /&gt;
:https://www.ntt-west.co.jp/kiki/download/flets/voip/index15.html&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11366</id>
		<title>Asterisk ログファイル</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11366"/>
		<updated>2020-08-23T05:24:34Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
Asteriskのログファイルについて&lt;br /&gt;
==ログファイル==&lt;br /&gt;
デフォルトの設定では/var/log/asterisk/messagesに、ログレベルnotice, warning, errorが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルの設定は/etc/asterisk/logger.confで行います。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; /etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
messages =&amp;gt; notice,warning,error&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
noticeレベルログとして認証失敗も記録されるため、Asteriskをインターネットに公開していると、膨大なログが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
[[SIP-Fail2ban|Fail2ban]]を使用していても、しつこい攻撃者がいると、ログが増えていきます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルを置くvarパーティションが溢れないようにログファイルの管理を行う必要があります。&lt;br /&gt;
&lt;br /&gt;
==ログの記録レベルを変更する==&lt;br /&gt;
必要がなければ、ログの記録レベルを落として出力を減らすのも、1つの手段です。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/asterisk/logger.confのlogfilesセクションにて、上記の例にならいログレベルをカンマ区切りで記載します。&amp;lt;br&amp;gt;&lt;br /&gt;
レベルとしてはdebug, trace, notice, warning, error, verbose, dtmf, fax, securityが記載できます。ログレベルとして「*」を使用すると、全ログレベルを意味します。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ログレベルの前に[json]を付与するとJSON出力が可能です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; /etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
full-json =&amp;gt; [json]debug,verbose,notice,warning,error,dtmf,fax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;警告：debugログレベル及びこれを含む*ログレベルを使用すると、極めて多量のログが出力されます。運用モードではdebugログを出力しないことを強く勧めます！&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fail2banを使用している場合は、ログ出力のレベルを変更すると動作に影響を及ぼす恐れがあります。注意して変更してください。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
==自動でログをローテートする==&lt;br /&gt;
Asteriskには、内蔵のログローテート機構があります。&amp;lt;br&amp;gt;&lt;br /&gt;
===ローテートの仕方の設定===&lt;br /&gt;
ログのローテートのファイル名の付け方をlogger.confの[general]セクションで設定できます。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; /etc/asterisk/logger.conf&lt;br /&gt;
[general]&lt;br /&gt;
rotatestrategy=sequential&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; none&lt;br /&gt;
: 全くローテートを行いません。&lt;br /&gt;
; sequential(デフォルト)&lt;br /&gt;
: ローテートするたびに、最も新しいログファイルのファイル名の通し番号が最も大きくなるように変名します。&lt;br /&gt;
; rotate&lt;br /&gt;
: ローテートするたびに、過去のログファイルのファイル名の通し番号を1ずつ増やし、最も新しいログファイルの末尾の数字を0とします。&lt;br /&gt;
; timestamp&lt;br /&gt;
: 通し番号の代わりにタイムスタンプを使用します。&lt;br /&gt;
&lt;br /&gt;
sequentialとrotateの違いが分かりにくいですが、例えば「messages」ログファイルを今、ローテートするとして、既にmessages.0　messages.1　messages.2がある場合、&lt;br /&gt;
; sequential&lt;br /&gt;
: ローテートすると、messagesはmessages.3に変名されます。0～2はそのままです。&lt;br /&gt;
; rotate&lt;br /&gt;
: ローテートすると、messages.2はmessages.3に、messages.1がmessages.2に、messages.0がmessages.1に変名され、messagesはmessage.0に変名されます。&lt;br /&gt;
その後、新しいmessagesが作られ、ローテート後はこの新しいmessagesに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
===古いファイルを自動で消す===&lt;br /&gt;
varパーティションが溢れないようにするためには、古いファイルを自動で消す必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
古いログファイルを4世代保持しておき、古いファイルから消していくためには、[general]セクションで次のように設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; /etc/asterisk/logger.conf&lt;br /&gt;
[general]&lt;br /&gt;
rotatestrategy=rotate&lt;br /&gt;
exec_after_rotate=rm -f $[&amp;quot;${filename}&amp;quot; : &amp;quot;(.+)\.0$&amp;quot;].4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
: 解説：上記の設定ファイルではAsterisk expressionsの記法が使用されています。${filename}は、rotatestrategy=rotateにおいては「/var/log/asterisk/messages.0」のような文字列になります。&lt;br /&gt;
: これに正規表現 &amp;quot;(.+)\.0$&amp;quot; をマッチ（:演算子は正規表現をマッチさせる演算子ですが、暗黙の「^」により文字列の先頭にマッチされます）させ、Asterisk expressionsの正規表現は他の多数の言語でいう$1を返す仕様のため、&lt;br /&gt;
: これに&amp;quot;.4&amp;quot;を付与したものを削除することで、最も古いログファイルを削除します。&lt;br /&gt;
: 詳細は[[Asterisk expressions]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
===ローテートの実行===&lt;br /&gt;
&lt;br /&gt;
ログのローテートそのものは、[[Asterisk CLI]]でlogger rotateを行うと実行されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
そこで、systemdの下で定期的にログローテートを行うためのユニットファイルの一例を示します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate&lt;br /&gt;
Requires=asterisk.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
# root以外のユーザーでAsteriskを実行している場合は下2行でAsteriskの実行ユーザーに合わせてください&lt;br /&gt;
#User=asterisk&lt;br /&gt;
#Group=asterisk&lt;br /&gt;
ExecStart=/usr/sbin/asterisk -rx &#039;logger rotate&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.timer&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate timer&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Mon *-*-* 04:00:00&lt;br /&gt;
RandomizedDelaySec=300&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定したら、systemdにユニットファイルをリロードさせ、タイマーを始動します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl daemon-reload&lt;br /&gt;
# systemctl start asterisk-logrotate.timer&lt;br /&gt;
# systemctl enable asterisk-logrotate.timer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
手動で1回ローテートしてみようと思う場合、次を実行します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl start asterisk-logrotate.service&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部の機構によりログをローテートする==&lt;br /&gt;
上記はAsterisk内蔵のログローテート機構によるローテートを説明しました。logrotate等、外部のログローテートツールを使用してログローテートを行う方法もあります。&amp;lt;BR&amp;gt;&lt;br /&gt;
その場合の詳細は割愛しますが、[https://www.voip-info.org/logrotate/ voip-info.org]等には参考となる情報があるようです。&amp;lt;BR&amp;gt;&lt;br /&gt;
外部のログローテートツールによる場合でも、ローテート後にはCLIからlogger reloadを実行すればAsteriskはログを開き直すようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11365</id>
		<title>Asterisk ログファイル</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11365"/>
		<updated>2020-08-20T16:12:11Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* 古いファイルを自動で消す */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
Asteriskのログファイルについて&lt;br /&gt;
==ログファイル==&lt;br /&gt;
デフォルトの設定では/var/log/asterisk/messagesに、ログレベルnotice, warning, errorが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルの設定は/etc/asterisk/logger.confで行います。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
messages =&amp;gt; notice,warning,error&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
noticeレベルログとして認証失敗も記録されるため、Asteriskをインターネットに公開していると、膨大なログが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
[[SIP-Fail2ban|Fail2ban]]を使用していても、しつこい攻撃者がいると、ログが増えていきます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルを置くvarパーティションが溢れないようにログファイルの管理を行う必要があります。&lt;br /&gt;
&lt;br /&gt;
==ログの記録レベルを変更する==&lt;br /&gt;
必要がなければ、ログの記録レベルを落として出力を減らすのも、1つの手段です。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/asterisk/logger.confのlogfilesセクションにて、上記の例にならいログレベルをカンマ区切りで記載します。&amp;lt;br&amp;gt;&lt;br /&gt;
レベルとしてはdebug, trace, notice, warning, error, verbose, dtmf, fax, securityが記載できます。ログレベルとして「*」を使用すると、全ログレベルを意味します。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ログレベルの前に[json]を付与するとJSON出力が可能です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;full-json =&amp;gt; [json]debug,verbose,notice,warning,error,dtmf,fax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;警告：debugログレベル及びこれを含む*ログレベルを使用すると、極めて多量のログが出力されます。運用モードではdebugログを出力しないことを強く勧めます！&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fail2banを使用している場合は、ログ出力のレベルを変更すると動作に影響を及ぼす恐れがあります。注意して変更してください。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
==自動でログをローテートする==&lt;br /&gt;
Asteriskには、内蔵のログローテート機構があります。&amp;lt;br&amp;gt;&lt;br /&gt;
===ローテートの仕方の設定===&lt;br /&gt;
ログのローテートのファイル名の付け方をlogger.confの[general]セクションで設定できます。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[general]&lt;br /&gt;
rotatestrategy=sequential&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; none&lt;br /&gt;
: 全くローテートを行いません。&lt;br /&gt;
; sequential(デフォルト)&lt;br /&gt;
: ローテートするたびに、最も新しいログファイルのファイル名の通し番号が最も大きくなるように変名します。&lt;br /&gt;
; rotate&lt;br /&gt;
: ローテートするたびに、過去のログファイルのファイル名の通し番号を1ずつ増やし、最も新しいログファイルの末尾の数字を0とします。&lt;br /&gt;
; timestamp&lt;br /&gt;
: 通し番号の代わりにタイムスタンプを使用します。&lt;br /&gt;
&lt;br /&gt;
sequentialとrotateの違いが分かりにくいですが、例えば「messages」ログファイルを今、ローテートするとして、既にmessages.0　messages.1　messages.2がある場合、&lt;br /&gt;
; sequential&lt;br /&gt;
: ローテートすると、messagesはmessages.3に変名されます。0～2はそのままです。&lt;br /&gt;
; rotate&lt;br /&gt;
: ローテートすると、messages.2はmessages.3に、messages.1がmessages.2に、messages.0がmessages.1に変名され、messagesはmessage.0に変名されます。&lt;br /&gt;
その後、新しいmessagesが作られ、ローテート後はこの新しいmessagesに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
===古いファイルを自動で消す===&lt;br /&gt;
varパーティションが溢れないようにするためには、古いファイルを自動で消す必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
古いログファイルを4世代保持しておき、古いファイルから消していくためには、[general]セクションで次のように設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[general]&lt;br /&gt;
rotatestrategy=rotate&lt;br /&gt;
exec_after_rotate=rm -f $[&amp;quot;${filename}&amp;quot; : &amp;quot;(.+)\.0$&amp;quot;].4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
: 解説：上記の設定ファイルではAsterisk expressionsの記法が使用されています。${filename}は、rotatestrategy=rotateにおいては「/var/log/asterisk/messages.0」のような文字列になります。&lt;br /&gt;
: これに正規表現 &amp;quot;(.+)\.0$&amp;quot; をマッチ（:演算子は正規表現をマッチさせる演算子ですが、暗黙の「^」により文字列の先頭にマッチされます）させ、Asterisk expressionsの正規表現は他の多数の言語でいう$1を返す仕様のため、&lt;br /&gt;
: これに&amp;quot;.4&amp;quot;を付与したものを削除することで、最も古いログファイルを削除します。&lt;br /&gt;
: 詳細は[[Asterisk expressions]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
===ローテートの実行===&lt;br /&gt;
&lt;br /&gt;
ログのローテートそのものは、[[Asterisk CLI]]でlogger rotateを行うと実行されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
そこで、systemdの下で定期的にログローテートを行うためのユニットファイルの一例を示します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate&lt;br /&gt;
Requires=asterisk.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#User=asterisk&lt;br /&gt;
#Group=asterisk&lt;br /&gt;
ExecStart=/usr/sbin/asterisk -rx &#039;logger rotate&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.timer&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate timer&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Mon *-*-* 04:00:00&lt;br /&gt;
RandomizedDelaySec=300&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定したら、systemdにユニットファイルをリロードさせ、タイマーを始動します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl daemon-reload&lt;br /&gt;
# systemctl start asterisk-logrotate.timer&lt;br /&gt;
# systemctl enable asterisk-logrotate.timer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
手動で1回ローテートしてみようと思う場合、次を実行します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl start asterisk-logrotate.service&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部の機構によりログをローテートする==&lt;br /&gt;
上記はAsterisk内蔵のログローテート機構によるローテートを説明しました。logrotate等、外部のログローテートツールを使用してログローテートを行う方法もあります。&amp;lt;BR&amp;gt;&lt;br /&gt;
その場合の詳細は割愛しますが、[https://www.voip-info.org/logrotate/ voip-info.org]等には参考となる情報があるようです。&amp;lt;BR&amp;gt;&lt;br /&gt;
外部のログローテートツールによる場合でも、ローテート後にはCLIからlogger reloadを実行すればAsteriskはログを開き直すようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11364</id>
		<title>Asterisk ログファイル</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11364"/>
		<updated>2020-08-20T15:27:31Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
Asteriskのログファイルについて&lt;br /&gt;
==ログファイル==&lt;br /&gt;
デフォルトの設定では/var/log/asterisk/messagesに、ログレベルnotice, warning, errorが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルの設定は/etc/asterisk/logger.confで行います。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
messages =&amp;gt; notice,warning,error&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
noticeレベルログとして認証失敗も記録されるため、Asteriskをインターネットに公開していると、膨大なログが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
[[SIP-Fail2ban|Fail2ban]]を使用していても、しつこい攻撃者がいると、ログが増えていきます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルを置くvarパーティションが溢れないようにログファイルの管理を行う必要があります。&lt;br /&gt;
&lt;br /&gt;
==ログの記録レベルを変更する==&lt;br /&gt;
必要がなければ、ログの記録レベルを落として出力を減らすのも、1つの手段です。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/asterisk/logger.confのlogfilesセクションにて、上記の例にならいログレベルをカンマ区切りで記載します。&amp;lt;br&amp;gt;&lt;br /&gt;
レベルとしてはdebug, trace, notice, warning, error, verbose, dtmf, fax, securityが記載できます。ログレベルとして「*」を使用すると、全ログレベルを意味します。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ログレベルの前に[json]を付与するとJSON出力が可能です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;full-json =&amp;gt; [json]debug,verbose,notice,warning,error,dtmf,fax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;警告：debugログレベル及びこれを含む*ログレベルを使用すると、極めて多量のログが出力されます。運用モードではdebugログを出力しないことを強く勧めます！&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fail2banを使用している場合は、ログ出力のレベルを変更すると動作に影響を及ぼす恐れがあります。注意して変更してください。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
==自動でログをローテートする==&lt;br /&gt;
Asteriskには、内蔵のログローテート機構があります。&amp;lt;br&amp;gt;&lt;br /&gt;
===ローテートの仕方の設定===&lt;br /&gt;
ログのローテートのファイル名の付け方をlogger.confの[general]セクションで設定できます。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[general]&lt;br /&gt;
rotatestrategy=sequential&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; none&lt;br /&gt;
: 全くローテートを行いません。&lt;br /&gt;
; sequential(デフォルト)&lt;br /&gt;
: ローテートするたびに、最も新しいログファイルのファイル名の通し番号が最も大きくなるように変名します。&lt;br /&gt;
; rotate&lt;br /&gt;
: ローテートするたびに、過去のログファイルのファイル名の通し番号を1ずつ増やし、最も新しいログファイルの末尾の数字を0とします。&lt;br /&gt;
; timestamp&lt;br /&gt;
: 通し番号の代わりにタイムスタンプを使用します。&lt;br /&gt;
&lt;br /&gt;
sequentialとrotateの違いが分かりにくいですが、例えば「messages」ログファイルを今、ローテートするとして、既にmessages.0　messages.1　messages.2がある場合、&lt;br /&gt;
; sequential&lt;br /&gt;
: ローテートすると、messagesはmessages.3に変名されます。0～2はそのままです。&lt;br /&gt;
; rotate&lt;br /&gt;
: ローテートすると、messages.2はmessages.3に、messages.1がmessages.2に、messages.0がmessages.1に変名され、messagesはmessage.0に変名されます。&lt;br /&gt;
その後、新しいmessagesが作られ、ローテート後はこの新しいmessagesに書き込まれます。&lt;br /&gt;
&lt;br /&gt;
===古いファイルを自動で消す===&lt;br /&gt;
varパーティションが溢れないようにするためには、古いファイルを自動で消す必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
古いログファイルを4世代保持しておき、古いファイルから消していくためには、[general]セクションで次のように設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;記載途中&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
===ローテートの実行===&lt;br /&gt;
&lt;br /&gt;
ログのローテートそのものは、[[Asterisk CLI]]でlogger rotateを行うと実行されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
そこで、systemdの下で定期的にログローテートを行うためのユニットファイルの一例を示します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate&lt;br /&gt;
Requires=asterisk.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#User=asterisk&lt;br /&gt;
#Group=asterisk&lt;br /&gt;
ExecStart=/usr/sbin/asterisk -rx &#039;logger rotate&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.timer&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate timer&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Mon *-*-* 04:00:00&lt;br /&gt;
RandomizedDelaySec=300&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定したら、systemdにユニットファイルをリロードさせ、タイマーを始動します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl daemon-reload&lt;br /&gt;
# systemctl start asterisk-logrotate.timer&lt;br /&gt;
# systemctl enable asterisk-logrotate.timer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
手動で1回ローテートしてみようと思う場合、次を実行します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl start asterisk-logrotate.service&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部の機構によりログをローテートする==&lt;br /&gt;
上記はAsterisk内蔵のログローテート機構によるローテートを説明しました。logrotate等、外部のログローテートツールを使用してログローテートを行う方法もあります。&amp;lt;BR&amp;gt;&lt;br /&gt;
その場合の詳細は割愛しますが、[https://www.voip-info.org/logrotate/ voip-info.org]等には参考となる情報があるようです。&amp;lt;BR&amp;gt;&lt;br /&gt;
外部のログローテートツールによる場合でも、ローテート後にはCLIからlogger reloadを実行すればAsteriskはログを開き直すようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11361</id>
		<title>Asterisk ログファイル</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11361"/>
		<updated>2020-08-20T07:41:14Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* 自動でログをローテートする */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
Asteriskのログファイルについて&lt;br /&gt;
==ログファイル==&lt;br /&gt;
デフォルトの設定では/var/log/asterisk/messagesに、ログレベルnotice, warning, errorが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルの設定は/etc/asterisk/logger.confで行います。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
messages =&amp;gt; notice,warning,error&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
noticeレベルログとして認証失敗も記録されるため、Asteriskをインターネットに公開していると、膨大なログが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
[[SIP-Fail2ban|Fail2ban]]を使用していても、しつこい攻撃者がいると、ログが増えていきます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルを置くvarパーティションが溢れないようにログファイルの管理を行う必要があります。&lt;br /&gt;
&lt;br /&gt;
==ログの記録レベルを変更する==&lt;br /&gt;
必要がなければ、ログの記録レベルを落として出力を減らすのも、1つの手段です。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/asterisk/logger.confのlogfilesセクションにて、上記の例にならいログレベルをカンマ区切りで記載します。&amp;lt;br&amp;gt;&lt;br /&gt;
レベルとしてはdebug, trace, notice, warning, error, verbose, dtmf, fax, securityが記載できます。ログレベルとして「*」を使用すると、全ログレベルを意味します。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ログレベルの前に[json]を付与するとJSON出力が可能です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;full-json =&amp;gt; [json]debug,verbose,notice,warning,error,dtmf,fax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;警告：debugログレベル及びこれを含む*ログレベルを使用すると、極めて多量のログが出力されます。運用モードではdebugログを出力しないことを強く勧めます！&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fail2banを使用している場合は、ログ出力のレベルを変更すると動作に影響を及ぼす恐れがあります。注意して変更してください。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
==自動でログをローテートする==&lt;br /&gt;
Asteriskには、内蔵のログローテート機構があり、追加の設定なしにログローテートを実行可能です。&amp;lt;br&amp;gt;&lt;br /&gt;
ログのローテートそのものは、[[Asterisk CLI]]でlogger rotateを行うと実行されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
そこで、systemdの下で定期的にログローテートを行うためのユニットファイルの一例を示します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate&lt;br /&gt;
Requires=asterisk.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#User=asterisk&lt;br /&gt;
#Group=asterisk&lt;br /&gt;
ExecStart=/usr/sbin/asterisk -rx &#039;logger rotate&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.timer&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate timer&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Mon *-*-* 04:00:00&lt;br /&gt;
RandomizedDelaySec=300&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定したら、systemdにユニットファイルをリロードさせ、タイマーを始動します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl daemon-reload&lt;br /&gt;
# systemctl start asterisk-logrotate.timer&lt;br /&gt;
# systemctl enable asterisk-logrotate.timer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
手動で1回ローテートしてみようと思う場合、次を実行します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl start asterisk-logrotate.service&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部の機構によりログをローテートする==&lt;br /&gt;
上記はAsterisk内蔵のログローテート機構によるローテートを説明しました。logrotate等、外部のログローテートツールを使用してログローテートを行う方法もあります。&amp;lt;BR&amp;gt;&lt;br /&gt;
その場合の詳細は割愛しますが、[https://www.voip-info.org/logrotate/ voip-info.org]等には参考となる情報があるようです。&amp;lt;BR&amp;gt;&lt;br /&gt;
外部のログローテートツールによる場合でも、ローテート後にはCLIからlogger reloadを実行すればAsteriskはログを開き直すようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11360</id>
		<title>Asterisk ログファイル</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11360"/>
		<updated>2020-08-20T06:26:54Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* ログファイル */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
Asteriskのログファイルについて&lt;br /&gt;
==ログファイル==&lt;br /&gt;
デフォルトの設定では/var/log/asterisk/messagesに、ログレベルnotice, warning, errorが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルの設定は/etc/asterisk/logger.confで行います。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
messages =&amp;gt; notice,warning,error&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
noticeレベルログとして認証失敗も記録されるため、Asteriskをインターネットに公開していると、膨大なログが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
[[SIP-Fail2ban|Fail2ban]]を使用していても、しつこい攻撃者がいると、ログが増えていきます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルを置くvarパーティションが溢れないようにログファイルの管理を行う必要があります。&lt;br /&gt;
&lt;br /&gt;
==ログの記録レベルを変更する==&lt;br /&gt;
必要がなければ、ログの記録レベルを落として出力を減らすのも、1つの手段です。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/asterisk/logger.confのlogfilesセクションにて、上記の例にならいログレベルをカンマ区切りで記載します。&amp;lt;br&amp;gt;&lt;br /&gt;
レベルとしてはdebug, trace, notice, warning, error, verbose, dtmf, fax, securityが記載できます。ログレベルとして「*」を使用すると、全ログレベルを意味します。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ログレベルの前に[json]を付与するとJSON出力が可能です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;full-json =&amp;gt; [json]debug,verbose,notice,warning,error,dtmf,fax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;警告：debugログレベル及びこれを含む*ログレベルを使用すると、極めて多量のログが出力されます。運用モードではdebugログを出力しないことを強く勧めます！&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fail2banを使用している場合は、ログ出力のレベルを変更すると動作に影響を及ぼす恐れがあります。注意して変更してください。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
==自動でログをローテートする==&lt;br /&gt;
まず、ログのローテートそのものは、[[Asterisk CLI]]でlogger rotateを行うと実行されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
systemdの下で定期的にログローテートを行うためのユニットファイルの一例を示します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate&lt;br /&gt;
Requires=asterisk.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#User=asterisk&lt;br /&gt;
#Group=asterisk&lt;br /&gt;
ExecStart=/usr/sbin/asterisk -rx &#039;logger rotate&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.timer&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate timer&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Mon *-*-* 04:00:00&lt;br /&gt;
RandomizedDelaySec=300&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定したら、systemdにユニットファイルをリロードさせ、タイマーを始動します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl daemon-reload&lt;br /&gt;
# systemctl start asterisk-logrotate.timer&lt;br /&gt;
# systemctl enable asterisk-logrotate.timer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
手動で1回ローテートしてみようと思う場合、次を実行します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl start asterisk-logrotate.service&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部の機構によりログをローテートする==&lt;br /&gt;
上記はAsterisk内蔵のログローテート機構によるローテートを説明しました。logrotate等、外部のログローテートツールを使用してログローテートを行う方法もあります。&amp;lt;BR&amp;gt;&lt;br /&gt;
その場合の詳細は割愛しますが、[https://www.voip-info.org/logrotate/ voip-info.org]等には参考となる情報があるようです。&amp;lt;BR&amp;gt;&lt;br /&gt;
外部のログローテートツールによる場合でも、ローテート後にはCLIからlogger reloadを実行すればAsteriskはログを開き直すようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11359</id>
		<title>Asterisk ログファイル</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_%E3%83%AD%E3%82%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=11359"/>
		<updated>2020-08-20T06:23:05Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「カテゴリ:Asterisk  Asteriskのログファイルについて ==ログファイル== デフォルトの設定ではmessagesログとして、notice, warning, error...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
&lt;br /&gt;
Asteriskのログファイルについて&lt;br /&gt;
==ログファイル==&lt;br /&gt;
デフォルトの設定ではmessagesログとして、notice, warning, errorが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルの設定は/etc/asterisk/logger.confで行います。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# etc/asterisk/logger.conf&lt;br /&gt;
[logfiles]&lt;br /&gt;
messages =&amp;gt; notice,warning,error&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
noticeレベルログとして認証失敗も記録されるため、Asteriskをインターネットに公開していると、膨大なログが出力されます。&amp;lt;br&amp;gt;&lt;br /&gt;
[[SIP-Fail2ban|Fail2ban]]を使用していても、しつこい攻撃者がいると、ログが増えていきます。&amp;lt;br&amp;gt;&lt;br /&gt;
ログファイルを置くvarパーティションが溢れないようにログファイルの管理を行う必要があります。&lt;br /&gt;
&lt;br /&gt;
==ログの記録レベルを変更する==&lt;br /&gt;
必要がなければ、ログの記録レベルを落として出力を減らすのも、1つの手段です。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/asterisk/logger.confのlogfilesセクションにて、上記の例にならいログレベルをカンマ区切りで記載します。&amp;lt;br&amp;gt;&lt;br /&gt;
レベルとしてはdebug, trace, notice, warning, error, verbose, dtmf, fax, securityが記載できます。ログレベルとして「*」を使用すると、全ログレベルを意味します。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ログレベルの前に[json]を付与するとJSON出力が可能です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;full-json =&amp;gt; [json]debug,verbose,notice,warning,error,dtmf,fax&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;警告：debugログレベル及びこれを含む*ログレベルを使用すると、極めて多量のログが出力されます。運用モードではdebugログを出力しないことを強く勧めます！&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fail2banを使用している場合は、ログ出力のレベルを変更すると動作に影響を及ぼす恐れがあります。注意して変更してください。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
設定ファイルを変更したら、[[Asterisk CLI]]でlogger reloadを行うと変更が反映されます。&lt;br /&gt;
&lt;br /&gt;
==自動でログをローテートする==&lt;br /&gt;
まず、ログのローテートそのものは、[[Asterisk CLI]]でlogger rotateを行うと実行されます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
systemdの下で定期的にログローテートを行うためのユニットファイルの一例を示します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.service&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate&lt;br /&gt;
Requires=asterisk.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
#User=asterisk&lt;br /&gt;
#Group=asterisk&lt;br /&gt;
ExecStart=/usr/sbin/asterisk -rx &#039;logger rotate&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/systemd/system/asterisk-logrotate.timer&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Asterisk log rotate timer&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Mon *-*-* 04:00:00&lt;br /&gt;
RandomizedDelaySec=300&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
設定したら、systemdにユニットファイルをリロードさせ、タイマーを始動します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl daemon-reload&lt;br /&gt;
# systemctl start asterisk-logrotate.timer&lt;br /&gt;
# systemctl enable asterisk-logrotate.timer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
手動で1回ローテートしてみようと思う場合、次を実行します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# systemctl start asterisk-logrotate.service&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部の機構によりログをローテートする==&lt;br /&gt;
上記はAsterisk内蔵のログローテート機構によるローテートを説明しました。logrotate等、外部のログローテートツールを使用してログローテートを行う方法もあります。&amp;lt;BR&amp;gt;&lt;br /&gt;
その場合の詳細は割愛しますが、[https://www.voip-info.org/logrotate/ voip-info.org]等には参考となる情報があるようです。&amp;lt;BR&amp;gt;&lt;br /&gt;
外部のログローテートツールによる場合でも、ローテート後にはCLIからlogger reloadを実行すればAsteriskはログを開き直すようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_%E9%9B%BB%E8%A9%B1%E6%A9%9F&amp;diff=11358</id>
		<title>Asterisk pjsip 電話機</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_%E9%9B%BB%E8%A9%B1%E6%A9%9F&amp;diff=11358"/>
		<updated>2020-08-17T04:19:39Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: Asterisk pjsip NATへのリンクを追加。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:Pjsip]]&lt;br /&gt;
AsteriskでPjSIPを使用した場合の電話機関連設定&lt;br /&gt;
==電話機設定例==&lt;br /&gt;
電話機を設定する場合にはセクションが3つ必要です。エンドポイントそれ自体とaor,authの3つです。&lt;br /&gt;
 [phone1]&lt;br /&gt;
 type = aor&lt;br /&gt;
 max_contacts = 1&lt;br /&gt;
 qualify_frequency = 30&lt;br /&gt;
 authenticate_qualify = no&lt;br /&gt;
 &lt;br /&gt;
 [phone1]&lt;br /&gt;
 type = auth&lt;br /&gt;
 username = phone3&lt;br /&gt;
 password = mysecretpassword&lt;br /&gt;
 &lt;br /&gt;
 [phone1]&lt;br /&gt;
 type = endpoint&lt;br /&gt;
 context = default&lt;br /&gt;
 transport=transport-udp&lt;br /&gt;
 dtmf_mode = rfc4733&lt;br /&gt;
 disallow = all&lt;br /&gt;
 allow = ulaw&lt;br /&gt;
 allow = alaw&lt;br /&gt;
 rtp_symmetric = yes&lt;br /&gt;
 force_rport = yes&lt;br /&gt;
 rewrite_contact = yes&lt;br /&gt;
 direct_media = no&lt;br /&gt;
 send_pai = yes&lt;br /&gt;
 inband_progress = yes&lt;br /&gt;
 call_group = 1&lt;br /&gt;
 pickup_group = 1&lt;br /&gt;
 language = ja&lt;br /&gt;
 device_state_busy_at = 1&lt;br /&gt;
 auth = phone1&lt;br /&gt;
 outbound_auth = phone1&lt;br /&gt;
 aors = phone1&lt;br /&gt;
AORの max_contacts = 1 が設定されていないと電話機はAsteriskに対してRegisterできません。このmax_contactsが2以上に設定されている場合には、複数の電話機が同じアカウントでRegisterできるようになります。&amp;lt;BR&amp;gt;&lt;br /&gt;
エンドポイントにACLを使用する場合には&amp;lt;BR&amp;gt;&lt;br /&gt;
 acl=myhouse&lt;br /&gt;
のように書きますが、この場合の名前付きACLは&#039;&#039;&#039;Asteriskの名前付きALC&#039;&#039;&#039;です。&amp;lt;BR&amp;gt;&lt;br /&gt;
つまりacl.confに設定されている名前付きACLということです。pjsipのACLではないので注意してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
==Wizardを使用した場合の設定例==&lt;br /&gt;
Wizardを使用した場合、共通設定部分をテンプレート化し、各電話機の認証情報だけ別に書くことができます。&lt;br /&gt;
 ;電話機用テンプレート(共通設定)&lt;br /&gt;
 [phone-defaults](!)&lt;br /&gt;
 type=wizard&lt;br /&gt;
 transport = transport-udp&lt;br /&gt;
 accepts_registrations = yes&lt;br /&gt;
 sends_registrations = no&lt;br /&gt;
 accepts_auth = yes&lt;br /&gt;
 sends_auth = no&lt;br /&gt;
 endpoint/context = default&lt;br /&gt;
 endpoint/dtmf_mode = rfc4733&lt;br /&gt;
 endpoint/call_group = 1&lt;br /&gt;
 endpoint/pickup_group = 1&lt;br /&gt;
 endpoint/language = ja&lt;br /&gt;
 endpoint/disallow = all&lt;br /&gt;
 endpoint/allow = ulaw&lt;br /&gt;
 endpoint/rtp_symmetric = yes&lt;br /&gt;
 endpoint/force_rport = yes&lt;br /&gt;
 endpoint/direct_media = no&lt;br /&gt;
 endpoint/send_pai = yes&lt;br /&gt;
 endpoint/send_rpid = yes&lt;br /&gt;
 endpoint/rewrite_contact = yes&lt;br /&gt;
 endpoint/inband_progress = yes&lt;br /&gt;
 endpoint/allow_subscribe = yes&lt;br /&gt;
 endpoint/transport = transport-udp&lt;br /&gt;
 aor/max_contacts = 1&lt;br /&gt;
 aor/qualify_frequency = 30&lt;br /&gt;
 aor/authenticate_qualify = no&lt;br /&gt;
 &lt;br /&gt;
 ;各電話機個別設定&lt;br /&gt;
 [phone1](phone-defaults)&lt;br /&gt;
 inbound_auth/username = phone1&lt;br /&gt;
 inbound_auth/password = mypasswordishere&lt;br /&gt;
&lt;br /&gt;
==NAT==&lt;br /&gt;
NAT環境での設定については[[Asterisk pjsip NAT]]を参照のこと。&lt;br /&gt;
&lt;br /&gt;
==複数同時レジスト==&lt;br /&gt;
同一のユーザ名とパスワードで、電話機を複数同時にレジストすることができます。AORのmax_contactsで指定した数字が同時レジストできる台数になります。&lt;br /&gt;
詳しい使い方は [[Pjsip 機能拡張]] を参照してください。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_NAT&amp;diff=11357</id>
		<title>Asterisk pjsip NAT</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_NAT&amp;diff=11357"/>
		<updated>2020-08-14T04:16:25Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「== Asteriskサーバがグローバル、端末がNAT背後の場合 == Asteriskサーバ側がグローバルIPアドレスを持ち、それにアクセスする端末...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Asteriskサーバがグローバル、端末がNAT背後の場合 ==&lt;br /&gt;
Asteriskサーバ側がグローバルIPアドレスを持ち、それにアクセスする端末側がNAT背後にある場合、pjsip.confのtype=endpoint、type=aorのセクションに次のように記載します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[201]&lt;br /&gt;
type = aor&lt;br /&gt;
max_contacts = 1&lt;br /&gt;
qualify_frequency = 1000&lt;br /&gt;
&lt;br /&gt;
[201]&lt;br /&gt;
type = endpoint&lt;br /&gt;
context = default&lt;br /&gt;
disallow = all&lt;br /&gt;
allow = ulaw&lt;br /&gt;
rtp_symmetric = yes&lt;br /&gt;
rewrite_contact = yes&lt;br /&gt;
direct_media = no&lt;br /&gt;
auth = 201&lt;br /&gt;
outbound_auth = 201&lt;br /&gt;
aors = 201&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
重要なのはdirect_media, rtp_symmetric, rewrite_contactです。direct_mediaをnoにすると、端末間通話で常にAsteriskが映像・音声を中継しますから、NATの背後の端末同士の通話が可能となります。&amp;lt;br&amp;gt;&lt;br /&gt;
rtp_symmetric, rewrite_contactの設定は従来のsip.confではnat=yesに相当します。&lt;br /&gt;
また相手(端末側)のNATテーブルをキープするためにtype=aorのセクションに&#039;&#039;&#039;qualify_frequency=1000&#039;&#039;&#039;(単位はミリ秒)を記述しておくと良いでしょう。遅延の大きい端末相手ならば2000あたりに設定します。&lt;br /&gt;
&lt;br /&gt;
==AsteriskサーバがNAT背後==&lt;br /&gt;
この場合は、通信相手となる端末または回線(ITSP)の状況にも大きく依存するようですが、下記の手段が有用と思われます。&lt;br /&gt;
===対応1===&lt;br /&gt;
pjsip.confのtype=transportのセクションで次のように記載します。&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;external_media_address=fqdnhostname.example.com&lt;br /&gt;
external_signaling_address=fqdnhostname.example.com&lt;br /&gt;
local_net=192.168.0.0/16&lt;br /&gt;
local_net=127.0.0.1/32&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
external_media_address, external_signaling_addressにはグローバルIPアドレス、またはDDNS(Dynamic DNS)サービスを利用しホスト名(FQDN)を記載します。&lt;br /&gt;
&lt;br /&gt;
ルータのNATを調整し、SIP(5060/UDP)とRTP(デフォルトでは10000～20000/UDP)をAsteriskサーバのプライベートIPアドレスに向けます。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、これらの対処を行ってもRegisterできないITSPがあります。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===対応2===&lt;br /&gt;
上記の方法で解決しない場合、SIP-NAT機能を持つルータを使えば解決する場合があるとのことですがpjsipを使用する場合の詳細は未検証。&amp;lt;BR&amp;gt;&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan&amp;diff=11356</id>
		<title>利用者:Takatyan</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan&amp;diff=11356"/>
		<updated>2020-08-14T01:54:18Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Takatyanの投稿した内容については、サイト管理人[[たかはし]]、および、その許諾する者に対し、あらゆる利用を認めます。&lt;br /&gt;
* 一方で、投稿内容の正しさについてはTakatyanは一切保証しませんし、たとえ誤りがあっても、投稿内容を利用したことについての責任は負いません。&lt;br /&gt;
* Takatyanは個人的に試して判明したことや、調べてわかったことをまとめて投稿しているか、明らかな誤字修正等を行うのみであり、宣伝等の意図はありません。&lt;br /&gt;
&lt;br /&gt;
[[Category:人々]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BFOS&amp;diff=11355</id>
		<title>Asterisk動作確認済みOS</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BFOS&amp;diff=11355"/>
		<updated>2020-08-08T10:31:06Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* CentOS */ CentOS 8no&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;工事中。情報追加歓迎！このページは簡単な説明と詳細ページへのリダイレクトに使用します。&amp;lt;br&amp;gt;&lt;br /&gt;
[[Asteriskインストールメモ]]のページも参照のこと。&lt;br /&gt;
==CentOS==&lt;br /&gt;
===4.x===&lt;br /&gt;
===5.x===&lt;br /&gt;
; Asterisk 1.6.0.17 &lt;br /&gt;
数カ月運用試験を行ったが安定して動作している。&lt;br /&gt;
&lt;br /&gt;
動作環境&lt;br /&gt;
* [http://ja.wikipedia.org/wiki/PSTN PSTN]: NTT東日本 ひかり電話オフィスタイプ(番号:２,回線:４)&lt;br /&gt;
* FXS Gateway: アナログ電話 2台 &lt;br /&gt;
* Asterisk: Digium社のRepositoryを使用 (1.6.0.17で固定,適用patch無し)&lt;br /&gt;
===6.x===&lt;br /&gt;
===7.x===&lt;br /&gt;
; Asterisk 13 &lt;br /&gt;
make configではsystemdのユニットファイルは作成されず、init.dスクリプトが作成されるが問題なく動作。&lt;br /&gt;
===8.x===&lt;br /&gt;
; Asterisk 16&lt;br /&gt;
Asterisk 16でも、systemdのユニットファイルの作成は実装されていないようだ。動作は問題ない。systemdに管理させるためには[[Asterisk Startup systemd|こちら]]。&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
以前はCygwinや仮想化を使用してWindows上でAsteriskを動作させることができましたが、Windows 10以降ではWindows Subsystem for Linux(WSL)を使ってAsteriskを動作させることができます。どうしてもLinux系シャシを使いたくない場合にどうぞ。&lt;br /&gt;
:[[Asterisk WSL]]&lt;br /&gt;
==Fedora==&lt;br /&gt;
&lt;br /&gt;
==FreeBSD==&lt;br /&gt;
&lt;br /&gt;
==Mac OS X==&lt;br /&gt;
==Solaris==&lt;br /&gt;
→ [[Asterisk Solaris]]&lt;br /&gt;
==Voyage Linux==&lt;br /&gt;
Debian派生のCF向けディストリビューション&amp;lt;br&amp;gt;&lt;br /&gt;
:→[[Voyage Linux]]&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
===16.04===&lt;br /&gt;
apt-get install asterisk&lt;br /&gt;
だけでインストールできるので、あとは/etc/asteriskの設定ファイルをいじるだけでいい。実行ユーザはasterisk:asterisk。&lt;br /&gt;
ただしMySQL ODBC connectorがパッケージでは入らない模様&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunks&amp;diff=11354</id>
		<title>Asterisk pjsip trunks</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunks&amp;diff=11354"/>
		<updated>2020-08-08T09:52:36Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* 基本設定 */ スペルミス修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
==使いかた==&lt;br /&gt;
このページではトランク接続の部分のみについて解説します。#include pjsip_trunks.conf などして使うと良いでしょう。&lt;br /&gt;
&lt;br /&gt;
==基本設定==&lt;br /&gt;
トランク接続でもグローバル設定やACLは使用されます。最低限トランスポートの設定は行っておきましょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
基本となる設定はpjsip.confに書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#GLOBAL]]&amp;lt;BR&amp;gt;&lt;br /&gt;
グローバル設定を使用する場合にはtype=globalのセクションを書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[global]&lt;br /&gt;
type=global&lt;br /&gt;
max_forwards = 50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
SIPの基本パラメータやPjSIPの動作に関わるパラメータはSystemで設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#SYSTEM]]&amp;lt;BR&amp;gt;&lt;br /&gt;
===トランスポート===&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
sip.confに書いていたものと同じですが、トランスポートはセクションで明示指定します。上の例では5070ポートにbindさせていますが、5060を使用する場合にはここを5060にします。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CLI==&lt;br /&gt;
*外部に対するregisterを確認するには pjsip show registrations&lt;br /&gt;
&lt;br /&gt;
==ひかり電話HGW==&lt;br /&gt;
[[Asterisk pjsip trunk hgw]]&lt;br /&gt;
==楽天OpenGate(B2BUA)==&lt;br /&gt;
[[Asterisk pjsip trunk opengate]]&lt;br /&gt;
==Brastel Basix==&lt;br /&gt;
[[Asterisk pjsip trunk basix]]&lt;br /&gt;
==@niftyフォン-C==&lt;br /&gt;
[[Asterisk pjsip trunk @niftyフォン-C]]&lt;br /&gt;
==拠点間接続==&lt;br /&gt;
[[Asterisk pjsip trunk intra]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip&amp;diff=11353</id>
		<title>Asterisk pjsip</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip&amp;diff=11353"/>
		<updated>2020-08-08T09:51:51Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* グローバル設定 */ スペルミス修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
&lt;br /&gt;
AsiteriskでチャネルにPjSIPを使用する際の設定方法など&lt;br /&gt;
==コンパイル==&lt;br /&gt;
Asterisk 13まではpjprojectを別個インストールするか、configureに--with-pjproject-bundledを付けて実行する必要がありましたが、Asterisk 16からはデフォルトでbundledインストールされるようになりました。&amp;lt;BR&amp;gt;&lt;br /&gt;
各バージョン毎のインストール方法についてはAsteriskのそれぞれのページを参照してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Asterisk 13]]&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Asterisk 16]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==変換ツール==&lt;br /&gt;
Asterisk 13以降であれば ソースディレクトリ/contrib/scripts/sip_to_pjsip の下にPythonのスクリプトがあります(複数)。sip.confのあるディレクトリでこれを実行するとpjsip.confに変換してくれます。#includeしている場合にはそれらも変換してくれますが、完璧ではないです。&lt;br /&gt;
==Asterisk 16における注意点==&lt;br /&gt;
PjSIPはres_statsd.soに依存します。このためres_statsdがloadされていないと、res_pjsipがloadされない問題が発生します。&amp;lt;BR&amp;gt;&lt;br /&gt;
(Asterisk 16ではモジュールの依存関係チェックが厳密化されています)&amp;lt;BR&amp;gt;&lt;br /&gt;
res_statsdモジュールはstatsd.confファイルが無いとloadされないため、statsd.confファイルが無いだけで、PjSIPが使えないという困った状態になります。ソースファイルに含まれる statsd.conf.sample を /etc/asterisk/statsd.conf にコピーしておいてください。もっとも、このファイルはコメントされた行だけなので要するに空なのですが。&lt;br /&gt;
&lt;br /&gt;
==パラメータ一覧==&lt;br /&gt;
[[Asterisk pjsip parameters]]&lt;br /&gt;
&lt;br /&gt;
==基本設定==&lt;br /&gt;
*間違いやすいところ&lt;br /&gt;
:sip.confでは1wordだったのがアンダーバーが入る&lt;br /&gt;
:dtmfmode → dtmf_mode&lt;br /&gt;
:fromdomain → from_domain&lt;br /&gt;
===グローバル設定===&lt;br /&gt;
設定は基本としてはpjsip.confに書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#GLOBAL]]&amp;lt;BR&amp;gt;&lt;br /&gt;
グローバル設定を使用する場合にはtype=globalのセクションを書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[global]&lt;br /&gt;
type=global&lt;br /&gt;
max_forwards = 50&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
SIPの基本パラメータやPjSIPの動作に関わるパラメータはSystemで設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#SYSTEM]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===インクルード===&lt;br /&gt;
Asteriskの他の設定ファイル同様に#includeが使えます。なので、電話機と回線は別ファイルにした方が見通しは良いかもしれません。例えば&amp;lt;BR&amp;gt;&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
 &lt;br /&gt;
 #include pjsip_phones.conf&lt;br /&gt;
 #include pjsip_trunk_hikari.conf&lt;br /&gt;
のようにファイルを分割し、includeすると管理が楽になります。&lt;br /&gt;
&lt;br /&gt;
基本で必要なものは以下です。&lt;br /&gt;
&lt;br /&gt;
===トランスポート===&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
sip.confに書いていたものと同じですが、トランスポートはセクションで明示指定します。上の例では5070ポートにbindさせていますが、5060を使用する場合にはここを5060にします。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
ACLの例は次の通りです。&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
※deny,permitはこの順でないとpermitしてdenyしてしまう模様で、逆に書くと誰も使えなくなります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
pjsip.confに複数のACL(type=acl)を書くとそのセクション名にかかわらず後ろにあるACLの方が勝つ模様。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
 &lt;br /&gt;
 [acl-my]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=10.10.0.0/16&lt;br /&gt;
と、書くとacl-myが勝つので要注意です。複数を許可したい場合には1セクションで&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
 permit=10.10.0.0/16&lt;br /&gt;
のように書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#ACL.28res_pjsip_acl.29]]&lt;br /&gt;
→[[Asterisk pjsip ACL]]&lt;br /&gt;
&lt;br /&gt;
===認証情報(Auth)===&lt;br /&gt;
sip_confではピア(エンドポイント)の認証がわかりにくかったのですが、PjSIPでは別なセクションで(type=auth)認証情報を定義するようになりました。このため、認証情報がピア名(sip.confの[ ])に紐付かなくなりました。&amp;lt;BR&amp;gt;&lt;br /&gt;
慣れないとわかりにくい感じがしますが、管理がより柔軟になります。例えば&lt;br /&gt;
 [some-phone]&lt;br /&gt;
 type = endpoint&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 auth = phone-auth&lt;br /&gt;
 outbound_auth = phone-out-auth&lt;br /&gt;
のようなendpointが定義されている場合には、2つのauthセクションが必要です。&lt;br /&gt;
 [phone-auth]&lt;br /&gt;
 type = auth&lt;br /&gt;
 username = phone123&lt;br /&gt;
 password = phonepassword&lt;br /&gt;
このAuthは&#039;[some-phone]&#039;エンドポイントに接続、すまり外からの&amp;quot;入り&amp;quot;の際の認証情報です。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [phone-out-auth]&lt;br /&gt;
 略&lt;br /&gt;
このAuthはoutbound_authで設定されているので、このエンドポイントからの&amp;quot;出&amp;quot;の際の認証情報です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==電話機==&lt;br /&gt;
電話機の接続は [[Asterisk pjsip 電話機]] のページへ&lt;br /&gt;
==トランク==&lt;br /&gt;
回線接続側は [[Asterisk pjsip trunks]]のページへ&lt;br /&gt;
&lt;br /&gt;
==Wizard==&lt;br /&gt;
Asteriskにはpjsip_wizardが組み込まれており、PjSIPの設定を簡素化することができます。使う場合の条件は以下の通りです。&lt;br /&gt;
*基本の設定はpjsip.confに書く&lt;br /&gt;
:transportなどの情報はpjsip.confに書く必要があります&lt;br /&gt;
*Wizard用のファイル名はpjsip_wizard.conf&lt;br /&gt;
*共通化したテンプレート内で各セクションを指定するにはスラッシュ(/)で区切る&lt;br /&gt;
*Wizardは電話機でもトランクでも使用できる&lt;br /&gt;
:registration/を書くとregistrationセクションがつくられる&lt;br /&gt;
:例: endpoint/dtmf_mode&lt;br /&gt;
pjsip_wizard.confの記述例&lt;br /&gt;
 ;電話機用テンプレート(共通設定)&lt;br /&gt;
 [phone-defaults](!)&lt;br /&gt;
 type=wizard&lt;br /&gt;
 transport = transport-udp&lt;br /&gt;
 accepts_registrations = yes&lt;br /&gt;
 sends_registrations = no&lt;br /&gt;
 accepts_auth = yes&lt;br /&gt;
 sends_auth = no&lt;br /&gt;
 endpoint/context = default&lt;br /&gt;
 endpoint/dtmf_mode = rfc4733&lt;br /&gt;
 endpoint/call_group = 1&lt;br /&gt;
 endpoint/pickup_group = 1&lt;br /&gt;
 endpoint/language = ja&lt;br /&gt;
 endpoint/disallow = all&lt;br /&gt;
 endpoint/allow = ulaw&lt;br /&gt;
 endpoint/rtp_symmetric = yes&lt;br /&gt;
 endpoint/force_rport = yes&lt;br /&gt;
 endpoint/direct_media = no&lt;br /&gt;
 endpoint/send_pai = yes&lt;br /&gt;
 endpoint/send_rpid = yes&lt;br /&gt;
 endpoint/rewrite_contact = yes&lt;br /&gt;
 endpoint/inband_progress = yes&lt;br /&gt;
 endpoint/allow_subscribe = yes&lt;br /&gt;
 endpoint/transport = transport-udp&lt;br /&gt;
 aor/max_contacts = 1&lt;br /&gt;
 aor/qualify_frequency = 30&lt;br /&gt;
 aor/authenticate_qualify = no&lt;br /&gt;
 &lt;br /&gt;
 ;各電話機個別設定&lt;br /&gt;
 [phone1](phone-defaults)&lt;br /&gt;
 inbound_auth/username = phone1&lt;br /&gt;
 inbound_auth/password = mypasswordishere&lt;br /&gt;
&lt;br /&gt;
==CLIコマンド==&lt;br /&gt;
*sip show peersに対応するのはpjsip show endpoints&lt;br /&gt;
*sip show peer phone1などピア情報を表示するのはpjsip show endpoint phone1&lt;br /&gt;
*AORを表示するのは一覧ならpjsip show aorsでピアの情報を表示するのはpjsip show aor phone1のようにする&lt;br /&gt;
*それぞれの設定項目で何が設定されているかを確認するには pjsip show endpoint phone1 のようにすると phone1 の endpoint パラメータ一覧が表示される。aorを見たければ pjsip show aor phone1。これはトランクの場合も同様で pjsip show registration hikari-hgw のようにするとregister関係のパラメータがみえる。&lt;br /&gt;
&lt;br /&gt;
==挙動上の注意点==&lt;br /&gt;
===挙動そのもの===&lt;br /&gt;
chan_sipより制限が少し&amp;quot;きつい&amp;quot;です。SIPメッセージの中に少しおかしなものがあってもchan_sipでは制限が緩かったので、通っていたものがPjSIPでは通らないことがあります。CLI等で&#039;syntax error&#039;のようなメッセージが出る場合にはSIPメッセージにおかしなところがあるかもしれないので調べてください。&lt;br /&gt;
===AddHeader===&lt;br /&gt;
chan_sipの場合にはSIPAddHeaderでSIPヘッダを追加できましたが、PjSIPではファンクションPJSIP_HEDER()を使用します。ただしこのファンクションはextenの途中で使用しても効果がありません。Dial時にサブルーチンコールしてやる必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
例えばAlert-Info: hogeを追加するにはまず以下のよなルーチンを定義します。&lt;br /&gt;
 [add-alert]&lt;br /&gt;
 exten =&amp;gt; s,1,Set(PJSIP_HEADER(add,Alert-Info)=hoge)&lt;br /&gt;
 exten =&amp;gt; s,n,Return&lt;br /&gt;
Dial時に以下のようにしてコールします&lt;br /&gt;
 exten =&amp;gt; 201,1,Dial(PJSIP/201,,b(add-alert,s,1))&lt;br /&gt;
&lt;br /&gt;
==設定変更の反映==&lt;br /&gt;
*モジュール数が多すぎて一発リロードする方法がよくわからない&lt;br /&gt;
*module reload res_pjsip.soを実行すれば&amp;quot;だいたい&amp;quot;はいけそう&lt;br /&gt;
:wizardのaor/を変更しても反映されない場合がある&lt;br /&gt;
==PjSIPで拡張される機能==&lt;br /&gt;
[[pjsip_機能拡張]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunk_@nifty%E3%83%95%E3%82%A9%E3%83%B3-C&amp;diff=11352</id>
		<title>Asterisk pjsip trunk @niftyフォン-C</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunk_@nifty%E3%83%95%E3%82%A9%E3%83%B3-C&amp;diff=11352"/>
		<updated>2020-08-07T14:30:51Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* pjsip.conf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:Pjsip]]&lt;br /&gt;
[[カテゴリ:ITSP]]&lt;br /&gt;
== @niftyフォン-Cとは ==&lt;br /&gt;
&lt;br /&gt;
インターネットサービスプロバイダ「@nifty」の提供するIP電話サービスで、050番のIP電話の1つです。&amp;lt;BR&amp;gt;&lt;br /&gt;
NTTコミュニケーションズの基盤を利用しています([http://ipphone.nifty.com/niftyphone/c/kiyaku/index.htm @niftyフォン-Cの利用規約] 第1条 第1項)。&lt;br /&gt;
&lt;br /&gt;
== 特徴 ==&lt;br /&gt;
&lt;br /&gt;
=== メリット ===&lt;br /&gt;
* @niftyの接続サービスを利用していれば&#039;&#039;&#039;基本料金0円&#039;&#039;&#039;で維持費がユニバーサルサービス料のみ。&lt;br /&gt;
* 同じくNTTコミュニケーションズの基盤を利用する、050plus等のIP電話への通話料が無料。&lt;br /&gt;
* Asteriskに収容可能(&#039;&#039;&#039;重要&#039;&#039;&#039;、ただし非公式)。&lt;br /&gt;
&lt;br /&gt;
=== デメリット ===&lt;br /&gt;
* 2020年の今日としては、公式サイトのデザインが明らかに古くFlashを使用したページなどがある。&lt;br /&gt;
* 050IP電話の需要は減少傾向らしくサービスの継続性に疑問がある。&lt;br /&gt;
* @niftyの接続サービスにロックインされ、他の事業者に番号を持ち運べない。&lt;br /&gt;
* 110, 119等1XY 特番、0120, 0570等0AB0 特番には発信できない。&lt;br /&gt;
&lt;br /&gt;
== Asterisk 16 ==&lt;br /&gt;
&lt;br /&gt;
以下の設定で発着信可能(2020年8月)&lt;br /&gt;
&lt;br /&gt;
=== pjsip.conf ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; 050NNNNNNNN は@niftyフォン-Cの050電話番号&lt;br /&gt;
; ABCDEFGHIはVoIPユーザ ID&lt;br /&gt;
; abcdefghiはVoIPユーザパスワード&lt;br /&gt;
; v???NN.nifty.comはVoIPサーバ名(SIPサーバアドレス、REGISTERサーバアドレス)&lt;br /&gt;
; nifty.comはSIP-URL(SIPドメイン名)&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=aor&lt;br /&gt;
contact=sip:ABCDEFGHI@v???NN.nifty.com&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=identify&lt;br /&gt;
endpoint=atniftyphone&lt;br /&gt;
match=v???NN.nifty.com&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=auth&lt;br /&gt;
auth_type=userpass&lt;br /&gt;
username=ABCDEFGHI&lt;br /&gt;
password=abcdefghi&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=registration&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
outbound_auth=atniftyphone&lt;br /&gt;
contact_user=050NNNNNNNN&lt;br /&gt;
server_uri=sip:v???NN.nifty.com&lt;br /&gt;
client_uri=sip:050NNNNNNNN@nifty.com&lt;br /&gt;
retry_interval=60&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=endpoint&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
context=from-atniftyphone&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=ulaw&lt;br /&gt;
dtmf_mode=inband&lt;br /&gt;
direct_media=no&lt;br /&gt;
send_pai=yes&lt;br /&gt;
inband_progress=no&lt;br /&gt;
outbound_auth=atniftyphone&lt;br /&gt;
from_user=050NNNNNNNN&lt;br /&gt;
from_domain=nifty.com&lt;br /&gt;
aors=atniftyphone&lt;br /&gt;
language=ja ; お好みで&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== extensions.conf ===&lt;br /&gt;
&lt;br /&gt;
一例です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; 発信&lt;br /&gt;
[default]&lt;br /&gt;
exten =&amp;gt; _0.,1,Dial(PJSIP/${EXTEN}@atniftyphone)&lt;br /&gt;
same  =&amp;gt;     n,Congestion&lt;br /&gt;
same  =&amp;gt;     n,Hangup&lt;br /&gt;
&lt;br /&gt;
; 着信&lt;br /&gt;
[globals]&lt;br /&gt;
ATNIFTYPHONENUMBER=050NNNNNNNN&lt;br /&gt;
&lt;br /&gt;
[from-atniftyphone]&lt;br /&gt;
exten =&amp;gt; ${ATNIFTYPHONENUMBER},1,Dial(.....) ; 着信先を設定する&lt;br /&gt;
same  =&amp;gt; n,Congestion&lt;br /&gt;
same  =&amp;gt; n,Hangup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 注意点 ===&lt;br /&gt;
@niftyフォン-Cはqualifyには非対応のようで、qualify_frequency、authenticate_qualifyを設定するとうまくいきませんのでご注意ください。&lt;br /&gt;
&lt;br /&gt;
[https://qa.nifty.com/cs/catalog/faq_nqa/qid_11216/1.htm?category1=100004&amp;amp;category3=300070&amp;amp;category2=200013 @niftyフォン-C よくある質問「@niftyフォンが正しく設定されているか確認する方法はありますか。」]では、&amp;lt;BR&amp;gt;&lt;br /&gt;
「@niftyフォン利用確認用の試験番号」なるものが記載されており、「発信テストにご利用いただき、@niftyフォン特有の発信音がするか、ご確認ください。」とあるが、&amp;lt;BR&amp;gt;&lt;br /&gt;
上記の設定のAsterisk16から発信してみたところ「おかけになった電話番号は、通信できない状態にあり、かかりません。」というガイダンスが繰り返し流れる。特有の発信音とはどのような音なのであろうか。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunks&amp;diff=11351</id>
		<title>Asterisk pjsip trunks</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunks&amp;diff=11351"/>
		<updated>2020-08-07T14:08:24Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: Asterisk pjsip trunk @niftyフォン-Cへのリンクを追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
==使いかた==&lt;br /&gt;
このページではトランク接続の部分のみについて解説します。#include pjsip_trunks.conf などして使うと良いでしょう。&lt;br /&gt;
&lt;br /&gt;
==基本設定==&lt;br /&gt;
トランク接続でもグローバル設定やACLは使用されます。最低限トランスポートの設定は行っておきましょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
基本となる設定はpjsip.confに書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#GLOBAL]]&amp;lt;BR&amp;gt;&lt;br /&gt;
グローバル設定を使用する場合にはtype=grobalのセクションを書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [grobal]&lt;br /&gt;
 type=grobal&lt;br /&gt;
 max_forwards = 50&lt;br /&gt;
SIPの基本パラメータやPjSIPの動作に関わるパラメータはSystemで設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#SYSTEM]]&amp;lt;BR&amp;gt;&lt;br /&gt;
===トランスポート===&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
sip.confに書いていたものと同じですが、トランスポートはセクションで明示指定します。上の例では5070ポートにbindさせていますが、5060を使用する場合にはここを5060にします。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CLI==&lt;br /&gt;
*外部に対するregisterを確認するには pjsip show registrations&lt;br /&gt;
&lt;br /&gt;
==ひかり電話HGW==&lt;br /&gt;
[[Asterisk pjsip trunk hgw]]&lt;br /&gt;
==楽天OpenGate(B2BUA)==&lt;br /&gt;
[[Asterisk pjsip trunk opengate]]&lt;br /&gt;
==Brastel Basix==&lt;br /&gt;
[[Asterisk pjsip trunk basix]]&lt;br /&gt;
==@niftyフォン-C==&lt;br /&gt;
[[Asterisk pjsip trunk @niftyフォン-C]]&lt;br /&gt;
==拠点間接続==&lt;br /&gt;
[[Asterisk pjsip trunk intra]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunk_@nifty%E3%83%95%E3%82%A9%E3%83%B3-C&amp;diff=11350</id>
		<title>Asterisk pjsip trunk @niftyフォン-C</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip_trunk_@nifty%E3%83%95%E3%82%A9%E3%83%B3-C&amp;diff=11350"/>
		<updated>2020-08-07T14:06:31Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「カテゴリ:Asterisk カテゴリ:Pjsip カテゴリ:ITSP == @niftyフォン-Cとは ==  インターネットサービスプロバイダ「@nifty」の提...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:Pjsip]]&lt;br /&gt;
[[カテゴリ:ITSP]]&lt;br /&gt;
== @niftyフォン-Cとは ==&lt;br /&gt;
&lt;br /&gt;
インターネットサービスプロバイダ「@nifty」の提供するIP電話サービスで、050番のIP電話の1つです。&amp;lt;BR&amp;gt;&lt;br /&gt;
NTTコミュニケーションズの基盤を利用しています([http://ipphone.nifty.com/niftyphone/c/kiyaku/index.htm @niftyフォン-Cの利用規約] 第1条 第1項)。&lt;br /&gt;
&lt;br /&gt;
== 特徴 ==&lt;br /&gt;
&lt;br /&gt;
=== メリット ===&lt;br /&gt;
* @niftyの接続サービスを利用していれば&#039;&#039;&#039;基本料金0円&#039;&#039;&#039;で維持費がユニバーサルサービス料のみ。&lt;br /&gt;
* 同じくNTTコミュニケーションズの基盤を利用する、050plus等のIP電話への通話料が無料。&lt;br /&gt;
* Asteriskに収容可能(&#039;&#039;&#039;重要&#039;&#039;&#039;、ただし非公式)。&lt;br /&gt;
&lt;br /&gt;
=== デメリット ===&lt;br /&gt;
* 2020年の今日としては、公式サイトのデザインが明らかに古くFlashを使用したページなどがある。&lt;br /&gt;
* 050IP電話の需要は減少傾向らしくサービスの継続性に疑問がある。&lt;br /&gt;
* @niftyの接続サービスにロックインされ、他の事業者に番号を持ち運べない。&lt;br /&gt;
* 110, 119等1XY 特番、0120, 0570等0AB0 特番には発信できない。&lt;br /&gt;
&lt;br /&gt;
== Asterisk 16 ==&lt;br /&gt;
&lt;br /&gt;
以下の設定で発着信可能(2020年8月)&lt;br /&gt;
&lt;br /&gt;
=== pjsip.conf ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; 050NNNNNNNN は@niftyフォン-Cの050電話番号&lt;br /&gt;
; ABCDEFGHIはVoIPユーザ ID&lt;br /&gt;
; abcdefghiはVoIPユーザパスワード&lt;br /&gt;
; v???NN.nifty.comはVoIPサーバ名(SIPサーバアドレス、REGISTERサーバアドレス)&lt;br /&gt;
nifty.comはSIP-URL(SIPドメイン名)&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=aor&lt;br /&gt;
contact=sip:ABCDEFGHI@v???NN.nifty.com&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=identify&lt;br /&gt;
endpoint=atniftyphone&lt;br /&gt;
match=v???NN.nifty.com&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=auth&lt;br /&gt;
auth_type=userpass&lt;br /&gt;
username=ABCDEFGHI&lt;br /&gt;
password=abcdefghi&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=registration&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
outbound_auth=atniftyphone&lt;br /&gt;
contact_user=050NNNNNNNN&lt;br /&gt;
server_uri=sip:v???NN.nifty.com&lt;br /&gt;
client_uri=sip:050NNNNNNNN@nifty.com&lt;br /&gt;
retry_interval=60&lt;br /&gt;
&lt;br /&gt;
[atniftyphone]&lt;br /&gt;
type=endpoint&lt;br /&gt;
transport=transport-udp&lt;br /&gt;
context=from-atniftyphone&lt;br /&gt;
disallow=all&lt;br /&gt;
allow=ulaw&lt;br /&gt;
dtmf_mode=inband&lt;br /&gt;
direct_media=no&lt;br /&gt;
send_pai=yes&lt;br /&gt;
inband_progress=no&lt;br /&gt;
outbound_auth=atniftyphone&lt;br /&gt;
from_user=050NNNNNNNN&lt;br /&gt;
from_domain=nifty.com&lt;br /&gt;
aors=atniftyphone&lt;br /&gt;
language=ja ; お好みで&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== extensions.conf ===&lt;br /&gt;
&lt;br /&gt;
一例です。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;; 発信&lt;br /&gt;
[default]&lt;br /&gt;
exten =&amp;gt; _0.,1,Dial(PJSIP/${EXTEN}@atniftyphone)&lt;br /&gt;
same  =&amp;gt;     n,Congestion&lt;br /&gt;
same  =&amp;gt;     n,Hangup&lt;br /&gt;
&lt;br /&gt;
; 着信&lt;br /&gt;
[globals]&lt;br /&gt;
ATNIFTYPHONENUMBER=050NNNNNNNN&lt;br /&gt;
&lt;br /&gt;
[from-atniftyphone]&lt;br /&gt;
exten =&amp;gt; ${ATNIFTYPHONENUMBER},1,Dial(.....) ; 着信先を設定する&lt;br /&gt;
same  =&amp;gt; n,Congestion&lt;br /&gt;
same  =&amp;gt; n,Hangup&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 注意点 ===&lt;br /&gt;
@niftyフォン-Cはqualifyには非対応のようで、qualify_frequency、authenticate_qualifyを設定するとうまくいきませんのでご注意ください。&lt;br /&gt;
&lt;br /&gt;
[https://qa.nifty.com/cs/catalog/faq_nqa/qid_11216/1.htm?category1=100004&amp;amp;category3=300070&amp;amp;category2=200013 @niftyフォン-C よくある質問「@niftyフォンが正しく設定されているか確認する方法はありますか。」]では、&amp;lt;BR&amp;gt;&lt;br /&gt;
「@niftyフォン利用確認用の試験番号」なるものが記載されており、「発信テストにご利用いただき、@niftyフォン特有の発信音がするか、ご確認ください。」とあるが、&amp;lt;BR&amp;gt;&lt;br /&gt;
上記の設定のAsterisk16から発信してみたところ「おかけになった電話番号は、通信できない状態にあり、かかりません。」というガイダンスが繰り返し流れる。特有の発信音とはどのような音なのであろうか。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11349</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=11349"/>
		<updated>2020-08-07T10:54:11Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* テレワーク関連に対する注意喚起 */ マークアップを改善&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;VoIP-Info.jp Wiki&#039;&#039;&#039; ==&lt;br /&gt;
このページでは[[Asterisk]]の話題を中心にVoIP関連の情報交換を行なっています。&amp;lt;br&amp;gt;&lt;br /&gt;
なおこのページは http://www.voip-info.jp http://voip-info.jp のいずれでもアクセスできます。&amp;lt;br&amp;gt;&lt;br /&gt;
Asterisk PBX、VoIP、IP電話に興味をお持ちの皆様ご参加下さい。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Asteriskをビジネスとして扱われている方は[[Asteriskコンサルタント]]のページへ。仕事を依頼したい、仕事として受けたいなど、ビジネスマッチングにお使い下さい。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;SPAM投稿が多いため、ポリシーを変更します。ユーザ登録を行わないと書き込み/編集はできません。&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みを行われる方は、[http://www.voip-info.jp/index.php/%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3 ログインまたはアカウント作成]のページから、ユーザ登録を行ってください。&amp;lt;br&amp;gt;&lt;br /&gt;
(アクセスログ等は取得しています。迷惑行為等に対しては関係各所へ通報いたします。)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;警告&#039;&#039;&#039;:以前のWikiからもそうでしたが、広告宣伝に情報が埋もれることだけは避けたいので、特定企業への誘導リンク等は適切なページへ貼ってください。[[購入情報]]や[[Asteriskコンサルタント]]のページがそれに相当します。&amp;lt;br&amp;gt;&lt;br /&gt;
広告出稿をご希望の場合はwebmaster&#039;at&#039;voip-info.jpへメールでお問合せください [[広告]]。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各種ユーザ会関連情報は[[コミュニティ]]のページへ。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;COVID-19関連情報&#039;&#039;&#039;==&lt;br /&gt;
===テレワーク関連に対する注意喚起===&lt;br /&gt;
テレワーク関連で、SIPポートへのアタックが考えられますので注意喚起しておきます。&lt;br /&gt;
====影響を受ける環境/状況====&lt;br /&gt;
テレワーク環境(家庭等)でSIP対応の電話機、ソフトフォンなどを使用しておりクラウドサービスや、会社のIP-PBXに接続している場合。&lt;br /&gt;
====考えられる攻撃====&lt;br /&gt;
これまでインターネット上に広まっていたSIPポート(主に5060/udp)に対する攻撃を一般家庭でも受ける可能性があります。&amp;lt;br&amp;gt;&lt;br /&gt;
現象としては『謎の』着信がある、正体の不明の相手からの通話要求があるが電話に出られない、出ても何も聞こえないなどです。&lt;br /&gt;
====攻撃の影響を受ける理由/場合:====&lt;br /&gt;
SIP対応の電話機あるいはソフトフォンがローカル(電話機やソフトフォン自体が使用する)のSIPポートとして5060を使用している場合、SIPポートに対するアタックの対象となります。これはAsterisk等のサーバのSIPポートが5060であるかどうかに関係しません。&amp;lt;br&amp;gt;&lt;br /&gt;
 [電話機 5060] &amp;lt;=====&amp;gt; [Asterisk 5060]&lt;br /&gt;
一般的にSIPの電話機/ソフトフォン(SIPクライアント)はAsteriskやIP-PBXに対して、自分の「所在」を登録するためREGISTERを行い、通話を開始するためにはINVITEを行います。この際、SIPクライアントが「目がけて行く」先は、AsteriskやIP-PBXの IPアドレス:ポート番号です。ご承知の通り、このポート番号が5060番の場合、インターネット上から攻撃を受けることがよくあり、皆さんもポート番号をずらす、あるいはファイアウォールで防御する等の対策を取られていると思います。ところが昨今のテレワーク環境においては、このAsteriskやIP-PBXのポート番号ではなく、SIP電話機やソフトフォン側のポート番号で、一部の電話機/ソフトフォンでは『ローカルSIPポート』として5060を使うものがあることが知られています。ここで、問題とするのはこのローカルSIPポートです。&lt;br /&gt;
====対策：====&lt;br /&gt;
不用意な攻撃を受けないようにする方法はいくつかあります。&lt;br /&gt;
:; 電話機/ソフトフォンのポート番号をずらす :電話機あるいはソフトフォンの設定で、ローカルSIPポートを5060以外のところにずらしてください。ここで、〇〇番が良い、などと書くとその情報が伝播して攻撃対象となることが考えられますので、『不都合のない適切な』値に設定してください。この対策においては、クライアント側だけ変更すればよく、Asterisk等のサーバ側ポート番号は現在使用しているものから変更する必要は通常ありません。&lt;br /&gt;
:; 家庭側でもフィルタ/ファイアウォールを施す :クラウド上のIP-PBXや会社のサーバのIPアドレスが固定、あるいは、ある範囲にある場合ならば、家庭側のルータ等でSIPポート番号に対する『入り』(着信)をそのIPアドレスからのみ許可するようにしてください。&lt;br /&gt;
急な対応により、不用意なSIP電話機やソフトフォンも増えているかと思いますので、皆様、お気をつけください。サーバ側の5060ポートに対しては慎重に行動されているかとは思いますが、家庭等に電話機を持っていった場合、5060が開いているかもしれないということを失念されていることがあります。今回、問題としているのは電話機ソフトフォン側のポート番号ですので、注意をお願いします。&amp;lt;br&amp;gt;&lt;br /&gt;
:当然ですがVPNで会社にトンネルを張ってる場合には関係ありませんので念のため。&lt;br /&gt;
&lt;br /&gt;
===安直にサーバを立てないでください===&lt;br /&gt;
Asteriskの情報に辿り着き、クラウド上等にPBXを構築する場合、ネット上の一般的な情報だけを元に安直にAsteriskサーバを立てるのはやめましょう。インターネット上で開いているサーバには十分なセキュリティを施しておかないと、いわゆる『タダがけ』でやられます。特にSIPの5060ポートに対する攻撃は、あっという間に来ます。[[Asterisk SIP セキュリティ]] のページを参考にして注意して運用してください。&lt;br /&gt;
===テレワークの参考情報===&lt;br /&gt;
テレビ会議等で、音が『気持ち悪い』ような場合には、ヘッドフォンの片方を耳からはずして、片耳状態で使ってみてください。&amp;lt;br&amp;gt;&lt;br /&gt;
モノラル音源の場合、音像の定位が頭の中心にきてしまうため気持ち悪く感じるためです。私たちは頭の中心で誰かが喋ることに慣れていません。携帯電話など、電話での会話は片耳で聞くことに慣れているので、テレビ会議でも片耳で聞けば気持ち悪くなくなります。&amp;lt;br&amp;gt;&lt;br /&gt;
画面上の人物と音の来る方向が一致しないのも『気持ち悪い』原因となりますので、あまり人物を注視しない方が良いでしょう。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===会社の電話(番号)をテレワークでも使いたい===&lt;br /&gt;
これは我々の得意とする分野です。お困りの場合には [[コミュニティ]] のページからユーザ会にご参加いただき、案件を投げてもらえれば手を挙げてくれるベンダーさんもいるかと思います。[[Asteriskコンサルタント]] ページも参考にしてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==&#039;&#039;&#039;注意喚起&#039;&#039;&#039;==&lt;br /&gt;
===DNSへのアタックに注意===&lt;br /&gt;
DNSへのアタックが多発しています。サーバを運用している方は特にご注意ください。普通のアクセスルータでも、まずいケースがありますのでアクセス回線でも速度がおかしい場合には注意した方がよいかもしれません。&amp;lt;br&amp;gt;&lt;br /&gt;
ヤマハルータによるこの対策方法をまとめておきました。→ [[DNSamp対策]]&lt;br /&gt;
&lt;br /&gt;
===SIPポートへの攻撃についてご注意下さい===&lt;br /&gt;
SIPポートへの攻撃が流行っているようですので、ご注意下さい。&amp;lt;br&amp;gt;&lt;br /&gt;
現在多い攻撃は&#039;&#039;&#039;SIPのREGISTERを総当たりで試す&#039;&#039;&#039;というものです。&amp;lt;br&amp;gt;&lt;br /&gt;
対策方法等については : &#039;&#039;&#039;[[Asterisk SIP セキュリティ]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Fail2banによるiptablesでのブロック方法の設定をまとめました : &#039;&#039;&#039;[[SIP-Fail2ban]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;注目の情報&#039;&#039;&#039;==&lt;br /&gt;
*[[ABS]] をリリースしました&lt;br /&gt;
:軽量なAsteriskベースのPBXをお探しの場合にどうぞ&lt;br /&gt;
:キーテレホン挙動もできるのでビジホン用途でも使えます [[ABS]]&lt;br /&gt;
*Asterisk16&lt;br /&gt;
:Asterisk16がリリースされました。13に続くLTSです。&lt;br /&gt;
:Asteriskのバージョンと位置付けはこちら https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions&lt;br /&gt;
&lt;br /&gt;
*新サンプル設定ファイル&lt;br /&gt;
:サンプル設定ファイルの内容を一新し13対応としました。&lt;br /&gt;
:[[Asterisk 13 サンプル設定ファイル]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Sangoma「が」Digium「を」買収&#039;&#039;&#039;&lt;br /&gt;
:特設ページ作りました [[Sangoma_Digium]]&lt;br /&gt;
&lt;br /&gt;
==イベント・セミナー情報==&lt;br /&gt;
毎月やってる定例会はこちら。&lt;br /&gt;
:http://www.denphone.com/voip-asterisk-lounge-jp&lt;br /&gt;
&lt;br /&gt;
==お願い==&lt;br /&gt;
最近、SPAMが増えつつあります。気付いた方は正常なページへの差し戻しまたは削除をお願いします。同一ページが複数回のSPAM書き込みを受けた場合にはページの保護をお願いします。&lt;br /&gt;
&lt;br /&gt;
==RSSフィードについて==&lt;br /&gt;
メインのWikiのRSSフィードは[[%E7%89%B9%E5%88%A5:Recentchanges|最近更新したページ]]のツールボックス(左サイドバーの広告の下)にあります。&amp;lt;br&amp;gt;&lt;br /&gt;
フォーラム(Google Groups)のRSSフィードは下記です。&amp;lt;br&amp;gt;&lt;br /&gt;
:https://groups.google.com/forum/feed/asterisk-ug/msgs/rss.xml?num=50&lt;br /&gt;
ご利用ください。&lt;br /&gt;
&lt;br /&gt;
==Wikiの管理者権限==&lt;br /&gt;
管理者権限が欲しい人は[[たかはし]]まで、ご連絡ください。&amp;lt;br&amp;gt;&lt;br /&gt;
Wikiページの書き換えや更新は、ユーザ登録を行っていただければできます。まだ登録されていない方は[[特別:Userlogin|アカウント作成ページ]]からユーザ登録をお願いします。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=SIP-Fail2ban&amp;diff=11348</id>
		<title>SIP-Fail2ban</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=SIP-Fail2ban&amp;diff=11348"/>
		<updated>2020-08-07T10:40:29Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* CentOS 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IAXでのFail2banは&#039;&#039;&#039;[[IAX-Fail2ban]]&#039;&#039;&#039;を参照してください。&lt;br /&gt;
==fail2ban==&lt;br /&gt;
ログファイルとiptablesを利用したファイアウォールの一種。Brute Forceアタックの対策に使いやすい。&amp;lt;br&amp;gt;&lt;br /&gt;
:http://www.fail2ban.org/&lt;br /&gt;
:http://sourceforge.net/projects/fail2ban/&lt;br /&gt;
iptablesおよびpythonを必要とします。最新のFail2banではAsteriskにも対応しています。&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
CentOSではepelからyumでインストールすることが可能です。&lt;br /&gt;
 yum install -y epel-release&lt;br /&gt;
 yum --enablerepo=epel -y install fail2ban&lt;br /&gt;
yumでインストールした最新のFail2BanはAsteriskのログフォーマットを変更し、ローカル設定ファイルを作成するだけで使用することができます。&amp;lt;BR&amp;gt;&lt;br /&gt;
まずAsteriskのlogger.confを修正し&lt;br /&gt;
 [general]&lt;br /&gt;
 ; Customize the display of debug message time stamps&lt;br /&gt;
 ; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)&lt;br /&gt;
 ; see strftime(3) Linux manual for format specifiers&lt;br /&gt;
 dateformat=%F %T&lt;br /&gt;
dateformatの箇所のコメント(;)を外して有効にし、Asteriskを再起動します。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/fail2ban/に以下の内容のjail.localというファイルを作成します。ファイルがある場合には修正します。&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 ignoreip =&lt;br /&gt;
 backend = polling&lt;br /&gt;
 bantime = 3600  ; 1hour&lt;br /&gt;
 maxretry= 5&lt;br /&gt;
 usedns = no&lt;br /&gt;
 &lt;br /&gt;
 [asterisk]&lt;br /&gt;
 enabled = true&lt;br /&gt;
fail2banを起動すると監視が始まります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===起動の確認===&lt;br /&gt;
iptables -Lでiptablesの状態を確認するとfail2banでbanされたIPアドレス等が確認できます。&lt;br /&gt;
 Chain f2b-asterisk-tcp (1 references)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
 REJECT     all  --  46.17.42.180         anywhere            reject-with icmp-port-unreachable&lt;br /&gt;
 RETURN     all  --  anywhere             anywhere&lt;br /&gt;
 &lt;br /&gt;
 Chain f2b-asterisk-udp (1 references)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
 REJECT     all  --  46.17.42.180         anywhere            reject-with icmp-port-unreachable&lt;br /&gt;
 RETURN     all  --  anywhere             anywhere&lt;br /&gt;
デフォルトではban時間は1時間です。&lt;br /&gt;
&lt;br /&gt;
==INVITEによるBrute force攻撃への対策==&lt;br /&gt;
REGISTERメッセージによる攻撃以外に、INVITEによるBrute force攻撃も確認されています。&lt;br /&gt;
&lt;br /&gt;
この攻撃時に出力されるログメッセージは以下のようなものになります。&lt;br /&gt;
&lt;br /&gt;
 Failed to authenticate user &amp;quot;Anonymous&amp;quot; &amp;lt;sip:anonymous@192.168.1.2&amp;gt;;tag=as105e401c &lt;br /&gt;
&lt;br /&gt;
このログメッセージの攻撃元IPアドレスが、FROMヘッダに記載されているIPアドレスになっています。&lt;br /&gt;
&lt;br /&gt;
このままでは、NAT配下のサーバーからの攻撃や、FROMヘッダが偽装された場合にfail2banで対応することができません。&lt;br /&gt;
&lt;br /&gt;
そこで、Asteriskへパッチを当てて、実際の攻撃元IPアドレスを表示するように修正します。&lt;br /&gt;
&lt;br /&gt;
===Asteriskへパッチを当てる===&lt;br /&gt;
&lt;br /&gt;
次のようなパッチをAsteriskに適用します。&lt;br /&gt;
&lt;br /&gt;
このパッチはAsterisk-1.4.40を対象にしていますが、1.6系、1.8系にも同様の修正で対応できます。&lt;br /&gt;
&lt;br /&gt;
 --- asterisk-1.4.40.orig/channels/chan_sip.c    2011-01-05 02:11:48.000000000 +0900&lt;br /&gt;
 +++ asterisk-1.4.40/channels/chan_sip.c 2011-03-10 17:59:26.000000000 +0900&lt;br /&gt;
 @@ -15456,7 +15456,7 @@&lt;br /&gt;
                                 ast_log(LOG_NOTICE, &amp;quot;Sending fake auth rejection for user %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
                                 transmit_fake_auth_response(p, SIP_INVITE, req, XMIT_RELIABLE);&lt;br /&gt;
                         } else {&lt;br /&gt;
 -                               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate user %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate user %s (%s:%d)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_inet_ntoa(sin-&amp;gt;sin_addr), ntohs(sin-&amp;gt;sin_port));&lt;br /&gt;
                                 transmit_response_reliable(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         }&lt;br /&gt;
                         p-&amp;gt;invitestate = INV_COMPLETED;&lt;br /&gt;
 &lt;br /&gt;
こちらは Asterisk-1.8.23.0 用です。Asterisk-11.5.1 でもほぼ同じコードが使えます。&lt;br /&gt;
&lt;br /&gt;
 --- asterisk-1.8.23.0/channels/chan_sip.c.orig  2013-08-02 11:41:03.233638321 +0900&lt;br /&gt;
 +++ asterisk-1.8.23.0/channels/chan_sip.c       2013-12-06 14:51:08.698990909 +0900&lt;br /&gt;
 @@ -22673,7 +22673,7 @@&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                         return 0;&lt;br /&gt;
 @@ -23334,7 +23334,7 @@&lt;br /&gt;
                         goto request_invite_cleanup;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response_reliable(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         p-&amp;gt;invitestate = INV_COMPLETED;&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
 @@ -25164,7 +25164,7 @@&lt;br /&gt;
                 p-&amp;gt;lastinvite = seqno;&lt;br /&gt;
                 return 0;&lt;br /&gt;
         } else if (auth_result &amp;lt; 0) {&lt;br /&gt;
 -               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                 transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                 sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                 ast_string_field_set(p, theirtag, NULL);&lt;br /&gt;
 @@ -25384,7 +25384,7 @@&lt;br /&gt;
                 if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 if (res != AUTH_SUCCESSFUL) {&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
 &lt;br /&gt;
                         pvt_set_needdestroy(p, &amp;quot;authentication failed&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Asterisk 11.23.1用パッチです。&lt;br /&gt;
&lt;br /&gt;
 --- channels/chan_sip.c.orig    2016-09-09 01:28:35.000000000 +0900&lt;br /&gt;
 +++ channels/chan_sip.c 2016-10-28 23:26:38.985774935 +0900&lt;br /&gt;
 @@ -18751,7 +18751,7 @@ static void receive_message(struct sip_p&lt;br /&gt;
                         return;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                         return;&lt;br /&gt;
 @@ -24963,7 +24963,7 @@ static int handle_request_options(struct&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                         return 0;&lt;br /&gt;
 @@ -25798,7 +25798,7 @@ static int handle_request_invite(struct&lt;br /&gt;
                         goto request_invite_cleanup;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response_reliable(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         p-&amp;gt;invitestate = INV_COMPLETED;&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
 @@ -27788,7 +27788,7 @@ static int handle_request_publish(struct&lt;br /&gt;
                 p-&amp;gt;lastinvite = seqno;&lt;br /&gt;
                 return 0;&lt;br /&gt;
         } else if (auth_result &amp;lt; 0) {&lt;br /&gt;
 -               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                 transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                 sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                 ast_string_field_set(p, theirtag, NULL);&lt;br /&gt;
 @@ -28003,7 +28003,7 @@ static int handle_request_subscribe(stru&lt;br /&gt;
                 if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 if (res != AUTH_SUCCESSFUL) {&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s for SUBSCRIBE\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s) for SUBSCRIBE\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
 &lt;br /&gt;
                         pvt_set_needdestroy(p, &amp;quot;authentication failed&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
パッチを当てて、Asteriskをコンパイルし直し、再起動します。&lt;br /&gt;
&lt;br /&gt;
すると、先ほどの攻撃時のログは以下のように出力されるようになります。&lt;br /&gt;
&lt;br /&gt;
 Failed to authenticate user &amp;quot;Anonymous&amp;quot; &amp;lt;sip:anonymous@192.168.1.2&amp;gt;;tag=as105e401c (123.45.67.89:5060)&lt;br /&gt;
&lt;br /&gt;
ログの(　)内に攻撃元の実IPアドレスが表示されるようになり、これを元にfail2banで攻撃を検知することができます。&lt;br /&gt;
&lt;br /&gt;
===fail2banへ設定を追加===&lt;br /&gt;
&lt;br /&gt;
修正したログに合わせたフィルタ設定をfail2banに追加します。&lt;br /&gt;
&lt;br /&gt;
/etc/fail2ban/filter.d/asterisk.conf の failregex の項目に以下を追加します。&lt;br /&gt;
&lt;br /&gt;
 NOTICE.* .*: Failed to authenticate user .* \(&amp;lt;HOST&amp;gt;:.*\)&lt;br /&gt;
&lt;br /&gt;
フィルタ追加後、fail2banを再起動し設定完了です。&lt;br /&gt;
&lt;br /&gt;
==securityログの設定==&lt;br /&gt;
/etc/asterisk/logger.confに&lt;br /&gt;
 [logfiles]&lt;br /&gt;
 security =&amp;gt; security&lt;br /&gt;
を追加（コメント解除）して、/var/log/asterisk/securityにできるログをfail2banに監視させる方法もあります。&lt;br /&gt;
&lt;br /&gt;
==ステータス確認==&lt;br /&gt;
fail2ban-client コマンドで問い合わせるのがいいです。&lt;br /&gt;
 # コマンド一覧&lt;br /&gt;
 fail2ban-client&lt;br /&gt;
 &lt;br /&gt;
 # 有効なjail一覧&lt;br /&gt;
 fail2ban-client status&lt;br /&gt;
 &lt;br /&gt;
 # jail名&amp;quot;asterisk&amp;quot;のステータス &lt;br /&gt;
 fail2ban-client status asterisk&lt;br /&gt;
 &lt;br /&gt;
 # 手動でban/unban&lt;br /&gt;
 fail2ban-client set asterisk banip 11.22.33.44&lt;br /&gt;
 fail2ban-client set asterisk unbanip 11.22.33.44&lt;br /&gt;
banされてることになっていても、actionが正しく書けていないと実際にはfirewalldやiptablesなどに反映されず、攻撃されっぱなしもあり得るので、挙動確認が大事です。&amp;lt;br&amp;gt;&lt;br /&gt;
fail2ban-server コマンドは直接叩いてはいけないようです。&amp;lt;br&amp;gt;&lt;br /&gt;
または、ログファイル /var/log/fail2ban.log を見てもいいです。&lt;br /&gt;
&lt;br /&gt;
== CentOS 8 ==&lt;br /&gt;
&lt;br /&gt;
Asterisk16, CentOS 8でも同様にepelからdnfでインストールすることが可能です。&amp;lt;BR&amp;gt;&lt;br /&gt;
CentOS 8では、iptablesではなく、nftables及びfirewalldが使用されていますが、問題なく対応しています。&lt;br /&gt;
 dnf install -y epel-release&lt;br /&gt;
 dnf --enablerepo=epel -y install fail2ban fail2ban-systemd&lt;br /&gt;
&lt;br /&gt;
Asteriskのlogger.confの変更、/etc/fail2ban/jail.localの作成は上記、[[#CentOS|以前のCentOS]]と同様にしてください。&amp;lt;BR&amp;gt;&lt;br /&gt;
しかし、2020年8月7日時点では、ここでfail2banを起動しても&lt;br /&gt;
 2020-08-07 16:39:54,981 fail2ban.transmitter    [58697]: WARNING Command [&#039;server-stream&#039;, [[&#039;set&#039;, &#039;syslogsocket&#039;, &#039;auto&#039;]&lt;br /&gt;
 (略)&lt;br /&gt;
 Received ValueError(&#039;Action firewallcmd-rich-rules already exists&#039;,)&lt;br /&gt;
 2020-08-07 16:39:54,981 fail2ban                [58697]: ERROR   NOK: (&#039;Action firewallcmd-rich-rules already exists&#039;,)&lt;br /&gt;
&lt;br /&gt;
というエラーが出て動きません。さしあたりの回避策として/etc/fail2ban/jail.d/00-firewalld.confを次のように変更します。&lt;br /&gt;
 (略)&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 banaction = firewallcmd-ipset&lt;br /&gt;
 banaction_allports = firewallcmd-ipset&lt;br /&gt;
 #banaction = firewallcmd-rich-rules[actiontype=&amp;lt;multiport&amp;gt;]&lt;br /&gt;
 #banaction_allports = firewallcmd-rich-rules[actiontype=&amp;lt;allports&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
これでfail2banを起動すると監視が始まります。&lt;br /&gt;
 systemctl enable fail2ban&lt;br /&gt;
 systemctl start fail2ban&lt;br /&gt;
&lt;br /&gt;
稼働状態の確認としては、上記fail2ban-clientコマンドまたは、次のコマンドが使用できます。&lt;br /&gt;
 ipset --list&lt;br /&gt;
&lt;br /&gt;
Asterisk 16及び[[Asterisk pjsip|pjsip]]を使用していると、Asteriskにパッチを当てる等しなくても[[#INVITEによるBrute force攻撃への対策|INVITEによるBrute force攻撃]]も防御できるようです。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=SIP-Fail2ban&amp;diff=11347</id>
		<title>SIP-Fail2ban</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=SIP-Fail2ban&amp;diff=11347"/>
		<updated>2020-08-07T07:54:37Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* CentOS 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IAXでのFail2banは&#039;&#039;&#039;[[IAX-Fail2ban]]&#039;&#039;&#039;を参照してください。&lt;br /&gt;
==fail2ban==&lt;br /&gt;
ログファイルとiptablesを利用したファイアウォールの一種。Brute Forceアタックの対策に使いやすい。&amp;lt;br&amp;gt;&lt;br /&gt;
:http://www.fail2ban.org/&lt;br /&gt;
:http://sourceforge.net/projects/fail2ban/&lt;br /&gt;
iptablesおよびpythonを必要とします。最新のFail2banではAsteriskにも対応しています。&lt;br /&gt;
&lt;br /&gt;
==CentOS==&lt;br /&gt;
CentOSではepelからyumでインストールすることが可能です。&lt;br /&gt;
 yum install -y epel-release&lt;br /&gt;
 yum --enablerepo=epel -y install fail2ban&lt;br /&gt;
yumでインストールした最新のFail2BanはAsteriskのログフォーマットを変更し、ローカル設定ファイルを作成するだけで使用することができます。&amp;lt;BR&amp;gt;&lt;br /&gt;
まずAsteriskのlogger.confを修正し&lt;br /&gt;
 [general]&lt;br /&gt;
 ; Customize the display of debug message time stamps&lt;br /&gt;
 ; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)&lt;br /&gt;
 ; see strftime(3) Linux manual for format specifiers&lt;br /&gt;
 dateformat=%F %T&lt;br /&gt;
dateformatの箇所のコメント(;)を外して有効にし、Asteriskを再起動します。&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/fail2ban/に以下の内容のjail.localというファイルを作成します。ファイルがある場合には修正します。&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 ignoreip =&lt;br /&gt;
 backend = polling&lt;br /&gt;
 bantime = 3600  ; 1hour&lt;br /&gt;
 maxretry= 5&lt;br /&gt;
 usedns = no&lt;br /&gt;
 &lt;br /&gt;
 [asterisk]&lt;br /&gt;
 enabled = true&lt;br /&gt;
fail2banを起動すると監視が始まります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===起動の確認===&lt;br /&gt;
iptables -Lでiptablesの状態を確認するとfail2banでbanされたIPアドレス等が確認できます。&lt;br /&gt;
 Chain f2b-asterisk-tcp (1 references)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
 REJECT     all  --  46.17.42.180         anywhere            reject-with icmp-port-unreachable&lt;br /&gt;
 RETURN     all  --  anywhere             anywhere&lt;br /&gt;
 &lt;br /&gt;
 Chain f2b-asterisk-udp (1 references)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
 REJECT     all  --  46.17.42.180         anywhere            reject-with icmp-port-unreachable&lt;br /&gt;
 RETURN     all  --  anywhere             anywhere&lt;br /&gt;
デフォルトではban時間は1時間です。&lt;br /&gt;
&lt;br /&gt;
==INVITEによるBrute force攻撃への対策==&lt;br /&gt;
REGISTERメッセージによる攻撃以外に、INVITEによるBrute force攻撃も確認されています。&lt;br /&gt;
&lt;br /&gt;
この攻撃時に出力されるログメッセージは以下のようなものになります。&lt;br /&gt;
&lt;br /&gt;
 Failed to authenticate user &amp;quot;Anonymous&amp;quot; &amp;lt;sip:anonymous@192.168.1.2&amp;gt;;tag=as105e401c &lt;br /&gt;
&lt;br /&gt;
このログメッセージの攻撃元IPアドレスが、FROMヘッダに記載されているIPアドレスになっています。&lt;br /&gt;
&lt;br /&gt;
このままでは、NAT配下のサーバーからの攻撃や、FROMヘッダが偽装された場合にfail2banで対応することができません。&lt;br /&gt;
&lt;br /&gt;
そこで、Asteriskへパッチを当てて、実際の攻撃元IPアドレスを表示するように修正します。&lt;br /&gt;
&lt;br /&gt;
===Asteriskへパッチを当てる===&lt;br /&gt;
&lt;br /&gt;
次のようなパッチをAsteriskに適用します。&lt;br /&gt;
&lt;br /&gt;
このパッチはAsterisk-1.4.40を対象にしていますが、1.6系、1.8系にも同様の修正で対応できます。&lt;br /&gt;
&lt;br /&gt;
 --- asterisk-1.4.40.orig/channels/chan_sip.c    2011-01-05 02:11:48.000000000 +0900&lt;br /&gt;
 +++ asterisk-1.4.40/channels/chan_sip.c 2011-03-10 17:59:26.000000000 +0900&lt;br /&gt;
 @@ -15456,7 +15456,7 @@&lt;br /&gt;
                                 ast_log(LOG_NOTICE, &amp;quot;Sending fake auth rejection for user %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
                                 transmit_fake_auth_response(p, SIP_INVITE, req, XMIT_RELIABLE);&lt;br /&gt;
                         } else {&lt;br /&gt;
 -                               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate user %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate user %s (%s:%d)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_inet_ntoa(sin-&amp;gt;sin_addr), ntohs(sin-&amp;gt;sin_port));&lt;br /&gt;
                                 transmit_response_reliable(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         }&lt;br /&gt;
                         p-&amp;gt;invitestate = INV_COMPLETED;&lt;br /&gt;
 &lt;br /&gt;
こちらは Asterisk-1.8.23.0 用です。Asterisk-11.5.1 でもほぼ同じコードが使えます。&lt;br /&gt;
&lt;br /&gt;
 --- asterisk-1.8.23.0/channels/chan_sip.c.orig  2013-08-02 11:41:03.233638321 +0900&lt;br /&gt;
 +++ asterisk-1.8.23.0/channels/chan_sip.c       2013-12-06 14:51:08.698990909 +0900&lt;br /&gt;
 @@ -22673,7 +22673,7 @@&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                         return 0;&lt;br /&gt;
 @@ -23334,7 +23334,7 @@&lt;br /&gt;
                         goto request_invite_cleanup;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response_reliable(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         p-&amp;gt;invitestate = INV_COMPLETED;&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
 @@ -25164,7 +25164,7 @@&lt;br /&gt;
                 p-&amp;gt;lastinvite = seqno;&lt;br /&gt;
                 return 0;&lt;br /&gt;
         } else if (auth_result &amp;lt; 0) {&lt;br /&gt;
 -               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                 transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                 sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                 ast_string_field_set(p, theirtag, NULL);&lt;br /&gt;
 @@ -25384,7 +25384,7 @@&lt;br /&gt;
                 if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 if (res != AUTH_SUCCESSFUL) {&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
 &lt;br /&gt;
                         pvt_set_needdestroy(p, &amp;quot;authentication failed&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Asterisk 11.23.1用パッチです。&lt;br /&gt;
&lt;br /&gt;
 --- channels/chan_sip.c.orig    2016-09-09 01:28:35.000000000 +0900&lt;br /&gt;
 +++ channels/chan_sip.c 2016-10-28 23:26:38.985774935 +0900&lt;br /&gt;
 @@ -18751,7 +18751,7 @@ static void receive_message(struct sip_p&lt;br /&gt;
                         return;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                         return;&lt;br /&gt;
 @@ -24963,7 +24963,7 @@ static int handle_request_options(struct&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                         return 0;&lt;br /&gt;
 @@ -25798,7 +25798,7 @@ static int handle_request_invite(struct&lt;br /&gt;
                         goto request_invite_cleanup;&lt;br /&gt;
                 }&lt;br /&gt;
                 if (res &amp;lt; 0) { /* Something failed in authentication */&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response_reliable(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                         p-&amp;gt;invitestate = INV_COMPLETED;&lt;br /&gt;
                         sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
 @@ -27788,7 +27788,7 @@ static int handle_request_publish(struct&lt;br /&gt;
                 p-&amp;gt;lastinvite = seqno;&lt;br /&gt;
                 return 0;&lt;br /&gt;
         } else if (auth_result &amp;lt; 0) {&lt;br /&gt;
 -               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +               ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s)\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                 transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
                 sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);&lt;br /&gt;
                 ast_string_field_set(p, theirtag, NULL);&lt;br /&gt;
 @@ -28003,7 +28003,7 @@ static int handle_request_subscribe(stru&lt;br /&gt;
                 if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */&lt;br /&gt;
                         return 0;&lt;br /&gt;
                 if (res != AUTH_SUCCESSFUL) {&lt;br /&gt;
 -                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s for SUBSCRIBE\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;));&lt;br /&gt;
 +                       ast_log(LOG_NOTICE, &amp;quot;Failed to authenticate device %s (%s) for SUBSCRIBE\n&amp;quot;, sip_get_header(req, &amp;quot;From&amp;quot;), ast_sockaddr_stringify(addr));&lt;br /&gt;
                         transmit_response(p, &amp;quot;403 Forbidden&amp;quot;, req);&lt;br /&gt;
 &lt;br /&gt;
                         pvt_set_needdestroy(p, &amp;quot;authentication failed&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
パッチを当てて、Asteriskをコンパイルし直し、再起動します。&lt;br /&gt;
&lt;br /&gt;
すると、先ほどの攻撃時のログは以下のように出力されるようになります。&lt;br /&gt;
&lt;br /&gt;
 Failed to authenticate user &amp;quot;Anonymous&amp;quot; &amp;lt;sip:anonymous@192.168.1.2&amp;gt;;tag=as105e401c (123.45.67.89:5060)&lt;br /&gt;
&lt;br /&gt;
ログの(　)内に攻撃元の実IPアドレスが表示されるようになり、これを元にfail2banで攻撃を検知することができます。&lt;br /&gt;
&lt;br /&gt;
===fail2banへ設定を追加===&lt;br /&gt;
&lt;br /&gt;
修正したログに合わせたフィルタ設定をfail2banに追加します。&lt;br /&gt;
&lt;br /&gt;
/etc/fail2ban/filter.d/asterisk.conf の failregex の項目に以下を追加します。&lt;br /&gt;
&lt;br /&gt;
 NOTICE.* .*: Failed to authenticate user .* \(&amp;lt;HOST&amp;gt;:.*\)&lt;br /&gt;
&lt;br /&gt;
フィルタ追加後、fail2banを再起動し設定完了です。&lt;br /&gt;
&lt;br /&gt;
==securityログの設定==&lt;br /&gt;
/etc/asterisk/logger.confに&lt;br /&gt;
 [logfiles]&lt;br /&gt;
 security =&amp;gt; security&lt;br /&gt;
を追加（コメント解除）して、/var/log/asterisk/securityにできるログをfail2banに監視させる方法もあります。&lt;br /&gt;
&lt;br /&gt;
==ステータス確認==&lt;br /&gt;
fail2ban-client コマンドで問い合わせるのがいいです。&lt;br /&gt;
 # コマンド一覧&lt;br /&gt;
 fail2ban-client&lt;br /&gt;
 &lt;br /&gt;
 # 有効なjail一覧&lt;br /&gt;
 fail2ban-client status&lt;br /&gt;
 &lt;br /&gt;
 # jail名&amp;quot;asterisk&amp;quot;のステータス &lt;br /&gt;
 fail2ban-client status asterisk&lt;br /&gt;
 &lt;br /&gt;
 # 手動でban/unban&lt;br /&gt;
 fail2ban-client set asterisk banip 11.22.33.44&lt;br /&gt;
 fail2ban-client set asterisk unbanip 11.22.33.44&lt;br /&gt;
banされてることになっていても、actionが正しく書けていないと実際にはfirewalldやiptablesなどに反映されず、攻撃されっぱなしもあり得るので、挙動確認が大事です。&amp;lt;br&amp;gt;&lt;br /&gt;
fail2ban-server コマンドは直接叩いてはいけないようです。&amp;lt;br&amp;gt;&lt;br /&gt;
または、ログファイル /var/log/fail2ban.log を見てもいいです。&lt;br /&gt;
&lt;br /&gt;
== CentOS 8 ==&lt;br /&gt;
&lt;br /&gt;
Asterisk16, CentOS 8でも同様にepelからdnfでインストールすることが可能です。&lt;br /&gt;
 dnf install -y epel-release&lt;br /&gt;
 dnf --enablerepo=epel -y install fail2ban fail2ban-systemd&lt;br /&gt;
&lt;br /&gt;
Asteriskのlogger.confの変更、/etc/fail2ban/jail.localの作成は上記以前のCentOSと同様にしてください。&amp;lt;BR&amp;gt;&lt;br /&gt;
しかし、2020年8月7日時点では、ここでfail2banを起動しても&lt;br /&gt;
 2020-08-07 16:39:54,981 fail2ban.transmitter    [58697]: WARNING Command [&#039;server-stream&#039;, [[&#039;set&#039;, &#039;syslogsocket&#039;, &#039;auto&#039;]&lt;br /&gt;
 (略)&lt;br /&gt;
 Received ValueError(&#039;Action firewallcmd-rich-rules already exists&#039;,)&lt;br /&gt;
 2020-08-07 16:39:54,981 fail2ban                [58697]: ERROR   NOK: (&#039;Action firewallcmd-rich-rules already exists&#039;,)&lt;br /&gt;
&lt;br /&gt;
というエラーが出て動きません。さしあたりの回避策として/etc/fail2ban/jail.d/00-firewalld.confを次のように変更します。&lt;br /&gt;
 (略)&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 banaction = firewallcmd-ipset&lt;br /&gt;
 banaction_allports = firewallcmd-ipset&lt;br /&gt;
 #banaction = firewallcmd-rich-rules[actiontype=&amp;lt;multiport&amp;gt;]&lt;br /&gt;
 #banaction_allports = firewallcmd-rich-rules[actiontype=&amp;lt;allports&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
これでfail2banを起動すると監視が始まります。&lt;br /&gt;
 systemctl enable fail2ban&lt;br /&gt;
 systemctl start fail2ban&lt;br /&gt;
&lt;br /&gt;
稼働状態の確認としては、上記fail2ban-clientコマンドまたは、次のコマンドが使用できます。&lt;br /&gt;
 ipset --list&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E9%BB%92%E9%9B%BB%E8%A9%B1_%E3%83%8F%E3%83%83%E3%82%AF&amp;diff=11346</id>
		<title>黒電話 ハック</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E9%BB%92%E9%9B%BB%E8%A9%B1_%E3%83%8F%E3%83%83%E3%82%AF&amp;diff=11346"/>
		<updated>2020-08-06T01:46:28Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* 基本的な話 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;最近どーも、黒電話をハックして再発見＆再発明しようとしている人が多いようなのでページを作っておきます。&amp;lt;BR&amp;gt;&lt;br /&gt;
==まず読むべきもの==&lt;br /&gt;
*電話はなぜつながるのか 知っておきたいNTT電話、IP電話、携帯電話の基礎知識&lt;br /&gt;
:https://www.amazon.co.jp/dp/4822282864/&lt;br /&gt;
*NTT技術参考資料(通称：ぎさんし)&lt;br /&gt;
:https://www.ntt-east.co.jp/gisanshi/&lt;br /&gt;
==基本的な話==&lt;br /&gt;
アナログ電話機は2線式で全二重の音声通信をやっています。なので自分の音声も相手の音声も同一の線に乗ります。&amp;lt;BR&amp;gt;&lt;br /&gt;
:だから受話器からは自分の声も聞こえます&lt;br /&gt;
基本的な電圧(直流バイアス)は48V(正確には-48V)&lt;br /&gt;
:&amp;quot;電話&amp;quot;仕様のDCは48Vが基本です&lt;br /&gt;
:PoEで48Vが使われるのはこの仕様が理由で、もともとツイストペア線ネットワークは電話線流用から始まっているため&lt;br /&gt;
:鳴動(ベルを鳴らす)の際には直流バイアスに加えて48V(42～53V)の交流(AC:15～20Hz)を重畳します(技参資:3.5.2参照)。&lt;br /&gt;
:&amp;quot;呼び&amp;quot;のインピーダンスは600Ωです。ただし端末(電話機)のインピーダンスは線路(電線)を加えたものになるので、これより低いのが普通です。&lt;br /&gt;
&amp;quot;シグナリング&amp;quot;は受話器を上げた、下した、ダイヤルしたなどの操作によって相手と繋いだり切ったりすることを言います。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;ダイヤル&amp;quot;には2種類の方法があり回転(ロータリー)式の電話機はDP(ダイヤルパルス)、押しボタン(プッシュ)式の電話機はDT(ダイヤルトーン)です。&lt;br /&gt;
:DPは10PPSと20PPSの2種類があります。PPSは秒間のパルスの数のこと&lt;br /&gt;
:DPは受話器の上げ下ろし(オフ/オンフック)と等価なので器用な人はフックボタンでダイヤルできます&lt;br /&gt;
:DTは2種類のトーンを同時に出して制御する方式です&lt;br /&gt;
電話機に繋ぐポートを&#039;&#039;&#039;FXS&#039;&#039;&#039;、電話回線に繋ぐポートを&#039;&#039;&#039;FXO&#039;&#039;&#039;といいます。&lt;br /&gt;
&lt;br /&gt;
==ネットにつなぐには？==&lt;br /&gt;
アナログ電話機をIP化する装置をATA(Analog Telephone Adapter)といいます。ATAはとても安い値段で売ってます。&amp;lt;BR&amp;gt;&lt;br /&gt;
:ただし、日本製ではないものが多いためDPに対応するATAは多くありません。&amp;lt;BR&amp;gt;&lt;br /&gt;
:DPに対応している代表的なものはNTT東西のひかり電話アダプタというかルータ(PRとかRT)か、ヤマハのアナログポートを持つものです。&amp;lt;BR&amp;gt;&lt;br /&gt;
:Grandstream の [http://www.grandstream.jp/%E3%83%9B%E3%83%BC%E3%83%A0/%E8%A3%BD%E5%93%81%E6%83%85%E5%A0%B1/ata%E3%83%BB%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4/%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E9%9B%BB%E8%A9%B1%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF/handytone-802/  HT-802]がDPサポートしているって話もあるので人柱募集。&lt;br /&gt;
::HT-801/4号A自動式電話機の組み合わせで発信および着信を確認しました。おそらく600-A1電話機でもイケるでしょう。ただし20pps(600/601-A2)による発信はダメみたいで、ダイヤルしてもせいぜい１桁までしか反応してくれない。&lt;br /&gt;
:電話回線(NTT側)をIP化する装置はゲートウェイと呼びます。ATAによってはこの機能をあわせもつものもあります。&lt;br /&gt;
:::ただし停電時バックアップ用にのみFXOを持つものはゲートウェイにはなりません。&lt;br /&gt;
ATAを使うとIP化できるので一般的にはSIPで制御できるようになります。SIPになればAsteriskとかで制御簡単。&amp;lt;BR&amp;gt;&lt;br /&gt;
:IP化したけど、どうやって制御すんねーん！という人はAsteriskについて調べてください。ってか、ここ。&amp;lt;BR&amp;gt;&lt;br /&gt;
:USBのFXSもありますがあまりメジャーではないです。USB FXSを使う場合は制御がDAHDI(旧Zaptel)のものが多いのでAsteriskが要ります&lt;br /&gt;
:目覚まし(モーニングコール)とか簡単にできるんだけどなぁ・・・&lt;br /&gt;
&lt;br /&gt;
==マイコンにつなぐには？==&lt;br /&gt;
マイコンとかRaspberry Piにつなぐにはアナログの呼制御(シグナリング)をしてやらないとなのでちゃんとやろうとすると回路を作らないとだめです。&amp;lt;BR&amp;gt;&lt;br /&gt;
Raspberry Pi用にはFXS/FXOモジュールが乗るPi TDMというのが出ていたりします。&lt;br /&gt;
:https://switchpi.com/shop-now/&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Opus%E3%82%B3%E3%83%BC%E3%83%87%E3%83%83%E3%82%AF&amp;diff=11345</id>
		<title>Opusコーデック</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Opus%E3%82%B3%E3%83%BC%E3%83%87%E3%83%83%E3%82%AF&amp;diff=11345"/>
		<updated>2020-08-06T01:42:00Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「== 概要 ==  OpusコーデックはAsteriskで利用可能な音声コーデックの1つ。技術的特徴は[https://ja.wikipedia.org/wiki/Opus_(音声圧縮) Wikipedi...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
&lt;br /&gt;
OpusコーデックはAsteriskで利用可能な音声コーデックの1つ。技術的特徴は[https://ja.wikipedia.org/wiki/Opus_(音声圧縮) Wikipediaの記事]を参照のこと。&lt;br /&gt;
&lt;br /&gt;
可変ビットレートであり、ビットレートに比して高音質で、低遅延とのことです。&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
&lt;br /&gt;
インストール前に、提供元の[http://downloads.digium.com/pub/telephony/codec_opus/README README]をお読みください。&lt;br /&gt;
&lt;br /&gt;
使用状況の統計を24時間ごとにコミュニティサーバーに送信する旨が記載されています。&lt;br /&gt;
&lt;br /&gt;
また、バイナリパッケージの提供であり、x86またはx86_64のみの提供であるため、Raspberry Pi等の&amp;lt;b&amp;gt;ARMプロセッサ環境に対してはインストールできません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
了解された上で、インストールを行ってください。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Asterisk 16 ===&lt;br /&gt;
&lt;br /&gt;
Asterisk 16では、ビルド時にmake menuconfigでインストールするかどうかを選択します。&lt;br /&gt;
&lt;br /&gt;
インストールするを選択した場合、make install時にOpusコーデックのバイナリがダウンロードされ、インストールされます。&lt;br /&gt;
 &lt;br /&gt;
 make menuconfig &lt;br /&gt;
&lt;br /&gt;
Codec Translators → 下の方「External」の更に下 → codec_opusを選択肢、Enterキーで*マークをつけ、Save &amp;amp; Exitし、makeします。&lt;br /&gt;
&lt;br /&gt;
もし&lt;br /&gt;
&lt;br /&gt;
 XXX codec_opus&lt;br /&gt;
&lt;br /&gt;
とXXXが表示されていて選択できない場合、何らかの依存ソフトウェアがインストールされていないためインストールできないようです。&lt;br /&gt;
codec_opusを選択した状態で、下の方の「Depends on」に記載されているソフトウェアをインストールします。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CentOS 8ではxmlstarletが不足していましたが、何故かdnfからインストールできなかったので、RPMパッケージを手動でインストールしました。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
依存ソフトウェアをインストールしたら、./configureからやり直します。その場合make menuconfigで設定した内容は消去されるので、必要な場合設定内容を手元にメモしてから./configureをやり直し、再度make menuconfigを実行します。&lt;br /&gt;
&lt;br /&gt;
make menuconfigが完了したら、makeでビルドを行います。続いて、sudo make installまたはrootユーザーでmake installを行います。Opusの追加のみの場合は、上書きインストールをしても問題は発生しませんでした。&lt;br /&gt;
&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
&lt;br /&gt;
Asterisk設定ファイルのmodules.confに次の2行を追加します。&lt;br /&gt;
 load = codec_opus.so&lt;br /&gt;
 load = res_format_attr_opus.so&lt;br /&gt;
&lt;br /&gt;
追加しなくても動く場合もあるようですが、他コーデックとの変換に失敗する場合は上記の追加で改善します。（他コーデックと変換については下記「CLIでの確認」も参照。）&lt;br /&gt;
&lt;br /&gt;
続いて、pjsip.confのendpoint等でallow=opusと記載します。使用するクライアントでもOpusを使用する設定を行います。&lt;br /&gt;
&lt;br /&gt;
==== CLIでの確認 ====&lt;br /&gt;
&lt;br /&gt;
Opusが使用可能かどうかは、[[Asterisk CLI]]で次のコマンドを実行するとわかります。&lt;br /&gt;
&lt;br /&gt;
CLIコマンド：&lt;br /&gt;
 core show codecs&lt;br /&gt;
&lt;br /&gt;
結果（抜粋）：&lt;br /&gt;
       29 audio opus         opus             (Opus Codec)&lt;br /&gt;
&lt;br /&gt;
CLIコマンド(コーデック同士の変換にかかるミリ秒を表示)：&lt;br /&gt;
 core show translation&lt;br /&gt;
&lt;br /&gt;
結果：&lt;br /&gt;
         Translation times between formats (in microseconds) for one second of data&lt;br /&gt;
          Source Format (Rows) Destination Format (Columns)&lt;br /&gt;
 &lt;br /&gt;
           ulaw   gsm slin8 slin12 slin16 slin24 slin32 slin44 slin48 slin96 slin192  g722 testlaw  opus&lt;br /&gt;
     ulaw     - 15000  9000  17000  17000  17000  17000  17000  17000  17000   17000 17250   15000 23000&lt;br /&gt;
      gsm 15000     -  9000  17000  17000  17000  17000  17000  17000  17000   17000 17250   15000 23000&lt;br /&gt;
    slin8  6000  6000     -   8000   8000   8000   8000   8000   8000   8000    8000  8250    6000 14000&lt;br /&gt;
   slin12 14500 14500  8500      -   8000   8000   8000   8000   8000   8000    8000 14000   14500 14000&lt;br /&gt;
   slin16 14500 14500  8500   8500      -   8000   8000   8000   8000   8000    8000  6000   14500 14000&lt;br /&gt;
   slin24 14500 14500  8500   8500   8500      -   8000   8000   8000   8000    8000 14500   14500 14000&lt;br /&gt;
   slin32 14500 14500  8500   8500   8500   8500      -   8000   8000   8000    8000 14500   14500 14000&lt;br /&gt;
   slin44 14500 14500  8500   8500   8500   8500   8500      -   8000   8000    8000 14500   14500 14000&lt;br /&gt;
   slin48 14500 14500  8500   8500   8500   8500   8500   8500      -   8000    8000 14500   14500  6000&lt;br /&gt;
   slin96 14500 14500  8500   8500   8500   8500   8500   8500   8500      -    8000 14500   14500 14500&lt;br /&gt;
  slin192 14500 14500  8500   8500   8500   8500   8500   8500   8500   8500       - 14500   14500 14500&lt;br /&gt;
     g722 15600 15600  9600  17500   9000  17000  17000  17000  17000  17000   17000     -   15600 23000&lt;br /&gt;
  testlaw 15000 15000  9000  17000  17000  17000  17000  17000  17000  17000   17000 17250       - 23000&lt;br /&gt;
     opus 23500 23500 17500  17500  17500  17500  17500  17500   9000  17000   17000 23500   23500     -&lt;br /&gt;
&lt;br /&gt;
他コーデックとの変換については、Opusと変換する他方のコーデックのモジュールについてもmodules.confに記載する必要があるようで、必要な場合、上記のmodules.confへの追加例に倣って記載してください。&lt;br /&gt;
&lt;br /&gt;
== 使ってみる ==&lt;br /&gt;
&lt;br /&gt;
ulawではVoicemailmainで各音声の末尾が切れているような感じ（「メッセージ」の「ジ」が聞こえる前に次の音声に移ってしまう）でしたが、Opusにしたら改善しました。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan&amp;diff=11344</id>
		<title>利用者:Takatyan</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan&amp;diff=11344"/>
		<updated>2020-08-05T09:23:56Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Takatyanの投稿した内容については、サイト管理人[[たかはし]]、または、その許諾する者に対し、あらゆる利用を認めます。&lt;br /&gt;
* 一方で、投稿内容の正しさについてはTakatyanは一切保証しませんし、たとえ誤りがあっても、投稿内容を利用したことについての責任は負いません。&lt;br /&gt;
* Takatyanは個人的に試して判明したことや、調べてわかったことをまとめて投稿しているか、明らかな誤字修正等を行うのみであり、宣伝等の意図はありません。&lt;br /&gt;
&lt;br /&gt;
[[Category:人々]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_SIP_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=11343</id>
		<title>Asterisk SIP セキュリティ</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_SIP_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=11343"/>
		<updated>2020-08-05T09:22:47Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* SIPのユーザ名/パスワードを、わかりにくくする */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AsteriskのSIPのセキュリティを向上させる方法&lt;br /&gt;
=大前提=&lt;br /&gt;
　まず第一に用事がない(外からREGISTさせる必要がない)Asteriskはインターネットから到達可能な所に置かない、つまりインターネットに出さない/開かないのが当然の措置です。一般的な内線網であれば、外部との接続にはゲートウェイ等が用いられるためIPリーチャブルなところにAsteriskを置く必要はありません。&amp;lt;br&amp;gt;&lt;br /&gt;
　サンプル設定ファイルをそのまま使用してはいけません。サンプル設定ファイルの中身は「誰でも」見られますし、公開されています。つまり攻撃者も同じ情報を入手できるということです。&amp;lt;br&amp;gt;&lt;br /&gt;
　当たり前の話ですが、外部に対してサーバを開くことの危険性を理解していないのであれば、サーバをインターネット上に出すべきではありません。&lt;br /&gt;
==allowguest==&lt;br /&gt;
　現在配布しているサンプル設定ファイルでは allowguest=no を指定してありますが、以前配布していたものにはこの指定がなく、デフォルトの yes になっていましたので注意してください。&amp;lt;br&amp;gt;&lt;br /&gt;
　基本 sip.conf には allowguest=no を指定しておいて下さい。yes を指定する場合/理由は自分で調べてください。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=総当たり対策=&lt;br /&gt;
SIPのユーザ名、パスワードを総当たりしてくる攻撃の対策方法。&amp;lt;br&amp;gt;&lt;br /&gt;
総当たりで来るので、対策はそこそこ面倒です。&amp;lt;br&amp;gt;&lt;br /&gt;
==SIPポート番号をずらす==&lt;br /&gt;
デフォルトのSIPポートは5060/udpですが、これを別なポート番号にしてください。&amp;lt;br&amp;gt;&lt;br /&gt;
現在よく見られる攻撃は5060を狙い撃ちで来ます。このためSIPポート番号を移動することによって効果的な&amp;quot;逃げ&amp;quot;が行えます。&amp;lt;br&amp;gt;&lt;br /&gt;
ただしSIPポート番号を変更した場合には電話機等のSIPクライアント側も設定変更を行う必要があります(当然ですが)。&amp;lt;br&amp;gt;&lt;br /&gt;
==iptablesなどソースIPによるフィルタリング==&lt;br /&gt;
　一般的なセキュリティ対策と同様に通す/通さないIPアドレスが明確な場合には効果的な対策のひとつです。&amp;lt;br&amp;gt;&lt;br /&gt;
　特定のIPアドレスないしは、レンジからのREGISTERやSIPのセッションしか通さないのであれば、そのIPアドレスに対してのみSIP(5060)とRTP(UDPの10000～20000など)を開きます。&amp;lt;br&amp;gt;&lt;br /&gt;
　ただしこの方法は「相手」のIPアドレスが明確な場合にのみ使える方法です。&amp;lt;br&amp;gt;&lt;br /&gt;
==Fail2banを使用する==&lt;br /&gt;
fail2ban はログファイルを検査することにより、iptablesへ登録することでブロックする方式のツールです。SSHへのBruto Forceアタック対策などに使用されますが、Asteriskのログ検査を行うことでSIPをブロックするのにも使用できます。&amp;lt;br&amp;gt;&lt;br /&gt;
→[[SIP-Fail2ban]]&lt;br /&gt;
&lt;br /&gt;
==ドメイン認証を使う==&lt;br /&gt;
sip.confのグローバルに以下の設定を追加します。&lt;br /&gt;
 domain=nanntoka.kanntoka.tld&lt;br /&gt;
こうすると、SIPチャネルはこのドメインを持つものからのREGISTER以外は受付けなくなります。ただし、IPアドレスをドメインに使っている場合には、このIPアドレスも併記する必要があります。&amp;lt;br&amp;gt;&lt;br /&gt;
 domain=nanntoka.kanntoka.tld&lt;br /&gt;
 domain=192.168.1.120&lt;br /&gt;
このように複数を記述することができます。&amp;lt;br&amp;gt;&lt;br /&gt;
ただしこの方法は簡単に裏をかかれる可能性が高いので過信してはいけません。設定したから安全だと思わないように。他のセキュリティ対策を必ず併用してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==SIPのユーザ名/パスワードを、わかりにくくする==&lt;br /&gt;
===パスワードを長くする===&lt;br /&gt;
まず第一にパスワードを長くし、わかりにくい文字列に変更すると総当たりされた場合に、ヒットする確率を下げることができます。&lt;br /&gt;
===ピア名を長くする===&lt;br /&gt;
サンプルの設定ファイルでは簡素化のために&amp;quot;内線番号=SIPピア名&amp;quot;という形で記述していますが、これは必ずしもイコールである必要はありません。ここをイコールにしている理由は&lt;br /&gt;
 exten =&amp;gt; _2XX,1,Dial(SIP/${EXTEN})&lt;br /&gt;
のように内線番号そのままでSIPピアにダイヤルしたいからです。もし、この利便性を捨ててかまわないのであれば、以下のような記述はアリです。&lt;br /&gt;
 ---sip.conf---&lt;br /&gt;
 [4207f1257d2a12cb]&lt;br /&gt;
 username=4207f1257d2a12cb&lt;br /&gt;
 secret=なんちゃら&lt;br /&gt;
  ・&lt;br /&gt;
  ・&lt;br /&gt;
 ---extensions.conf&lt;br /&gt;
 exten =&amp;gt; 201,1,Dial(SIP/4207f1257d2a12cb)&lt;br /&gt;
内線番号とSIPのピア名の紐付けを行っているのはextensions.confです。なので、extensions.confの中で正しく記述されていれば、SIPのピア(ユーザ)名は内線番号と一致している必要はありません。&lt;br /&gt;
===上の応用===&lt;br /&gt;
上の方法を応用して、「ひみつのフレーズ」を付加することでピア(ユーザ)名を「わかりにくく」することが可能です。ただし、この「ひみつのフレーズ」を知られてしまっては意味がないので注意してください。&amp;lt;br&amp;gt;&lt;br /&gt;
まず sip.conf はこんな感じ&lt;br /&gt;
 ---sip.conf---&lt;br /&gt;
 [5e8518af331d-201]&lt;br /&gt;
 username=5e8518af331d-201&lt;br /&gt;
 secret=なんちゃら&lt;br /&gt;
  ・&lt;br /&gt;
  ・&lt;br /&gt;
次にextensions.confはこんな感じ&lt;br /&gt;
 exten =&amp;gt; _201.,1,Dial(SIP/5e8518af331d-${EXTEN})&lt;br /&gt;
このフレーズの部分 5e8518af331d を使うことで、ピア名を長くしてしまうわけです。&lt;br /&gt;
&lt;br /&gt;
==Asterisk 11の名前付きACLを使う==&lt;br /&gt;
Asterisk 11から名前付きACL(Named ACL)が使用可能になっています。これを使うことで、SIPのピア毎にアクセス制御をかけることが可能です。&lt;br /&gt;
*[[Asterisk 11 名前付きACL]]&lt;br /&gt;
&lt;br /&gt;
=外にかけられないように対策=&lt;br /&gt;
勝手に外(外線)に対して発信できないように規制をかけることで、電話を勝手に使われて費用が発生してしまうことを防ぐことができます。&amp;lt;br&amp;gt;&lt;br /&gt;
==外線プレフィックスを特殊なものにしてしまう==&lt;br /&gt;
一般的に外線発信を単に、頭&#039;0&#039;で始めたり&#039;0&#039;ないしは&#039;9&#039; (03-, 003-のスタイル)で行えるようにしてしまっている所が多いと思います。これをワザと変なものにしてしまいます。例えば567とか何か適当なプレフィックスを外線発信用としてしまえば、ユーザ/パス総当たり-&amp;gt;外線プレフィックス総当たり と両方を破って外に出られてしまうという危険性はかなり低くなります。&amp;lt;br&amp;gt;&lt;br /&gt;
 exten =&amp;gt; _567.,1,Dial(SIP/${EXTEN:3}@outband-gateway)&lt;br /&gt;
とかのように書いてしまいます。&amp;lt;br&amp;gt;&lt;br /&gt;
==内線番号によって発信規制する==&lt;br /&gt;
これはREGISTERされてCIDを騙られると効果はありませんが、特定の内線からのみ外線発信しておくことで若干は効果が期待できます。&amp;lt;br&amp;gt;&lt;br /&gt;
==発信先規制を入れる==&lt;br /&gt;
海外に通話できる番号を禁止してしまいましょう。そうすれば海外に対して発信できないので超高額な電話代の請求をされる可能性は、ぐっと低くなります。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば頭が&#039;00&#039;とか&#039;010&#039;に対しては発信させないようにextenで書いてしまいます。ですが、これでは国際通話ができないので不便という場合には「超長いプレフィックス」などを使うとダイヤルできるようにしておくと良いでしょう。&amp;lt;br&amp;gt;&lt;br /&gt;
==そもそもの海外発信契約を止める==&lt;br /&gt;
キャリアと契約すると黙っていても国際通話ができるようになっていますが、これを止めます。一番安全かもしれません。&lt;br /&gt;
[[Category:セキュリティ]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan&amp;diff=11342</id>
		<title>利用者:Takatyan</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan&amp;diff=11342"/>
		<updated>2020-08-05T07:18:59Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: ページの作成:「* Takatyanの投稿した内容については、サイト管理人たかはし、または、その許諾する者に対し、あらゆる利用を認めます。 *...」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Takatyanの投稿した内容については、サイト管理人[[たかはし]]、または、その許諾する者に対し、あらゆる利用を認めます。&lt;br /&gt;
* 一方で、投稿内容の正しさについてはTakatyanは一切保証しませんし、たとえ誤りがあっても、投稿内容を利用したことについての責任は負いません。&lt;br /&gt;
* Takatyanは個人的に試して判明したことや、調べてわかったことをまとめて投稿しているか、明らかな誤字修正等を行うのみであり、宣伝等の意図はありません。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_pjsip&amp;diff=11341</id>
		<title>Asterisk pjsip</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_pjsip&amp;diff=11341"/>
		<updated>2020-08-05T06:59:37Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: /* CLIコマンド */ スペルミス修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
&lt;br /&gt;
AsiteriskでチャネルにPjSIPを使用する際の設定方法など&lt;br /&gt;
==コンパイル==&lt;br /&gt;
Asterisk 13まではpjprojectを別個インストールするか、configureに--with-pjproject-bundledを付けて実行する必要がありましたが、Asterisk 16からはデフォルトでbundledインストールされるようになりました。&amp;lt;BR&amp;gt;&lt;br /&gt;
各バージョン毎のインストール方法についてはAsteriskのそれぞれのページを参照してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Asterisk 13]]&amp;lt;BR&amp;gt;&lt;br /&gt;
[[Asterisk 16]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==変換ツール==&lt;br /&gt;
Asterisk 13以降であれば ソースディレクトリ/contrib/scripts/sip_to_pjsip の下にPythonのスクリプトがあります(複数)。sip.confのあるディレクトリでこれを実行するとpjsip.confに変換してくれます。#includeしている場合にはそれらも変換してくれますが、完璧ではないです。&lt;br /&gt;
==Asterisk 16における注意点==&lt;br /&gt;
PjSIPはres_statsd.soに依存します。このためres_statsdがloadされていないと、res_pjsipがloadされない問題が発生します。&amp;lt;BR&amp;gt;&lt;br /&gt;
(Asterisk 16ではモジュールの依存関係チェックが厳密化されています)&amp;lt;BR&amp;gt;&lt;br /&gt;
res_statsdモジュールはstatsd.confファイルが無いとloadされないため、statsd.confファイルが無いだけで、PjSIPが使えないという困った状態になります。ソースファイルに含まれる statsd.conf.sample を /etc/asterisk/statsd.conf にコピーしておいてください。もっとも、このファイルはコメントされた行だけなので要するに空なのですが。&lt;br /&gt;
&lt;br /&gt;
==パラメータ一覧==&lt;br /&gt;
[[Asterisk pjsip parameters]]&lt;br /&gt;
&lt;br /&gt;
==基本設定==&lt;br /&gt;
*間違いやすいところ&lt;br /&gt;
:sip.confでは1wordだったのがアンダーバーが入る&lt;br /&gt;
:dtmfmode → dtmf_mode&lt;br /&gt;
:fromdomain → from_domain&lt;br /&gt;
===グローバル設定===&lt;br /&gt;
設定は基本としてはpjsip.confに書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#GLOBAL]]&amp;lt;BR&amp;gt;&lt;br /&gt;
グローバル設定を使用する場合にはtype=grobalのセクションを書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [grobal]&lt;br /&gt;
 type=grobal&lt;br /&gt;
 max_forwards = 50&lt;br /&gt;
SIPの基本パラメータやPjSIPの動作に関わるパラメータはSystemで設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#SYSTEM]]&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===インクルード===&lt;br /&gt;
Asteriskの他の設定ファイル同様に#includeが使えます。なので、電話機と回線は別ファイルにした方が見通しは良いかもしれません。例えば&amp;lt;BR&amp;gt;&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
 &lt;br /&gt;
 #include pjsip_phones.conf&lt;br /&gt;
 #include pjsip_trunk_hikari.conf&lt;br /&gt;
のようにファイルを分割し、includeすると管理が楽になります。&lt;br /&gt;
&lt;br /&gt;
基本で必要なものは以下です。&lt;br /&gt;
&lt;br /&gt;
===トランスポート===&lt;br /&gt;
 [transport-udp]&lt;br /&gt;
 type = transport&lt;br /&gt;
 protocol = udp&lt;br /&gt;
 bind = 0.0.0.0:5070&lt;br /&gt;
sip.confに書いていたものと同じですが、トランスポートはセクションで明示指定します。上の例では5070ポートにbindさせていますが、5060を使用する場合にはここを5060にします。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ACL===&lt;br /&gt;
ACLの例は次の通りです。&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
※deny,permitはこの順でないとpermitしてdenyしてしまう模様で、逆に書くと誰も使えなくなります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
pjsip.confに複数のACL(type=acl)を書くとそのセクション名にかかわらず後ろにあるACLの方が勝つ模様。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
 &lt;br /&gt;
 [acl-my]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=10.10.0.0/16&lt;br /&gt;
と、書くとacl-myが勝つので要注意です。複数を許可したい場合には1セクションで&lt;br /&gt;
 [acl]&lt;br /&gt;
 type=acl&lt;br /&gt;
 deny=0.0.0.0/0.0.0.0&lt;br /&gt;
 permit=192.168.0.0/16&lt;br /&gt;
 permit=10.10.0.0/16&lt;br /&gt;
のように書きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
*[[Asterisk_pjsip_parameters#ACL.28res_pjsip_acl.29]]&lt;br /&gt;
→[[Asterisk pjsip ACL]]&lt;br /&gt;
&lt;br /&gt;
===認証情報(Auth)===&lt;br /&gt;
sip_confではピア(エンドポイント)の認証がわかりにくかったのですが、PjSIPでは別なセクションで(type=auth)認証情報を定義するようになりました。このため、認証情報がピア名(sip.confの[ ])に紐付かなくなりました。&amp;lt;BR&amp;gt;&lt;br /&gt;
慣れないとわかりにくい感じがしますが、管理がより柔軟になります。例えば&lt;br /&gt;
 [some-phone]&lt;br /&gt;
 type = endpoint&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 auth = phone-auth&lt;br /&gt;
 outbound_auth = phone-out-auth&lt;br /&gt;
のようなendpointが定義されている場合には、2つのauthセクションが必要です。&lt;br /&gt;
 [phone-auth]&lt;br /&gt;
 type = auth&lt;br /&gt;
 username = phone123&lt;br /&gt;
 password = phonepassword&lt;br /&gt;
このAuthは&#039;[some-phone]&#039;エンドポイントに接続、すまり外からの&amp;quot;入り&amp;quot;の際の認証情報です。&amp;lt;BR&amp;gt;&lt;br /&gt;
 [phone-out-auth]&lt;br /&gt;
 略&lt;br /&gt;
このAuthはoutbound_authで設定されているので、このエンドポイントからの&amp;quot;出&amp;quot;の際の認証情報です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==電話機==&lt;br /&gt;
電話機の接続は [[Asterisk pjsip 電話機]] のページへ&lt;br /&gt;
==トランク==&lt;br /&gt;
回線接続側は [[Asterisk pjsip trunks]]のページへ&lt;br /&gt;
&lt;br /&gt;
==Wizard==&lt;br /&gt;
Asteriskにはpjsip_wizardが組み込まれており、PjSIPの設定を簡素化することができます。使う場合の条件は以下の通りです。&lt;br /&gt;
*基本の設定はpjsip.confに書く&lt;br /&gt;
:transportなどの情報はpjsip.confに書く必要があります&lt;br /&gt;
*Wizard用のファイル名はpjsip_wizard.conf&lt;br /&gt;
*共通化したテンプレート内で各セクションを指定するにはスラッシュ(/)で区切る&lt;br /&gt;
*Wizardは電話機でもトランクでも使用できる&lt;br /&gt;
:registration/を書くとregistrationセクションがつくられる&lt;br /&gt;
:例: endpoint/dtmf_mode&lt;br /&gt;
pjsip_wizard.confの記述例&lt;br /&gt;
 ;電話機用テンプレート(共通設定)&lt;br /&gt;
 [phone-defaults](!)&lt;br /&gt;
 type=wizard&lt;br /&gt;
 transport = transport-udp&lt;br /&gt;
 accepts_registrations = yes&lt;br /&gt;
 sends_registrations = no&lt;br /&gt;
 accepts_auth = yes&lt;br /&gt;
 sends_auth = no&lt;br /&gt;
 endpoint/context = default&lt;br /&gt;
 endpoint/dtmf_mode = rfc4733&lt;br /&gt;
 endpoint/call_group = 1&lt;br /&gt;
 endpoint/pickup_group = 1&lt;br /&gt;
 endpoint/language = ja&lt;br /&gt;
 endpoint/disallow = all&lt;br /&gt;
 endpoint/allow = ulaw&lt;br /&gt;
 endpoint/rtp_symmetric = yes&lt;br /&gt;
 endpoint/force_rport = yes&lt;br /&gt;
 endpoint/direct_media = no&lt;br /&gt;
 endpoint/send_pai = yes&lt;br /&gt;
 endpoint/send_rpid = yes&lt;br /&gt;
 endpoint/rewrite_contact = yes&lt;br /&gt;
 endpoint/inband_progress = yes&lt;br /&gt;
 endpoint/allow_subscribe = yes&lt;br /&gt;
 endpoint/transport = transport-udp&lt;br /&gt;
 aor/max_contacts = 1&lt;br /&gt;
 aor/qualify_frequency = 30&lt;br /&gt;
 aor/authenticate_qualify = no&lt;br /&gt;
 &lt;br /&gt;
 ;各電話機個別設定&lt;br /&gt;
 [phone1](phone-defaults)&lt;br /&gt;
 inbound_auth/username = phone1&lt;br /&gt;
 inbound_auth/password = mypasswordishere&lt;br /&gt;
&lt;br /&gt;
==CLIコマンド==&lt;br /&gt;
*sip show peersに対応するのはpjsip show endpoints&lt;br /&gt;
*sip show peer phone1などピア情報を表示するのはpjsip show endpoint phone1&lt;br /&gt;
*AORを表示するのは一覧ならpjsip show aorsでピアの情報を表示するのはpjsip show aor phone1のようにする&lt;br /&gt;
*それぞれの設定項目で何が設定されているかを確認するには pjsip show endpoint phone1 のようにすると phone1 の endpoint パラメータ一覧が表示される。aorを見たければ pjsip show aor phone1。これはトランクの場合も同様で pjsip show registration hikari-hgw のようにするとregister関係のパラメータがみえる。&lt;br /&gt;
&lt;br /&gt;
==挙動上の注意点==&lt;br /&gt;
===挙動そのもの===&lt;br /&gt;
chan_sipより制限が少し&amp;quot;きつい&amp;quot;です。SIPメッセージの中に少しおかしなものがあってもchan_sipでは制限が緩かったので、通っていたものがPjSIPでは通らないことがあります。CLI等で&#039;syntax error&#039;のようなメッセージが出る場合にはSIPメッセージにおかしなところがあるかもしれないので調べてください。&lt;br /&gt;
===AddHeader===&lt;br /&gt;
chan_sipの場合にはSIPAddHeaderでSIPヘッダを追加できましたが、PjSIPではファンクションPJSIP_HEDER()を使用します。ただしこのファンクションはextenの途中で使用しても効果がありません。Dial時にサブルーチンコールしてやる必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
例えばAlert-Info: hogeを追加するにはまず以下のよなルーチンを定義します。&lt;br /&gt;
 [add-alert]&lt;br /&gt;
 exten =&amp;gt; s,1,Set(PJSIP_HEADER(add,Alert-Info)=hoge)&lt;br /&gt;
 exten =&amp;gt; s,n,Return&lt;br /&gt;
Dial時に以下のようにしてコールします&lt;br /&gt;
 exten =&amp;gt; 201,1,Dial(PJSIP/201,,b(add-alert,s,1))&lt;br /&gt;
&lt;br /&gt;
==設定変更の反映==&lt;br /&gt;
*モジュール数が多すぎて一発リロードする方法がよくわからない&lt;br /&gt;
*module reload res_pjsip.soを実行すれば&amp;quot;だいたい&amp;quot;はいけそう&lt;br /&gt;
:wizardのaor/を変更しても反映されない場合がある&lt;br /&gt;
==PjSIPで拡張される機能==&lt;br /&gt;
[[pjsip_機能拡張]]&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=Asterisk_16&amp;diff=11336</id>
		<title>Asterisk 16</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=Asterisk_16&amp;diff=11336"/>
		<updated>2020-08-03T05:25:12Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: CentOS 8の記載を追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[カテゴリ:pjsip]]&lt;br /&gt;
&lt;br /&gt;
Asterisk 16.0.0が2018年10月9日(現地時間)リリースされました。&amp;lt;br&amp;gt;&lt;br /&gt;
:メンテナンス終了は2022年10月&lt;br /&gt;
:セキュリティフィックス提供終了は2023年10月&lt;br /&gt;
==概要==&lt;br /&gt;
Asterisk 16は最新のAsteriskのメジャーリリースで、Asterisk 13同様にLTS(Long Term Support:通常4年)になります。&lt;br /&gt;
:https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions&lt;br /&gt;
===Asterisk 13からの変更点で重要なもの===&lt;br /&gt;
*app_faxは廃止予定&lt;br /&gt;
:res_faxへ移行のこと&lt;br /&gt;
*&#039;&#039;&#039;app_macroは廃止予定&#039;&#039;&#039;&lt;br /&gt;
:デフォルトではapp_macroはコンパイルされない&lt;br /&gt;
:app_stack(Gosub)へ移行のこと → [[extension_Macro_To_Gosub]]&lt;br /&gt;
*AMI/ARIのイベントにいくつか変更あり&lt;br /&gt;
*libjanssonは2.11以上のバージョンが必要&lt;br /&gt;
*cdr_syslogは廃止予定&lt;br /&gt;
:デフォルトではコンパイルされない&lt;br /&gt;
*res_config_sqliteは廃止予定&lt;br /&gt;
:デフォルトではres_config_sqliteはコンパイルされない&lt;br /&gt;
:res_config_sqlite3に移行のこと&lt;br /&gt;
*&#039;&#039;&#039;res_monitorは廃止予定&#039;&#039;&#039;&lt;br /&gt;
:app_mixmonitorに移行のこと&lt;br /&gt;
*libeditは組み込みでは提供されなくなったのでOSのパッケージでインストールのこと&lt;br /&gt;
&lt;br /&gt;
==注意==&lt;br /&gt;
将来的にSIPチャネルはPjSipが標準となる模様です。なるべくはやい時期にchan_sipからPjSipへの移行をお勧めします。Asterisk 16からはconfigureのオプションなしでもbundledでpjsipをダウンロードするようです。→ [[Asterisk pjsip]]&amp;lt;br&amp;gt;&lt;br /&gt;
なおAsterisk 16ではPjSIPはstatsdに依存しています。上のページの注意点をよく読んで設定してください。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Macroが廃止予定にされているので注意が必要です。Macroを多用している場合には早い時期にGosub/Returnへの書き換えが必要です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;単純にmake installしてしまうとMacro()もDialのMも動かなくなるのでハマりますよ！&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==日本語音声の扱い==&lt;br /&gt;
core sound packageでJAが使用可能ですが、Asterisk 16で変更された音声に対応しているかどうかは不明です。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
===前提となるパッケージ類=== &lt;br /&gt;
GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(DAHDIを使う場合)、libxml2、SQLite3、libuuid-devel uuid-devel、json-c、json-c-devel&amp;lt;br&amp;gt;&lt;br /&gt;
CentOS 7 minimalからインストールする場合、以下の手順でコンパイル環境を整えます。&amp;lt;br&amp;gt;&lt;br /&gt;
CentOS 8 minimalからインストールする場合で、yum installで必要なパッケージが無い旨のエラーが出たときは「--enablerepo=PowerTools」を付与して実行すると上手くいきます。&amp;lt;br&amp;gt;&lt;br /&gt;
Asterisk 16からlibeditがパッケージで必要となったため追加しておく必要があります。&amp;lt;br&amp;gt;&lt;br /&gt;
開発環境系パッケージを一括インストールしておきます。&lt;br /&gt;
 yum groupinstall &amp;quot;Development Libraries&amp;quot; &amp;quot;Additional Development&amp;quot;&lt;br /&gt;
パッケージを追加&amp;lt;br&amp;gt;&lt;br /&gt;
 yum install gcc gcc-c++&lt;br /&gt;
 yum install libxml2 libxml2-devel openssl-devel ncurses-devel sqlite-devel newt-devel libuuid-devel uuid-devel libedit-devel&lt;br /&gt;
 yum install json-c json-c-devel&lt;br /&gt;
&lt;br /&gt;
openssl-develをインストールするとkrb5-devel,zlib-develも一緒に付いて来るので別途インストールの必要はありません。&amp;lt;br&amp;gt;&lt;br /&gt;
Asteriskは現在のバージョンではBerkley DBではなくSQLite3をDBとして使用しますので、SQLite3と開発環境が必要です。&amp;lt;br&amp;gt;&lt;br /&gt;
newt-develがないとmenuselectがフルスクリーンコントロールになりません。テキストベースになります。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CentOSのminimalだと足りないツール類がいくつかあるので入れておきます。&lt;br /&gt;
 yum install wget bzip2 patch&lt;br /&gt;
format_mp3など、一部のソースはAsteriskに含まれないため別途入手しますが、この際にSubversionが必要となりますので、Subversionも入れておきます。&lt;br /&gt;
 yum install subversion&lt;br /&gt;
&lt;br /&gt;
Asteriskは10以降でMySQLサポートが&amp;quot;非常に&amp;quot;制限されています。このためCDRをMySQLで管理するような場合にはODBCが必要となるため、AsteriskのODBCサポート(res_odbc)を有効にする場合には以下も必要です。&lt;br /&gt;
 yum install unixODBC unixODBC-devel mysql-connector-odbc&lt;br /&gt;
 yum install libtool-ltdl libtool-ltdl-devel &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
システムを最新の状態にアップデート&lt;br /&gt;
 yum update&lt;br /&gt;
カーネルが更新された場合にはリブートしておきます。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===janssonのインストール===&lt;br /&gt;
個別インストールせずbundledインストールが可能です。configureのオプションで指定してください。&lt;br /&gt;
 ./configure --with-jansson-bundled&lt;br /&gt;
&lt;br /&gt;
===Asteriskソースの入手===&lt;br /&gt;
Asterisk 16のソースは以下からダウンロードできます。なお asterisk-16-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。&lt;br /&gt;
 http://downloads.asterisk.org/pub/telephony/asterisk/&lt;br /&gt;
展開するディレクトリはどこでもかまいませんが、ここでは/usr/src/とします。&lt;br /&gt;
 # cd /usr/src&lt;br /&gt;
 # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz&lt;br /&gt;
入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。&lt;br /&gt;
 # tar zxvf asterisk-16-current.tar.gz&lt;br /&gt;
 # cd asterisk-16.x.x&lt;br /&gt;
&lt;br /&gt;
===Asteriskのコンパイルとインストール===&lt;br /&gt;
基本的にconfigureしてmakeするだけです。&lt;br /&gt;
 # ./configure&lt;br /&gt;
*16でjanssonをbundleインストールするには以下を実行します(通常はこの方法)&lt;br /&gt;
 # ./configure --with-jansson-bundled&lt;br /&gt;
日本語音声ファイルをインストールする場合には./configureの後 make menuselectを実行します。&lt;br /&gt;
 # make menuselect&lt;br /&gt;
メニュー画面から &#039;&#039;&#039;Core Sound Packages&#039;&#039;&#039;で&#039;&#039;&#039;CORE_SOUND-JA-....&#039;&#039;&#039;の必要なフォーマットのファイルを選択し、[Save &amp;amp; Exit]でmenuselectを終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
extenでMacro()を使用している場合、デフォルトではコンパイルされなくなったので注意してください。make menuselectでappのMacroを明示的にON指定してください(deprecatedの下にあります)。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
以前のバージョンからアップグレードを行う場合、変更されたモジュール類が多いので、一旦、以前のモジュールをディレクトリごと名前変更してバックアップしてからインストールしてください。&amp;lt;BR&amp;gt;&lt;br /&gt;
 mv /usr/lib/asterisk/module /usr/lib/asterisk/module.13.bak&lt;br /&gt;
&lt;br /&gt;
あとはコンパイルとインストールを行うだけです。&lt;br /&gt;
 # make&lt;br /&gt;
 # make install&lt;br /&gt;
 # make samples&lt;br /&gt;
*make configはCentOS 7では注意&lt;br /&gt;
:[[Asterisk Startup systemd]]&amp;lt;br&amp;gt;&lt;br /&gt;
CentOS 7以前のOSならばmake configしておくと自動起動します。&lt;br /&gt;
 # make config&lt;br /&gt;
これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MP3を使用する場合の注意===&lt;br /&gt;
MP3関連(MoHなど)を使用する場合には、MP3系のソースはAsterisk本体に含まれていないため、コンパイル時にエラーになりますが、ソース入手のスクリプトが付属しています。&lt;br /&gt;
 # ./contrib/scripts/get_mp3_source.sh&lt;br /&gt;
これを実行すればMP3関連のモジュールがコンパイルできるようになります。&lt;br /&gt;
&lt;br /&gt;
===SIPチャネルとしてPjsipを使う場合===&lt;br /&gt;
Asterisk 16からPjSIPはデフォルトでbundled扱いでダウンロード/コンパイルが行われます。このためconfigureを実行するだけでPjSIPも組み込まれます。&lt;br /&gt;
&lt;br /&gt;
==サンプル設定ファイル==&lt;br /&gt;
単純な使用ならばAsterisk 13用の設定ファイルが使えます。&amp;lt;BR&amp;gt;&lt;br /&gt;
:[[Asterisk 13 サンプル設定ファイル]]&lt;br /&gt;
PjSIPを使用して電話機を収容したい場合には以下のファイルを使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
:PjSIP用サンプル設定ファイル https://www.voip-info.jp/images/8/87/Conf-sample-pj.zip&lt;br /&gt;
&lt;br /&gt;
==ひかり電話ホームの使用==&lt;br /&gt;
*chan_sipの今後のサポートが怪しいので、PjSIPを使ってください。 &lt;br /&gt;
:[[pjsip ひかり電話HGW]]を参照してください。&lt;br /&gt;
:chan_sipをどうしても使いたい場合にはMACアドレス認証を使ってください。&lt;br /&gt;
:&amp;lt;del&amp;gt;パッチを作るかどうかはお悩み中&amp;lt;/del&amp;gt;&lt;br /&gt;
:今後はパッチは提供しません。chan_sipが廃止方向にあるのでpjsipを使ってください。&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10875</id>
		<title>利用者:Takatyan/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10875"/>
		<updated>2018-08-26T06:03:50Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[Category:練習場]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;このページは[[利用者:Takatyan|Takatyan]]のサンドボックスです。編集を試したり下書きを置いておくための場所です。内容は記載途中のものに過ぎません。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chan_dongleは、USB接続で3Gモデムを接続し、音声通話、SMSをAsteriskから扱えるようにするモジュールです。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
===前提条件===&lt;br /&gt;
* CentOS 7.5で検証しています。カーネルは「kernel-3.10.0-862.9.1.el7.x86_64」で検証しています。&lt;br /&gt;
* [[Asterisk 13|Asterisk 13.22.0]]をソースからビルドしてインストールしています。&lt;br /&gt;
* 使用可能な3Gモデムについては、[http://wiki.e1550.mobi/doku.php?id=requirements 公式サイト]を参照のこと。&lt;br /&gt;
&lt;br /&gt;
===必要なツール===&lt;br /&gt;
ソースコードの入手及びビルドのために、git, autoconf, automakeが必要です。&lt;br /&gt;
&lt;br /&gt;
 sudo yum install git autoconf automake&lt;br /&gt;
&lt;br /&gt;
===ソースコードの入手===&lt;br /&gt;
ソースコードは[https://github.com/bg111/asterisk-chan-dongle github]でオリジナルのものが配布されていますが、そのままではAsterisk 13にはインストールできません。&lt;br /&gt;
[https://github.com/bg111/asterisk-chan-dongle/pull/216/commits プルリクエスト216]は2018年8月現在プルされていませんが、これを手元でマージします。そのための手順は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/bg111/asterisk-chan-dongle.git&lt;br /&gt;
 cd asterisk-chan-dongle&lt;br /&gt;
 git fetch origin pull/216/head:asterisk_13&lt;br /&gt;
 git checkout asterisk_13&lt;br /&gt;
&lt;br /&gt;
これでAsterisk 13で使用できるchan_dongleソースコードができました。&lt;br /&gt;
ビルドの前に、SELinux有効下での使用を考えていらっしゃる方は下記を修正します。&lt;br /&gt;
&lt;br /&gt;
 // 119行目&lt;br /&gt;
 // return snprintf(buf, length, &amp;quot;/var/lock/LCK..%s&amp;quot;, basename);&lt;br /&gt;
 return snprintf(buf, length, &amp;quot;/var/lock/&#039;&#039;&#039;lockdev/&#039;&#039;&#039;LCK..%s&amp;quot;, basename);&lt;br /&gt;
&lt;br /&gt;
これをビルド、インストールします。&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
 ./configure --with-asterisk=../asterisk-13.22.0/include -with-astversion=13.22.0&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載途中&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載予定&#039;&#039;&#039;&lt;br /&gt;
* SELinux有効下で使う方法&lt;br /&gt;
* 設定ファイルの書き方&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10862</id>
		<title>利用者:Takatyan/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10862"/>
		<updated>2018-08-22T07:42:20Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[Category:練習場]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;このページは[[利用者:Takatyan|Takatyan]]のサンドボックスです。編集を試したり下書きを置いておくための場所です。内容は記載途中のものに過ぎません。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chan_dongleは、USB接続で3Gモデムを接続し、音声通話、SMSをAsteriskから扱えるようにするモジュールです。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
===前提条件===&lt;br /&gt;
* CentOS 7.5で検証しています。カーネルは「kernel-3.10.0-862.9.1.el7.x86_64」で検証しています。&lt;br /&gt;
* [[Asterisk 13|Asterisk 13.22.0]]をソースからビルドしてインストールしています。&lt;br /&gt;
* 使用可能な3Gモデムについては、[http://wiki.e1550.mobi/doku.php?id=requirements 公式サイト]を参照のこと。&lt;br /&gt;
* コンパイラ等のツールは、Asteriskインストール時のもののほか、git、autoconf?など（検証中）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===ソースコードの入手===&lt;br /&gt;
ソースコードは[https://github.com/bg111/asterisk-chan-dongle github]でオリジナルのものが配布されていますが、そのままではAsterisk 13にはインストールできません。&lt;br /&gt;
[https://github.com/bg111/asterisk-chan-dongle/pull/216/commits プルリクエスト216]は2018年8月現在プルされていませんが、これを手元でマージします。そのための手順は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/bg111/asterisk-chan-dongle.git&lt;br /&gt;
 cd asterisk-chan-dongle&lt;br /&gt;
 git fetch origin pull/216/head:asterisk_13&lt;br /&gt;
 git checkout asterisk_13&lt;br /&gt;
&lt;br /&gt;
これでAsterisk 13で使用できるchan_dongleソースコードができました。&lt;br /&gt;
ビルドの前に、SELinux有効下での使用を考えていらっしゃる方は下記を修正します。&lt;br /&gt;
&lt;br /&gt;
 // 119行目&lt;br /&gt;
 // return snprintf(buf, length, &amp;quot;/var/lock/LCK..%s&amp;quot;, basename);&lt;br /&gt;
 return snprintf(buf, length, &amp;quot;/var/lock/&#039;&#039;&#039;lockdev/&#039;&#039;&#039;LCK..%s&amp;quot;, basename);&lt;br /&gt;
&lt;br /&gt;
これをビルドします。&lt;br /&gt;
 ./configure --with-asterisk=../asterisk-13.22.0/include -with-astversion=13.22.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載途中&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載予定&#039;&#039;&#039;&lt;br /&gt;
* SELinux有効下で使う方法&lt;br /&gt;
* 設定ファイルの書き方&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10861</id>
		<title>利用者:Takatyan/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10861"/>
		<updated>2018-08-22T05:58:15Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[Category:練習場]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;このページは[[利用者:Takatyan|Takatyan]]のサンドボックスです。編集を試したり下書きを置いておくための場所です。内容は記載途中のものに過ぎません。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chan_dongleは、USB接続で3Gモデムを接続し、音声通話、SMSをAsteriskから扱えるようにするモジュールです。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
===前提条件===&lt;br /&gt;
* CentOS 7.5で検証しています。カーネルは「kernel-3.10.0-862.9.1.el7.x86_64」で検証しています。&lt;br /&gt;
* [[Asterisk 13|Asterisk 13.22.0]]をソースからビルドしてインストールしています。&lt;br /&gt;
* 使用可能な3Gモデムについては、[http://wiki.e1550.mobi/doku.php?id=requirements 公式サイト]を参照のこと。&lt;br /&gt;
* コンパイラ等のツールは、Asteriskインストール時のもののほか、git、autoconf?など（検証中）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===ソースコードの入手===&lt;br /&gt;
ソースコードは[https://github.com/bg111/asterisk-chan-dongle github]でオリジナルのものが配布されていますが、そのままではAsterisk 13にはインストールできません。&lt;br /&gt;
[https://github.com/bg111/asterisk-chan-dongle/pull/216/commits プルリクエスト216]は2018年8月現在プルされていませんが、これを手元でマージします。そのための手順は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/bg111/asterisk-chan-dongle.git&lt;br /&gt;
 cd asterisk-chan-dongle&lt;br /&gt;
 git fetch origin pull/216/head:asterisk_13&lt;br /&gt;
 git checkout asterisk_13&lt;br /&gt;
&lt;br /&gt;
これでAsterisk 13で使用できるchan_dongleソースコードができました。これをビルドします。&lt;br /&gt;
 ./configure --with-asterisk=../asterisk-13.22.0/include -with-astversion=13.22.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載途中&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載予定&#039;&#039;&#039;&lt;br /&gt;
* SELinux有効下で使う方法&lt;br /&gt;
* 設定ファイルの書き方&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
	<entry>
		<id>http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10860</id>
		<title>利用者:Takatyan/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.voip-info.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Takatyan/sandbox&amp;diff=10860"/>
		<updated>2018-08-22T05:54:31Z</updated>

		<summary type="html">&lt;p&gt;Takatyan: Chan_dongleのページの下書き初版&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[カテゴリ:Asterisk]]&lt;br /&gt;
[[Category:練習場]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;このページは[[利用者:Takatyan|Takatyan]]のサンドボックスです。編集を試したり下書きを置いておくための場所です。内容は記載途中のものに過ぎません。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
chan_dongleは、USB接続で3Gモデムを接続し、音声通話、SMSをAsteriskから扱えるようにするモジュールです。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
===前提条件===&lt;br /&gt;
* CentOS 7.5で検証しています。カーネルは「kernel-3.10.0-862.9.1.el7.x86_64」で検証しています。&lt;br /&gt;
* [[Asterisk 13|Asterisk 13.22.0]]をソースからビルドしてインストールしています。&lt;br /&gt;
* 使用可能な3Gモデムについては、[http://wiki.e1550.mobi/doku.php?id=requirements 公式サイト]を参照のこと。&lt;br /&gt;
* コンパイラ等のツールは、Asteriskインストール時のもののほか、git、autoconf?など（検証中）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===ソースコードの入手===&lt;br /&gt;
ソースコードは[https://github.com/bg111/asterisk-chan-dongle github]でオリジナルのものが配布されていますが、そのままではAsterisk 13にはインストールできません。&lt;br /&gt;
[https://github.com/bg111/asterisk-chan-dongle/pull/216/commits プルリクエスト216]は2018年8月現在プルされていませんが、これを手元でマージします。そのための手順は次のようになります。&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/bg111/asterisk-chan-dongle.git&lt;br /&gt;
 cd asterisk-chan-dongle&lt;br /&gt;
 git fetch origin pull/216/head:asterisk_13&lt;br /&gt;
 git checkout asterisk_13&lt;br /&gt;
&lt;br /&gt;
これでAsterisk 13で使用できるchan_dongleソースコードができました。これをビルドします。&lt;br /&gt;
 ./configure --with-asterisk=../asterisk-13.22.0/include -with-astversion=13.22.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;以下記載途中&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Takatyan</name></author>
	</entry>
</feed>