Asterisk pjsip trunk intra

2018年10月30日 (火) 16:58時点におけるTakahashi (トーク | 投稿記録)による版 (池袋側)

拠点間をAsteriskのSIPで接続します

目次

両端IPアドレス固定

拠点はIPアドレス固定でレジスタ無しで通信します。想定は以下の通り。

 [池袋]---------------------------[板橋]
 192.168.100.1                    192.168.100.2
 SIP Port=5070                    SIP Port=5070
 拠点番号 02                      拠点番号 01

ダイヤル時のプレフィクスとして拠点番号(01,02)を使用し、相手内線に着信させる想定とします。

池袋側

基本:AOR,Endpointとして板橋を定義します。板橋側からの接続の認証を受け入れるためにAuthを、板橋への接続のためのOutbound_authを書きます。

[itabashi]
type = aor
contact = sip:192.168.100.2:5070
qualify_frequency = 30
authenticate_qualify = yes

[itabashi]
type = identify
endpoint = itabashi
match = 192.168.100.2

;外からの接続を受け入れるためのauth
[ikebukuro]
type = auth
auth_type = userpass
username = ikebukuro
password = ikepass

;板橋側に認証してもらうためのauth(endpointのoutbound_auth)
[itabashi]
type = auth
auth_type = userpass
username = itabashi
password = itapass

;板橋のendpointを定義
[itabashi]
type = endpoint
context = intra-incoming
disallow = all
allow = ulaw
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
direct_media = no
send_pai = yes
inband_progress = yes
language = ja
auth = ikebukuro
outbound_auth = itabashi
aors = itabashi

板橋側

基本的に設定は同じです。相手をendpointとして定義しAORや認証情報を書きます。

[ikebukuro]
type = aor
contact = sip:192.168.100.1:5070
qualify_frequency = 30
authenticate_qualify = yes

[ikebukuro]
type = identify
endpoint = ikebukuro
match = 192.168.100.1

[itabashi]
type = auth
auth_type = userpass
username = itabashi
password = itapass

[ikebukuro]
type = auth
auth_type = userpass
username = ikebukuro
password = ikepass

[ikebukuro]
type = endpoint
context = intra-incoming
disallow = all
allow = ulaw
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
direct_media = no
send_pai = yes
inband_progress = yes
language = ja
auth = itabashi
outbound_auth = ikebukuro
aors = ikebukuro

ダイヤルプラン

endpointではcontext=intra-incomingに定義していますので着信側は[intra-incoming]で処理します。

着信設定

[intra-incoming]
exten => 201,1,Dial(PJSIP/201)
exten => 202,1,Dial(PJSIP/202)

のように書けば内線に落とせます。

発信側

発信側で例えば池袋からなら

exten => _01XXX,1,Dial(PJSIP/{EXTEN:2}@itabashi)

のように書くと相手拠の内線にダイヤルできます。
板橋からなら

exten => _02XXX,1,Dial(PJSIP/{EXTEN:2}@ikebukuro)

のように書きます。

片端IPアドレス固定、片端ダイナミック

拠点はIPアドレス固定でレジスタ無しで通信します。想定は以下の通り。

 [池袋]-----------------REGISTER->[板橋]
 IP不明                           192.168.100.2
                                  SIP Port=5070
 拠点番号 02                      拠点番号 01

ダイヤル時のプレフィクスとして拠点番号(01,02)を使用し、相手内線に着信させる想定とします。

池袋側

板橋に対してREGISTERするクライアントになります。この際、ユーザ名は"ikebukuro"として認証を取ります。

[itabashi]
type = aor
contact = sip:192.168.0.2:5070
qualify_frequency = 30
authenticate_qualify = no

[itabashi]
type = registration
transport = transport-udp
outbound_auth = ikebukuro
server_uri = sip:192.168.0.2:5070
client_uri = sip:ikebukuro@192.168.0.2
retry_interval = 60

[itabashi]
type = identify
endpoint = itabashi
match = 192.168.0.2

[ikebukuro]
type = auth
auth_type = userpass
username = ikebukuro
password = ikepass
realm = asterisk

[itabashi]
type = endpoint
context = intra-incoming
disallow = all
allow = ulaw
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
direct_media = no
send_pai = yes
inband_progress = yes
language = ja
from_user = ikebukuro
from_domain = 192.168.0.2
auth = ikebukuro
outbound_auth = ikebukuro
aors = itabashi

板橋側

池袋からのREGISTERを受け入れるので、基本的な考え方は電話機の接続と同じです。

[ikebukuro]
type = aor
max_contacts = 1
qualify_frequency = 30
authenticate_qualify = no

[ikebukuro]
type = auth
auth_type = userpass
username = ikebukuro
password = ikepass
realm = asterisk

[ikebukuro]
type = endpoint
context = intra-incoming
disallow = all
allow = ulaw
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
direct_media = no
send_pai = yes
inband_progress = yes
language = ja
auth = ikebukuro
outbound_auth = ikebukuro
aors = ikebukuro