RPC using JSON-RPC and XML-RPC (using PECL's xmlrpc_encode_request and xmlrpc_decode functions) is supported.

This allows external applications, such as websites, to execute remote procedure calls to Anope in real time.

Currently there are 5 supported RPC calls, provided by rpc_main:

checkAuthentication - Takes two parameters, an account name and a password. Checks if the account name is valid and the password
                      is correct for the account name, useful for making login pages on websites.

command - Takes three parameters, a service name (BotServ, ChanServ, NickServ), a user name (whether online or not), and the command
          to execute. This will execute the given command to Anope using the given service name. If the user given is online, the
	  command reply will go to them, if not it is returned by RPC.

stats - Takes no parameters, returns miscellaneous stats that can be found in the /operserv stats command.

notice - Takes three parameters, source user, target user, and message. Sends a message to the user.

RPC was designed to be used with db_sql, and will not return any information that can be pulled from the SQL
database, such as accounts and registered channel information. It is instead used for pulling realtime data such
as users and channels currently online. For examples on how to use these calls in PHP, see xmlrpc.php in docs/RPC.

Also note that when using XMLRPC the parameter named "id" is reserved for query ID. If you pass a query to Anope containing a value for id. it will
be stored by Anope and the same id will be passed back in the result.
