; * Run
; * $ Robust.exe -inifile Robust.ini
; *

; * The startup section lists all the connectors to start up in this server
; * instance. This may be only one, or it may be the entire server suite.
; * Multiple connectors should be separated by commas.
; *
; * These are the IN connectors the server uses, the in connectors
; * read this config file and load the needed service and database connectors
; *
; *  The full syntax of a connector string is:
; * [[<ConfigName>@]<port>/]<dll name>[:<class name>]
; *
[Startup]
  ; Place to create a PID file
  ; If no path if specified then a PID file is not created.
  ; PIDFile = "/tmp/my.pid"

  ; Plugin Registry Location
  ; Set path to directory for plugin registry. Information
  ; about the registered repositories and installed plugins
  ; will be stored here
  ; The Robust.exe process must have R/W access to the location 
  RegistryLocation = "."

  ; Modular configurations
  ; Set path to directory for modular ini files...
  ; The Robust.exe process must have R/W access to the location 
  ConfigDirectory = "."

[ServiceList]
AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below)
;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
OpenIdServerConnector = "8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
AvatarServiceConnector = "8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
LLLoginServiceInConnector = "8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
PresenceServiceConnector = "8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
UserAccountServiceConnector = "8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
;; Uncomment this if you want offline IM to work
;OfflineIMServiceConnector = "8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
;; Uncomment this if you want Groups V2 to work
;GroupsServiceConnector = "8003/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"

;; Uncomment for UserProfiles see [UserProfilesService] to configure...
; UserProfilesServiceConnector = "8002/OpenSim.Server.Handlers.dll:UserProfilesConnector"

; * This is common for all services, it's the network setup for the entire
; * server instance, if none is specified above
; *
[Network]
    port = 8003

    ; HTTPS for "Out of band" management applications such as the remote admin
    ; module. May specify https_main = True to make the main http server
    ; use https or "False" to make the main server HTTP
    ; https_main = False
    ;
    ; Create https_listener = "True" will create a listener on the port
    ; specified. Provide the path to your server certificate along with it's
    ; password
    ; https_listener = False
    ;
    ; Set our listener to this port
    ; https_port = 0
    ;
    ; Path to X509 certificate
    ; cert_path = "path/to/cert.p12"
    ;
    ; Password for cert
    ; cert_pass = "password"


; * The following are for the remote console
; * They have no effect for the local or basic console types
; * Leave commented to diable logins to the console
;ConsoleUser = Test
;ConsolePass = secret
;ConsolePort = 0

[DatabaseService]
    StorageProvider = "OpenSim.Data.MySQL.dll"
    ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;"

; * As an example, the below configuration precisely mimicks the legacy
; * asset server. It is read by the asset IN connector (defined above)
; * and it then loads the OUT connector (a local database module). That,
; * in turn, reads the asset loader and database connection information
; *
[AssetService]
    LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "./assets/AssetSets.xml"

    ; Allow maptile assets to remotely deleted by remote calls to the asset service.
    ; There is no harm in having this as false - it just means that historical maptile assets are not deleted.
    ; This only applies to maptiles served via the version 1 viewer mechanisms
    ; Default is false
    AllowRemoteDelete = false

    ; Allow all assets to be remotely deleted.
    ; Only set this to true if you are operating a grid where you control all calls to the asset service
    ; (where a necessary condition is that you control all simulators) and you need this for admin purposes.
    ; If set to true, AllowRemoteDelete = true is required as well.
    ; Default is false.
    AllowRemoteDeleteAllTypes = false

; * This configuration loads the inventory server modules. It duplicates
; * the function of the legacy inventory server
; *
[InventoryService]
    LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"

; * This is the new style grid service.
; * "Realm" is the table that is used for user lookup.
; * It defaults to "regions", which uses the legacy tables
; *
[GridService]
    LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
    ; Realm = "regions"
    ; AllowDuplicateNames = "True"

    ;; Next, we can specify properties of regions, including default and fallback regions
    ;; The syntax is: Region_<RegionName> = "<flags>"
    ;; or:            Region_<RegionID> = "<flags>"
    ;; where <flags> can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate
    ;;
    ;; DefaultRegion    If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.)
    ;;                  then this region becomes the destination.  Only the first online default region will be used.  If no DefaultHGRegion
    ;;                  is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified
    ;;                  an explicit region.
    ;;
    ;; DefaultHGRegion  If an avatar connecting via the hypergrid does not specify a region, then they are placed here.  Only the first online
    ;;                  region will be used.
    ;;
    ;; FallbackRegion   If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead.  These are tried in the 
    ;;                  order specified.  This only applies to local logins at this time, not Hypergrid connections.
    ;;
    ;; NoDirectLogin    A hypergrid user cannot directly connect to this region.  This does not apply to local logins.
    ;;
    ;; Persistent       When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
    ;;
    ;; Example specification:
    ; Region_Welcome_Area = "DefaultRegion, FallbackRegion"
    ; (replace spaces with underscore)

; * This is the configuration for the freeswitch server in grid mode
[FreeswitchService]
    LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"

    ;; The IP address of your FreeSWITCH server.
    ;; This address must be reachable by viewers.
    ; ServerAddress = 127.0.0.1

    ;; The following configuration parameters are optional

    ;; By default, this is the same as the ServerAddress
    ; Realm = 127.0.0.1

    ;; By default, this is the same as the ServerAddress on port 5060
    ; SIPProxy = 127.0.0.1:5060

    ;; Default is 5000ms
    ; DefaultTimeout = 5000

    ;; The dial plan context.  Default is "default"
    ; Context = default

    ;; Currently unused
    ; UserName = freeswitch

    ;; Currently unused
    ; Password = password

    ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
    ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
    ;; stun.freeswitch.org is not guaranteed to be running so use it in
    ;; production at your own risk    
    ; EchoServer = 127.0.0.1
    ; EchoPort = 50505
    ; AttemptSTUN = false

; * This is the new style authentication service. Currently, only MySQL
; * is implemented. 
; *
[AuthenticationService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"

    ;; Allow the service to process HTTP getauthinfo calls.
    ;; Default is false.
    ; AllowGetAuthInfo = false

    ;; Allow the service to process HTTP setauthinfo calls.
    ;; Default is false.
    ; AllowSetAuthInfo = false

    ;; Allow the service to process HTTP setpassword calls.
    ;; Default is false.
    ; AllowSetPassword = false

[OpenIdService]
    ; for the server connector
    AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
    UserAccountServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"

; * This is the new style authentication service. Currently, only MySQL
; * is implemented. "Realm" is the table that is used for user lookup.
; * It defaults to "useraccounts", which uses the new style.
; * Realm = "users" will use the legacy tables as an authentication source
; *
[UserAccountService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
    ; Realm = "useraccounts"

    ; These are for creating new accounts by the service
    AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
    PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
    GridService = "OpenSim.Services.GridService.dll:GridService"
    InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
    AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"

    ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 
    ;; to show a default "Ruth" avatar rather than a cloud for a newly created user.
    ;; Default is false
    CreateDefaultAvatarEntries = true

    ;; Allow the service to process HTTP createuser calls.
    ;; Default is false.
    ; AllowCreateUser = false

    ;; Allow the service to process HTTP setaccount calls.
    ;; Default is false.
    ; AllowSetAccount = false


[GridUserService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService"

[PresenceService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService"
    ; Set this to true to allow the use of advanced web services and multiple
    ; bots using one account
    AllowDuplicatePresences = false;

[AvatarService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService"

[FriendsService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService"

[LibraryService]
    LibraryName = "OpenSim Library"
    DefaultLibrary = "./inventory/Libraries.xml"

[LoginService]
    ; for the server connector
    LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService"
    ; for the service
    UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
    GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
    AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
    InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
    AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
    PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
    GridService = "OpenSim.Services.GridService.dll:GridService"
    SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
    LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService"
    FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"

    ; The minimum user level required for a user to be able to login.  0 by default
    ; If you disable a particular user's account then you can set their login level below this number.
    ; You can also change this level from the console though these changes will not be persisted.
    ; MinLoginLevel = 0

    ; Ask co-operative viewers to use a different currency name
    ;Currency = ""

    ;; Set minimum fee to publish classified
    ; ClassifiedFee = 0

    WelcomeMessage = "Welcome, Avatar!"
    AllowRemoteSetLoginLevel = "false"

    ; For V2 map
    MapTileURL = "http://127.0.0.1:8002";

    ; For V2/3 Web Profiles
    ; Work in progress: The ProfileServerURL/OpenIDServerURL are
    ; being used in a development viewer as support for webprofiles
    ; is being developed across the componets
    ;
    ; ProfileServerURL = "http://127.0.0.1/profiles/[AGENT_NAME]"
    ;
    ; For V2/V3 webapp authentication SSO
    ; OpenIDServerURL = "http://127.0.0.1/openid/openidserver/"

    ; For V3 destination guide
    ; DestinationGuide = "http://127.0.0.1/guide"

    ; For V3 avatar picker (( work in progress ))
    ; AvatarPicker = "http://127.0.0.1/avatars"

    ; If you run this login server behind a proxy, set this to true
    ; HasProxy = false

	;; Regular expressions for controlling which client versions are accepted/denied.
	;; An empty string means nothing is checked.
	;;
	;; Example 1: allow only these 3 types of clients (any version of them)
	;; AllowedClients = "Imprudence|Hippo|Second Life"
	;;
	;; Example 2: allow all clients except these
	;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
	;;
	;; Note that these are regular expressions, so every character counts.
	;; Also note that this is very weak security and should not be trusted as a reliable means
	;; for keeping bad clients out; modified clients can fake their identifiers.
	;;
	;;
    ;AllowedClients = ""
    ;DeniedClients = ""

    ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
    ;; Viewers do not listen to timezone sent by the server. They use Pacific Standard Time instead,
    ;; but rely on the server to calculate Daylight Saving Time. Sending another DST than US Pacific
    ;; would result in time inconsistencies between grids (during summer and around DST transition period)
    ;;   default    let OpenSim calculate US Pacific DST
    ;;   "none"     disable DST (equivallent to "local" with system set to GMT)
    ;;   "local"    force legacy behaviour (using local system time to calculate DST)
    ; DSTZone = "America/Los_Angeles;Pacific Standard Time"

    ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
    ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time
    ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not.
    ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids.
    ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST.
    ;; Options are
    ;;   "none"     no DST 
    ;;   "local"    use the server's only timezone to calculate DST.  This is previous OpenSimulator behaviour.
    ;;   "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings.
    ;;      'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows
    DSTZone = "America/Los_Angeles;Pacific Standard Time"

[MapImageService]
    LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService"
	; Set this if you want to change the default
	; TilesStoragePath = "maptiles"
	;
	; If for some reason you have the AddMapTile service outside the firewall (e.g. 8002),
	; you may want to set this. Otherwise, don't set it, because it's already protected.
	; GridService = "OpenSim.Services.GridService.dll:GridService"
	;
    ; Additionally, if you run this server behind a proxy, set this to true
    ; HasProxy = false


[Messaging]
    ; OfflineIM
    OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"

[GridInfoService]
    ; These settings are used to return information on a get_grid_info call.
    ; Client launcher scripts and third-party clients make use of this to
    ; autoconfigure the client and to provide a nice user experience. If you
    ; want to facilitate that, you should configure the settings here according
    ; to your grid or standalone setup.
    ;
    ; See http://opensimulator.org/wiki/GridInfo

    ; login uri: for grid this is the login server URI
    login = http://127.0.0.1:8002/

    ; long grid name: the long name of your grid
    gridname = "the lost continent of hippo"

    ; short grid name: the short name of your grid
    gridnick = "hippogrid"

    ; login page: optional: if it exists it will be used to tell the client to use
    ;                       this as splash page
    ;welcome = http://127.0.0.1/welcome

    ; helper uri: optional: if it exists if will be used to tell the client to use
    ;                       this for all economy related things
    ;economy = http://127.0.0.1:9000/

    ; web page of grid: optional: page providing further information about your grid
    ;about = http://127.0.0.1/about/

    ; account creation: optional: page providing further information about obtaining
    ;                             a user account on your grid
    ;register = http://127.0.0.1/register

    ; help: optional: page providing further assistance for users of your grid
    ;help = http://127.0.0.1/help

    ; password help: optional: page providing password assistance for users of your grid
    ;password = http://127.0.0.1/password

[UserProfilesService]
    LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService"
    Enabled = false
    ;; Configure this for separate profiles database
    ;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;"
    ;; Realm = UserProfiles
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService
    AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"


