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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bogdan-Andrei Iancu Sent: Tuesday, November 11, 2008 5:30 AM To: [EMAIL PROTECTED] Cc: [email protected] 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 [EMAIL PROTECTED] 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]:[EMAIL PROTECTED]/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:[EMAIL PROTECTED] > ") > #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 > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
