Hi Brian, thank you very much for your answer! Brian West napsal(a):
On Mar 29, 2008, at 7:57 AM, kokoska rokoska wrote:
Hi all!
I'm very new to Freeswitch and thus I'm looking for advices/hints for painless start :-)
Nothing is painless.
I see:-) Few years with SIP servers and signaling "nonstandards" cost me a lot of gray hairs...
I have a lot of experience with Asterisk and OpenSER, but the philosophy od Freeswitch differs...
Thats an understatement. ;)
What is going on: I like to deploy PBX/Switch for a lot of SIP users wich registers with it and - also - with larg number of SIP gateways the PBX/Switch should regester with. Users population/gateways/call routing have to be dynamic (database-driven, like I'm accustomed form Asterisk and OpenSER) with quite standard features (conditional/unconditional forwarding, voice-mail, call-waiting, resource limits etc.) and especially with good over-all performance.
Like i red in docs, dynamic SIP users could by done with mod_xml_curl directory but I like to ask: Is it "fast enough"?
Direct DB in my opinion is a very bad idea. With xml_curl you can interface to just about anything and cluster it up and fail over rather easily with http gets.
Yes, I catch the main idea behind it :-)
And no it's NOT slow, that depends on how fast your web server and db are... trust me it can scream if you do it correctly.
Now I'm very satisfied with MySQL cluster and the performance it gives me throught direct queries (tens of thousands of SELECTs per second). I haven't much exeperience with webservers, but I'm affraid that number of responses per second will be much lower (DB lookup + webserver overhead). But - you wrote its fast engough, so I belive it. Thank you for an advice!
Couldn't be better direct DB lookups? If yes, how to accomplish that? BTW: Is there a way how to share "registered" users between independant Freeswitch boxes like I do with OpenSER (single registrar, many proxies)?
./configure --enable-core-odbc
Thanks again, will look at it!
The second thing I'm thinking about is dynamic call-routing rules (aka dialplan) with a lots of "destination numbers mangling" I have to do. What is better way - using mod_xml_curl and try to serve exact "extension" based on db lookups and followed processing or using an event socket (in outbound mode I think) and completly control call-flow in Freeswitch from remote deamon. Or should I look to another scenario?
use xml_curl.
I will follow your recommendation :-)
Like I wrote, now I'm using Asterisk (together with OpenSER) with realtime users and whole my dialpan looks like: exten=> _X.,1,AGI(routing.bin) exten=> _X.,2,Hangup where routing.bin is my simple "ANSI C" application doing all I need and "from time to time" communicating with "underlying" Asterisk :-)
I know I could study in-depth all source code and experiment with various deployment scenarios, but it is distressful and long, long way I'm trying to aviod. That is why I ask you, the ones with much deeper knowledge of Freeswitch, what is the best point to start.
Better get ready to dive in.
I know I need to :-) But, for the first time, its better to use well-proven ways from experienced users, if they will be so kind and give me some clue :-) Many thanks for yours!
http://wiki.freeswitch.org or #freeswitch on irc.freenode.net
I'm affraid I red all pages I found of Freeswitch wiki, but a lot of thinks are still unclear. For example info about Sofia "fine-tuning" (Path support, headers removing/adding/altering, replies modifications etc.) I could not find... And conceptual advice (xml_curl contra event socket) I have never saw in any wiki :-)
Any suggestions, recommendation or hints are very appreciated! :-)
be like Nike and JUST DO IT! ;)
I do :-) Thank you very much for your help! Best regards, kokoska.rokoska