<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE server>

<server>
   <!-- For detailed description of all these configuration attributes, please see the -->
   <!-- JBoss Remoting User's Guide or wiki (http://www.jboss.org/wiki/Wiki.jsp?page=Remoting_configuration) -->


   <!-- The NetworkRegistry contains all the local and remote -->
   <!-- servers that it recognizes.  The remote ones registered -->
   <!-- are dependant on the detectors running and which domains -->
   <!-- they are configured to identify.                         -->
   <mbean code="org.jboss.remoting.network.NetworkRegistry"
      name="jboss.remoting:service=NetworkRegistry"/>


   <!-- ******************************************************************** -->
   <!-- CONNECTORS/INVOKERS                                                  -->
   <!-- The following section covers all the different transport types       -->
   <!-- that can be configured for the Connector (socket, sslsocket, rmi     -->
   <!-- http, and https).                                                    -->
   <!-- ******************************************************************** -->

   <!-- The Connector is the core component of the remoting server service. -->
   <!-- It binds the remoting invoker (transport protocol, callback configuration, -->
   <!-- data marshalling, etc.) with the invocation handlers.  -->
   <!-- This particular Connector is for the standard socket protocol. -->
   <mbean code="org.jboss.remoting.transport.Connector"
      xmbean-dd="META-INF/connector.xml"
      name="jboss.remoting:service=Connector,transport=Socket"
      display-name="Socket transport Connector">

      <!-- Can either just specify the InvokerLocator attribute and not the invoker element in the -->
      <!-- Configuration attribute, or do the full invoker configuration in the in invoker element -->
      <!-- of the Configuration attribute. -->

      <!-- Remember that if you do use more than one param on the uri, will have to include as a CDATA, -->
      <!-- otherwise, parser will complain. -->
      <!-- <attribute name="InvokerLocator"><![CDATA[socket://${jboss.bind.address}:8084/?enableTcpNoDelay=false&clientMaxPoolSize=30]]></attribute> -->

      <attribute name="Configuration">
         <config>
            <!-- Other than transport type and handler, none of these configurations are required (will just defaults). -->
            <invoker transport="socket">
               <!-- The following are specific to socket invoker -->
               <attribute name="numAcceptThreads">1</attribute>
               <attribute name="maxPoolSize">303</attribute>
               <attribute name="clientMaxPoolSize" isParam="true">304</attribute>
               <attribute name="socketTimeout">60000</attribute>
               <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
               <attribute name="serverBindPort">6666</attribute>
               <attribute name="enableTcpNoDelay" isParam="true">false</attribute>
               <attribute name="backlog">200</attribute>
            </invoker>
            <!-- At least one handler is required by the connector.  If have more than one, must declare -->
            <!-- different subsystem values.  Otherwise, all invocations will be routed to the only one -->
            <!-- that is declared. -->
            <handlers>
               <!-- specify handler by fully qualified classname -->
               <handler subsystem="sipexchange">org.cafesip.sipexchange.inservice.server.InServiceHandler</handler>
               <!-- can also specify handler by object name -->
               <!-- <handler subsystem="mock">test:type=handler</handler> -->
            </handlers>
         </config>
      </attribute>
   </mbean>

   <!-- ******************************************************************** -->
   <!-- DETECTORS                                                            -->
   <!-- Zero or more detectors are allowed.                                  -->
   <!-- Currently only have implementation for multicast and jndi            -->
   <!-- ******************************************************************** -->

   <!-- The multicast detector uses multicase to broadcast detection messages -->
   <mbean code="org.jboss.remoting.detection.multicast.MulticastDetector"
      name="jboss.remoting:service=Detector,transport=multicast">
      <!-- The address to bind to for the network interface. -->
      <!-- <attribute name="BindAddress">${jboss.bind.address}</attribute> -->
      <!-- The IP that is used to broadcast detection messages on via multicast. -->
      <!-- To be more specific, will be the ip of the multicast group the detector will join. -->
      <!-- This attribute is ignored if the Address has already been set when started. -->
      <!-- Default is 224.1.9.1. -->
      <attribute name="DefaultIP">224.1.9.2</attribute>
      <!-- Multicast group port that the detector will join on.  Default is 2410 -->
      <attribute name="Port">2411</attribute>
      <!-- The IP of the multicast group that the detector will join. -->
      <!-- The default will be that of the DefaultIP if not explicitly set. -->
      <attribute name="Address">224.1.9.3</attribute>
      <attribute name="DefaultTimeDelay">10000</attribute>
      <attribute name="HeartbeatTimeDelay">5000</attribute>
   </mbean>

</server>
