def get_channel_access(channel=14, read_mode='non_volatile', **kwargs):
    '''
    :param kwargs:api_host='127.0.0.1' api_user='admin' api_pass='example' api_port=623

    :param channel: number [1:7]

    :param read_mode:
        - non_volatile  = get non-volatile Channel Access
        - volatile      = get present volatile (active) setting of Channel Access

    :param kwargs:
        - api_host=127.0.0.1
        - api_user=admin
        - api_pass=example
        - api_port=623
        - api_kg=None

    Return Data

        A Python dict with the following keys/values:

        .. code-block:: python

            {
                alerting:
                per_msg_auth:
                user_level_auth:
                access_mode:{ (ONE OF)
                    0: 'disabled',
                    1: 'pre_boot',
                    2: 'always',
                    3: 'shared'
                }
                privilege_level: { (ONE OF)
                    1: 'callback',
                    2: 'user',
                    3: 'operator',
                    4: 'administrator',
                    5: 'proprietary',
                }
            }

    CLI Examples:

    .. code-block:: bash

        salt-call ipmi.get_channel_access channel=1
    '''
    with _IpmiCommand(**kwargs) as s:
        return s.get_channel_access(channel)