Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自宅の内線電話機でモーニングコールを実装する
Search
miyukichi_ospf
February 02, 2025
Programming
1
98
自宅の内線電話機でモーニングコールを実装する
2024/10/24 はじめてのIT勉強会(札幌)のLT発表資料。
自宅の内線電話機でモーニングコールを実装していました。
内線電話機 - Asteriskの間は疎通・登録が完了している前提です。
miyukichi_ospf
February 02, 2025
Tweet
Share
More Decks by miyukichi_ospf
See All by miyukichi_ospf
アクセスポイントを神社にしたい 第2話
miyukichi_ospf
0
42
アクセスポイントを神社にしたい 第1話
miyukichi_ospf
0
30
はじめてのルーティング学園
miyukichi_ospf
0
46
架空の幼馴染にメッセージを送ったら電話がかかってくるシステムを実装する
miyukichi_ospf
1
35
2024年GWの進捗
miyukichi_ospf
0
63
Other Decks in Programming
See All in Programming
Hack Claude Code with Claude Code
choplin
7
2.6k
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
110
生成AI時代のコンポーネントライブラリの作り方
touyou
1
290
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
1.1k
20250708_JAWS_opscdk
takuyay0ne
2
130
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
380
型で語るカタ
irof
0
720
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
360
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
12k
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
140
ニーリーにおけるプロダクトエンジニア
nealle
0
960
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
190
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Side Projects
sachag
455
42k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Become a Pro
speakerdeck
PRO
29
5.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Transcript
自宅の内線電話機で モーニングコールを実装する 2024/10/24 みゆ吉(X:@miyukichiOSPF) @miyukichiOSPF
自己紹介 - 属性 - みゆ吉 - 新卒2年目SE - 業務 -
Azure - LAN環境構築 - Kubernetes - TypeScript - 電子ペーパー - 資格 - IPA(DB/SC/NW) - 漢検準一級 @miyukichiOSPF
- 構成 ‒ Cisco IP Phone 7821 2台 ‒ Cisco
891FJ(ルーター) ‒ UbuntuノートPC ‒ Asterisk ‒ TFTPサーバー ‒ 背景 ‒ 夢があると思ったから ‒ 家に内線電話がある is 夢がある @miyukichiOSPF 夏に内線電話機をお迎えしました 相互に通話可能
‒ ゴール ‒ モーニングコールを実装する ‒ コマンドを実行する ‒ 電話が鳴る ‒ 受話器をとる
‒ おはようボイスが再生される ‒ 背景 ‒ 自分と電話するだけでは楽しめなくなってきた ‒ 構築当初は自分と話すだけでキャッキャしていたのに ‒ 誰かから電話かかってきてほしい @miyukichiOSPF 今回のゴール 現状、自分としか電話できない おはよっ おはよ~!
Asteriskとは @miyukichiOSPF ‒ 電話機の司令塔みたいな存在 ‒ 電話機同士の通話を仲介できる ‒ 自分自身が電話機に電話をかけられる トゥルルル… \おはよう、朝だよ/
〇できることリスト - 電話同士の通話を繋げる - モーニングコールを再生する(追加) 〇やることリスト (ここに書いた命令を即実行する) Asterisk 「モーニングコールを再生する」 おはよ~!
実現方法 1. モーニングコールのwavファイルを作る 2. モーニングコールを再生する設定を書く =Asteriskができることリストにモーニングコール再生手順を追加 3. auto-playbackを実行する命令(morningcall.call)を用意 =モーニングコール再生手順の実行命令を作成 4.
morningcall.callをやることリストに配置する =モーニングコール再生手順の実行命令を実行 @miyukichiOSPF \おはよう、朝だよ/
モーニングコールのwavファイルを作る ‒ VOICEVOXでモーニングコール音声を作成(ずんだもん) ‒ 内線電話で再生可能な周波数にフォーマットする // サンプルレート8000Hz、チャンネル数1にする sox sample.wav -r
8000 -c 1 -t wav sample_converted.wav @miyukichiOSPF
モーニングコールの再生手順を作成 ‒ /etc/asterisk/extensions.confに設定を追加 ‒ auto-playbackという名前でモーニングコールの再生手順を書く - 6001,1,Answer() # 電話番号6001の電話を鳴らす ‒
Wait(3) # 受話器を取ってから3秒間待つ ‒ n,Playback(filePath) # filePathのファイルを再生 ‒ n,Hangup() # 電話を切る @miyukichiOSPF # モーニングコールを再生する設定を追加 # 相互に通話する設定(既存)
再生手順の実行命令を作成 - morningcall.callを作成する - ここに再生手順の実行命令を書く - このファイルを特定の場所に配置することで実行できる @miyukichiOSPF
再生手順の実行命令を実行 /var/spool/asterisk/outgoingに実行命令を配置すると 電話が鳴る cpコマンドで配置していく cp morningcall.call /var/spool/asterisk/outgoing/morningcall.call @miyukichiOSPF
モーニングコールがかかってきた @miyukichiOSPF 動画冒頭でcpコマンドを実行 https://x.com/miyukichiOSPF/status/1838186718652194908 動画が再生できない場合はこちらから
やってみて @miyukichiOSPF ‒ 感想 ‒ うれし~~ ‒ これから ‒ モーニングコール以外の用途を検討してみる
‒ 生成AIからの応答を再生できるようにする (内線電話の活用アイデア募集中です!) 本日のモーニングコールの 文章を作成してください おはよう! 10月24日の朝ですよ! (文字列) おはよう! 10月24日の朝ですよ! (音声) 毎朝モーニングコールの 内容が違う…!