Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim
commit
398bb2149a
|
@ -81,16 +81,20 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Add an inventory item to a prim in this group.
|
/// Add an inventory item from a user's inventory to a prim in this scene object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="remoteClient"></param>
|
/// <param name="remoteClient">The client adding the item.</param>
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID">The local ID of the part receiving the add.</param>
|
||||||
/// <param name="item"></param>
|
/// <param name="item">The user inventory item being added.</param>
|
||||||
/// <param name="copyItemID">The item UUID that should be used by the new item.</param>
|
/// <param name="copyItemID">The item UUID that should be used by the new item.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool AddInventoryItem(IClientAPI remoteClient, uint localID,
|
public bool AddInventoryItem(IClientAPI remoteClient, uint localID,
|
||||||
InventoryItemBase item, UUID copyItemID)
|
InventoryItemBase item, UUID copyItemID)
|
||||||
{
|
{
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[PRIM INVENTORY]: Adding inventory item {0} from {1} to part with local ID {2}",
|
||||||
|
// item.Name, remoteClient.Name, localID);
|
||||||
|
|
||||||
UUID newItemId = (copyItemID != UUID.Zero) ? copyItemID : item.ID;
|
UUID newItemId = (copyItemID != UUID.Zero) ? copyItemID : item.ID;
|
||||||
|
|
||||||
SceneObjectPart part = GetChildPart(localID);
|
SceneObjectPart part = GetChildPart(localID);
|
||||||
|
@ -132,15 +136,20 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
taskItem.GroupPermissions = item.GroupPermissions;
|
taskItem.GroupPermissions = item.GroupPermissions;
|
||||||
taskItem.NextPermissions = item.NextPermissions;
|
taskItem.NextPermissions = item.NextPermissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
taskItem.Flags = item.Flags;
|
taskItem.Flags = item.Flags;
|
||||||
|
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[PRIM INVENTORY]: Flags are 0x{0:X} for item {1} added to part {2} by {3}",
|
||||||
|
// taskItem.Flags, taskItem.Name, localID, remoteClient.Name);
|
||||||
|
|
||||||
// TODO: These are pending addition of those fields to TaskInventoryItem
|
// TODO: These are pending addition of those fields to TaskInventoryItem
|
||||||
// taskItem.SalePrice = item.SalePrice;
|
// taskItem.SalePrice = item.SalePrice;
|
||||||
// taskItem.SaleType = item.SaleType;
|
// taskItem.SaleType = item.SaleType;
|
||||||
taskItem.CreationDate = (uint)item.CreationDate;
|
taskItem.CreationDate = (uint)item.CreationDate;
|
||||||
|
|
||||||
bool addFromAllowedDrop = false;
|
bool addFromAllowedDrop = false;
|
||||||
if (remoteClient!=null)
|
if (remoteClient != null)
|
||||||
{
|
{
|
||||||
addFromAllowedDrop = remoteClient.AgentId != part.OwnerID;
|
addFromAllowedDrop = remoteClient.AgentId != part.OwnerID;
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,29 +117,40 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
||||||
{
|
{
|
||||||
using (XmlTextReader reader = new XmlTextReader(sr))
|
using (XmlTextReader reader = new XmlTextReader(sr))
|
||||||
{
|
{
|
||||||
reader.Read();
|
try
|
||||||
if (reader.Name != "CoalescedObject")
|
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
reader.Read();
|
||||||
// "[COALESCED SCENE OBJECTS SERIALIZER]: TryFromXml() root element was {0} so returning false",
|
if (reader.Name != "CoalescedObject")
|
||||||
// reader.Name);
|
{
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[COALESCED SCENE OBJECTS SERIALIZER]: TryFromXml() root element was {0} so returning false",
|
||||||
|
// reader.Name);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
coa = new CoalescedSceneObjects(UUID.Zero);
|
||||||
|
reader.Read();
|
||||||
|
|
||||||
|
while (reader.NodeType != XmlNodeType.EndElement && reader.Name != "CoalescedObject")
|
||||||
|
{
|
||||||
|
if (reader.Name == "SceneObjectGroup")
|
||||||
|
{
|
||||||
|
string soXml = reader.ReadOuterXml();
|
||||||
|
coa.Add(SceneObjectSerializer.FromOriginalXmlFormat(soXml));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
reader.ReadEndElement(); // CoalescedObject
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat(
|
||||||
|
"[COALESCED SCENE OBJECTS SERIALIZER]: Deserialization of xml failed with {0} {1}",
|
||||||
|
e.Message, e.StackTrace);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
coa = new CoalescedSceneObjects(UUID.Zero);
|
|
||||||
reader.Read();
|
|
||||||
|
|
||||||
while (reader.NodeType != XmlNodeType.EndElement && reader.Name != "CoalescedObject")
|
|
||||||
{
|
|
||||||
if (reader.Name == "SceneObjectGroup")
|
|
||||||
{
|
|
||||||
string soXml = reader.ReadOuterXml();
|
|
||||||
coa.Add(SceneObjectSerializer.FromOriginalXmlFormat(soXml));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
reader.ReadEndElement(); // CoalescedObject
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -298,10 +298,20 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (null != objectAsset)
|
if (null != objectAsset)
|
||||||
{
|
{
|
||||||
string xml = Utils.BytesToString(objectAsset.Data);
|
string xml = Utils.BytesToString(objectAsset.Data);
|
||||||
SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml);
|
|
||||||
|
CoalescedSceneObjects coa;
|
||||||
if (null != sog)
|
if (CoalescedSceneObjectsSerializer.TryFromXml(xml, out coa))
|
||||||
GatherAssetUuids(sog, assetUuids);
|
{
|
||||||
|
foreach (SceneObjectGroup sog in coa.Objects)
|
||||||
|
GatherAssetUuids(sog, assetUuids);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml);
|
||||||
|
|
||||||
|
if (null != sog)
|
||||||
|
GatherAssetUuids(sog, assetUuids);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -391,7 +391,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
|
|
||||||
string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse);
|
string r = LLSDHelpers.SerialiseLLSDReply(voiceAccountResponse);
|
||||||
|
|
||||||
m_log.DebugFormat("[FreeSwitchVoice][PROVISIONVOICE]: avatar \"{0}\": {1}", avatarName, r);
|
// m_log.DebugFormat("[FreeSwitchVoice][PROVISIONVOICE]: avatar \"{0}\": {1}", avatarName, r);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -458,8 +458,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
|
|
||||||
if ((land.Flags & (uint)ParcelFlags.AllowVoiceChat) == 0)
|
if ((land.Flags & (uint)ParcelFlags.AllowVoiceChat) == 0)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": voice not enabled for parcel",
|
// m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": voice not enabled for parcel",
|
||||||
scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName);
|
// scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName);
|
||||||
channelUri = String.Empty;
|
channelUri = String.Empty;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -474,8 +474,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
parcelVoiceInfo = new LLSDParcelVoiceInfoResponse(scene.RegionInfo.RegionName, land.LocalID, creds);
|
parcelVoiceInfo = new LLSDParcelVoiceInfoResponse(scene.RegionInfo.RegionName, land.LocalID, creds);
|
||||||
string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo);
|
string r = LLSDHelpers.SerialiseLLSDReply(parcelVoiceInfo);
|
||||||
|
|
||||||
m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": {4}",
|
// m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": {4}",
|
||||||
scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName, r);
|
// scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName, r);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -850,16 +850,25 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
|
||||||
|
|
||||||
Hashtable requestBody = ParseRequestBody((string)request["body"]);
|
Hashtable requestBody = ParseRequestBody((string)request["body"]);
|
||||||
|
|
||||||
string section = (string) requestBody["section"];
|
string section = (string) requestBody["section"];
|
||||||
|
|
||||||
m_log.DebugFormat("[FreeSwitchVoice]: Received request for config section {0}", section);
|
|
||||||
|
|
||||||
if (section == "directory")
|
if (section == "directory")
|
||||||
|
{
|
||||||
|
string eventCallingFunction = (string)requestBody["Event-Calling-Function"];
|
||||||
|
m_log.DebugFormat(
|
||||||
|
"[FreeSwitchVoice]: Received request for config section directory, event calling function '{0}'",
|
||||||
|
eventCallingFunction);
|
||||||
|
|
||||||
response = m_FreeswitchService.HandleDirectoryRequest(requestBody);
|
response = m_FreeswitchService.HandleDirectoryRequest(requestBody);
|
||||||
|
}
|
||||||
else if (section == "dialplan")
|
else if (section == "dialplan")
|
||||||
|
{
|
||||||
|
m_log.DebugFormat("[FreeSwitchVoice]: Received request for config section dialplan");
|
||||||
|
|
||||||
response = m_FreeswitchService.HandleDialplanRequest(requestBody);
|
response = m_FreeswitchService.HandleDialplanRequest(requestBody);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
m_log.WarnFormat("[FreeSwitchVoice]: Unknown section {0} was requested.", section);
|
m_log.WarnFormat("[FreeSwitchVoice]: Unknown section {0} was requested from config.", section);
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,10 +84,11 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
public Meshmerizer(IConfigSource config)
|
public Meshmerizer(IConfigSource config)
|
||||||
{
|
{
|
||||||
IConfig start_config = config.Configs["Startup"];
|
IConfig start_config = config.Configs["Startup"];
|
||||||
|
IConfig mesh_config = config.Configs["Mesh"];
|
||||||
|
|
||||||
decodedSculptMapPath = start_config.GetString("DecodedSculptMapPath","j2kDecodeCache");
|
decodedSculptMapPath = start_config.GetString("DecodedSculptMapPath","j2kDecodeCache");
|
||||||
cacheSculptMaps = start_config.GetBoolean("CacheSculptMaps", cacheSculptMaps);
|
cacheSculptMaps = start_config.GetBoolean("CacheSculptMaps", cacheSculptMaps);
|
||||||
useMeshiesPhysicsMesh = start_config.GetBoolean("UseMeshiesPhysicsMesh", useMeshiesPhysicsMesh);
|
useMeshiesPhysicsMesh = mesh_config.GetBoolean("UseMeshiesPhysicsMesh", useMeshiesPhysicsMesh);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace OpenSim.Services.FreeswitchService
|
||||||
|
|
||||||
foreach (DictionaryEntry item in request)
|
foreach (DictionaryEntry item in request)
|
||||||
{
|
{
|
||||||
m_log.InfoFormat("[FreeSwitchDirectory]: requestBody item {0} {1}",item.Key, item.Value);
|
// m_log.InfoFormat("[FreeSwitchDirectory]: requestBody item {0} {1}",item.Key, item.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
string requestcontext = (string) request["Hunt-Context"];
|
string requestcontext = (string) request["Hunt-Context"];
|
||||||
|
@ -146,10 +146,8 @@ namespace OpenSim.Services.FreeswitchService
|
||||||
//domain=9.20.151.43
|
//domain=9.20.151.43
|
||||||
//ip=9.167.220.137 // this is the correct IP rather than sip_contact_host above when through a vpn or NAT setup
|
//ip=9.167.220.137 // this is the correct IP rather than sip_contact_host above when through a vpn or NAT setup
|
||||||
|
|
||||||
foreach (DictionaryEntry item in request)
|
// foreach (DictionaryEntry item in request)
|
||||||
{
|
// m_log.DebugFormat("[FreeSwitchDirectory]: requestBody item {0} {1}", item.Key, item.Value);
|
||||||
m_log.DebugFormat("[FreeSwitchDirectory]: requestBody item {0} {1}", item.Key, item.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
string eventCallingFunction = (string) request["Event-Calling-Function"];
|
string eventCallingFunction = (string) request["Event-Calling-Function"];
|
||||||
if (eventCallingFunction == null)
|
if (eventCallingFunction == null)
|
||||||
|
|
|
@ -149,12 +149,6 @@
|
||||||
; to false if you have compatibility problems.
|
; to false if you have compatibility problems.
|
||||||
;CacheSculptMaps = true
|
;CacheSculptMaps = true
|
||||||
|
|
||||||
; if you use Meshmerizer and want collisions for meshies, setting this to true
|
|
||||||
; will cause OpenSim to attempt to decode meshies assets, extract the physics
|
|
||||||
; mesh, and use it for collisions. This is currently experimental code and enabling
|
|
||||||
; it may cause unexpected physics problems.
|
|
||||||
;UseMeshiesPhysicsMesh = false
|
|
||||||
|
|
||||||
; Choose one of the physics engines below
|
; Choose one of the physics engines below
|
||||||
; OpenDynamicsEngine is by some distance the most developed physics engine
|
; OpenDynamicsEngine is by some distance the most developed physics engine
|
||||||
; basicphysics effectively does not model physics at all, making all objects phantom
|
; basicphysics effectively does not model physics at all, making all objects phantom
|
||||||
|
@ -461,6 +455,12 @@
|
||||||
; default is true
|
; default is true
|
||||||
ColladaMesh = true
|
ColladaMesh = true
|
||||||
|
|
||||||
|
; if you use Meshmerizer and want collisions for meshies, setting this to true
|
||||||
|
; will cause OpenSim to attempt to decode meshies assets, extract the physics
|
||||||
|
; mesh, and use it for collisions. This is currently experimental code and enabling
|
||||||
|
; it may cause unexpected physics problems.
|
||||||
|
;UseMeshiesPhysicsMesh = false
|
||||||
|
|
||||||
|
|
||||||
[ODEPhysicsSettings]
|
[ODEPhysicsSettings]
|
||||||
;##
|
;##
|
||||||
|
|
|
@ -117,10 +117,6 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
|
||||||
; EchoPort = 50505
|
; EchoPort = 50505
|
||||||
; AttemptSTUN = false
|
; AttemptSTUN = false
|
||||||
|
|
||||||
LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
|
|
||||||
;; IP of your FS server
|
|
||||||
; ServerAddress = 127.0.0.1
|
|
||||||
|
|
||||||
; * This is the new style authentication service. Currently, only MySQL
|
; * This is the new style authentication service. Currently, only MySQL
|
||||||
; * is implemented.
|
; * is implemented.
|
||||||
; *
|
; *
|
||||||
|
|
Loading…
Reference in New Issue