':param message: The message to which a reply is constructed
:param bindings: Which bindings can be used.
:param descr_type: Type of descriptor (spssp, idpsso, )
:return: Dictionary'

def response_args(self, message, bindings=None, descr_type=''):

    info = {'in_response_to': message.id}
    if isinstance(message, AuthnRequest):
        rsrv = 'assertion_consumer_service'
        descr_type = 'spsso'
        info['sp_entity_id'] = message.issuer.text
        info['name_id_policy'] = message.name_id_policy
    elif isinstance(message, LogoutRequest):
        rsrv = 'single_logout_service'
    elif isinstance(message, AttributeQuery):
        info['sp_entity_id'] = message.issuer.text
        rsrv = 'attribute_consuming_service'
        descr_type = 'spsso'
    elif isinstance(message, ManageNameIDRequest):
        rsrv = 'manage_name_id_service'
    elif isinstance(message, AssertionIDRequest):
        rsrv = ''
    elif isinstance(message, ArtifactResolve):
        rsrv = ''
    elif isinstance(message, AssertionIDRequest):
        rsrv = ''
    elif isinstance(message, NameIDMappingRequest):
        rsrv = ''
    else:
        raise SAMLError('No    support    for    this    type    of    query')
    if (bindings == [BINDING_SOAP]):
        info['binding'] = BINDING_SOAP
        info['destination'] = ''
        return info
    if rsrv:
        if (not descr_type):
            if (self.entity_type == 'sp'):
                descr_type = 'idpsso'
            else:
                descr_type = 'spsso'
        (binding, destination) = self.pick_binding(rsrv, bindings, descr_type=descr_type, request=message)
        info['binding'] = binding
        info['destination'] = destination
    return info
