[OpenSIPS-Users] Input on my loadbalancer configuration

Jeff Pyle jpyle at fidelityvoice.com
Tue Nov 11 15:13:31 CET 2008


What if instead of routing the INVITE, Opensips returned a 302 to the
originator, redirecting them to the Asterisk server(s) of choice for
that call?


- Jeff



-----Original Message-----
From: users-bounces at lists.opensips.org
[mailto:users-bounces at lists.opensips.org] On Behalf Of Bogdan-Andrei
Iancu
Sent: Tuesday, November 11, 2008 5:30 AM
To: geoffreymina at gmail.com
Cc: users at lists.opensips.org
Subject: Re: [OpenSIPS-Users] Input on my loadbalancer configuration

Hi,

Two remarks:

1) the path taken by a request will be taken (in the opposite direction)
by all the replies of that request - that is SIP :) . So, if your INVITE
went through the dispatcher, all its replies (180, 200) will go via
dispatcher

2) for sequential requests (ACK, re-INVITEs, BYEs) you can make them
skip the dispatcher by NOT doing record-routing on the dispatcher for
the original INVITE

1') regarding my comment from 1) - you may play with the send() function
- this is a stateless function for sending a request out but without
adding any VIA in the request. So the hop doing send() will be invisible
for the replies also (the replies will bypass this hop as there is no
VIA for it) - but I warn you that this is against RFC3261 and also it
might generate problems at network level (a SIP point expects to have
the same IP:port peer during a transaction)

Regards,
Bogdan



geoffreymina at gmail.com wrote:
> Was wondering if any of the good people out there would be willing to 
> comment on my configuration. The goal here is to simply provide 
> inbound load balancing services from my service provider to a farm of 
> 10 asterisk servers. I was hoping to get around this without "tm.so", 
> but i couldn't figure it out. I am trying to build a system which will

> eventually support 2000 concurrent inbound sessions. Here is what I 
> have come up with.
>
> This works in the bubble of my testing/proof of concept world, but I 
> am sure I am missing some important aspects.
>
> Thanks for anyones time!
>
>
> ###### Global Parameters #####
> debug=9
> log_stderror=no
> log_facility=LOG_LOCAL0
> fork=yes
> children=8
> disable_tcp=yes
> listen=eth0:5060
> port=5060
>
> ##### Debug Enabled #####
> fork=no
> log_stderror=yes
>
> ##### Module Loading and Param Setting ##### 
> mpath="/usr/local/lib64/opensips/modules/"
> loadmodule "sl.so"
> loadmodule "db_mysql.so"
> loadmodule "tm.so"
> loadmodule "maxfwd.so"
> loadmodule "rr.so"
>
> ## Enable SipTrace module for debugging SIP transactions ## loadmodule

> "siptrace.so"
> modparam("siptrace","db_url","mysql://[removed]:[removed]@localhost/op
> ensips")
> modparam("siptrace","table","sip_trace")
> modparam("siptrace","trace_on",1)
> modparam("siptrace","trace_flag",13)
>
> ## Enable Dispatcher module ##
> loadmodule "dispatcher.so"
> #modparam("dispatcher","ds_ping_method","INFO")
> #modparam("dispatcher","ds_ping_from","sip:monitoring at connectfirst.com
> ")
> #modparam("dispatcher","ds_ping_interval",10)
> #modparam("dispatcher","ds_probing_mode",1)
>
> ##### Routing Logic #####
> route{
> setflag(13);
> sip_trace();
>
> if(!mf_process_maxfwd_header("10")){
> sl_send_reply("483","Too Many Hops");
> drop();
> }
>
> if(method=="INVITE"){
> ds_select_dst("1","4");
> t_on_failure("1");
> t_relay();
> exit();
> }else{
> t_relay();
> exit();
> }
> }
>
> failure_route[1]{
> if(t_check_status("408")){
> ds_mark_dst();
> }
>
> ds_next_dst();
> t_on_failure("1");
> t_relay();
> }
> ----------------------------------------------------------------------
> --
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>   


_______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



More information about the Users mailing list