Jump to content
Welcome to our new Citrix community!

Netscaler send request to server based on header value

Timothy Cullen

Recommended Posts


First post and hoping someone can help with a solution.


We are using Netscaler appliance with V11.

We are implementing a call recording solution.

There are 2 Recorders with recordings initiated by a SIP request from a Session Border Controller (SBC) to a configured recorder.

The request from SBC to a recorder contains in the header a unique Caller ID.


There is also a Call Telephony Integration (CTI) server which sends event and metadata about calls to both recorders.

One of the recorders will respond with session not found and the other success.

The Caller ID is in the header of the message sent by the CTI server to the recorders.


While the solution works, it is not ideal to have so any failed messages being sent to one of the recorders as well as the volume of errors being logged.


After reviewing Load Balancing and Persistence it did not seem possible to route the CTI Server message to the correct Recorder based on Caller ID.

Is it possible for the Netscaler to:

- Route SBC to Recorder traffic and capture the initial Caller ID and Recorder host and then use the stored Caller ID to subsequently route CTI requests to that recorder ?


- Send a request to one recorder and if session not found, then send the request to the second recorder and maintain persistence based on the Caller ID


- Send an initial request to both recorders to determine where to route the message ?


Appreciate that the vendor solution should be smarter and not continually send to both recorders.


Hoping there is a Netscaler solution to this problem.


Thanks in advance.



Link to comment
Share on other sites

  • 3 weeks later...

We did similar configuration before by using rule based persistence and giving each server object a specific "Server ID" (which was a port number in our case). Then in your rule based persistence you have the expression that extracts this ID from the request (in our case a custom header).

On the service group we would then add the same backend server multiple times for each port and each time we would set the server id to the port. This way, by changing the header in the request they could choose which port was used on the backend server. 

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...