<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_commandcall(prop, commands, command):
 """ Create CommandCall object with command :param prop: property :type prop: str :param commands: all commands :type commands: alignak.objects.command.Commands :param command: a command object :type command: str :return: a commandCall object :rtype: alignak.objects.commandcallitem.CommandCall """

        cc = {
            'commands': commands,
            'call': command
        }

        if hasattr(prop, 'enable_environment_macros'):
            cc['enable_environment_macros'] = prop.enable_environment_macros

        if hasattr(prop, 'poller_tag'):
            cc['poller_tag'] = prop.poller_tag
        elif hasattr(prop, 'reactionner_tag'):
            cc['reactionner_tag'] = prop.reactionner_tag

        return CommandCall(cc)