<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _create_transfer_spec(self, call_args):
        ''' pass the transfer details to aspera and receive back a
            populated transfer spec complete with access token '''
        _paths = []
        for _file_pair in call_args.file_pair_list:
            _path = OrderedDict()
            if call_args.direction == enumAsperaDirection.SEND:
                _action = "upload_setup"
                _path['source'] = _file_pair.fileobj
                _path['destination'] = _file_pair.key
            else:
                _action = "download_setup"
                _path['source'] = _file_pair.key
                _path['destination'] = _file_pair.fileobj
            _paths.append(_path)

        # Add credentials before the transfer spec is requested.
        delegated_token = self._delegated_token_manager.get_token()
        _response = self._fetch_transfer_spec(_action, delegated_token, call_args.bucket, _paths)

        tspec_dict = json.loads(_response.content)['transfer_specs'][0]['transfer_spec']

        tspec_dict["destination_root"] = "/"

        if (call_args.transfer_config):
            tspec_dict.update(call_args.transfer_config.dict)
            if call_args.transfer_config.is_multi_session_all:
                tspec_dict['multi_session'] = 0
                _remote_host = tspec_dict['remote_host'].split('.')
                # now we append '-all' to the remote host
                _remote_host[0] += "-all"
                tspec_dict['remote_host'] = ".".join(_remote_host)
                logger.info("New remote_host(%s)" % tspec_dict['remote_host'])

        call_args.transfer_spec = json.dumps(tspec_dict)

        return True