Topic Last Modified: 2011-04-05

The previous topic, Define Edge Server Input File, defined the building blocks for the input file required to merge the legacy topology using the Lync Server Management Shell. This topic dives deeper into the layout and purpose of the input.xml file. This topic explains the various parameters you need to set when authoring the Edge Server input.xml file.

The input.xml file, which can be created using any text editor, should look something like this:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<TopologyInput xmlns="urn:schema:Microsoft.Rtc.Management.Deploy.LegacyUserInput.2008"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EdgeClusters>
	<EdgeCluster AP="true" MR="true" DP="true" Version="OCS2007R2">
	<LoadBalancer InternalFqdn="edgeint.fqdn" ExternalDPFqdn="ExternalDP.Fqdn " />  
	<Machines>
	<Machine InternalFqdn = "node1.fqdn"/>
	<Machine InternalFqdn = "anothernode1.fqdn"/>
	</Machines>
	<Ports InternalAPPort="5061" InternalDPPort="8057"	ExternalDPPort="443"/>
	<DirectorOrEdgeNextHop Fqdn="director.fqdn.com " />
	</EdgeCluster>
</EdgeClusters>
	<RegistrarClusterPort EnableAutoDiscoveryOfPorts = "false" Port = "5065" />
</TopologyInput>

So what does all that mean? Well, to begin with, your XML file should start with the following XML declaration: <?xml version="1.0" encoding="utf-8"?>

Note:
Although it is optional, the XML declaration helps avoid any confusion regarding the version or encoding type used in the file.

After the XML declaration you should then insert the <TopologyInput> element, like so:

Copy Code
<TopologyInput xmlns="urn:schema:Microsoft.Rtc.Management.Deploy.LegacyUserInput.2008"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

This element is very important: if <TopologyInput> is not present then schema validation will not take place. In turn, that could cause Merge-CsLegacyTopology to try and merge a poorly-formed XML file. Because this is an XML file, it is important that this be a well-formed XML file. As a result, you also need to add a closing tag for the <TopologyInput> element: </TopologyInput>

That means that your XML file should now look like this:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<TopologyInput xmlns="urn:schema:Microsoft.Rtc.Management.Deploy.LegacyUserInput.2008"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</TopologyInput>

With the basic file structure in place, you are now ready to identify the Edge Server components deployed in Office Communications Server. That is something you do inside the <EdgeClusters> element. With that in mind, your next step is to add opening and closing tags for the <EdgeClusters> element to the XML file:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<TopologyInput xmlns="urn:schema:Microsoft.Rtc.Management.Deploy.LegacyUserInput.2008"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<EdgeClusters>

</EdgeClusters>

</TopologyInput>

Inside the <EdgeClusters> element you then add as many as five child elements:

All that’s left now is to add the <RegistrarClusterPort> element; this is the section of the XML file where you define the port and the transport type for your Registrar cluster. A completed <RegistrarClusterPort> element, one that defines port 5065 and transport type MTLS, will look like the following:

Copy Code
<RegistrarClusterPort EnableAutoDiscoveryOfPorts = "false" Port = "5065" /> 

The following conditions apply to the EnableAutoDiscoveryOfPorts parameter:

So finally, that gives us an XML file that can be used with the Merge-CsLegacyTopology cmdlet:

Copy Code
<?xml version="1.0" encoding="utf-8"?>
<TopologyInput xmlns="urn:schema:Microsoft.Rtc.Management.Deploy.LegacyUserInput.2008"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EdgeClusters>
   <EdgeCluster AP="true" MR="true" DP="true" Version="OCS2007R2" FederationEnabled="true">
	<LoadBalancer InternalFqdn="edgeint.fqdn" ExternalDPFqdn="ExternalDP.Fqdn " />
	<Machines>
	<Machine InternalFqdn = "node1.fqdn"/>
	<Machine InternalFqdn = "anothernode1.fqdn"/>
	</Machines>
	<Ports InternalAPPort="5061" InternalDPPort="8057" ExternalDPPort="443"/> 
	<DirectorOrEdgeNextHop Fqdn="director.fqdn.com " />
   </EdgeCluster>
</EdgeClusters>
   <RegistrarClusterPort EnableAutoDiscoveryOfPorts = "false" Port = "5065" /> 
</TopologyInput>