Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 36 Anzeige

CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020

Herunterladen, um offline zu lesen

飲食店の予約台帳アプリであるレストランボードでは、電話応対業務をサポートする待望のCTIサービスをリリースしました。

このサービスでは、「CTI-BOX」と呼ばれる専用物理デバイスが店舗の固定電話とiOSアプリを繋ぐハブとなり、システム化を実現しています。
専用物理デバイスを採用したことで、iOSアプリとの連携や通話転送をするためのBLE/SIP/PSTNなど各種通信I/Fや、機器や設置環境の物理的な制約など、通常のアプリ開発とは異なる様々な困難がありました。

本セッションでは、CTIサービスを開発する上で発生したシステム・運用両面での課題と、それを解決するための技術的チャレンジについてお話しします。

飲食店の予約台帳アプリであるレストランボードでは、電話応対業務をサポートする待望のCTIサービスをリリースしました。

このサービスでは、「CTI-BOX」と呼ばれる専用物理デバイスが店舗の固定電話とiOSアプリを繋ぐハブとなり、システム化を実現しています。
専用物理デバイスを採用したことで、iOSアプリとの連携や通話転送をするためのBLE/SIP/PSTNなど各種通信I/Fや、機器や設置環境の物理的な制約など、通常のアプリ開発とは異なる様々な困難がありました。

本セッションでは、CTIサービスを開発する上で発生したシステム・運用両面での課題と、それを解決するための技術的チャレンジについてお話しします。

Anzeige
Anzeige

Weitere Verwandte Inhalte

Ähnlich wie CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020 (18)

Weitere von Recruit Lifestyle Co., Ltd. (20)

Anzeige

Aktuellste (20)

CTIサービスを支える裏側 〜物理デバイスとの戦い〜 | iOSDC Japan 2020

  1. 1. CTIサービスを支える裏側 〜物理デバイスとの戦い〜 株式会社リクルートライフスタイル 浅野 宏明
  2. 2. Speaker 浅野 宏明 株式会社リクルートライフスタイル TechLead 2012年 新卒でリクルートメディアコミュニケーションズ (現リクルートコミュニケーションズ)に入社 2014年 リクルートライフスタイルに出向後 レストランボードの初期開発を担当 2016年 飲食領域のTechLeadに任用
  3. 3. Agenda ● レストランボードについて ● CTIサービスのシステム概要 ● 発生した問題と解決策 ● 最後に
  4. 4. レストランボードについて 飲食店向けの予約台帳アプリ レストランボード
  5. 5. 用語説明 ● CTI(Computer Telephony Integration) 電話をコンピューターと統合させたシステムの総称 ● CTIサービス レストランボードが提供する、飲食店の電話対応をサポートする機能名 ● CTI-BOX CTIサービスを実現するための、電話機とiPadをつなぐ専用ハードウェア
  6. 6. CTIサービスについて
  7. 7. CTI-BOX
  8. 8. システム全体構成図
  9. 9. システム全体構成図 本セッションの範囲
  10. 10. 発生した問題と解決策 ● 開発フェーズ ○ 物理デバイスを相手にする難しさ ○ BLEの制約との戦い ● 運用フェーズ ○ 店舗環境の不透明さ ○ 問題発生事象の再現性の低さ
  11. 11. 発生した問題と解決策 ● 開発フェーズ ○ 物理デバイスを相手にする難しさ ○ BLEの制約との戦い ● 運用フェーズ ○ 店舗環境の不透明さ ○ 問題発生事象の再現性の低さ
  12. 12. 物理デバイスを相手にする難しさ ● iOSエンジニアにとって未知な領域 ● CTI-BOXの中身はブラックボックス ● 周辺環境に依存する要素の多さ
  13. 13. 開発中に遭遇したバグの一例 調査を進めてもなかなか再現できなかった 周辺環境に依存する要素の多さ
  14. 14. CTI-BOXがFAX機の上に置かれた状態で電話を受けると、 再現率が高い FAX機からの電波干渉で、CIDの取得が正常にできない ことがあることが判明
  15. 15. 物理デバイスを相手にする難しさ ● iOSエンジニアにとって未知な領域 ● CTI-BOXの中身はブラックボックス ● 周辺環境に依存する要素の多さ 観点ベースで作成したテストシナリオ実施のみでは不十分。 シナリオでカバーできないものをいかに効率的に実施、問題検知をできる ようにするか。
  16. 16. 留守電設定 080 XXXX XXXX ● 大量 ● 不定期 ● 不定パターン e.g. : 連続着信テストの自動化 テスト方法の工夫
  17. 17. 発生した問題と解決策 ● 開発フェーズ ○ 物理デバイスを相手にする難しさ ○ BLEの制約との戦い ● 運用フェーズ ○ 店舗環境の不透明さ ○ 問題発生事象の再現性の低さ
  18. 18. BLE (Bluetooth Low Energy) の制約 ● データ通信のタイミングは固定 ● 通信パケットサイズが小さく転送速度上限がある ● 接続切断が発生しやすい
  19. 19. 制約に対する対応 ● シーケンス・再送制御 ● 送信データの優先度管理 ● 転送効率と汎用性を両立させたフレームフォーマットの定義
  20. 20. フレームフォーマット
  21. 21. 発生した問題と解決策 ● 開発フェーズ ○ 物理デバイスを相手にする難しさ ○ BLEの制約との戦い ● 運用フェーズ ○ 店舗環境の不透明さ ○ 問題発生事象の再現性の低さ
  22. 22. 店舗環境の不透明さ CTIサービスの利用にはいくつか条件がある ● 電話回線の契約形態 ● ネットワークの制約 ○ DHCPによるIP自動割り当て ○ 外部とのSIP通信 ● etc.
  23. 23. システム全体構成図
  24. 24. 店舗環境の不透明さ CTIサービスの利用にはいくつか条件がある ● 電話回線の契約形態 ● ネットワークの制約 ○ DHCPによるIP自動割り当て ○ 外部とのSIP通信 ● etc. 実際の店舗への導入検証を進める中で、この条件を満たさない環境が 当初想定よりも多そうであることが判明
  25. 25. 店舗環境の不透明さ ● CTIサービス利用可否は導入前に判断できなくてはいけない ● 店舗に訪問するのは非エンジニアである営業 ● 店舗側も自身の回線契約・ネットワーク状況について把握していないことが 多い
  26. 26. 店舗環境の不透明さ ● CTIサービス利用可否は導入前に判断できなくてはいけない ● 店舗に訪問するのは非エンジニアである営業 ● 店舗側も自身の回線契約・ネットワーク状況について把握していないことが 多い 簡単かつ確実に環境のチェックができる仕組みを用意する必要がある
  27. 27. 事前チェックツール導入 ● 簡易的なネットワークチェック用iOSアプリを作成 ● 営業の社用iPhone端末にインストール ● 営業はEthernetアダプタのみ追加で持ち歩けばOK
  28. 28. 発生した問題と解決策 ● 開発フェーズ ○ 物理デバイスを相手にする難しさ ○ BLEの制約との戦い ● 運用フェーズ ○ 店舗環境の不透明さ ○ 問題発生事象の再現性の低さ
  29. 29. 問題発生事象の再現性の低さ ● チェックツールでOKとなっても、実際の利用中にはトラブルが頻発 ● 環境依存の問題もあり、手元では再現できないことも多い ● 店舗からの問い合わせが要領を得ない内容であることも
  30. 30. 問題発生事象の再現性の低さ ● チェックツールでOKとなっても、実際の利用中にはトラブルが頻発 ● 環境依存の問題もあり、手元では再現できないことも多い ● 店舗からの問い合わせが要領を得ない内容であることも 不確定な情報に頼らず、事実として何が発生しているかを 正しく把握できる必要がある
  31. 31. デバイスログの連携
  32. 32. 異常値の発見 必要に応じてログ全量からの状況把握 エラーモニタリング 生ログ調査 デバイスログのモニタリング・調査
  33. 33. 最後に ● 新たな挑戦をする上では想定外の事象がつきもの その想定外に如何に素早く柔軟に対応できるよう備えられるかが重要 ● レストランボードは現在進行形で挑戦を続けています
  34. 34. Thank you !

×