<?xml version="1.0" encoding="UTF-8"?> <!-- Sample configuration file, version 1.0.3 and above. --> <!-- Configuration table starts always starts with "configuration" element as root --> <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='configuration.xsd'> <!-- General configuration has a fixed list of elements. Note that information in the general section includes to info announced by this nodes to it's peers during capabilities exchange. --> <general> <!-- Product, version and vendor ID information specified here will be embedded in the CER message --> <product>Open Diameter</product> <!-- Software revision number. For Open Diameter this is equivalent to the Firmware-Revision AVP in the CER --> <version>1</version> <!-- Vendor id of diameter entity broadcast to peers in the CER --> <vendor_id>0</vendor_id> <!-- List of locally supported vendor id's. Note that advertisement of supported vendor id's is needed when routing messages with vendor specific application id's --> <supported_vendor_id>0</supported_vendor_id> <supported_vendor_id>1</supported_vendor_id> <!-- List of locally supported auth application id's. This contains one or more auth application id's that will be broadcasted to peers. --> <auth_application_id>1</auth_application_id> <auth_application_id>2</auth_application_id> <!-- List of locally supported acct application id's. This contains one or more auth application id's that will be broadcasted to peers. --> <acct_application_id>3</acct_application_id> <acct_application_id>4</acct_application_id> <!-- List of locally supported vendor specific application id's. This contains one or more vendor specific application id's that will be broadcasted to peers. Each vendor specifc application id will contain one or more vendor id's (RFC 3588) and exactly one auth or acct application id --> <vendor_specific_application_id> <!-- List of vendor id's advertized by this diameter entity --> <vendor_id>31</vendor_id> <vendor_id>32</vendor_id> <vendor_id>33</vendor_id> <!-- Exactly one instance of the vendor's auth application id --> <auth_application_id>1</auth_application_id> <!-- Or Exactly one instance of the vendor's acct application id --> <acct_application_id>4</acct_application_id> </vendor_specific_application_id> <vendor_specific_application_id> <vendor_id>41</vendor_id> <vendor_id>42</vendor_id> <vendor_id>43</vendor_id> <auth_application_id>5</auth_application_id> <acct_application_id>6</acct_application_id> </vendor_specific_application_id> </general> <parser> <!-- Path and filename of dictionary file. The path MUST be a full path or relative to the location of this configuration file --> <dictionary>..\..\..\configfiles\dictionary.xml</dictionary> </parser> <!-- Transport management section. This section contains to local diameter transport information, peer table and route table --> <transport_mngt> <!-- Diameter entity identity. Note that a running open diameter application will use the identity string instead of calling OS dependent gethostname functions to determine it's identity. Hence, users MUST enter a valid resovable entry for this string --> <identity>nas_server</identity> <!-- Diameter realm. As with identity, a running open diameter application uses the realm string to identify its domain of reponsibility. This allows virtual domains to exists within a single host where multiple open diameter entities are running with different realm configuration --> <realm>research.org</realm> <!-- Diameter TCP listening port. Port number to listen to for peer connection request. When using virtual domains, make sure each entity listens to different port numbers --> <tcp_port>1812</tcp_port> <!-- Diameter TLS listening port. Port number to listen to for peer connection request. When using virtual domains, make sure each entity listens to different port numbers --> <tls_port>1912</tls_port> <!-- Peer table lists peers that this open diameter application will attempt to connect to on startup. Each peer entry contains host, port and tls enabled information. Internally, the peer table are currently configure statically using this section. No dynamic learning is currently available --> <peer_table> <! -- This defines the expiration time for dynamically learned peers --> <expiration_time>1</expiration_time> <peer> <hostname>tari-dhcp163.research.telcordia.com</hostname> <port>1812</port> <tls_enabled>0</tls_enabled> </peer> </peer_table> <!-- Route table list the realm entries that this peer will use to resolve message paths. Each entry contains the realm name, the peer to send the messaage to, the application id of the peer and it role (whether a proxy, local .. etc). Note that peer_reference element MUST point to an existing peer in the peer_table else this route will be in-active. Also, a default_route flag can be added to a route entry to set the default route. If more than one route has a default_route flag set then the last entry with this flag set becomes the default route --> <route_table> <!-- Defines the expiration time for dynamically learned routes. A value of 0 means no expiration --> <expire_time>0</expire_time> <!-- A route entry defines a lookup information for a diameter message containing destination realm AVP's. For more information on diameter routing, pls see "Open Diameter Routing Architecture" --> <route> <! -- Realm that this route serves. MUST be unique to this table --> <realm>other.research.org</realm> <!-- The role that this diameter entity will play in resolving messages matching this realm. Valid values for this elements are: 0 (local) - application acting as local servers 1 (relay) - application acting as relay agent 2 (proxy) - application acting as proxy server 3 (redirect) - application acting as redirect agent --> <role>0</role> <!-- For each route, there is a set of applications that are supported. This is used by the base protocol library as the second index to resolving a route for a message --> <application> <!-- Application Id is used as a second key for routing queries. See details above --> <application_id>1</application_id> <!-- For vendor specific application id's. As per RFC this should be 0 for standard track applications. Otherwise, this value is used in conjunction with application_id as a second search key --> <vendor_id>0</vendor_id> <!-- For each application, there can be a set of servers support it. Each server has a metric associated with it and the routing engine chooses the server in metric order (0 being highest) --> <peer_entry> <!-- Diameter peer serving this realm and application id. This server name MUST exits in the peer table for this route to be active. <server>server1.research.org</server> <!-- Metric value for this server entry. The higher the value, the lower the preference. 0 is the highest value and entries with equal value will be resolve in the order they are defined in this configuration file --> <metric>1</metric> </peer_entry> <peer_entry> <server>server2.research.org</server> <metric>5</metric> </peer_entry> </application> <application> <application_id> <id>1</id> <type>1</type> </application_id> <peer_entry> <server>server1.research.org</server> <metric>1</metric> </peer_entry> <peer_entry> <server>server6.research.org</server> <metric>5</metric> </peer_entry> </application> </route> <! -- The definition of a default route is the same as for any other route. The existance of a default route means that all no-match queries will result in a default route return --> <default_route> <realm>research.telcordia.com</realm> <role>full</role> <application> <application_id> <id>1</id> <type>1</type> </application_id> <peer_entry> <server>server1.research.org</server> <metric>1</metric> </peer_entry> <peer_entry> <server>server2.research.org</server> <metric>5</metric> </peer_entry> </application> <application> <application_id> <id>5</id> <type>1</type> </application_id> <peer_entry> <server>server1.research.org</server> <metric>1</metric> </peer_entry> <peer_entry> <server>server6.research.org</server> <metric>5</metric> </peer_entry> </application> </route> </route_table> </transport_mngt> <!-- Session manager configuration table. This section consist of fixed elements that MUST exists --> <session_mngt> <!-- Dictates the maximum number of concurrent sessions that will be maintained by open diameter. --> <max_sessions>10000</max_sessions> <!-- Stateful session flag. If set to 1, then server will enforce stateful sessions and clients will hint for stateful sessions. If set to 0 or if missing then stateless sessions --> <stateful>1</stateful> <!-- The following are default timers that are maintained for each active session. --> <timers> <!-- Timeout in seconds before a session requires re-authentication --> <session>30</session> <!-- Timeout in seconds before a session is terminated regardless of wether it has been re-authenticated --> <lifetime>360</lifetime> <!-- Grace period after lifetime timeout before full termination --> <grace>30</grace> <!-- Timeout before subsequent ASR messages are sent if the inital attempt fails --> <abort_retry>20</abort_retry> </timers> </session_mngt> <!-- Log section dictates the verbose levels that the library generates as well as target outputs --> <log> <!-- The following are the available log levels that can be "enabled" or "disabled" --> <flags> <debug>disabled</debug> <trace>disabled</trace> <info>disabled</info> </flags> <!-- The following are the target outputs of the logs. It can be a combination of each entry --> <target> <!-- enables or disables terminal output --> <console>enabled</console> <!-- enables or disables syslog output --> <syslog>disabled</syslog> </target> </log> </configuration>