Missing caller field in phone.callee_* webhook events in some cases

In some cases, the caller field is completely missing from phone.callee_ringing, phone.callee_answered, phone.callee_ended, and phone.callee_rejected webhook events.

The payload’s object contains only the callee field, and the caller field itself does not exist. Our system determines the call type (internal extension call vs external call) using the extension_type of both caller and callee, but when the caller field is missing, we cannot make this determination and processing fails.

Questions:

  1. Is this intended behavior or a bug?

  2. When the caller field is missing, is there a way to obtain caller information?

  3. When the caller field is missing, is there a way to determine the call type (internal extension call vs external call)?

  4. Is it documented anywhere that the caller field is optional?

We would appreciate guidance on the recommended approach. For example, should we use the phone.callee_call_log_completed event or an API instead?