mikopbxでOutbound routing

mikopbxのOutbound routingはちょっとダサい?
FreePBXは電話番号の形式を複数条件でかけましたが、
mikopbxはどうやら1登録1条件のようです。

なので、プレフィックス設定ありでひかり電話からのOutbound routingを書く場合、
10桁(固定電話)
11桁(携帯電話)
の2つを登録しないとダメです。

プレフィックスなしならAny→ひかり電話になるので1つでいいのですが、
プレフィックスをつける場合は、


Rule triggers if

Transform number

Before starting call, trim    digits from number start, then add at beginning   




Before starting call, trim: 1 ←先頭から消す文字数(プレフィックスと同じ桁数にする。Prefixが99なら2文字消すので2)

この場合だと、1をつけて12桁で発信すると先頭の1桁をTrimして11桁で電話がかかります。
携帯だと、109012345678 → 09012345678となりますね。
でも、固定電話だと1桁足りないのでこの設定をコピーして

さらに、3桁番号(110/119とか)のために、
なお、このときOutbound routingには並び順があって11桁を1番上にします。
次に10桁→3桁としましょう。
並び順が優先順位として機能するので注意が必要です。

また、グループを作成している場合は、

Call group managementのところでOuband rouleを許可してあげてください。

参考までにOutband routingをSQLで見る場合はこんな感じです。
priorityのところが並び順になります。

bash-5.3# sqlite3 /cf/conf/mikopbx.db "SELECT id, rulename, providerid, priority, numberbeginswith, restnumbers, trimfrombegin, prepend, note FROM m_OutgoingRoutingTable ORDER BY priority, id;"

mikopbxdでひかり電話

最近、FreePBXからmikopbxに社内電話を変えてみたのですが、
ひかり電話を登録するのにかなり四苦八苦したので備忘録です。

苦労したポイントなんですが、mikopbxのログインIDとして、
ひかり電話の内線ユーザー(内線が1だと0001)になるので、
0001を設定するとclient_uriもcontact = sipも0001になってしますのです。
そうすると登録に失敗します。

なので、Telephony providersをちょっといじります。
*ひかり電話ルーター側に設定した内線は1とします。

Provider name: NTT(なんでもいいのでわかりやすもの)
Account type: Outgoing registration
Provider server address: 192.168.XXX.XXX  ←ひかり電話ルーターのIPアドレス
Login: 0001
Password: ********
Note or useful information about the provider:

[Advanced settings]
Network settings:
Additional provider addresses:
SIP connection port: 5060
Transport Protocol: udp
Outbound proxy (example: pbx.yandex.net:5080) :
NAT and connection: On
Sending frequency in seconds: 30

[Security settings]
Network filter: Internet(subnet:0.0.0.0/0)
SIP headers: Off ←Offにしないと発信出来なくなる
User: 1 ←内線番号
Domain: 192.168.XXX.XXX ←ひかり電話ルーターのIPアドレス

[Additional parameters]
DTMF mode: inband
DID source: Default ←ここがToだと着信しないので注意
CallerID source: FROM header

[Additional PJSIP attributes]

[registration]
client_uri = sip:1@192.168.XXX.XXX:5060  ←ひかり電話ルーターのIPアドレス
contact_user = 1
[aor]
contact = sip:1@192.168.XXX.XXX:5060  ←ひかり電話ルーターのIPアドレス
[endpoint]
from_user = 1
contact_user = 1

*なぜかSaveから開き直すと3行目ぐらいの「c」だけだが反映はされる模様

これでSaveしてGUIで緑○とRegisteredならOKですね。
CLIでみてもバッチリ!

実はちょっと他にも怪しいところあるのですが発着信に支障はないですしセキュリティリスクでもないので見なかったことにします。

bash-5.3# asterisk -rx "pjsip show registration SIP-TRUNK-********-REG"
 <Registration/ServerURI..............................>    
==========================================================================================
 SIP-TRUNK-********-REG/sip:192.168.XXX.XXXX:5060            SIP-TRUNK-********-REG-AUTH  Registered        (exp. 1406s)