Twilioで電話転送した時のステータスパターン

Twilioで、受けた電話を他の電話に繋ぐとき、Call命令を使います。
https://jp.twilio.com/docs/api/twiml/dial

このとき、通話者同士の動作によってステータスが変わり、Dialで指定しているactionのurlにステータスの状態が通知されます。電話を切った時とタイムアウトの時に通知のリクエストがサーバに飛んできます。
Dialのアクション指定はこのようにします。

どの動作の場合に、どのような通知になるか不明だったので実際に実験しました。これだけあれば、次の動作やログに何を記録した方が良いかなど判断できると思います。

これだけ見れば、電話が通じなかったのか、通話した時間、通話上限時間に達したのかが判断できると思います。

発信者が転送コール音中に電話を切った場合

DialCallStatus : no-answer
CallStatus : completed

転送コールを続けてTimeoutで終わり、通話せずに終わった場合

DialCallStatus : no-answer
CallStatus : in-progress

転送先が通話中で出れない場合

 キャッチを入れてる電話しかなかったのでテストできず。。。

通話して、時間内に発信者から切った場合

DialCallStatus : completed
CallStatus : completed
DialCallDuration : 13 (TimeLimitは15に設定)

通話して、時間内に受信者から切った場合

DialCallStatus : completed
CallStatus : in-progress
DialCallDuration : 13 (TimeLimitは15に設定)

通話して、時間切れの場合

DialCallStatus : completed
CallStatus : in-progress
DialCallDuration : 15 (TimeLimitは15に設定)