「利用者:Gima」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
 
(同じ利用者による、間の16版が非表示)
1行目: 1行目:
 +
==AvayaJ100系電話機まとめ==
 +
;J129:ラインキーが無い電話。コスパを最重要視したもの
 +
;J139:
 +
;J159:
 +
;J169:J179のモノクロ版
 +
;J179:
 +
;J189:
 +
 +
===AvayaJ100系の Adminパスワード ===
 +
27238
 +
"craft"と入力するように打つと覚えやすい
 +
 +
https://documentation.avaya.com/bundle/IPOfficeCloudProvisioning/page/Default_J100.html
 +
 +
==Kali LinuxにプレインストールされているVoIP系ソフトウェア==
 +
VoIPに関連するプレインストールソフトウェアの簡単な利用方法を記載。
 +
 +
===enumiax===
 +
[https://www.kali.org/tools/enumiax/ enumIAX]は
 +
[https://ja.wikipedia.org/wiki/Inter-Asterisk_eXchange IAX]のユーザ名を総当たりで探し出すツール<BR>
 +
総当たりでユーザー名を探すモードと、辞書を利用して探し出すモードの二つがある。<BR>
 +
オプション無しの場合は総当たりでユーザIDを探す。<BR>
 +
 +
====簡単な使い方====
 +
enumiax {オプション} {標的サーバIP}
 +
enumiax -v -d ./enumiax-dictonary.txt 10.0.5.9
 +
enumIAX 0.4a
 +
Dustin D. Trammell <dtrammell@tippingpoint.com>
 +
 +
Target Aquired: 10.0.5.9
 +
Connecting to 10.0.5.9 via udp on port 4569...
 +
Starting enum process at: Thu Mar  3 20:35:07 2022
 +
 +
#################################
 +
Trying username: "201"
 +
<略>
 +
 +
<HR>
 +
===iaxflood===
 +
[https://www.kali.org/tools/iaxflood/ iaxflood]は
 +
標的に大量のIAXパケットを投げつけてパケットのあふれを引き起こすツール<BR>
 +
[[画像:Iaxflood 実行画面.jpg|300px|IAXfloodを実行したときの画面]]
 +
====簡単な使い方====
 +
iaxflood {送信元IP} {標的サーバIP} {送信パケット数}
 +
>iaxflood 10.0.1.24 10.0.5.9 100000000
 +
Will flood port 4569 from port 4569 100000000 times
 +
We have IP_HDRINCL
 +
 +
Number of Packets sent:
 +
 +
Sent 639409
 +
 +
Zabbixでasterisk側のトラフィックを確認したところ、15MB近くのトラフィックが出たことを確認<BR>
 +
[[画像:Iaxfloodトラフィック.jpg|300px|IAXfloodを喰らったときのトラフィック状況]]
 +
 +
<HR>
 +
===inviteflood===
 +
[https://www.kali.org/tools/inviteflood/ Inviteflood]は
 +
標的に大量のSIP Inviteパケットを投げつけてパケットのあふれを引き起こすツール<BR>
 +
IP電話機がInvitefloodの標的になると誤作動を起こすことがある
 +
 +
====簡単な使い方====
 +
inviteflood {インターフェース名} {内線番号} {ドメイン} {標的IPアドレス} (送信するパケット数)
 +
 +
>inviteflood eth0 200 hogehoge.com 10.0.5.20 10000000
 +
 +
inviteflood - Version 2.0
 +
              June 09, 2006
 +
 +
source IPv4 addr:port  = 10.0.1.24:9
 +
dest  IPv4 addr:port  = 10.0.5.20:5060
 +
targeted UA            = 200@hogehoge.com
 +
 +
Flooding destination with 10000000 packets
 +
sent: 3991702
 +
 +
<!--
 +
書きかけ
 +
 +
<HR>
 +
===ohrwurm===
 +
[https://www.kali.org/tools/ohrwurm/ ohrwurm]はRTPの[https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%B8%E3%83%B3%E3%82%B0 RTPファジングツール]。<BR>
 +
ARPスプーフィングを実行する必要がある。
 +
 +
* ツール名称はイヤーワーム(ディラン効果)からきていると思われる
 +
====簡単な使い方====
 +
 +
<HR>
 +
===protos-sip===
 +
[https://www.kali.org/tools/protos-sip/ protos-sip]はPROTOS SIPテストスイート<BR>で
 +
SIPのセキュリティや堅牢性を評価するためのツール
 +
 +
====簡単な使い方====
 +
 +
<HR>
 +
===rtpbreak===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===rtpflood===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===rtpinsertsound===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===rtpmixsound===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===sctpscan===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===siparmyknife===
 +
[https://packetstormsecurity.com/files/107301/SIP-Army-Knife-Fuzzer-11232011.html SIP Army Knife]は
 +
SIPに対する[https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%B8%E3%83%B3%E3%82%B0 ファジングツール]で<BR>
 +
XSSやSQLインジェクションなどの脆弱性を検出するために使用する。
 +
 +
====簡単な使い方====
 +
-->
 +
<HR>
 +
===SIPp===
 +
[http://sipp.sourceforge.net/ SIPp]はSIPプロトコルを用いたトラフィックジェネレータ。<BR>
 +
パフォーマンス測定などに最適化されているが動作テストの自動化に利用することもできる
 +
====外部リンク====
 +
 +
* [http://www.ne.jp/asahi/ka/to/comp/sipp/ SIPp入門]
 +
* [http://c.itdo.jp/technical-information/asterisk/voyageone-alix/ Alix VoyageOne 性能評価 | 株式会社アイティードゥ]
 +
* [https://docs.brekeke.jp/tech-info/how-to-install-sipp ブレケケ ドキュメント SIPp : インストール方法]
 +
* [https://callcenter-trend.com/2016/11/29/sip%E8%B2%A0%E8%8D%B7%E3%83%86%E3%82%B9%E3%83%88%E3%83%84%E3%83%BC%E3%83%ABsipp%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82/ SIP負荷テストツール”SIPp”を使ってみる。| Call Center Trends]
 +
 +
<!--
 +
書きかけ
 +
<HR>
 +
===svcrack===
 +
 +
====簡単な使い方====
 +
 +
<HR>
 +
===svcrash===
 +
====簡単な使い方====
 +
-->
 +
 +
<HR>
 +
===svmap===
 +
[https://github.com/EnableSecurity/sipvicious/wiki/SVMap-Usage svmap]は指定したサブネット内のSIPデバイスを探すツール<BR>
 +
 +
* SIP電話機も検出するが、検出できない電話機も多い
 +
* ひかり電話は不明エージェント"unknown"として検出される
 +
 +
====簡単な使い方====
 +
svmap {標的ネットワークアドレス/サブネットマスク}
 +
> svmap 10.0.1.0/26 10.0.5.0/26 10.0.2.0/26
 +
+----------------+-----------------------------+
 +
| SIP Device    | User Agent                  |
 +
+================+=============================+
 +
| 10.0.1.5:5060  | Grandstream GXP2000 1.2.5.3 |
 +
+----------------+-----------------------------+
 +
| 10.0.5.9:5060  | Asterisk PBX 18.2.1        |
 +
+----------------+-----------------------------+
 +
| 10.0.5.20:5060 | Asterisk PBX 16.22.0        |
 +
+----------------+-----------------------------+
 +
| 10.0.2.62:5060 | unknown                    |
 +
+----------------+-----------------------------+
 +
 +
<!--
 +
書きかけ
 +
<HR>
 +
===svreport===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===voiphopper===
 +
====簡単な使い方====
 +
 +
<HR>
 +
===svwar===
 +
[https://github.com/EnableSecurity/sipvicious/wiki/SVWar-Usage svwar]は
 +
ウォーダイヤラーSIP版といえるもので、PBX配下の内線電話をスキャンずるためのツール。<BR>
 +
PBXに対して認証無しで電話できるかどうかの有無も調べることができる。
 +
====簡単な使い方====
 +
 +
<HR>
 +
===voiphopper===
 +
https://www.kali.org/tools/inviteflood/ VoIP Hopper]<BR>
 +
 +
====簡単な使い方====
 +
 +
-->
 +
 +
==chan_sccp-b==
 +
生まれ変わったchan_sccpドライバで遊んでみる取り組み
 +
検証完了次第、成果物を載せる予定
 +
 +
;[https://github.com/chan-sccp/chan-sccp/wiki/IPv6-Configuration IPv6 Configuration]:IPv6設定 with Linux dhcpd
 +
;[https://github.com/chan-sccp/chan-sccp/wiki/Shared-Lines Shared Lines]:SLAの設定。
 +
;[https://github.com/chan-sccp/chan-sccp/wiki/Busy-Lamp-Field BLF]:BLF(ラインキー 1番に電話ですよ)機能
 +
 +
==OpenWRT==
 +
OpenWRTにAsterisk13を入れたあと、ひかり電話に繋がるようになるまでの<BR>
 +
必要なパッケージいろいろ
 +
===必要===
 +
無いと困るパッケージ一覧
 +
;asterisk13:Asterisk本体
 +
;asterisk13-chan-sip:SIPチャネルドライバ。SIP電話機やひかり電話との通信に必要。<BR>pjsipでも良いかも
 +
;asterisk13-codec-ulaw:μ-lawコーデックモジュール。
 +
;asterisk13-res-rtp-asterisk: RTPモジュール。これが無いと通話が出来ない
 +
 +
 +
===重要===
 +
無くても大丈夫だけど、入れるとお得
 +
;asterisk13-codec-g722:G.722コーデック
 +
;asterisk13-res-musiconhold:保留音モジュール。<BR>保留しない人にとっては不要
 +
 +
===微妙===
 +
無くても困らないが、一部の人に需要があるモノ(いわゆる、「俺得」)
 +
;asterisk13-chan-unistim:Nortel電話機用(秋葉原でNortel i2002を買った人とか)
 +
 +
===TFTPサーバー===
 +
OpenWRTに入っているTFTP(dnsmasqの一機能)がいうことを聞かないとき<BR>
 +
*Firewallの状態を確認
 +
*TFTPを有効にするインターフェースを確認<BR>→/etc/dnsmasq.confの末尾あたりに"enable-tftp=br-lan"を追加しておく
 +
 +
 +
==Ciscoの電話機==
 +
[http://docs.acsdata.co.nz/asterisk-cisco/ ACS DATA]<BR>
 +
CiscoのIP電話機をAsteriskで使うためのノウハウ色々。このページでだいたい事足りる。<BR>
 +
Asterisk11.22.0用Cisco patchもあるのでオススメ
 +
 +
 +
==ひかり電話用のIP電話機==
 +
ひかり電話用の電話機2種類<BR>
 +
Hackする労苦に見合うほどのメリットがあるかというとちょっとビミョーなので、<BR>
 +
Registできたら満足して倉庫の肥やしになる可能性大
 
===HQ-100===
 
===HQ-100===
 
*HQ-100はナカヨのOEM製品。したがって例のコマンドが効く。<BR>変更が効くのは固定IPやHGWのアドレス程度
 
*HQ-100はナカヨのOEM製品。したがって例のコマンドが効く。<BR>変更が効くのは固定IPやHGWのアドレス程度
13行目: 249行目:
 
====Asteriskにつなげる為には====
 
====Asteriskにつなげる為には====
 
以上の挙動を見る限り、Asteriskにつなげる為にはDHCPサーバーとHTTPサーバーが必要。<BR>
 
以上の挙動を見る限り、Asteriskにつなげる為にはDHCPサーバーとHTTPサーバーが必要。<BR>
;WI-200用のDHCP設定:固定IP不可、デフォルトデートウェイにHTTPリクエストを投げる<BR>
+
;WI-200用のDHCP設定:固定IP不可。<BR>電話がデフォルトデートウェイにHTTPリクエストを投げるので、DHCPサーバーを新たに設けるか、電話機用のDHCP設定を加えること<BR>デフォルトゲートウェイのIPを変更できるタイプが望ましい<BR>
 
;HTTPサーバーの設定:電話機が設定ファイルを要求してくるので、POSTで電話機の設定を返す
 
;HTTPサーバーの設定:電話機が設定ファイルを要求してくるので、POSTで電話機の設定を返す
  
  
===Biglobeの050===
+
==rtp set debugの使い方==
Asteriskからレジストできるけど着信しない時は、ルーターのSIP-NAT機能を使うこと。<BR>
+
通話時に、片通話状態になったりお互いが無音になってしまうときに、<BR>
Biglobeの050はSIPヘッダのContactを判別してINVITEの投げ先を判別している模様
+
RTPパケットの状態を"rtp set debug"で見ることが出来る
 +
各IPとのRTPパケット"GotとSent"があれば正常で、片通話の場合はGotまたはSentが欠けている
 +
 
 +
===正常な例 その1===
 +
内線相互通話のとき<BR>
 +
端末とPBX側で、それぞれRTPによるパケットのやり取りが正常に出来ている例
 +
PBX*CLI> rtp set debug on
 +
(略)
 +
Got  RTP packet from    10.0.1.11:18978 (type 00, seq 000231, ts 1851238948, len 000160)
 +
Sent RTP packet to      10.0.1.11:18978 (type 00, seq 062226, ts 003520, len 000160)
 +
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 036076, ts 003840, len 000160)
 +
Sent RTP packet to      10.0.1.29:9000 (type 00, seq 013446, ts 1851238944, len 000160)
 +
===正常な例 その2===
 +
ITSPから着信したとき、<BR>
 +
端末とITSP側で、それぞれRTPによるパケットのやり取りが正常に出来ている例
 +
PBX*CLI> rtp set debug on
 +
(略)
 +
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 025633, ts 043040, len 000160)
 +
Sent RTP packet to      10.0.1.29:9000 (type 00, seq 006329, ts 3057645360, len 000160)
 +
Got  RTP packet from    219.113.12.175:7670 (type 00, seq 000266, ts 3057645200, len 000160)
 +
Sent RTP packet to      219.113.12.175:7670 (type 00, seq 038682, ts 043040, len 000160)
 +
===不具合がある例===
 +
ITSPから着信したとき、<BR>
 +
端末からの音声は正しく外線(ITSP)に行っているが、ITSPからのRTPパケットが行かない例
 +
ITSPのIPアドレスからRTPパケットが来ない点に注目
 +
 
 +
PBX*CLI> rtp set debug on
 +
(略)
 +
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 002313, ts 034080, len 000160)
 +
Sent RTP packet to      219.113.11.31:7676 (type 00, seq 053632, ts 034080, len 000160)
 +
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 002314, ts 034240, len 000160)
 +
Sent RTP packet to      219.113.11.31:7676 (type 00, seq 053633, ts 034240, len 000160)
 +
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 002315, ts 034400, len 000160)
 +
Sent RTP packet to      219.113.11.31:7676 (type 00, seq 053634, ts 034400, len 000160)
 +
 
  
 
==sipsak==
 
==sipsak==

2022年12月4日 (日) 19:24時点における最新版

目次

AvayaJ100系電話機まとめ

J129
ラインキーが無い電話。コスパを最重要視したもの
J139
J159
J169
J179のモノクロ版
J179
J189

AvayaJ100系の Adminパスワード

27238 "craft"と入力するように打つと覚えやすい

https://documentation.avaya.com/bundle/IPOfficeCloudProvisioning/page/Default_J100.html

Kali LinuxにプレインストールされているVoIP系ソフトウェア

VoIPに関連するプレインストールソフトウェアの簡単な利用方法を記載。

enumiax

enumIAXIAXのユーザ名を総当たりで探し出すツール
総当たりでユーザー名を探すモードと、辞書を利用して探し出すモードの二つがある。
オプション無しの場合は総当たりでユーザIDを探す。

簡単な使い方

enumiax {オプション} {標的サーバIP}

enumiax -v -d ./enumiax-dictonary.txt 10.0.5.9
enumIAX 0.4a
Dustin D. Trammell <dtrammell@tippingpoint.com>

Target Aquired: 10.0.5.9
Connecting to 10.0.5.9 via udp on port 4569...
Starting enum process at: Thu Mar  3 20:35:07 2022

#################################
Trying username: "201"
<略>

iaxflood

iaxfloodは 標的に大量のIAXパケットを投げつけてパケットのあふれを引き起こすツール
IAXfloodを実行したときの画面

簡単な使い方

iaxflood {送信元IP} {標的サーバIP} {送信パケット数}

>iaxflood 10.0.1.24 10.0.5.9 100000000
Will flood port 4569 from port 4569 100000000 times
We have IP_HDRINCL

Number of Packets sent:

Sent 639409

Zabbixでasterisk側のトラフィックを確認したところ、15MB近くのトラフィックが出たことを確認
IAXfloodを喰らったときのトラフィック状況


inviteflood

Invitefloodは 標的に大量のSIP Inviteパケットを投げつけてパケットのあふれを引き起こすツール
IP電話機がInvitefloodの標的になると誤作動を起こすことがある

簡単な使い方

inviteflood {インターフェース名} {内線番号} {ドメイン} {標的IPアドレス} (送信するパケット数)

>inviteflood eth0 200 hogehoge.com 10.0.5.20 10000000

inviteflood - Version 2.0
              June 09, 2006

source IPv4 addr:port   = 10.0.1.24:9
dest   IPv4 addr:port   = 10.0.5.20:5060
targeted UA             = 200@hogehoge.com

Flooding destination with 10000000 packets
sent: 3991702

SIPp

SIPpはSIPプロトコルを用いたトラフィックジェネレータ。
パフォーマンス測定などに最適化されているが動作テストの自動化に利用することもできる

外部リンク



svmap

svmapは指定したサブネット内のSIPデバイスを探すツール

  • SIP電話機も検出するが、検出できない電話機も多い
  • ひかり電話は不明エージェント"unknown"として検出される

簡単な使い方

svmap {標的ネットワークアドレス/サブネットマスク}

> svmap 10.0.1.0/26 10.0.5.0/26 10.0.2.0/26
+----------------+-----------------------------+
| SIP Device     | User Agent                  |
+================+=============================+
| 10.0.1.5:5060  | Grandstream GXP2000 1.2.5.3 |
+----------------+-----------------------------+
| 10.0.5.9:5060  | Asterisk PBX 18.2.1         |
+----------------+-----------------------------+
| 10.0.5.20:5060 | Asterisk PBX 16.22.0        |
+----------------+-----------------------------+
| 10.0.2.62:5060 | unknown                     |
+----------------+-----------------------------+


chan_sccp-b

生まれ変わったchan_sccpドライバで遊んでみる取り組み 検証完了次第、成果物を載せる予定

IPv6 Configuration
IPv6設定 with Linux dhcpd
Shared Lines
SLAの設定。
BLF
BLF(ラインキー 1番に電話ですよ)機能

OpenWRT

OpenWRTにAsterisk13を入れたあと、ひかり電話に繋がるようになるまでの
必要なパッケージいろいろ

必要

無いと困るパッケージ一覧

asterisk13
Asterisk本体
asterisk13-chan-sip:SIPチャネルドライバ。SIP電話機やひかり電話との通信に必要。
pjsipでも良いかも
asterisk13-codec-ulaw
μ-lawコーデックモジュール。
asterisk13-res-rtp-asterisk
RTPモジュール。これが無いと通話が出来ない


重要

無くても大丈夫だけど、入れるとお得

asterisk13-codec-g722
G.722コーデック
asterisk13-res-musiconhold
保留音モジュール。
保留しない人にとっては不要

微妙

無くても困らないが、一部の人に需要があるモノ(いわゆる、「俺得」)

asterisk13-chan-unistim
Nortel電話機用(秋葉原でNortel i2002を買った人とか)

TFTPサーバー

OpenWRTに入っているTFTP(dnsmasqの一機能)がいうことを聞かないとき

  • Firewallの状態を確認
  • TFTPを有効にするインターフェースを確認
    →/etc/dnsmasq.confの末尾あたりに"enable-tftp=br-lan"を追加しておく


Ciscoの電話機

ACS DATA
CiscoのIP電話機をAsteriskで使うためのノウハウ色々。このページでだいたい事足りる。
Asterisk11.22.0用Cisco patchもあるのでオススメ


ひかり電話用のIP電話機

ひかり電話用の電話機2種類
Hackする労苦に見合うほどのメリットがあるかというとちょっとビミョーなので、
Registできたら満足して倉庫の肥やしになる可能性大

HQ-100

  • HQ-100はナカヨのOEM製品。したがって例のコマンドが効く。
    変更が効くのは固定IPやHGWのアドレス程度
  • FTPの口がある。しかしIDは****_***ではない模様
  • telnetを喋る。ログイン方法やコマンド体系はナカヨ製電話機と一緒
  • NTPを喋らず、ひかり電話ルーターが吐くSIPヘッダから、時間を取得する

ひかりパーソナルフォン WI-200

NTT東西から出ていたWiFi(クセの強さが半端無い)SIP電話機 
パケットから見る起動シーケンスは下記の順のとおり

  1. DHCPサーバーからIPアドレスを取得
    変わったDHCPオプションの要求は特に無し。
  2. ファームウェアのバージョンアップを確認
    "http://www.cpeinfo.jp/?product=WI-200&version=01.02" ←こんなURL
  3. ひかりGWに対し、HTTPのPOSTを投げる
    http://10.0.2.62/cas_tel_conf/ ←こんなURL
    自局のIDや内線番号、SIPポートなどをゲートウェイに対して送信する
  4. ひかりGWに対しSIP REGISTERパケットを投げる

Asteriskにつなげる為には

以上の挙動を見る限り、Asteriskにつなげる為にはDHCPサーバーとHTTPサーバーが必要。

WI-200用のDHCP設定
固定IP不可。
電話がデフォルトデートウェイにHTTPリクエストを投げるので、DHCPサーバーを新たに設けるか、電話機用のDHCP設定を加えること
デフォルトゲートウェイのIPを変更できるタイプが望ましい
HTTPサーバーの設定
電話機が設定ファイルを要求してくるので、POSTで電話機の設定を返す


rtp set debugの使い方

通話時に、片通話状態になったりお互いが無音になってしまうときに、
RTPパケットの状態を"rtp set debug"で見ることが出来る 各IPとのRTPパケット"GotとSent"があれば正常で、片通話の場合はGotまたはSentが欠けている

正常な例 その1

内線相互通話のとき
端末とPBX側で、それぞれRTPによるパケットのやり取りが正常に出来ている例

PBX*CLI> rtp set debug on
(略)
Got  RTP packet from    10.0.1.11:18978 (type 00, seq 000231, ts 1851238948, len 000160)
Sent RTP packet to      10.0.1.11:18978 (type 00, seq 062226, ts 003520, len 000160)
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 036076, ts 003840, len 000160)
Sent RTP packet to      10.0.1.29:9000 (type 00, seq 013446, ts 1851238944, len 000160)

正常な例 その2

ITSPから着信したとき、
端末とITSP側で、それぞれRTPによるパケットのやり取りが正常に出来ている例

PBX*CLI> rtp set debug on
(略)
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 025633, ts 043040, len 000160)
Sent RTP packet to      10.0.1.29:9000 (type 00, seq 006329, ts 3057645360, len 000160)
Got  RTP packet from    219.113.12.175:7670 (type 00, seq 000266, ts 3057645200, len 000160)
Sent RTP packet to      219.113.12.175:7670 (type 00, seq 038682, ts 043040, len 000160)

不具合がある例

ITSPから着信したとき、
端末からの音声は正しく外線(ITSP)に行っているが、ITSPからのRTPパケットが行かない例 ITSPのIPアドレスからRTPパケットが来ない点に注目

PBX*CLI> rtp set debug on
(略)
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 002313, ts 034080, len 000160)
Sent RTP packet to      219.113.11.31:7676 (type 00, seq 053632, ts 034080, len 000160)
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 002314, ts 034240, len 000160)
Sent RTP packet to      219.113.11.31:7676 (type 00, seq 053633, ts 034240, len 000160)
Got  RTP packet from    10.0.1.29:9000 (type 00, seq 002315, ts 034400, len 000160)
Sent RTP packet to      219.113.11.31:7676 (type 00, seq 053634, ts 034400, len 000160)


sipsak

sipsakは内線登録したり大量のSIPパケットを投げつけたりできるSIPのコマンドラインツールである

registerテスト(内線登録)

Asteriskに対してレジストしてみる

sipsak -UI -a pass -s sip:203@127.0.0.1

負荷試験

-Fオプションをつけると、相手先に大量のSIP OPTIONリクエストを投げつける。

sipsak -F -s sip:@10.0.2.1

着信するとZabbixに通知が行くexten 

Zabbixのエラー発報をAsteriskにやらせると
「この電話が鳴ったら不幸が起こる」状態になるので、別のアプローチで遊んでみた

extension

着信時と終話時(Hangup後)にシェルを叩いてZabbix senderを使ってZabbixに通知するexten。
発IDをZabbixに通知する事もできる。

exten => ${Fusion},n,Answer
exten => ${Fusion},n,Wait(1)
exten => ${Fusion},n,SYSTEM(zabbix_sender -z 172.30.255.10 -s OpenWrt -k IncomingCalls -o "Call Start")
exten => ${Fusion},n,Dial(SIP/201&SIP/202,60)

exten => h,1,SYSTEM(zabbix_sender -z 172.30.255.10 -s OpenWrt -k IncomingCalls -o "Call End")

Zabbix

Zabbixに通知が行ったら、Ejectしたり警子ちゃんを泣かすなり、なんなりと。
詳細(または仕事でZabbix連携させたい場合)はZabbixおじさん™に聞いてみてください

音声ファイルを流す

音声ファイルを再生する

Quintumねた

NTTとの契約オプションについて

TenorをNTTにつなげるときはP-P接続にしておくこと。
P-MP接続にしておくとTenorBXがつながらないので注意。
Softbankのおとくラインでも同様に注意すること。

Ciscoの場合

参考資料:外線接続に利用するNTT ISDN回線 契約オプションについて
Ciscoの場合
https://supportforums.cisco.com/docs/DOC-11847


発信者IDと着信先ID

ev quの出力結果

ch       |01/01| 2011/01/04|21:35:18:520 |OBCSM[108]: Release from peer=0x9680c41c cause=0x22 redir=.
                                          TBCSM [108]: Release complete from peer=0x9683d158.
                                          OBCSM[108]: pRouteInfo 9689eee8 state 6 ivrType 0 h323RetCode -1 cause 0x22.
                                          OBCSM[108]: Trying another route.
                                          channel allocated: slot=2 device=0 line=4 chan=2.
                                          PRI() newTermCall pSG 96970af8 pPort 96aef708 pPeer 9683d158 deviceId 20000000 line 3 chan 1.
                                          TBCSM[108]: Setup from peer=0x9683d158 NP=0x0 NT=0x0.
                                          OrigNum= NormNum=0268296204 TranNum=8296204 OrigDest= callingParty=0363676370.
                                          PRI(2,0,4,0x8024): sending SETUP_REQ to L3
callingParty=0312345678.
発信者ID
ev l3 sproto
SIPプロトコルのロギングレベルを最大にする
ev l3 ch
論理的回線ステータス
ev l3 cas
物理的回線ステータス
ev c
ログバッファを消去する
ev qu
ログバッファを全表示する

テスト

debug test r ポート番号(1~6)
debug test e
リングテスト

SIPp

ソースはSIPp 入門
下記は勉強会の内容をメモしたもの

SIPpとは

HPのエンジニアが作成した
XMLでシナリオ作る
PCAPらいぶらりでRTPのストリーミングを流すことができる

いんすこ

ぐぐれ
WIndowsにもいんすこOK
INVITEやReggisterのテストをやる場合は、OpenSSLライブラリが必須
PCAp playサポートする場合は、libpcapもぶち込むこと

簡単な使い方

sipp -uac (XMLシナリオ)

sipp [おぷしょん] 遠隔サイト:ポート


-l 同時発呼数
-r 一秒当たりの通話数

 

シナリオ

鯖とのSIPのやりとりをXMLで表現

<send></send>→パケットぶちこむ
<recev></recev> →パケットげっと

動作としては基本的に二つある

  • UAC クライアント
  • UAS サーバー
正規表現OK
分岐OK
メディア再生OK

PCAP Play

  • PCAPライブラリを使うため、root権限が必要となる
  • こちら(SIPp使ってる方)でPCAPで補足したパケットをつかって音声を発生させることもできる。

認証付き

  • Asteriskが相手のINVITEおよびRegist時には(MD5による暗号化文が混ざるので)組み込みシナリオだけでは無理
  • [authentication username=Uha password=OKewwwwwwwwwww というモノをシナリオにぶち込む

CSVファイルから値を挿入

  • "inf"オプションで指定したファイルから、シナリオに値をぶち込むことができる。
  • 一行目に、ファイルから、データをどのように読むかを記述する(順番に。テキトーにランダム、ユーザー指定)
  • デフォルトのデリミタは";"(セミコロン)になっているので注意すること

負荷をかけてみる

  • csvで準備した番号に対して順にはっこする
  • 単一の番号に(Asteriskで保留音サービスさせてみる。とか)

SIPpで負荷をかけながら、人が通話を行って、通話品質を評価してみる。

  • (Asteriskの)MillWattコマンドを使っみて途切れを検出してみる
  • 音声の途切れ、かすれなどを実際に聞いて評価する。
  • sipp側でレスポンスタイムをcsvにて表示させることができる

ぐるぐる

どーやってググッたか覚えてないものの、有用な資料。

電話機関連

Cisco SIP IP Phone アドミニストレータ ガイド トラブルシューティング
CiscoのIP電話はTelnet経由でCLIに入れるらしく、デバッグコマンドがいくつか用意されているそうな。
ステータス確認には良さげなガイド
Configurable Parameters for the SIP IP Phone
SIPDefault.cnfのいぢり方。CP-7940GおよびCP-7960G用かと思われ。
Cisco Unified IP Phone 7970G/7971G-GEアドミニストレーション ガイド for Cisco Unified CallManager Release 5.0 (SIP)
長いタイトルでちょっと引く
CP-7970G/7971G-GEの設定マニュアル SIP版

OpenblocksAX3ネタ

OpenBlocks AX3でasteriskのパフォーマンス測定
sippを使用したasteriskのパフォーマンス測定が乗ってるのでオススメ

KPML

SIP のダイヤル規則設定
CP-7940,CP-7960のような古いタイプの電話機と、CP-7911、7941、7961、7970および7971に代表される比較的新しい電話機では、発信やDTMFの挙動が違うらしい
Cisco Unified Communications Manager システム ガイド Cisco Unified Communications Manager Business Edition 対応 Release 6.0(1)
SIP ダイヤル規則では、番号のパターンを電話機でローカルに収集してから、Cisco Unified Communications Manager に送信できます。SIP ダイヤル規則が設定されていない場合、KPML が使用されます。らしい。
KPML(keypad markup language)?
Cisco公式のBBSに投稿された質問


ルーター関連

ロード バランシングの機能のしくみ
「OSPFはロードバランシングに云々」の、実際の設定色々。
NBAR によって認識されないトラフィックの識別
IAXをQoS サービス ポリシーとかに紐付けたりとか、そのあたりに役立つ鴨。
ゾーンベースのポリシーのファイアウォールの設計およびアプリケーションのガイド
SDMに出てくるファイアウォール設定のマニュアルと思いねえ。
例によってCisco語
Getting Started with Cisco IOS IPS with 5.x Format Signatures
最近のIOSに付属するIPS機能の設定方法。
実はAsterisk周りのパターンもチョット掲載されていたりする。

電話機用XMLアプリ

HTTP Requests and Header Settings
Voice系ではなくて、CiscoIP電話機でできる付加サービス(XMLアプリなど)の解説。
電話機のスクリーンショットの撮り方も書いてあるが、試したら失敗してしょんぼり(´・ω・`)
CiscoIPPhone XML Object Quick Reference
CiscoIP電話機のXML関連資料(クイックリファレンス)プログラムネタ

Registerについて

Asteriskにおけるレジストというのは、サーバーにログインすることを指す。(ぶっちゃけ表現)
sip.confやiax.confの[general]の項目の直下に書いておくこと。

register => 2345:password123@mysipprovider.com:5060/1234

書き方の例は下記の通り

2345
ユーザーIDとして「2345」でログインしようとしている
password123
パスワードとして「password123」を指定している
mysipprovider.com
ログイン先サーバーとして「mysipprovider.com」を指定する。
5060
SIPパケットのあて先ポートを指定する。
通常はUDPの5060番ポートを使用する。ポート番号は省略可
/1234
SIPサーバーから着信する際の番号(外線番号など)として、「1234」を指定する。
SIPパケット中のContactヘッダに、この番号が追加される。デフォルトでは"s"が入る。

他には、下記のような形でレジスター設定する

register => user[:secret[:authuser]]@host[:port][/extension]
register => fromuser@fromdomain:secret@host
register => fromuser@fromdomain:secret:authuser@host:port/extension


IAXデバッグ

IAXデバッグで頻繁に出てくるACKとかの単語は
http://www.rfc-editor.org/authors/rfc5456.txt を調べるヨロシ
日本語ドキュメントなんぞ無い(´・ω・`)

デバッグ開始(Asterisk1.6)

Halphas*CLI> iax2 set debug on
IAX2 Debugging Enabled
Halphas*CLI>

IAXデバッグ終了(Asterisk1.6)

Halphas*CLI> iax2 set debug off
IAX2 Debugging Disabled
Halphas*CLI>

あじるほんにQualfyしてみた

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: POKE
   Timestamp: 00008ms  SCall: 00006  DCall: 00000 [122.103.236.237:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: PONG
   Timestamp: 00008ms  SCall: 00046  DCall: 00006 [122.103.236.237:4569]
Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: ACK
   Timestamp: 00008ms  SCall: 00006  DCall: 00046 [122.103.236.237:4569]

あじるほんにRegistしてみた

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: REGREQ
   Timestamp: 00002ms  SCall: 00005  DCall: 00000 [122.103.236.237:4569]
   USERNAME        : 858???
   REFRESH         : 60

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: REGACK
   Timestamp: 00003ms  SCall: 00008  DCall: 00005 [122.103.236.237:4569]
   USERNAME        : 858????
   DATE TIME       : 2009-06-17  13:43:42
   REFRESH         : 60
   APPARENT ADDRES : IPV4 222.149.22.251:60003
   MESSAGE COUNT   : 0
   CALLING NUMBER  : 858???

Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: ACK
   Timestamp: 00003ms  SCall: 00005  DCall: 00008 [122.103.236.237:4569]

Qualify

Qualify(生存確認:王大人パケット)はAsteriskのバージョンおよびプロトコル(SIP or IAX)により
設定内容が異なったりする。

SIP

sip.confに書くとOK

qualify=yes
生存確認パケットを投げる
qualify=4000
生存確認パケットを投げ、4000ms(4秒)以上遅れた場合は王大人により、死亡が認定される。
WiFi電話機はこの値を大きめにしておくこと。(5000ms位でも良いかもしれない)
qualify=no
生存確認パケットを投げない。王大人をクビにする。
qualifyfreq=1
生存確認パケットを秒刻みで設定する。王大人が1秒毎に出現する。デフォルト値は60000 ms(60秒)
Asterisk1.6以降で使用可能

IAX

iax.confに書くとOK
内容としてはSIPと大して変わらないものの、古いバージョンから生存パケットの間隔を設定できるので、パケット増幅スキーな人にIAXオススメ

qualify=yes
生存確認パケットを投げる
qualify=4000
生存確認パケットを投げ、4000ms(4秒)以上遅れた場合は死にかけと判断される。(Status:LAGGEDになる)
qualifyfreqok=400
生存確認パケットをミリ秒刻みで設定する。1に設定すると、アクセスランプが素敵な状態になる。
qualifyfreqnotok=3
生存確認パケットを投げ、3ms(3ミリ秒)以上遅れた場合は王大人により、死亡が認定される。

声優さん

voip-info.jpで配布している日本語音声は竹田えり さんなのはよく聞くが、他の声優さんに頼んだ場合は、いくらかかるのだろうか
という訳で、ぐーぐる先生に聞いてみた。

Asteriskに投資するぜ!イエア!!!という意味で、竹田えりさんバージョン以外に、日本語音声ファイルを作ってみるのも悪くないかもしれないですな!

STARS SYSTEM Ltd.
「電話用音声メッセージをAsterisk等で即利用可能な形式で録音いたします。」らしい。
で、いくらなんだろう。
音響・声優事務所 Sham.Studio.
1日/8時間 \100,000~ らしい。
はてな
Q.声優さんの相場を教えてください。 A.相場はありません。
AtelierPeach-FAQ-
5万円くらいか? 判りやすい。
ネット声優(wikipedia)
その存在を初めて知ってしまった。
個人ベースで依頼するなら、こっちかな(´-`)

余談

  1. 某コールセンターでは、声に定評のある社内オペレータさんにIVRの音声を吹き込んでもらっていたそうな。
  2. 外資系では、有名どころの声優さんに吹き込んでもらったそうな。
  3. 音声カスタマイズの際、(数年経過しても)同じ人に声を吹き込んでもらえるかどうか。が難点らしい。

sip.confのpermit/deny

IPアドレスによるACLが組めるっぽいので試してみた。

書いてみる

こんな感じでsip.confに書いてみた

[503]
; Snom300
type=friend
fromdomain=dynamic
username=503
secret=**************
host=dynamic
canreinvite=yes
language=jp
qualify=3000
insecure=very
deny=0.0.0.0/0
permit=10.0.5.0/255.255.255.192
permit=192.168.0.0/24

確認

ACLで接続制限ができたかどうかを確認してみた。
許可されてないIPアドレス帯からregisterしようとすると、下記のような結果になった。

[Jan 25 20:06:13] NOTICE[1904]: chan_sip.c:15236 handle_request_register: Registration from '"503" <sip:503@Asterisk>' failed for '192.168.5.57' - Device does not match ACL

書き方のコツ

まずはALL Denyで全部不許可にした上で、接続を許可するIPアドレス帯をpermitで指定するのが良さげな感じ
下記のような書き方が宜しい

deny=0.0.0.0/0
permit=10.0.5.0/255.255.255.192
permit=192.168.0.0/24

playtones遊び

テンポ120で四分音符の箔を打つ場合、60000ms(1分)の中で120回リズムを刻むわけで
60000/120=500となる

テンポ120で8分音符の箔を打つ場合は、箔がその倍なので(240個のリズム)
60000/240=250となる
簡単な曲をPlaytonesで演奏する場合は、このような形で書くことになる。

exten => _5,1,Answer
exten => _5,n,Wait(1)
exten => _5,n,Playtones(!293/1000,!440/1000,!391/500,!349/500,!329/500,!261/500,!293/1000,
!523/500,!391/250,!440/250,!349/500,!391/250,!349/250,!329/500,!261/500,!293/8000)
exten => _5,n,Wait(16)
exten => _5,n,StopPlaytones
exten => _5,n,Busy(5)
exten => _5,n,Hangup

実際に書くとしたら、旋律しかない曲(FFの最初の曲とか)に絞って書いてみるとか、
複数の内線(exten複数)に分けて書くとか、そのあたり。
Wait( )でタイミングの同期を取るのは難しいと思われる訳で。

CP-797Xの壁紙設定

Cisco電話機の、SIPファームウェア設定で活きて来るっぽい「壁紙設定の有無」
SCCP電話機にて設定したものの、反応なし。

<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>

IP-24N-ST101Aとテプラ

IP-24N-ST101Aの示名条片をテプラで作成する場合、次の設定でやると上手くいくぽ

  • SS4K(白の4ミリ)を使用する
  • 文字サイズは一行→「大」を設定
  • スペースキーをたくさん入れる

こんな感じで↓

代表1         代表2         代表3         代表4         外線代表         内線代表

スペースは9つくらい挿入しておく

ボタンを4つ使用する場合は、もうちょっと緩めでも気にならない

ぱーく1        ぱ~く2       はーぐ3       ばーく4


AutoAnswer(Astlinux0.4.8限定)

まずは、extension"300"にはモーニングコールなり、MoHなりの処理を設定しておく。
まずは、テキトーに下記のようなテキストファイルを作成しておく

Forneus tmp # cat outband.txt
Channel: sccp/512/aa1w
Callerid: 511
MaxRetries: 1
RetryTime: 5
WaitTime: 3
Context: default
Extension: 300

次に/var/spool/asterisk/outgoing/ に先ほどのファイルをコピーするとOK

Forneus tmp # cp outband.txt /var/spool/asterisk/outgoing/

cronに、コピー処理を埋め込めば定時発信(モーニングコールなど)することができる。

Remote UNIX connection

CLIコンソールに出てくる、下記のメッセージは一体何者か。不届き者か。

   -- Remote UNIX connection
   -- Remote UNIX connection disconnected

で、さっそく調べてみた。
どうやら、他のユーザー、もしくは監視サービス(Zabbix他)がCLI接続したときに出るログらしく、原因は下記の通りとなる

  • 他のユーザーがCLIに入ったかもしれない。
  • asterisk manager (manager.conf)がつなげてるかもしれない。
  • Nagios(のプラグイン)が繋げているかもしれない

対応策としては、下記の通り。

  • こいつは無害なんで気にするな
  • vの数を減らせ(asterisk -vvvvvvvvvvvvvvvvvvvvvrのこと)
  • CLIからログオフしてしまえ