On my test network I have set up a dispatcher server that points to two proxy servers that hit an external database.
I have a simple route script on the dispatcher that should be routing requests to the two proxy servers.
dispatcher .51 caller .99 recipient .100 proxy1 .52 proxy2 .53
I'm making call requests from .99 to .100, with .51 used as the proxy server. The problem I'm getting, is that the INVITE is being sent directly to the recipient without passing through the proxys, the dispatcher is passing the message directly. At least i think that is what is happening. Here is the sip INVITE: INVITE sip:rick@192.168.0.100 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.99:5060;rport;branch=z9hG4bK837723126 From: sip:rick@192.168.0.51;tag=679508646 To: sip:rick@192.168.0.100 Call-ID: 125992616@192.168.0.99 CSeq: 20 INVITE Contact: sip:rick@192.168.0.99:5060 Max-Forwards: 5 User-Agent: Linphone-1.0.1/eXosip Subject: Phone call Expires: 120 Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY, MESSAGE Content-Type: application/sdp Content-Length: 352
So it seems to me that the invite request is being sent to .51 and it is forwarding directly to .100 without dispatching the message to .52 or .53
here is my dispatcher config:
# $Id: dispatcher.cfg,v 1.1.1.1 2005/06/13 16:47:37 bogdan_iancu Exp $ # sample config file for dispatcher module #
debug=9 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=no # (cmd line: -E) log_facility=LOG_LOCAL0 children=2 check_via=no # (cmd. line: -v) dns=off # (cmd. line: -r) rev_dns=off # (cmd. line: -R) port=5060 fifo="/tmp/openser_fifo" # for more info: sip_router -h
# ------------------ module loading ---------------------------------- loadmodule "//lib/openser/modules/xlog.so" loadmodule "/usr/lib/openser/modules/maxfwd.so" loadmodule "/usr/lib/openser/modules/sl.so" loadmodule "/usr/lib/openser/modules/dispatcher.so"
# ----------------- setting module-specific parameters --------------- # -- dispatcher params --
modparam("dispatcher", "list_file", "/etc/openser/dispatcher.list") # modparam("dispatcher", "force_dst", 1)
route{ if ( !mf_process_maxfwd_header("10") ) { sl_send_reply("483","To Many Hops"); drop(); }; ds_select_dst("2", "2"); forward(uri:host,uri:port); # t_relay(); }