RemoteAdmin:admin broadcast

From OpenSimulator

Revision as of 05:00, 30 April 2018 by Manni (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

admin_broadcast remotely allows to broadcast a general alert to all agents in a region


Contents

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>
Personal tools
General
About This Wiki