Asterisk 16で、ソフトフォンとの間をPJSIPによる通信に変更する

Asteriskに接続している一部のクライアントはIAX2で通信するようにしたのだが、 もう1台はZoiPerではなくbaresip+を使っているので、 IAX2にすることはできない。 そこで、この端末についてもchan_sipではなくPJSIPに乗り換えることにした。

PJSIP自体は、既にひかり電話のホームゲートウェイに接続するのに利用しているので、それも合わせて、以下のように設定すれば良い。

PJSIPでAsteriskにregisterするには、Asterisk 16はデータベースを使えるようになっている必要がある。 pkgsrc/comms/asterisk16の場合には、標準ではSQLite3が利用され、/var/db/asterisk/astdb.sqlite3にデータベースファイル が置かれている。 今回は、なぜかこのデータベースファイルの所有者が別ユーザーになっており、SQL errorが起きていたのを無視していたため、 端末がAsteriskにregisterできなかった。ユーザーIDとパスワードの認証までは通過できるのだが、着信できない状態になってしまった。

pjsip.confは、以下のようにした。

[general]
match_auth_username = yes

[system]
type = system
disable_rport = yes

[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0

; 外線: ひかり電話
[hikari-denwa]
type = registration
transport = transport-udp
outbound_auth = hikari-trunk
server_uri = sip:10.81.0.1
client_uri = sip:3@10.81.0.1
retry_interval = 60

[hikari-trunk]
type = auth
auth_type = userpass
username = 0003
password = 0003_password

[hikari-trunk]
type = aor
contact = sip:3@10.81.0.1

[hikari-trunk]
type = endpoint
transport = transport-udp
context = default
disallow = all
allow = ulaw
outbound_auth = hikari-trunk
aors = hikari-trunk
direct_media = no
from_user = 3
from_domain = 10.81.0.1
dtmf_mode = inband

[hikari-trunk]
type = identify
endpoint = hikari-trunk
match = 10.81.0.1


; 内線: baresip+ on Amazon Kindle Fire HD 8 gen10
[fire8]
type = aor
max_contacts = 1
qualify_frequency = 60
remove_existing = yes

[fire8]
type = auth
auth_type = userpass
username = fire8
password = user3_password

[fire8]
type = endpoint
transport = transport-udp
context = default
disallow = all
allow = ilbc,ulaw,alaw,gsm,g729,g723
aors = fire8
auth = fire8
;outbound_auth = fire8
dtmf_mode = rfc4733
force_rport = yes
ice_support = no
rtp_symmetric = yes
direct_media = no
rewrite_contact = yes
device_state_busy_at = 1

これに合わせて、extensions.confも変更し、発信・着信できるようにする。

[default]
;include => stdexten

; 着信
;; 内線
;;; 自動応答
exten => 1290,1,Playback(demo-congrats) ; 動作チェック用
;;; 各端末
exten => 101,1,Dial(IAX2/user1,20,rt)
exten => 103,1,Dial(IAX2/user2,20,rt)
exten => 104,1,Dial(PJSIP/fire8,20,rt)

;; 外線
exten => 55863768,1,Dial(IAX2/user1&IAX2/user2&PJSIP/fire8,20,rt)
exten => 53077771,1,Dial(IAX2/user1&lIAX2/user2&PJSIP/fire8,20,rt)
exten => s,1,Dial(IAX2/user1&IAX2/user2&PJSIP/fire8)


; 発信
;; Fusion SMARTalkの場合には9で発信する。
exten => _9.,1,NoOp(Fusion発信9)
exten => _9.,n,Set(CALLERID(num)=${MYNUMBER})
exten => _9.,n,Set(CALLERID(name)=${MYNUMBER})
exten => _9.,n,Dial(PJSIP/${EXTEN:1}@fusion1,120,T)
exten => _9.,n,Hangup()

;; Fusion SMARTalkの場合には8で発信する。
exten => _8.,1,NoOp(Fusion発信8)
exten => _8.,n,Set(CALLERID(num)=${MYNUMBER})
exten => _8.,n,Set(CALLERID(name)=${MYNUMBER})
exten => _8.,n,Dial(PJSIP/${EXTEN:1}@fusion2,120,T)
exten => _9.,n,Hangup()

;; ひかり電話の場合には7で発信する。
exten => _7.,1,NoOp(ひかり電話で発信7)
exten => _7.,n,Set(CALLERID(num)=${MYNUMBER})
exten => _7.,n,Set(CALLERID(name)=${MYNUMBER})
exten => _7.,n,Dial(PJSIP/${EXTEN:1}@hikari-trunk)
exten => _7.,n,Hangup()

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

2023年10月10日まで有効なWindows 11 development environmentで、ファイルシステムとしてReFSが使えるようになっていた

Windows 11 development environmentというのがあって、 各種ハイパーバイザー用に仮想マシンがインポートできるようなファイルが配布されている 。 私はVirtualBox用のものを利用しているが、Hyper-V (V2)の方が良いのかもしれ...