def METHOD_NAME(signal, user, include_contact_details):
    """
    Get reporter email and phone, redacted if needed.
    Note: contact details are redacted if the requesting user does not have
    "signals.sia_can_view_contact_details" and the override is not used.
    The override `include_contact_details` is used when a PDF generation is
    not triggered by a user but the contact details are needed. If no
    email or phone number is known it must not be redacted.
    """
    # Note: CityControl/Sigmax uses the `include_contact_details` override.
    if user and user.has_perm('signals.sia_can_view_contact_details') or include_contact_details:
        return signal.reporter.email, signal.reporter.phone
    return '*****' if signal.reporter.email else None, '*****' if signal.reporter.phone else None