Handle additional phone call discard reason.

This commit is contained in:
John Preston 2025-02-07 15:47:09 +04:00
parent 5ebdf3ed39
commit a0821f5a01
2 changed files with 8 additions and 6 deletions

View file

@ -447,16 +447,17 @@ Call ComputeCallData(const MTPDmessageActionPhoneCall &call) {
auto result = Call();
result.finishReason = [&] {
if (const auto reason = call.vreason()) {
switch (reason->type()) {
case mtpc_phoneCallDiscardReasonBusy:
return reason->match([](const MTPDphoneCallDiscardReasonBusy &) {
return CallFinishReason::Busy;
case mtpc_phoneCallDiscardReasonDisconnect:
}, [](const MTPDphoneCallDiscardReasonDisconnect &) {
return CallFinishReason::Disconnected;
case mtpc_phoneCallDiscardReasonHangup:
}, [](const MTPDphoneCallDiscardReasonHangup &) {
return CallFinishReason::Hangup;
case mtpc_phoneCallDiscardReasonMissed:
}, [](const MTPDphoneCallDiscardReasonMissed &) {
return CallFinishReason::Missed;
}
}, [](const MTPDphoneCallDiscardReasonAllowGroupCall &) {
return CallFinishReason::AllowGroupCall;
});
Unexpected("Call reason type.");
}
return CallFinishReason::Hangup;

View file

@ -46,6 +46,7 @@ enum class CallFinishReason : char {
Busy,
Disconnected,
Hangup,
AllowGroupCall,
};
struct SharedContact final {