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(a)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();
}