RemoteAdmin:admin broadcast
From OpenSimulator
Jump to navigationJump to search
admin_broadcast remotely allows to broadcast a general alert to all agents in a region
Enabling admin_broadcast
If not all functions are enabled, use admin_dbroadcast to enable the function in the [RemoteAdmin] section
enabled_methods = admin_broadcast,...
Parameters
Required Parameters
These parameters are required
| parameter | Description | Values |
|---|---|---|
| message | Message to be broadcasted |
Optional Parameters
There are no optional parameters
Returned Parameters
Returned Parameters
These parameters are returned by Remote Admin
| parameter | Description | Values |
|---|---|---|
| success | true when successfull | true, false |
| error | error message when not successfull |
Error messages
No error Messages
Notes
- accepted is an optional returned parameter, probably used prior to success
Example
PHP
This example needs the RemoteAdmin PHP Class file available here.
<?php
// Including the RemoteAdmin PHP class.
include('RemoteAdmin.php');
// Instantiate the class with parameters identical to the Python example above
$myRemoteAdmin = new RemoteAdmin('127.0.0.1', 9000, 'secret');
// Invoke admin_create_user (multiple parameters)
$parameters = array('message' => 'Welcome in my region');
$myRemoteAdmin->SendCommand('admin_broadcast', $parameters);
?>
Python
# Author : DrScofield
# Source : http://xyzzyxyzzy.net/2008/01/23/using-pythons-xmlrpclib-with-opensim/
# License : BSD License
#!/usr/bin/python
import xmlrpclib
# XML-RPC URL (http_listener_port)
simulatorUrl = "http://127.0.0.1:9000"
# instantiate server object
simulator = xmlrpclib.Server(simulatorUrl)
# invoke admin_alert: requires password and message
simulator.admin_broadcast({'password': 'secret', 'message': 'the answer is 42'})
Example 2 - admin_broadcast - Python 3.6
#!/usr/bin/python3
# admin_broadcast senden einer Nachricht an alle in einer Region.
# Python 3.6 - 21.04.2018 by Manfred Aabye
# Module laden
import xmlrpc.client
# Information
print('---------------------------------------------------------------------')
print('Setup: Opensim.ini - Del ; - ConsoleUser - ConsolePass')
print('---------------------------------------------------------------------')
print('Example:')
print('---------------------------------------------------------------------')
print('SimulatorAdress = http://127.0.0.1:9000/ or http://myserver.com:9000/')
print('ConsoleUser = Test')
print('ConsolePass = secret')
print('RegionMessage = This is a beautiful text on a beautiful day.')
print('---------------------------------------------------------------------')
# Abfragen
SimulatorAdress = input('SimulatorAdress:')
ConsoleUser = input('ConsoleUser:')
ConsolePass = input('ConsolePass:')
RegionMessage = input('RegionMessage:')
# Funktion admin_broadcast
def admin_broadcast():
# Server Initialisieren
Simulator = xmlrpc.client.Server(SimulatorAdress)
# Password und Nachricht senden RegionMessage
Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})
# admin_broadcast Aufruf
admin_broadcast()
# Ende admin_broadcast
Example 2b OpenSimAdmin_Broadcast.py
#!/usr/bin/python3
# admin_broadcast senden einer Nachricht an alle in einer Region.
# Python 3.6 - 21.04.2018 by Manfred Aabye Version 0.3
# import library
from appJar import gui
import xmlrpc.client
import configparser
def fehler():
app.errorBox("Login Fehler", "Datenfehler")
def hilfe():
app.infoBox("Hilfe", "Bitte Ihre Server Daten in die OpenSimAdmin.ini eintragen.")
# handle button events
def press(button):
if button == "Ende":
app.stop()
return
if button == "Hilfe":
hilfe()
return
if button == "Senden":
config = configparser.ConfigParser()
config.sections()
config.read('OpenSimAdmin.ini')
SimulatorAdress = config['DEFAULT']['SimulatorAdress']
ConsoleUser = config['DEFAULT']['ConsoleUser']
ConsolePass = config['DEFAULT']['ConsolePass']
RegionMessage = app.getTextArea('RegionMessage')
print("SimulatorAdress:", SimulatorAdress, "ConsoleUser:", "RegionMessage:", RegionMessage)
# Server Initialisieren
Simulator = xmlrpc.client.Server(SimulatorAdress)
Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})
return
# create a GUI variable called app
app = gui("Admin Broadcast", "640x480") # Fenster erstellen mit Namen und Groesse
app.setFont(12) # Textgroesse
# add & configure widgets - widgets get a name, to help referencing them later
app.addLabel("title", "admin broadcast") # Textueberschrift im Fenster
# Abfragen
app.addTextArea("RegionMessage")
# link the buttons to the function called press
app.addButtons(["Senden", "Hilfe", "Ende"], press)
# start GUI
app.go()
OpenSimAdmin.ini
[DEFAULT]
SimulatorAdress = http://127.0.0.1:9000/
ConsoleUser = Test
ConsolePass = secret
C#
This C# example is made as console project. you need to use the XMLRPC.DLL that you can find in the opensim packadge.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Nwc.XmlRpc;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var ht = new Hashtable();
ht["password"] = "password";
ht["message"] = "Hello World";
var parameters = new List<Hashtable> { ht };
var rpc = new XmlRpcRequest("admin_broadcast", parameters);
rpc.Invoke("http://127.0.0.1:9999");
}
}
}
Xml
Request
<?xml version="1.0"?>
<methodCall>
<methodName>admin_broadcast</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>password</name>
<value>
<string>abcd</string>
</value>
</member>
<member>
<name>message</name>
<value>
<string>test</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
Response
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>accepted</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>success</name>
<value>
<boolean>1</boolean>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>