Contenu connexe
Similaire à IP電話交換機ソフト Asterisk について (20)
Plus de Retrieva inc. (18)
IP電話交換機ソフト Asterisk について
- 3. 自己紹介
• 高田智巳
• Twitter: @t_tkd3a , Qiita: @t-tkd3a
• 株式会社レトリバ 製品開発部 エンジニア (2018/4~)
• ミドル・バックエンド のプログラム開発
• 趣味
• 家族で鉄道関係の施設・イベント・巡り
© 2018, Retrieva, Inc.
- 5. 自己紹介
• 通信速度の進化を体感してきた世代
© 2018, Retrieva, Inc.
(bps)
300
1200
2400
9600
14.4K
33.6K
56K
アナログ回線 ADSL回線
(bps)
10M~
光回線
(bps)
1.5M~
ISDN回線
(bps)
64K,128K
198x年 199x年 200x年 201x年
- 6. 自己紹介
• 通信速度の進化を体感してきた世代
© 2018, Retrieva, Inc.
(bps)
300
1200
2400
9600
14.4K
33.6K
56K
アナログ回線 ADSL回線
(bps)
10M~
光回線
(bps)
1.5M~
ISDN回線
(bps)
64K,128K
198x年 199x年 200x年 201x年
伏線
(後ほど回収)
- 8. VoIP とは
• Voice over Internet Protocol
音声を各種符号化方式で符号化および圧縮し、パケットに変換したものを
IP(Internet Protocol )ネットワークでリアルタイム伝送する技術
© 2018, Retrieva, Inc.
IPネットワーク (+ ISDN網)
デジタル音声
- 10. RTP
• Real-time Transport Protocol (RTP) (RFC3500)
• 音声などのデータをリアルタイムに伝送する
データの一部が途中で失われたとしても再送したりせず、
次のデータをできるだけ早く、途切れなく伝送し続ける。
© 2018, Retrieva, Inc.
20ms 毎に 160Byteの音声データ
音声Packet 音声Packet 音声Packet 音声Packet
- 14. SIP (Session Initiation Protocol)
• RFC3261
• IP電話などのセッション(通話)の開始、変更、終了などの操作をおこなう。
• HTTP に似たテキストベース・メッセージ・フォーマット。
• コマンドの種類
• IP電話の登録
• IP電話の呼び出し
• IP電話の通話開始
• IP電話の通話終了
© 2018, Retrieva, Inc.
- 15. 例:SIP での通話フロー
• 登録
• REGISTER コマンド
IP電話交換機
内線番号201 起動したよ
IPアドレス通知するよ
201 202
内線番号202 です
IPアドレス通知します
了解
了解
© 2018, Retrieva, Inc.
- 16. 例: SIP での通話フロー
• 呼び出し
• INVITEコマンド
IP電話交換機
202に通話したい
202
はいよ
201
© 2018, Retrieva, Inc.
- 19. 例: SIP での通話フロー
• 通話開始
• INVITEコマンドの戻り
200 OK
IP電話交換機
201 202
通話開始
了解
通話開始
了解
ガチャ
© 2018, Retrieva, Inc.
- 20. 例:通話中 パターン1
• 端末間直接 RTP
IP電話交換機
201 202
音声Packet 音声Packet
音声Packet 音声Packet
© 2018, Retrieva, Inc.
64Kbps
64Kbps
- 26. Asterisk の 機能
© 2018, Retrieva, Inc.
• 内線電話
• 外線電話
• コールパーキング
• 通話を保留し、別の端末で通話再開する機能。
• コールピックアップ
• 代理応答
- 27. Asterisk の 機能
© 2018, Retrieva, Inc.
• 自動音声応答
• 「〇〇のご用件の方は1を、△△のご用件の方は2を」
• 留守番電話・ボイスメール
• 通話録音
- 30. Asterisk
• バージョン と サポート期間
© 2018, Retrieva, Inc.
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- 31. Asterisk のインストール
• RHEL 7 (CentOS 7)系
• 公式からダウンロード
• wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
• 展開した先で
• ./configure --with-pjproject-bundled
• meke menuselect
• make
• sudo make install
© 2018, Retrieva, Inc.
[参照]https://voip-info.jp/index.php/Asterisk_13
↑に丁寧なインストール手順が記されてる。
- 32. Asterisk の設定ファイル
© 2018, Retrieva, Inc.
• /etc/asterisk の下に多数ある…
• 通話と録音に関しては↓の2ファイル
• asterisk.conf
• ディレクトリの指定
• 設定ファイル、ログ出力先、シェルスクリプト格納先、Wav 出力先
• extension.conf
• 内線番号毎の着信時の処理をBASICライクのスクリプトで記述
- 33. Asterisk extension.conf
© 2018, Retrieva, Inc.
• BASIC ライク
• 内線番号毎に処理の記述が可能
• 行番号がある。 Goto , GotoIf , Gosub ,GosubIf で処理を飛ばす。
Asterisk 徹底活用ガイド P.93 より抜粋
- 35. Asterisk extension.conf
© 2018, Retrieva, Inc.
• AGI (Asterisk Gateway Interface )コマンド
• 外部のスクリプトを 引数付きで呼び出す。
• 外部スクリプト側から、Asterisk へのコマンド発行が可能。
• 外部スクリプトに利用可能な言語
• Shell Script
• Ruby
• Python
• Perl
• PHP
• etc … 標準入出力 で Asterisk と対話できればなんでも…
- 36. Asterisk extension.conf
© 2018, Retrieva, Inc.
• 内線電話の録音 の 設定例
• 通話開始時に A.sh を、通話終了時に B.sh を 実行する。
• 話者両方の音声を、それぞれ、L.wav と R.wav に出力する。
• Zは 1~9 を示す。 行番号のnは省略の意味。 $EXTENは内線番号を示す変数。
• 生成される wav ファイルは 16bit , 8 KHz の PCM
- 37. Asterisk CLI
© 2018, Retrieva, Inc.
• CLI (Command Line Interface)
• CLI の起動
• asterisk –vvvcr
• AGI 出力のデバッグ出力有効化
• agi set debug on
• 設定ファイル読み直し
• core reload
• 通話中回線一覧表示
• cdr show active