Mobicents Diameter trips&tricks part 1

Below you may find a few tips on using Mobicents Diameter:

  • Mobicents Diameter stack is based on jDiameter – the state of particular RA is synchronized with subprocesses managed by jDiameter, which may result in possible desynchronizationa and strange behavior :)
    • e.g if we receive back a message we are just trying to send  that means that there is something wrong on routing configuration and/or the peer we are trying to send the message to is not available
  • every host that connects as a client to a server based on Mobicents Diameter must have a resolvable host name – by using DNS or other  method (eg / etc / hosts). Otherwise the logs will show some odd exceptions
  • Server peers configuration together with routing is only to be defined only in the file jdiameter-config.xml (Part of mobicents-diameter-mux)
    • in the Network/Peers we should add peers to which you want to connect as client
    • in the Network/Realms we should add the routing information for Diameter applications – write in the Realm/@peers  all the peers we should send given application and Realm – the stack uses only jDiameter peer-name, and not using the port
  • in order to send a Diameter message we have to set at least Destination-Realm, and Destination-Host as an option – jDiameter stack will choose the peer to send this message to from one of the available peers that accept given Diameter application
  • Unfortunately if the server peer disconnects the stack does not reconnect  and you need to reconnect by restarting/reloading mobicents-diamater-mux
  • routing configuration for client peers is dynamic – as soon as Diameter clients connect to the server the routing table is updated by Diameter stack
  • Mobicents jDiameter stack  will not accept connections from two clients Diameter with the same name specified by the Original-Host, a second call will be quietly ignored without peer rejection of negotiations-a – CEA is not sent and the connection is closed after a while, on the TCP level
  • for testing of Diameter applications with seagul the protection against duplicates shall be disabled – as seagul restarts the session numbering on each client session restarts:
    • <DuplicateProtection Value=”false” />