There are two mechanisms related to packet routing to the correct traffic agent:

 

- Applicative routing: Tulip parses the application level packet payload in order to route correctly the packet.

 

If the configuration file contains the <INTERNAL_ROUTER> directive, it is possible to override default routing criteria by defining a list of mode-dependent criteria ordered by priority.

For example, in SIP mode:

 

            <INTERNAL_ROUTER>

             <CRITERIA>CALLID</CRITERIA>

             <CRITERIA>REQUESTURI</CRITERIA>

            </INTERNAL_ROUTER>

 

This declaration means Tulip will first try to route using the Call-Id SIP header, then if it fails will use the request uri.

In this mode, the routing is performed using the corresponding <AGENT_xxx> declaration anchor in the configuration file. Indeed, its atribute(s) are usually mapped to application level protocol fields and will allow the first packet to be routed. Afterwards, the subsequent packets can be routed using other criteria, more session-related (ex, call-ID in SIP, context in MEGACO).

 

Transport-based routing: this function assumes the MODE attribute of <TRANSPORT> anchor was set to MULTI. In this case, the packet is routed to the agent according to the socket it arrived to. For example, the http Client example scenario uses such a mechanism to route packets to the HTTP clients.

 

When a packet is received, the following process is executed:

 

1) If there is no traffic agent running and the launcher is receiving packets, route the packet to launcher. If launcher does not receive packet right now or there is a mismatch with received packet, route towards responder if possible.

 

2) If applicative routing returns an existing traffic agent and which is currently receiving, route the packet towards the agent. If the reception fails and there is a responder, route to the responder.

 

3) If applicative routing does not match any traffic agent, route to the responder if it exists.

 

4) If the routing fails and responder cannot match the packet, display a non blocking warning (UNEXPECTED message).

 

5) If the routing succeeds, but the packet does not match what is expected in traffic agent, display a blocking error.

 

 

 

 

 

Message Routing
 
Home page
Applications
Downloads
TULIP commands
Documentation
Plugins
Contact us