protected boolean call(final Principal principal, final Ticket tokenTicket,
                           final RequestContext requestContext) {
        return FunctionUtils.doIf(communicationsManager.isPhoneOperatorDefined(),
            Unchecked.supplier(() -> {
                val phoneProperties = properties.getPhone();
                val token = tokenTicket.getId();
                val tokenWithoutPrefix = token.substring(CasSimpleMultifactorAuthenticationTicket.PREFIX.length() + 1);
                val messageBody = buildMessageBody(phoneProperties, token, tokenWithoutPrefix);
                val callRequest = PhoneCallRequest.builder()
                    .from(phoneProperties.getFrom())
                    .principal(principal)
                    .attribute(phoneProperties.getAttributeName())
                    .text(messageBody)
                    .build();
                return communicationsManager.phoneCall(callRequest);
            }), () -> false).get();
    }
This is {@link CasSimpleMultifactorMakePhoneCall}.

@author Misagh Moayyed
@since 7.0.0
support/cas-server-support-simple-mfa-core/src/main/java/org/apereo/cas/mfa/simple/web/flow/CasSimpleMultifactorMakePhoneCall.java