2019-04-04この記事は約5分で読めます。結果まとめスポンサーリンクやりたかったこと今のサービスでは、ポイントを先行購入して通話を提供しています。そのため、通話時間が所持ポイントを上回る場合になった場合に自動で切断するようにして欲しいと要望がありました。1000pt所持で、通話に100pt/分の消費をする場合、通話開始から10分後に自動切断というような感じで、問答無用に切ってしまう。ポイントの減算処理は通話終了時の通話時間から利用ポイントを割り出します。分単位なので秒についてはすべて切り上げ計算。そのため、先程の例では1秒でも過ぎたら11分となるので1100ptとなり所持ポイントがマイナスになります。時間にまつわる処理って出来る限り避けたいんですよね、テストし辛いしバグの温情になりやすいし。ポイント減算に使う通話時間とかもTwilioが持ってくれてるので、開始から終了までの時間計算しないでTwilioのAPIから引っ張ってるだけ。実装自体はそんなに難しくなかったです。今のサービス内でTwilioが行っているのはDialによる転送電話なのでTwiMLはこんな感じ。</Dial></Response>このTwiMLに以下のようにtimeLimitを追記するだけ!timeLimitに渡す時間は秒単位になります。</Dial></Response>Kotlinで実装するとこんな感じで、Dial.Builderに.timeLimitを追加するだけですね。転送通話なので親通話は転送前、子通話が転送後なので子通話の時間が実際の通話時間になります。ちなみに親通話の通話時間は4分10秒、この時間には子通話の時間も含まれているので転送前コールが10秒、その後転送先で4分って見方です。timeLimitでの指定時間となりますので、コール時間が長いとその分通話時間は削られます。́∀`)今回計算で使う通話時間は子通話の時間をAPIで取得しているので、無事にやりたいことも出来ました❗ただ、実際に通話している時間を抜き出すところまでは今できていないので今後の課題かなと。́▽`*)特にステータス変更時のWebhookはコンソールからだとcompletedのみにしかキックしないですが、TwiMLからだとキックさせたいステータスを指定できます。技術ネタTwilioSDKで翻弄されていますどうもhisayukiです。いうわけで、今日はTwilioSDKの所で...技術ネタとあるSNSのSMS認証をTwilioで解決してみたこんばんわ、hisayukiです。今回、某SNSにて別アカウントの凍結をくらいまして・・・ちょっと止めるわけに行かないので、なんとか別アカ作って復旧しました。今回はサービス名をハッキリ書かずに某SNSで突き通します。...技術ネタTwilioが攻撃されたけどあまり痛くなかった。こんばんわ、hisayukiです。いうわけで、対応を書き残します。コメントをキャンセルメールアドレスが公開されることはありません。