(self, command, common_parameters=None, unique_parameters=None,
             options=None, timeout=None)
return self._wait_for_resp(timeout=timeout)
The general structure of a query command is::

            <command> <options> <common parameters> <unique parameters>|<unique parameters>|...

        Examples are here worth a thousand words:

        >>> # clientaddperm cldbid=16 permid=17276 permvalue=50 permskip=1|permid=21415 permvalue=20 permskip=0
        >>> ts3conn.send(
        ...     command = "clientaddperm",
        ...     common_paramters = {"cldbid": 16},
        ...     parameterlist = [
        ...         {"permid": 17276, "permvalue": 50, "permskip": 1},
        ...         {"permid": 21415, "permvalue": 20, "permskip": 0}
        ...         ]
        ...     )
        >>> # clientlist -uid -away
        >>> ts3conn.send(
        ...     command = "clientlist",
        ...     options = ["uid", "away"]
        ...     )

        .. seealso::
            :meth:`recv`, :meth:`wait_for_resp`
The general structure of a query command is::
The general structure of a query command is ::
def send(self, command, common_parameters=None, unique_parameters=None,
             options=None, timeout=None):
        """
        The general structure of a query command is::

            <command> <options> <common parameters> <unique parameters>|<unique parameters>|...

        Examples are here worth a thousand words:

        >>> # clientaddperm cldbid=16 permid=17276 permvalue=50 permskip=1|permid=21415 permvalue=20 permskip=0
        >>> ts3conn.send(
        ...     command = "clientaddperm",
        ...     common_paramters = {"cldbid": 16},
        ...     parameterlist = [
        ...         {"permid": 17276, "permvalue": 50, "permskip": 1},
        ...         {"permid": 21415, "permvalue": 20, "permskip": 0}
        ...         ]
        ...     )
        >>> # clientlist -uid -away
        >>> ts3conn.send(
        ...     command = "clientlist",
        ...     options = ["uid", "away"]
        ...     )

        .. seealso::
            :meth:`recv`, :meth:`wait_for_resp`
        """
        # Escape the command and build the final query command string.
        if not isinstance(command, str):
            raise TypeError("*command* has to be a string.")

        command = command
        common_parameters = TS3Escape.escape_parameters(common_parameters)
        unique_parameters = TS3Escape.escape_parameterlist(unique_parameters)
        options = TS3Escape.escape_options(options)

        query_command = command\
                        + " " + common_parameters\
                        + " " +  unique_parameters\
                        + " " + options \
                        + "\n\r"
        query_command = query_command.encode()

        # Send the command.
        self._telnet_conn.write(query_command)

        # To identify the response when we receive it.
        self._num_pending_queries += 1

        return self._wait_for_resp(timeout=timeout)
def send ( self , command , common_parameters = None , unique_parameters = None , options = None , timeout = None ) : # Escape the command and build the final query command string. if not isinstance ( command , str ) : raise TypeError ( "*command* has to be a string." ) command = command common_parameters = TS3Escape . escape_parameters ( common_parameters ) unique_parameters = TS3Escape . escape_parameterlist ( unique_parameters ) options = TS3Escape . escape_options ( options ) query_command = command + " " + common_parameters + " " + unique_parameters + " " + options + "\n\r" query_command = query_command . encode ( ) # Send the command. self . _telnet_conn . write ( query_command ) # To identify the response when we receive it. self . _num_pending_queries += 1 return self . _wait_for_resp ( timeout = timeout )