[Users] Re: OpenSER dispatcher module

Daniel-Constantin Mierla daniel at voice-system.ro
Mon Feb 6 17:01:02 CET 2006


ds_select_dst() sets the outbound proxy address. There is an internal 
attribute that is used when sending the request. ds_select_domain() 
rewrites the domain part of request URI.

Could you watch the network (ngrep -qt port 4050 on openser box) too see 
what is happening with the messages? Also, do you get any error in the 
syslog file (/var/log/syslog or /var/log/messages)?

The way you use the dispatcher is ok.

Cheers,
Daniel


On 02/03/06 00:48, Anders Brownworth wrote:
> Daniel,
>
> I noticed a few posts on the OpenSER Users' list and thought I'd shoot 
> you a question directly as my subscription to the list doesn't seem to 
> be taking yet.
>
> I want to distribute SIP calls across a number of servers. (similar to 
> a load balancer) I intend to use the CallId hash algorithm to keep 
> subsequent messages going to the same server.
>
> I (like many others) am still trying to understand the dispatcher 
> module. Working off of the example configuration and running OpenSER 
> version 1.0.0, I have:
>
> ...
> modparam( "dispatcher", "list_file", 
> "/usr/local/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( "1", "0" );
>        #ds_select_domain( "1", "0" );
>
>        forward( uri:host, uri:port );
>        #t_relay( );
>
> }
>
>
> I have not been able to get it to do what I'm expecting.
>
> I have two different IPs in the dispatcher.list file and am expecting 
> the OpenSER instance to send an INVITE out to one of those IPs. With 
> debugging on a high level, I see the dispatcher module internally pick 
> one of those IPs but there is no attempt to send out an INVITE. 
> Throwing the t_relay( ) of course replies with a 100 trying, but still 
> no INVITE is sent out to one of the IPs in the destination set.
>
> Not really understanding the difference between ds_select_dst() and 
> ds_select_domain(), I tried ds_select_domain() with no change in 
> results. (both with and without t_relay()) I understand that 
> ds_select_destination() rewrites host and port, but then what does 
> ds_select_dst() do exactly? Why would you ever want to use 
> ds_select_dst()? It says ds_select_dst() "selects a destination from 
> the address set". Great, so then what does it do with that 
> destination? I am unclear on exactly what you are changing in the 
> request by running each of these functions. Can you clear that up for me?
>
> Then, once you get a destination, how do you tell OpenSER to send out 
> an INVITE to the destination server? Or does it not work this way?
>
> I also saw some talk about how ds_select_dst() "sets the destination 
> as outbound proxy" but how does that differ from the host / port 
> rewrite? I think I'm missing something here...
>
> My intent is to run a stateless distributer so I can massively scale 
> the front end of my setup. I don't think the tm module is an option 
> for what I want to do because scale is going to be key.
>
> I saw a mention of the lcr module but haven't taken a closer look at 
> that yet. I'd like to get this going as it seems like a very clean and 
> simple way to accomplish my goal.
>
> Any help you could provide would be much appreciated.
>
> Thanks,
>
> -Anders
>
>
>




More information about the Users mailing list