# MumbleServer

## Overview

### module MumbleServer

## Class Index

Meta
  This is the meta interface.
MetaCallback
  Callback interface for Meta.
Server
  Per-server interface.
ServerAuthenticator
  Callback interface for server authentication.
ServerCallback
  Callback interface for servers.
ServerContextCallback
  Callback interface for context actions.
ServerUpdatingAuthenticator
  Callback interface for server authentication and registration.

## Interface Index

Meta
  This is the meta interface.
MetaCallback
  Callback interface for Meta.
Server
  Per-server interface.
ServerAuthenticator
  Callback interface for server authentication.
ServerCallback
  Callback interface for servers.
ServerContextCallback
  Callback interface for context actions.
ServerUpdatingAuthenticator
  Callback interface for server authentication and registration.

## Exception Index

InvalidCallbackException
  This is thrown when you supply an invalid callback.
InvalidChannelException
  This is thrown when you specify an invalid channel id.
InvalidInputDataException
  This is thrown when invalid input data was specified.
InvalidSecretException
  This is thrown when you supply the wrong secret in the calling context.
InvalidServerException
  This is thrown when you try to do an operation on a server that does not exist.
InvalidSessionException
  This is thrown when you specify an invalid session.
InvalidTextureException
  This is thrown when you try to set an invalid texture.
InvalidUserException
  This is thrown when you specify an invalid userid.
MurmurException
NestingLimitException
  This is thrown when the channel operation would exceed the channel nesting limit
ServerBootedException
  This happens if you try to fetch user or channel state on a stopped server, if you try to stop an already stopped server or start an already started server.
ServerFailureException
  This is thrown if Server::start fails, and should generally be the cause for some concern.
WriteOnlyException
  This is thrown when you ask the server to disclose something that should be secret.

## Structure Index

ACL
  Access Control List for a channel.
Ban
  A single ip mask for a ban.
Channel
  A channel.
Group
  A group.
LogEntry
  A entry in the log.
TextMessage
  A text message between users.
User
  A connected user.

## Sequence Index

ACLList
BanList
CertificateDer
CertificateList
ChannelList
GroupList
GroupNameList
IdList
IntList
LogList
NameList
NetAddress
  A network address in IPv6 format.
ServerList
Texture
TreeList
UserList

## Dictionary Index

ChannelMap
ConfigMap
IdMap
NameMap
UserInfoMap
  User information map.
UserMap

## Constant Index

ContextChannel
  Context for actions in the Channel menu.
ContextServer
  Context for actions in the Server menu.
ContextUser
  Context for actions in the User menu.
PermissionBan
  Ban user from server.
PermissionEnter
  Enter channel.
PermissionKick
  Kick user from server.
PermissionLinkChannel
  Link this channel.
PermissionMakeChannel
  Make new channel as a subchannel of this channel.
PermissionMakeTempChannel
  Make new temporary channel as a subchannel of this channel.
PermissionMove
  Move users from channel.
PermissionMuteDeafen
  Mute and deafen other users in this channel.
PermissionRegister
  Register and unregister users.
PermissionRegisterSelf
  Register and unregister users.
PermissionSpeak
  Speak in channel.
PermissionTextMessage
  Send text message to channel.
PermissionTraverse
  Traverse channel.
PermissionWhisper
  Whisper to channel.
PermissionWrite
  Write access to channel control.
ResetUserContent
  Reset the comment or avatar of a user.

## Enumeration Index

ChannelInfo
UserInfo

## Sequences

sequence<ACL> ACLList

  #### Used By

  Server::getACL
  Server::setACL

sequence<Ban> BanList

  #### Used By

  Server::getBans
  Server::setBans

sequence<byte> CertificateDer

  #### Used By

  CertificateList

sequence<CertificateDer> CertificateList

  #### Used By

  Server::getCertificateList
  ServerAuthenticator::authenticate

sequence<Channel> ChannelList

sequence<Group> GroupList

  #### Used By

  Server::getACL
  Server::setACL

sequence<string> GroupNameList

  #### Used By

  ServerAuthenticator::authenticate

sequence<int> IdList

  #### Used By

  Server::getUserNames
  Server::sendWelcomeMessage

sequence<int> IntList

  #### Used By

  Channel::links
  Group::add
  Group::members
  Group::remove
  Server::getListeningChannels
  Server::getListeningUsers
  TextMessage::channels
  TextMessage::sessions
  TextMessage::trees

sequence<LogEntry> LogList

  #### Used By

  Server::getLog

sequence<string> NameList

  #### Used By

  Server::getUserIds

[ "python:seq:tuple" ] sequence<byte> NetAddress

  A network address in IPv6 format.

  #### Used By

  Ban::address
  User::address

sequence<Server*> ServerList

  #### Used By

  Meta::getAllServers
  Meta::getBootedServers

sequence<byte> Texture

  #### Used By

  Server::getTexture
  Server::setTexture
  ServerAuthenticator::idToTexture
  ServerUpdatingAuthenticator::setTexture

sequence<Tree> TreeList

  #### Used By

  Tree::children

sequence<User> UserList

  #### Used By

  Tree::users

## Dictionaries

dictionary<int, Channel> ChannelMap

  #### Used By

  Server::getChannels

dictionary<string, string> ConfigMap

  #### Used By

  Meta::getDefaultConf
  Server::getAllConf

dictionary<string, int> IdMap

  #### Used By

  Server::getUserIds

dictionary<int, string> NameMap

  #### Used By

  Server::getRegisteredUsers
  Server::getUserNames
  ServerUpdatingAuthenticator::getRegisteredUsers

dictionary<UserInfo, string> UserInfoMap

  User information map. Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.

  #### Used By

  Server::getRegistration
  Server::registerUser
  Server::updateRegistration
  ServerAuthenticator::getInfo
  ServerUpdatingAuthenticator::registerUser
  ServerUpdatingAuthenticator::setInfo

dictionary<int, User> UserMap

  #### Used By

  Server::getUsers

## Constants

const int ContextChannel = 0x02;

  Context for actions in the Channel menu.

const int ContextServer = 0x01;

  Context for actions in the Server menu.

const int ContextUser = 0x04;

  Context for actions in the User menu.

const int PermissionBan = 0x20000;

  Ban user from server. Only valid on root channel.

const int PermissionEnter = 0x04;

  Enter channel.

const int PermissionKick = 0x10000;

  Kick user from server. Only valid on root channel.

const int PermissionLinkChannel = 0x80;

  Link this channel. You need this permission in both the source and destination channel to link channels, or in either channel to unlink them.

const int PermissionMakeChannel = 0x40;

  Make new channel as a subchannel of this channel.

const int PermissionMakeTempChannel = 0x400;

  Make new temporary channel as a subchannel of this channel.

const int PermissionMove = 0x20;

  Move users from channel. You need this permission in both the source and destination channel to move another user.

const int PermissionMuteDeafen = 0x10;

  Mute and deafen other users in this channel.

const int PermissionRegister = 0x40000;

  Register and unregister users. Only valid on root channel.

const int PermissionRegisterSelf = 0x80000;

  Register and unregister users. Only valid on root channel.

const int PermissionSpeak = 0x08;

  Speak in channel.

const int PermissionTextMessage = 0x200;

  Send text message to channel.

const int PermissionTraverse = 0x02;

  Traverse channel. Without this, a client cannot reach subchannels, no matter which privileges he has there.

const int PermissionWhisper = 0x100;

  Whisper to channel. This is different from Speak, so you can set up different permissions.

const int PermissionWrite = 0x01;

  Write access to channel control. Implies all other permissions (except Speak).

const int ResetUserContent = 0x100000;

  Reset the comment or avatar of a user. Only valid on root channel.