public async Task <Tuple <EstablishPresenceResult, string> > EstablishChildConnectionToRegionAsync(ScenePresence avatar, AgentCircuitData a, SimpleRegionInfo reg)
        {
            string capsPath = CapsUtil.GetFullCapsSeedURL(reg.InsecurePublicHTTPServerURI, a.CapsPath);

            Tuple <bool, string> createResult = await m_interregionCommsOut.SendCreateRemoteChildAgentAsync(reg, a);

            if (createResult.Item1)
            {
                IPEndPoint endPoint = reg.ExternalEndPoint;

                IEventQueue eq = avatar.Scene.RequestModuleInterface <IEventQueue>();
                if (!eq.EnableSimulator(reg.RegionHandle, endPoint, avatar.UUID))
                {
                    m_log.ErrorFormat("[INTERGRID]: Could not enqueue eq.EnableSimulator for {0}", avatar.Name);
                    return(Tuple.Create(EstablishPresenceResult.ClientSignallingFailed, "Could not enqueue EnableSimulator"));
                }

                if (!eq.EstablishAgentCommunication(avatar.UUID, endPoint, capsPath))
                {
                    m_log.ErrorFormat("[INTERGRID]: Could not enqueue eq.EstablishAgentCommunication for {0}", avatar.Name);
                    return(Tuple.Create(EstablishPresenceResult.ClientSignallingFailed, "Could not enqueue EstablishAgentCommunication"));
                }

                return(Tuple.Create(EstablishPresenceResult.Success, String.Empty));
            }
            else
            {
                return(Tuple.Create(EstablishPresenceResult.ErrorInformingRegion, createResult.Item2));
            }
        }