Re: [Freeswitch-users] Conference dialing and uuid
Hmmm no MOH wont work... since I am planning on pulling more than just 2 members into the conference and I still need ringback for the later members as well. Is there a direct way for me to use conference number play audiofile to play teletone directly? or should I just records some ringing if I want to use that? And lastly for my own sanity ;-) why would the following in a on_ring_execute stop execution of the call at that point? call = argv[1]; conf = argv[2]; consoleLog(info,Making ringback channel for uuid : + session.uuid +\n); var ringuuid = apiExecute(originate,loopback/ringback-conf=+ conf +-conf park()) //I tried with and without a exit() at the end It seems to stop media detection??(not really sure about the term) for the call that executes this script. Freeswitch doesent recognize the pickup of that call and thus it doesent get bridged into the conference. when I uuid_kill the call that gets originated everything else starts happening again. Oh Im running this in FS ver. 1.0.trunk (11226:11561M) and that loopback points to extension name=ringback condition field=destination_number expression=^ringback-conf=(.*)$ action application=javascript data=ringback.js $1/ /condition /extension and ringback.js is use(TeleTone); session.answer(); var tts = new TeleTone(session); tts.addTone(u, 400.0, 450.0, 0.0); tts.addTone(r, 440.0, 480.0, 0.0); var RESET = v=2000;=0;+=0;; var UK_RING = RESET + L=2;u(400,200);u(400,2200); var US_RING = RESET + r(2000,4000); while(session.ready()) { console_log(making UK ring\n); for (x = 0 ; x 2 ; x++) { tts.generate(UK_RING); } } A slight bastardisation of the teletone JS example. I would expected the new channel that is created via a api originate to be completely seperate from the JS I create it in. (thats why I use api instead of creating a new session, although I should probably try that as well). I use some CoreDB stuff to keep tabs on the uuid for the originated call so that I can uuid_kill it in the on_answer_script but as mentioned... the on_answer only executes after I uuid_kill the originated channel in the cli... Thanks again guys, Specially since it seems you two are always the ones that get back to me. On Tue, Feb 03, 2009 at 09:22:21AM +0200, Sias Mey wrote: Actually loopback does work. however as I said it generates a pair of extra channels. Hmmm I was trying to generate and extra call to a JS script that generated a teletone ring in an on_ring_execute for the second call however it seems to stop execution of the call itself. Event though I use api commands to originate and then transfer it into the conference so that I have direct access to its uuid. I think changeing the moh might be a bit simpler however and elimite some CoreDB stuff I was doing to keep track of the calls ring generating call (what a sentance). On Mon, Feb 02, 2009 at 08:01:25AM -0600, Anthony Minessale wrote: you could set the conference moh sound to be tone_stream::// with the teletone spec for ring sound and it use ignore_early_media=true in your originates so the first caller would hear ringback until the 2nd one arrived. On Mon, Feb 2, 2009 at 4:29 AM, Brian West [1]br...@freeswitch.org wrote: Loopback will not work in that case either. If the far end plays ringback inband you should hear that if you use the conference dial api call. /b On Feb 2, 2009, at 4:24 AM, Sias Mey wrote: Aaah ok. Thanks for clearing that up. So using loopback is still the only real workable sollution for me, since that generates ringback from and alternative endpoint and plays it into the conference. I might play with some javascript that streams ring into the channel eventually but for now the string comparisons at least get me the right uuid. Thank you again, Sias ___ Freeswitch-users mailing list [2]freeswitch-us...@lists.freeswitch.org [3]http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:[4]http://lists.freeswitch.org/mailman/options/freeswitch-u sers [5]http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH [6]http://www.freeswitch.org/ ClueCon [7]http://www.cluecon.com/ AIM: anthm [8]MSN:anthony_miness...@hotmail.com GTALK/JABBER/[9]PAYPAL:anthony.miness...@gmail.com IRC: [10]irc.freenode.net #freeswitch FreeSWITCH Developer Conference [11]sip:8...@conference.freeswitch.org [12]iax:gu...@conference.freeswitch.org/888 [13]googletalk:conf+...@conference.freeswitch.org pstn:213-799-1400 References 1. mailto:br...@freeswitch.org 2. mailto:Freeswitch-users@lists.freeswitch.org 3. http://lists.freeswitch.org/mailman/listinfo/freeswitch-users 4.
Re: [Freeswitch-users] Strange Performance when using as SBC
Hi all, I completed the wiki page with the comments I made in the posts: Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC I detailed how to setup mysql/kamailio/carrierroute to use the carrierroute module of kamailio for LCR. I wrote this page using my memory and history of the linux commands. Maybe some things are missing and I will update as soon as I get my new servers for reinstallation. I have to cleanup the way it is displayed, cause it lacks some wiki rules. If some would like to contribute, they are welcome. http://wiki.freeswitch.org/wiki/SBC_Setup regards, rod jay binks wrote: Rod, that wiki article is Awesome ! real good to see guides with start to finish steps. cant wait to see the next installment of your guide :) Jay On Tue, Feb 3, 2009 at 12:33 AM, rod kawa...@laposte.net mailto:kawa...@laposte.net wrote: Hi Saeed, Here is a first draft of what I did to install FS on my server. Configuration are not present, they'll be in a next release :p http://wiki.freeswitch.org/wiki/SBC_Setup My aim is to setup FS as a SBC, I hope this page could be a great startup point for others. I will update regularly based on what I did. Saeed, why are you replacing your Nextone, it's said to be one of the best commercial SBC on the market. regards. ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Generating calls from external source
Thanks for that, coming from a C++ background it's a refreshing change to be looking at something that seems logical and efficient. I'd briefly looked at the event socket and wondered if that was the way to go. I presume that there's some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I'm not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I'm finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that's concerning me is XML at the moment. Lots of code and very wordy. I'm sure I'll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source Nik, Welcome to FreeSWITCH! The short answer is yes, FS can do that. The first thing that you should do is unlearn the Asterisk way of thinking. Usually there is an elegant way of doing things in FS that wasn't possible in Ast. I would recommend that you start by looking at the event socket, which is somewhat analogous to the AMI only cooler. :) I have personally done something similar to this using the event socket and a Perl script. The key is to learn the syntax of the originate command. (definitely hit the wiki and IRC channel) Are you using TDM cards for this? Just curious. -MC (IRC nick: mercutioviz) Sent from my iPhone On Feb 2, 2009, at 3:35 PM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Hi Guys, As a long time Asterisk user, I'm looking into freeswitch as an alternative mainly due to (list multiple reasons here) Can anyone give me a pointer as to how I would achieve the following? I need to replicate an emergency broadcast system currently running under Asterisk. At the moment, I run through a Mysql database and using the manager API, issues an Originate command to dial a number. When the call is answered, a message is played, and the recipient has the option of hitting a digit to confirm receipt. I then call an AGI script to update the database. Is this fairly easy to do in Freeswitch? Not looking for code, just some pointers as to what's available to do the above / Regards, ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE: http://lists.freeswitch.org/mailman/options/freeswitch-users http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Generating calls from external source
Hi Nik, Here's a snipped in Perl that launches an outbound call: if (my $sock = IO::Socket::INET-new(Proto ='tcp', PeerAddr = '127.0.0.1', PeerPort = 8021)) { print $sock auth XXX\n\n; print $sock api originate {softivr_id=$siid,src_softivr_id=$siid,softivr_outdial=true}sofia/frombt/$...@1.2.3.4 $service\n\n; $sock-close(); } - it does no error checking or anything, but (line by line) it: - opens a socket to the event socket interface - authenticates - issues an originate which dials out to the number in $ntd. The bits in {} set a bunch of variables on the channel, which are used by the software which processes the call later on. The call is linked to the extension in $service - FS looks this up in the dialplan - which handles our end. - closes the socket Cheers -- Dave Thanks for that, coming from a C++ background it’s a refreshing change to be looking at something that seems logical and efficient. I’d briefly looked at the event socket and wondered if that was the way to go. I presume that there’s some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I’m not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I’m finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that’s concerning me is XML at the moment. Lots of code and very wordy. I’m sure I’ll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org ] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source Nik, Welcome to FreeSWITCH! The short answer is yes, FS can do that. The first thing that you should do is unlearn the Asterisk way of thinking. Usually there is an elegant way of doing things in FS that wasn't possible in Ast. I would recommend that you start by looking at the event socket, which is somewhat analogous to the AMI only cooler. :) I have personally done something similar to this using the event socket and a Perl script. The key is to learn the syntax of the originate command. (definitely hit the wiki and IRC channel) Are you using TDM cards for this? Just curious. -MC (IRC nick: mercutioviz) Sent from my iPhone On Feb 2, 2009, at 3:35 PM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Hi Guys, As a long time Asterisk user, I’m looking into freeswitch as an alternative mainly due to (list multiple reasons here) Can anyone give me a pointer as to how I would achieve the following? I need to replicate an emergency broadcast system currently running under Asterisk. At the moment, I run through a Mysql database and using the manager API, issues an Originate command to dial a number. When the call is answered, a message is played, and the recipient has the option of hitting a digit to confirm receipt. I then call an AGI script to update the database. Is this fairly easy to do in Freeswitch? Not looking for code, just some pointers as to what’s available to do the above / Regards, ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Strange Performance when using as SBC
Hi rod, It's really amazing! Well described! Could you please explain a bit why we used Kamailio? Kind Regards Saeed Ahmed Tariq -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Monday, February 02, 2009 3:33 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Strange Performance when using as SBC Hi Saeed, Here is a first draft of what I did to install FS on my server. Configuration are not present, they'll be in a next release :p http://wiki.freeswitch.org/wiki/SBC_Setup My aim is to setup FS as a SBC, I hope this page could be a great startup point for others. I will update regularly based on what I did. Saeed, why are you replacing your Nextone, it's said to be one of the best commercial SBC on the market. regards. Saeed Ahmed wrote: Thanks rod for a quick answer, FS is installed on Ubuntu Server. I am planning to replace Nextone SBC with FS, Later I'll also use openZAP to communicate with TDM but this all depends how much calls it can take, or maybe we can also do something in clustering environment ( I am not sure about it). But thanks again and any further help will be highly appreciated. Kind Regards Saeed Ahmed Tariq -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Monday, February 02, 2009 1:53 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Strange Performance when using as SBC Hi Saeed, I just created an account to share my setup on the wiki. I will detail all the steps for a clean install of a debian64 lenny with FS used as a SBC (next step is to try the new LCR module :) )and what I'm doing do stress the server. I wrote nothing at this time so please be patient, I'm waiting for my new hardware so that I will detail as much as possible what I'll do. For beginning I suggest you reading the start page on the wiki, especially these pages: -http://wiki.freeswitch.org/wiki/Getting_Started_Guide -http://wiki.freeswitch.org/wiki/Dialplan_XML maybe you could tell more about the linux distribution you're using so that I can give you some pointers for sipp... regards. rod. Saeed Ahmed wrote: Hi Rod, Could you please share how you configured Sipp FS to create a test environment? Especially the dial plan, sofia settings etc..., actually I am a newbie. I want to test it on a single FS machine. Kind Regards Saeed -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Monday, February 02, 2009 11:00 AM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Strange Performance when using as SBC Hi Ken, Jay, thanks for pointing to proxy media, I will test. Ken, you are right, I was brain damaged (a stupid mistake) when setting INFO cause this kind of level could be very verbose. I'm switching to CRIT or ERR. Thanks guys, rod. thanks for Ken Rice wrote: If you don't have to transcode, using proxy media mode will still save you some CPU time. This is 1/2 way between bypass media and the default media interactive mode. The other draw back to this mode is if you are using FS to clean up RTP and DTMF you loose those functions but they are not needed in most use cases. As far as the log level goes, I found that once I had things stable setting the loglevel to helped a good deal... Info is probably a bit too high of a loglevel I would probably go for CRIT or ERR (2 or 1 respectively) if you insist on leaving logging turned on... On a busy system these can and will generate a good deal of activity (and disk IO if using mod_logfile) Ken From: rod kawa...@laposte.net Reply-To: freeswitch-users@lists.freeswitch.org Date: Mon, 02 Feb 2009 11:36:35 +0400 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Strange Performance when using as SBC Hi Ken, 1) I'd like to use FS to hide topology, so bypass media is not possible 2) done 3) done 4) not used 5) i'm using this ins switch.xml - param name=loglevel value=info/, if you think an other log level is more suitable. Regarding logging, I can see in console and in the freeswitch.log that there is still a lot of NOTICE logging, see below: 2009-02-02 08:33:56 [NOTICE] switch_core_session.c:960 switch_core_session_thread() Session 8721 (sofia/internal/s...@10.10.10.1:5060) Ended 2009-02-02 08:33:56 [NOTICE] switch_core_session.c:962 switch_core_session_thread() Close Channel sofia/internal/s...@10.10.10.1:5060 [CS_HANGUP] 2009-02-02 08:33:56 [NOTICE] switch_core_session.c:960
Re: [Freeswitch-users] debuild breaks since the last few days
I believe that installing the libpcap and libpcap-dev packages may fix your problem. -- Raul On Tue, 2009-02-03 at 12:55 +0100, Leon de Rooij wrote: Hi all, I've been trying to build new debs, but debuild seems to break.. I tried trunk rev 11608 and 1.0.3RC-1 and tried building the packages with: debuild -i -us -uc -b (which worked before) And now it breaks at openzap with: cc1: warnings being treated as errors src/ozmod/ozmod_isdn/ozmod_isdn.c: In function 'writeQ931PacketToPcap': src/ozmod/ozmod_isdn/ozmod_isdn.c:220: warning: implicit declaration of function 'pcap_dump_flush' make[7]: *** [src/ozmod/ozmod_isdn/ozmod_isdn.o] Error 1 make[7]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/libs/ openzap' make[6]: *** [../libopenzap.so] Error 2 make[6]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/libs/ openzap/mod_openzap' make[5]: *** [all] Error 1 make[5]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/libs/ openzap/mod_openzap' make[4]: *** [../../libs/openzap/mod_openzap-all] Error 1 make[4]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/src/mod' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/src' Making all in build make[3]: Entering directory `/home/fsbuilder/freeswitch-1.0.3RC1/build' + FreeSWITCH Build Complete ---+ + FreeSWITCH has been successfully built. + + Install by running: + + + + /usr/bin/make install + +--+ make[3]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/build' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1' make: *** [build-stamp] Error 2 debuild: fatal error at line 1247: debian/rules build failed Does anyone know how to fix this ? thanks, Leon ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Generating calls from external source
In addition do David's suggestion, you probably want to have your application to watch for some specific events after the call is originated and take action based on them. For example, you could watch for the CHANNEL_ANSWER event and play some audio file waiting for some digit, which is generated by the DTMF event. To watch only for those specific events, you should do the following just after authentication (still using Perl as an example, but the mod_event_socket is language agnostic), then you will receive those events from FreeSWITCH through the socket stream: ... print $sock auth XXX\n\n; print $sock event plain CHANNEL_ANSWER DTMF\n\n; ... To see a list of available events, please look at the following wiki pages: http://wiki.freeswitch.org/wiki/Mod_event_socket#event http://wiki.freeswitch.org/wiki/Event_list Regards, Raul On Tue, 2009-02-03 at 09:46 +, David Knell wrote: Hi Nik, Here's a snipped in Perl that launches an outbound call: if (my $sock = IO::Socket::INET-new(Proto ='tcp', PeerAddr = '127.0.0.1', PeerPort = 8021)) { print $sock auth XXX\n\n; print $sock api originate {softivr_id=$siid,src_softivr_id= $siid,softivr_outdial=true}sofia/frombt/$...@1.2.3.4 $service\n\n; $sock-close(); } - it does no error checking or anything, but (line by line) it: - opens a socket to the event socket interface - authenticates - issues an originate which dials out to the number in $ntd. The bits in {} set a bunch of variables on the channel, which are used by the software which processes the call later on. The call is linked to the extension in $service - FS looks this up in the dialplan - which handles our end. - closes the socket Cheers -- Dave Thanks for that, coming from a C++ background it’s a refreshing change to be looking at something that seems logical and efficient. I’d briefly looked at the event socket and wondered if that was the way to go. I presume that there’s some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I’m not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I’m finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that’s concerning me is XML at the moment. Lots of code and very wordy. I’m sure I’ll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source Nik, Welcome to FreeSWITCH! The short answer is yes, FS can do that. The first thing that you should do is unlearn the Asterisk way of thinking. Usually there is an elegant way of doing things in FS that wasn't possible in Ast. I would recommend that you start by looking at the event socket, which is somewhat analogous to the AMI only cooler. :) I have personally done something similar to this using the event socket and a Perl script. The key is to learn the syntax of the originate command. (definitely hit the wiki and IRC channel) Are you using TDM cards for this? Just curious. -MC (IRC nick: mercutioviz) Sent from my iPhone On Feb 2, 2009, at 3:35 PM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Hi Guys, As a long time Asterisk user, I’m looking into freeswitch as an alternative mainly due to (list multiple reasons here) Can anyone give me a pointer as to how I would achieve the following? I need to replicate an emergency broadcast system currently running under Asterisk. At the moment, I run through a Mysql database and using the manager API, issues an Originate command to dial a number. When the call is answered, a message is played, and the recipient has the option of hitting a digit to confirm receipt. I then call an AGI script to update the database. Is this fairly easy to do in Freeswitch? Not looking for code, just some pointers as to what’s available to do the above / Regards, ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list
Re: [Freeswitch-users] Strange Performance when using as SBC
Hi Saaed, thanks for encouraging. I'm using Kamailio to get access to the carrierroute module. Carrierroute is a module that is able to handle very large routing table (excerpt from carrierroute page: This modules scales up to more than a few million users, and is able to handle more than several hundred thousand routing table entries, Greatings to Henning Westerholt). When I did my first test with FS, LCR module was not available and as I'm not a programmer I had to deal with existing tools and being able to handle a route table with approx 160 000 entries. I'm not a programmer so I relies on SIP (which I understand better than C or C++ :p) and the possibility to define specific header to exchange message between FS and Kamailio at the cost of just an extra SIP invite parsing (maybe a bad thing for very very high call per second rate) So if you follow the setup on the wiki, FS will pass the number to examine, and Kamailio will send the best route to use depending on probability (for load sharing, eg: 10% on a gateway, 20% on an other and 70% on the last one) and matching longest prefix. Then FS uses those route. You could also update the kamailio database and then issue a kamctl cr reload to load the new routing table. Maybe this is not the best setup, but my aim is to share what I did so that we could converge to the best solution to use FS as a SBC, that's why I provided also some indications to optimize FS based on what I read on the list and the wiki. The next steps are scalability testing, maybe a php (or whatever else) frontend to populate carrierroute table depending on the cost of many carriers (any people willing to contribute, don't rely on me for this :o), FS redundancy (I'd like to use LVS and some tools like sipsack to check the SIP process, but I'm far from having done any interesting things on that) that is lacking against commercial SBC, some scripts to graph the number of calls... (please an SNMP module :p) An other way to achieve LCR could be to use the new LCR module, and I think that Ken Rice on this list can provide advices for a high performance LCR setup. I subscribed to this list a long time ago, and my feeling is that FS is a great piece of software with a great community, so that I decided that it could be great to contribute. regards, rod Saeed Ahmed wrote: Hi rod, It's really amazing! Well described! Could you please explain a bit why we used Kamailio? Kind Regards Saeed Ahmed Tariq -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Monday, February 02, 2009 3:33 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Strange Performance when using as SBC Hi Saeed, Here is a first draft of what I did to install FS on my server. Configuration are not present, they'll be in a next release :p http://wiki.freeswitch.org/wiki/SBC_Setup My aim is to setup FS as a SBC, I hope this page could be a great startup point for others. I will update regularly based on what I did. Saeed, why are you replacing your Nextone, it's said to be one of the best commercial SBC on the market. regards. Saeed Ahmed wrote: Thanks rod for a quick answer, FS is installed on Ubuntu Server. I am planning to replace Nextone SBC with FS, Later I'll also use openZAP to communicate with TDM but this all depends how much calls it can take, or maybe we can also do something in clustering environment ( I am not sure about it). But thanks again and any further help will be highly appreciated. Kind Regards Saeed Ahmed Tariq -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Monday, February 02, 2009 1:53 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Strange Performance when using as SBC Hi Saeed, I just created an account to share my setup on the wiki. I will detail all the steps for a clean install of a debian64 lenny with FS used as a SBC (next step is to try the new LCR module :) )and what I'm doing do stress the server. I wrote nothing at this time so please be patient, I'm waiting for my new hardware so that I will detail as much as possible what I'll do. For beginning I suggest you reading the start page on the wiki, especially these pages: -http://wiki.freeswitch.org/wiki/Getting_Started_Guide -http://wiki.freeswitch.org/wiki/Dialplan_XML maybe you could tell more about the linux distribution you're using so that I can give you some pointers for sipp... regards. rod. Saeed Ahmed wrote: Hi Rod, Could you please share how you configured Sipp FS to create a test environment? Especially the dial plan, sofia settings etc..., actually I am a newbie. I want to test
Re: [Freeswitch-users] Application language to support C or C++?
Depending on what you want to do, I suggest having a look at mod_event_socket: http://wiki.freeswitch.org/wiki/Mod_event_socket That module is a socket based interface that provides a vast range of options to control FreeSWITCH and its applications. Just for the record, my application is entirely written in C++ and uses FreeSWITCH as a back-end for providing PBX functionality through a combination of mod_event_socket and mod_xml_curl. Regards, Raul On Tue, 2009-02-03 at 10:21 +0800, lee jason wrote: Hi All, I saw the applications using FreeSwitch library can be written in JavaScript, Perl, Python and Lua but I need to use Linux C or C++ for applications, Is FreeSwitch can supported it? Where can I get the sample codes? My Linux platform is base on Fedora. Thanks a lot. Jason ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Conference dialing and uuid
There is a file format called tone_stream that I was trying to explain yesterday. tone_stream://teletone spec or tone_stream://path=/path/to/text_file.ttml you can use this to play tones anywhere a filename is supposed to go. I guess loopback really is your only option if you must generate ringback. Typically, whatever gateway you are calling out over will go into early media and start playing the real ringback. You should not execute any apps during the on_ring_execute that block, (playing audio etc) Media has not even been established at that point and you have nobody to play the audio to anyway, But you will block from that point until the application you chose has ended so you should only execute small apps that return immediately such as setting a variable etc. As for ringback I think you have the whole thing reversed in your head. the ringback vars etc only apply to the origination (a) leg of a call. If you make an inbound call set the ringback variable and then call bridge, the ringback var is parsed on that inbound leg and the dialout process of the bridge app involves 2 channels the A leg and the B leg. When the B leg gets a ring indication and the A leg detects it, it will begin to play the ringback sound you chose back to the originator of that inbound leg. In the conference or using originate situation, you are doing an outbound call with no relevant inbound call, so there is nothing to generate ringback to. That's why loopback works because it cross connects an outbound call back to an inbound call which gives the bridge app everything it needs to be able to generate artificial ringback. On Tue, Feb 3, 2009 at 2:25 AM, Sias Mey s...@cpdata.co.za wrote: Hmmm no MOH wont work... since I am planning on pulling more than just 2 members into the conference and I still need ringback for the later members as well. Is there a direct way for me to use conference number play audiofile to play teletone directly? or should I just records some ringing if I want to use that? And lastly for my own sanity ;-) why would the following in a on_ring_execute stop execution of the call at that point? call = argv[1]; conf = argv[2]; consoleLog(info,Making ringback channel for uuid : + session.uuid +\n); var ringuuid = apiExecute(originate,loopback/ringback-conf=+ conf +-conf park()) //I tried with and without a exit() at the end It seems to stop media detection??(not really sure about the term) for the call that executes this script. Freeswitch doesent recognize the pickup of that call and thus it doesent get bridged into the conference. when I uuid_kill the call that gets originated everything else starts happening again. Oh Im running this in FS ver. 1.0.trunk (11226:11561M) and that loopback points to extension name=ringback condition field=destination_number expression=^ringback-conf=(.*)$ action application=javascript data=ringback.js $1/ /condition /extension and ringback.js is use(TeleTone); session.answer(); var tts = new TeleTone(session); tts.addTone(u, 400.0, 450.0, 0.0); tts.addTone(r, 440.0, 480.0, 0.0); var RESET = v=2000;=0;+=0;; var UK_RING = RESET + L=2;u(400,200);u(400,2200); var US_RING = RESET + r(2000,4000); while(session.ready()) { console_log(making UK ring\n); for (x = 0 ; x 2 ; x++) { tts.generate(UK_RING); } } A slight bastardisation of the teletone JS example. I would expected the new channel that is created via a api originate to be completely seperate from the JS I create it in. (thats why I use api instead of creating a new session, although I should probably try that as well). I use some CoreDB stuff to keep tabs on the uuid for the originated call so that I can uuid_kill it in the on_answer_script but as mentioned... the on_answer only executes after I uuid_kill the originated channel in the cli... Thanks again guys, Specially since it seems you two are always the ones that get back to me. On Tue, Feb 03, 2009 at 09:22:21AM +0200, Sias Mey wrote: Actually loopback does work. however as I said it generates a pair of extra channels. Hmmm I was trying to generate and extra call to a JS script that generated a teletone ring in an on_ring_execute for the second call however it seems to stop execution of the call itself. Event though I use api commands to originate and then transfer it into the conference so that I have direct access to its uuid. I think changeing the moh might be a bit simpler however and elimite some CoreDB stuff I was doing to keep track of the calls ring generating call (what a sentance). On Mon, Feb 02, 2009 at 08:01:25AM -0600, Anthony Minessale wrote: you could set the conference moh sound to be tone_stream::// with the teletone spec for ring sound and it use ignore_early_media=true in your originates so the first caller would hear ringback until the 2nd one arrived. On Mon, Feb 2, 2009 at
Re: [Freeswitch-users] Conference dialing and uuid
Hmm ok ... Ill try that In my head though the api call to originate shouldent block? but I assume since it does my head is wrong. Thanks you for the explanation. I think you can put this one to bed now :-P On Tue, Feb 03, 2009 at 07:54:29AM -0600, Anthony Minessale wrote: There is a file format called tone_stream that I was trying to explain yesterday. tone_stream://teletone spec or tone_stream://path=/path/to/text_file.ttml you can use this to play tones anywhere a filename is supposed to go. I guess loopback really is your only option if you must generate ringback. Typically, whatever gateway you are calling out over will go into early media and start playing the real ringback. You should not execute any apps during the on_ring_execute that block, (playing audio etc) Media has not even been established at that point and you have nobody to play the audio to anyway, But you will block from that point until the application you chose has ended so you should only execute small apps that return immediately such as setting a variable etc. As for ringback I think you have the whole thing reversed in your head. the ringback vars etc only apply to the origination (a) leg of a call. If you make an inbound call set the ringback variable and then call bridge, the ringback var is parsed on that inbound leg and the dialout process of the bridge app involves 2 channels the A leg and the B leg. When the B leg gets a ring indication and the A leg detects it, it will begin to play the ringback sound you chose back to the originator of that inbound leg. In the conference or using originate situation, you are doing an outbound call with no relevant inbound call, so there is nothing to generate ringback to. That's why loopback works because it cross connects an outbound call back to an inbound call which gives the bridge app everything it needs to be able to generate artificial ringback. On Tue, Feb 3, 2009 at 2:25 AM, Sias Mey [1]s...@cpdata.co.za wrote: Hmmm no MOH wont work... since I am planning on pulling more than just 2 members into the conference and I still need ringback for the later members as well. Is there a direct way for me to use conference number play audiofile to play teletone directly? or should I just records some ringing if I want to use that? And lastly for my own sanity ;-) why would the following in a on_ring_execute stop execution of the call at that point? call = argv[1]; conf = argv[2]; consoleLog(info,Making ringback channel for uuid : + session.uuid +\n); var ringuuid = apiExecute(originate,loopback/ringback-conf=+ conf +-conf park()) //I tried with and without a exit() at the end It seems to stop media detection??(not really sure about the term) for the call that executes this script. Freeswitch doesent recognize the pickup of that call and thus it doesent get bridged into the conference. when I uuid_kill the call that gets originated everything else starts happening again. Oh Im running this in FS ver. 1.0.trunk (11226:11561M) and that loopback points to extension name=ringback condition field=destination_number expression=^ringback-conf=(.*)$ action application=javascript data=ringback.js $1/ /condition /extension and ringback.js is use(TeleTone); session.answer(); var tts = new TeleTone(session); tts.addTone(u, 400.0, 450.0, 0.0); tts.addTone(r, 440.0, 480.0, 0.0); var RESET = v=2000;=0;+=0;; var UK_RING = RESET + L=2;u(400,200);u(400,2200); var US_RING = RESET + r(2000,4000); while(session.ready()) { console_log(making UK ring\n); for (x = 0 ; x 2 ; x++) { tts.generate(UK_RING); } } A slight bastardisation of the teletone JS example. I would expected the new channel that is created via a api originate to be completely seperate from the JS I create it in. (thats why I use api instead of creating a new session, although I should probably try that as well). I use some CoreDB stuff to keep tabs on the uuid for the originated call so that I can uuid_kill it in the on_answer_script but as mentioned... the on_answer only executes after I uuid_kill the originated channel in the cli... Thanks again guys, Specially since it seems you two are always the ones that get back to me. On Tue, Feb 03, 2009 at 09:22:21AM +0200, Sias Mey wrote: Actually loopback does work. however as I said it generates a pair of extra channels. Hmmm I was trying to generate and extra call to a JS script that generated a teletone ring in an
Re: [Freeswitch-users] Conference dialing and uuid
hmmm ok indeed. small mods to js files to just play a lng tone_stream full of ringy noises and then stop them in the on answer and I have what I wanted. Thank you very very much for all your help. On Tue, Feb 03, 2009 at 04:16:21PM +0200, Sias Mey wrote: Hmm ok ... Ill try that In my head though the api call to originate shouldent block? but I assume since it does my head is wrong. Thanks you for the explanation. I think you can put this one to bed now :-P On Tue, Feb 03, 2009 at 07:54:29AM -0600, Anthony Minessale wrote: There is a file format called tone_stream that I was trying to explain yesterday. tone_stream://teletone spec or tone_stream://path=/path/to/text_file.ttml you can use this to play tones anywhere a filename is supposed to go. I guess loopback really is your only option if you must generate ringback. Typically, whatever gateway you are calling out over will go into early media and start playing the real ringback. You should not execute any apps during the on_ring_execute that block, (playing audio etc) Media has not even been established at that point and you have nobody to play the audio to anyway, But you will block from that point until the application you chose has ended so you should only execute small apps that return immediately such as setting a variable etc. As for ringback I think you have the whole thing reversed in your head. the ringback vars etc only apply to the origination (a) leg of a call. If you make an inbound call set the ringback variable and then call bridge, the ringback var is parsed on that inbound leg and the dialout process of the bridge app involves 2 channels the A leg and the B leg. When the B leg gets a ring indication and the A leg detects it, it will begin to play the ringback sound you chose back to the originator of that inbound leg. In the conference or using originate situation, you are doing an outbound call with no relevant inbound call, so there is nothing to generate ringback to. That's why loopback works because it cross connects an outbound call back to an inbound call which gives the bridge app everything it needs to be able to generate artificial ringback. On Tue, Feb 3, 2009 at 2:25 AM, Sias Mey [1]s...@cpdata.co.za wrote: Hmmm no MOH wont work... since I am planning on pulling more than just 2 members into the conference and I still need ringback for the later members as well. Is there a direct way for me to use conference number play audiofile to play teletone directly? or should I just records some ringing if I want to use that? And lastly for my own sanity ;-) why would the following in a on_ring_execute stop execution of the call at that point? call = argv[1]; conf = argv[2]; consoleLog(info,Making ringback channel for uuid : + session.uuid +\n); var ringuuid = apiExecute(originate,loopback/ringback-conf=+ conf +-conf park()) //I tried with and without a exit() at the end It seems to stop media detection??(not really sure about the term) for the call that executes this script. Freeswitch doesent recognize the pickup of that call and thus it doesent get bridged into the conference. when I uuid_kill the call that gets originated everything else starts happening again. Oh Im running this in FS ver. 1.0.trunk (11226:11561M) and that loopback points to extension name=ringback condition field=destination_number expression=^ringback-conf=(.*)$ action application=javascript data=ringback.js $1/ /condition /extension and ringback.js is use(TeleTone); session.answer(); var tts = new TeleTone(session); tts.addTone(u, 400.0, 450.0, 0.0); tts.addTone(r, 440.0, 480.0, 0.0); var RESET = v=2000;=0;+=0;; var UK_RING = RESET + L=2;u(400,200);u(400,2200); var US_RING = RESET + r(2000,4000); while(session.ready()) { console_log(making UK ring\n); for (x = 0 ; x 2 ; x++) { tts.generate(UK_RING); } } A slight bastardisation of the teletone JS example. I would expected the new channel that is created via a api originate to be completely seperate from the JS I create it in. (thats why I use api instead of creating a new session, although I should probably try that as well). I use some CoreDB stuff to keep tabs on the uuid for the originated call so that I can uuid_kill it in the on_answer_script but as mentioned... the on_answer only executes after I uuid_kill the originated channel in the cli... Thanks again
[Freeswitch-users] origainate through sofia gateway
Hello I am trying to initiate a call from javascript, it works fine for local numbers: session1.originate(session1, {ignore_early_media=true}user/1...@192.168.1.122); but when I am trying to connect through sofia gateway, the connection is not being established: session2.originate(session2, sofia/gateway/halonet/0225490317); although I can call to this number from softphone. I have also tried setting effective_caller_id_number: session1.originate(session1, {effective_caller_id_number=fixed0248b}sofia/gateway/halonet/0225490317); with the same result. A configuration in the dialplan that works is: extension name=halonet.pl condition field=destination_number expression=^0095(\d{10})$ action application=set data=effective_caller_id_number=fixed0248b/ action application=set data=bypass_media=true/ action application=set data=hangup_after_bridge=true/ action application=bridge data=sofia/gateway/halonet/$1/ /condition /extension Would appreciate any help. Jacek ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
[Freeswitch-users] debuild breaks since the last few days
Hi all, I've been trying to build new debs, but debuild seems to break.. I tried trunk rev 11608 and 1.0.3RC-1 and tried building the packages with: debuild -i -us -uc -b (which worked before) And now it breaks at openzap with: cc1: warnings being treated as errors src/ozmod/ozmod_isdn/ozmod_isdn.c: In function 'writeQ931PacketToPcap': src/ozmod/ozmod_isdn/ozmod_isdn.c:220: warning: implicit declaration of function 'pcap_dump_flush' make[7]: *** [src/ozmod/ozmod_isdn/ozmod_isdn.o] Error 1 make[7]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/libs/ openzap' make[6]: *** [../libopenzap.so] Error 2 make[6]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/libs/ openzap/mod_openzap' make[5]: *** [all] Error 1 make[5]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/libs/ openzap/mod_openzap' make[4]: *** [../../libs/openzap/mod_openzap-all] Error 1 make[4]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/src/mod' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/src' Making all in build make[3]: Entering directory `/home/fsbuilder/freeswitch-1.0.3RC1/build' + FreeSWITCH Build Complete ---+ + FreeSWITCH has been successfully built. + + Install by running: + + + + /usr/bin/make install + +--+ make[3]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1/build' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/fsbuilder/freeswitch-1.0.3RC1' make: *** [build-stamp] Error 2 debuild: fatal error at line 1247: debian/rules build failed Does anyone know how to fix this ? thanks, Leon ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
[Freeswitch-users] OPenser - FS Do I need this?
Newbie with FS, currently have Asterisk servers front ended by Openser Question: I have around 400 sip remote clients, if I were to deploy FS, do I need Openser? Is there any advantage in retaining Openser? Regards ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] fifo problem
you could use the intercept app to unpark the caller without using fifo out, then it would only work if the caller existed. On Tue, Feb 3, 2009 at 7:51 AM, Tamas Cseke cstomi.levl...@gmail.comwrote: Hello, We have a problem with mod_fifo. we monitor fifo push event on event socket, call consumer with originate fifo out nowait Similar like fifo_outbound works, but we have an external strategy for consumer selection (eg.: skill-based routing) The problem is when a caller stops waiting in fifo, the originated calls kepp ringing the consumer, and when the consumer answer the call, he or she may grab somebody else from the fifo, which is a problem because the callers are identified and some data (eg name, phonenumber is shown for the consumer). so it can happen these data will be wrong. We tried to resolve this issue by a call tracking in the external script using event socket. we pushes a variable into the CHANNEL_ORIGINATE event calling the consumer containing the caller uuid. and if the caller aborts the fifo, we hangup the consumer call with (uuid_kill) But it's not prefect becasue it can happen that the consumer pop another caller from the fifo. and we hangup this call, so as a side-effect we loosing another caller. Could anybody advise a solution for this please? we thinking about to have a fifo_caller_uuid variable, that we set before calling fifo with the out method. and if this uuid is in the top of the fifo then pop it else don't pop anybody. it seems to be a hack anyway Thanks in advance, Tamas ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_miness...@hotmail.com msn%3aanthony_miness...@hotmail.com GTALK/JABBER/PAYPAL:anthony.miness...@gmail.compaypal%3aanthony.miness...@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:8...@conference.freeswitch.org sip%3a...@conference.freeswitch.org iax:gu...@conference.freeswitch.org/888 googletalk:conf+...@conference.freeswitch.orggoogletalk%3aconf%2b...@conference.freeswitch.org pstn:213-799-1400 ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Application language to support C or C++?
Lee, You also might want to take a look at some of the examples in the contrib folder in the source tree. There are several items there that use the event socket. The event socket is extremely powerful and is suitable for a wide range of applications. However, it isn't the only way to do things. You could also build an actual FreeSWITCH application like the ones found in the mod directory. That's a bit more involved and I don't recommend starting there unless you're C/C++ skills are well established. :) What is your application? Most likely others here have done something similar and can share with you their experiences, including what worked and what didn't work. -MC On Tue, Feb 3, 2009 at 5:33 AM, Raul Fragoso r...@etellicom.com wrote: Depending on what you want to do, I suggest having a look at mod_event_socket: http://wiki.freeswitch.org/wiki/Mod_event_socket That module is a socket based interface that provides a vast range of options to control FreeSWITCH and its applications. Just for the record, my application is entirely written in C++ and uses FreeSWITCH as a back-end for providing PBX functionality through a combination of mod_event_socket and mod_xml_curl. Regards, Raul On Tue, 2009-02-03 at 10:21 +0800, lee jason wrote: Hi All, I saw the applications using FreeSwitch library can be written in JavaScript, Perl, Python and Lua but I need to use Linux C or C++ for applications, Is FreeSwitch can supported it? Where can I get the sample codes? My Linux platform is base on Fedora. Thanks a lot. Jason ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Generating calls from external source
Are you suggesting that I should process the call externally instead of using the dialplan? That would be neat as the audio file select could be driven from the db select for the number. I presume that I could also bridge the call to another number as well dependant on DTMF selection? Regards -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Raul Fragoso Sent: 03 February 2009 13:12 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source In addition do David's suggestion, you probably want to have your application to watch for some specific events after the call is originated and take action based on them. For example, you could watch for the CHANNEL_ANSWER event and play some audio file waiting for some digit, which is generated by the DTMF event. To watch only for those specific events, you should do the following just after authentication (still using Perl as an example, but the mod_event_socket is language agnostic), then you will receive those events from FreeSWITCH through the socket stream: ... print $sock auth XXX\n\n; print $sock event plain CHANNEL_ANSWER DTMF\n\n; ... To see a list of available events, please look at the following wiki pages: http://wiki.freeswitch.org/wiki/Mod_event_socket#event http://wiki.freeswitch.org/wiki/Event_list Regards, Raul On Tue, 2009-02-03 at 09:46 +, David Knell wrote: Hi Nik, Here's a snipped in Perl that launches an outbound call: if (my $sock = IO::Socket::INET-new(Proto ='tcp', PeerAddr = '127.0.0.1', PeerPort = 8021)) { print $sock auth XXX\n\n; print $sock api originate {softivr_id=$siid,src_softivr_id= $siid,softivr_outdial=true}sofia/frombt/$...@1.2.3.4 $service\n\n; $sock-close(); } - it does no error checking or anything, but (line by line) it: - opens a socket to the event socket interface - authenticates - issues an originate which dials out to the number in $ntd. The bits in {} set a bunch of variables on the channel, which are used by the software which processes the call later on. The call is linked to the extension in $service - FS looks this up in the dialplan - which handles our end. - closes the socket Cheers -- Dave Thanks for that, coming from a C++ background it's a refreshing change to be looking at something that seems logical and efficient. I'd briefly looked at the event socket and wondered if that was the way to go. I presume that there's some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I'm not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I'm finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that's concerning me is XML at the moment. Lots of code and very wordy. I'm sure I'll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source Nik, Welcome to FreeSWITCH! The short answer is yes, FS can do that. The first thing that you should do is unlearn the Asterisk way of thinking. Usually there is an elegant way of doing things in FS that wasn't possible in Ast. I would recommend that you start by looking at the event socket, which is somewhat analogous to the AMI only cooler. :) I have personally done something similar to this using the event socket and a Perl script. The key is to learn the syntax of the originate command. (definitely hit the wiki and IRC channel) Are you using TDM cards for this? Just curious. -MC (IRC nick: mercutioviz) Sent from my iPhone On Feb 2, 2009, at 3:35 PM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Hi Guys, As a long time Asterisk user, I'm looking into freeswitch as an alternative mainly due to (list multiple reasons here) Can anyone give me a pointer as to how I would achieve the following? I need to replicate an emergency broadcast system currently running under Asterisk. At the moment, I run through a Mysql database and using the manager API, issues an Originate command to dial a number. When the call is answered, a message is played, and the recipient has the option of hitting a digit to confirm receipt. I then
Re: [Freeswitch-users] Generating calls from external source
Nik, There are a lot of ways to make FS dial out and deliver messaging etc. We are going through the process of replacing * for this purpose. For us (getting started with the help of our friends here on the list) it has been pretty easy. With * we were using AMI to originate calls ... to migrate to FS we just changed that to use event_socket with bgapi to originate the call and connect the call to a context and extension. There are several ways to get the dialplan to FS after that ... a script, xml_curl, or statically configured in the conf directory. So as an example the application we have just logs into the FS socket (similar to * but much better) and then rips off calls like this: bgapi originate{$set_some_vars}sofia/external/$...@$ip:$PORT $EXTENSION xml $CONTEXT The beauty of it all is that: -- a lot of flexibility in what you can do (like drive the call through events) -- the CDR reporting is about 3 million times better than * -- obviously higher capacity I'd start playing with event_socket and some static dialplans to get the feel for it ... but if you have an application written already to work with * (i.e. the logic and backend) it will be very easy to migrate and you'll be glad you did it! Shelby On Tue, Feb 3, 2009 at 10:53 AM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Are you suggesting that I should process the call externally instead of using the dialplan? That would be neat as the audio file select could be driven from the db select for the number. I presume that I could also bridge the call to another number as well dependant on DTMF selection? Regards -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Raul Fragoso Sent: 03 February 2009 13:12 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source In addition do David's suggestion, you probably want to have your application to watch for some specific events after the call is originated and take action based on them. For example, you could watch for the CHANNEL_ANSWER event and play some audio file waiting for some digit, which is generated by the DTMF event. To watch only for those specific events, you should do the following just after authentication (still using Perl as an example, but the mod_event_socket is language agnostic), then you will receive those events from FreeSWITCH through the socket stream: ... print $sock auth XXX\n\n; print $sock event plain CHANNEL_ANSWER DTMF\n\n; ... To see a list of available events, please look at the following wiki pages: http://wiki.freeswitch.org/wiki/Mod_event_socket#event http://wiki.freeswitch.org/wiki/Event_list Regards, Raul On Tue, 2009-02-03 at 09:46 +, David Knell wrote: Hi Nik, Here's a snipped in Perl that launches an outbound call: if (my $sock = IO::Socket::INET-new(Proto ='tcp', PeerAddr = '127.0.0.1', PeerPort = 8021)) { print $sock auth XXX\n\n; print $sock api originate {softivr_id=$siid,src_softivr_id= $siid,softivr_outdial=true}sofia/frombt/$...@1.2.3.4 $service\n\n; $sock-close(); } - it does no error checking or anything, but (line by line) it: - opens a socket to the event socket interface - authenticates - issues an originate which dials out to the number in $ntd. The bits in {} set a bunch of variables on the channel, which are used by the software which processes the call later on. The call is linked to the extension in $service - FS looks this up in the dialplan - which handles our end. - closes the socket Cheers -- Dave Thanks for that, coming from a C++ background it's a refreshing change to be looking at something that seems logical and efficient. I'd briefly looked at the event socket and wondered if that was the way to go. I presume that there's some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I'm not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I'm finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that's concerning me is XML at the moment. Lots of code and very wordy. I'm sure I'll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from
Re: [Freeswitch-users] origainate through sofia gateway
Jacek, I had a similar problem once. It actually depends on your sip gateway, but I was able to solve the problem by setting the caller id, ie: session1 = new Session(); session1.setCallerData(caller_id_name, 8280052500); session1.setCallerData(caller_id_number, 8280052500); session1.originate(session1, {ignore_early_media=true}sofia/gateway/sip.ipcorp.cl/0225490317, 60); In this case, the caller_id was the number assigned to me by the external gateway. Hope it helps. Nicolas On Tue, Feb 3, 2009 at 10:36 AM, Jacek Sokulski jsokul...@dotsystems.pl wrote: Hello I am trying to initiate a call from javascript, it works fine for local numbers: session1.originate(session1, {ignore_early_media=true}user/1...@192.168.1.122); but when I am trying to connect through sofia gateway, the connection is not being established: session2.originate(session2, sofia/gateway/halonet/0225490317); although I can call to this number from softphone. I have also tried setting effective_caller_id_number: session1.originate(session1, {effective_caller_id_number=fixed0248b}sofia/gateway/halonet/0225490317); with the same result. A configuration in the dialplan that works is: extension name=halonet.pl condition field=destination_number expression=^0095(\d{10})$ action application=set data=effective_caller_id_number=fixed0248b/ action application=set data=bypass_media=true/ action application=set data=hangup_after_bridge=true/ action application=bridge data=sofia/gateway/halonet/$1/ /condition /extension Would appreciate any help. Jacek ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
You forgot to tell us what revision of the code you're on? /b On Feb 3, 2009, at 11:16 AM, e schmidbauer wrote: hey everyone. just wondering if anyone has tested recording conferences at 48000h celt to a shoutcast stream or wav file. we are able to have cd quality conferences with 3 members each using the celt codec with little or no noise disturbances or skipping. but when we try to record the conference either to a wav file or to a shoutcast stream, the quality significantly decreases due to skipping or popping noises. im not sure but maybe we are having this problem because our server doesnt have the CPU power to handle reencoding on the fly like that. we are using a 2.8ghz amd64 dual core, 4gig ddr 800 as our freeswitch server. im thinking if there is a way to record the conference as a celt audio file (instead of reencoding to mp3) that may reduce the CPU power needed and therefore solve the problem or we just need a more powerful server. could anyone recommended what kind of server we would need to handle such instances as i described above? thank you. ___ Freeswitch-users mailing list ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] origainate through sofia gateway
YOU should NEVER use this method or call setCallerData at all you should use the correct methods to override the callerid. If its a B-Leg born from an A-Leg you use these on the on the A-Leg: http://wiki.freeswitch.org/wiki/Channel_Variables#effective_caller_id_name http://wiki.freeswitch.org/wiki/Channel_Variables#effective_caller_id_number If you're originating you use this: http://wiki.freeswitch.org/wiki/Channel_Variables#origination_caller_id_name http://wiki.freeswitch.org/wiki/Channel_Variables#origination_caller_id_number /b On Feb 3, 2009, at 11:20 AM, Nicolas Brenner wrote: Jacek, I had a similar problem once. It actually depends on your sip gateway, but I was able to solve the problem by setting the caller id, ie: session1 = new Session(); session1.setCallerData(caller_id_name, 8280052500); session1.setCallerData(caller_id_number, 8280052500); session1.originate(session1, {ignore_early_media=true}sofia/gateway/sip.ipcorp.cl/0225490317, 60); In this case, the caller_id was the number assigned to me by the external gateway. Hope it helps. Nicolas ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Generating calls from external source
On Tue, Feb 3, 2009 at 8:53 AM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Are you suggesting that I should process the call externally instead of using the dialplan? That would be neat as the audio file select could I'm not saying you should, merely that you could. What I did was create a bunch of extensions in my dialplan that handled various steps of the IVR outbound call: start, answered, busy, not answered, SIT tones, etc. So my originate command would originate the call (A leg) and drop the B leg into the dialplan at the start extension and then it goes from there. It listens for early media busy or SIT tones and also does an execute_on_answer to the extension that does the actual IVR. (Only need the IVR on an answered call.) If the call is not answered after 25 seconds then I run a Lua script that checks for the presence of certain channel variables that I set with the tone_detect application (busy and SIT). If none of those are present then I assume the call went unanswered and do the post-processing. be driven from the db select for the number. I presume that I could also bridge the call to another number as well dependant on DTMF selection? Yes, you can do this as well. You can build an IVR in XML or you can build in a scripting language like Lua: demo IVR: http://svn.freeswitch.org/svn/freeswitch/trunk/conf/autoload_configs/ivr.conf.xml Lua IVR info: http://wiki.freeswitch.org/wiki/IVR#Lua_IVRs Sorry if this is all a bit overwhelming, but you'll be glad that you dove in to FS because it does s much and does it so well. Enjoy! -MC Regards -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Raul Fragoso Sent: 03 February 2009 13:12 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source In addition do David's suggestion, you probably want to have your application to watch for some specific events after the call is originated and take action based on them. For example, you could watch for the CHANNEL_ANSWER event and play some audio file waiting for some digit, which is generated by the DTMF event. To watch only for those specific events, you should do the following just after authentication (still using Perl as an example, but the mod_event_socket is language agnostic), then you will receive those events from FreeSWITCH through the socket stream: ... print $sock auth XXX\n\n; print $sock event plain CHANNEL_ANSWER DTMF\n\n; ... To see a list of available events, please look at the following wiki pages: http://wiki.freeswitch.org/wiki/Mod_event_socket#event http://wiki.freeswitch.org/wiki/Event_list Regards, Raul On Tue, 2009-02-03 at 09:46 +, David Knell wrote: Hi Nik, Here's a snipped in Perl that launches an outbound call: if (my $sock = IO::Socket::INET-new(Proto ='tcp', PeerAddr = '127.0.0.1', PeerPort = 8021)) { print $sock auth XXX\n\n; print $sock api originate {softivr_id=$siid,src_softivr_id= $siid,softivr_outdial=true}sofia/frombt/$...@1.2.3.4 $service\n\n; $sock-close(); } - it does no error checking or anything, but (line by line) it: - opens a socket to the event socket interface - authenticates - issues an originate which dials out to the number in $ntd. The bits in {} set a bunch of variables on the channel, which are used by the software which processes the call later on. The call is linked to the extension in $service - FS looks this up in the dialplan - which handles our end. - closes the socket Cheers -- Dave Thanks for that, coming from a C++ background it's a refreshing change to be looking at something that seems logical and efficient. I'd briefly looked at the event socket and wondered if that was the way to go. I presume that there's some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I'm not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I'm finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that's concerning me is XML at the moment. Lots of code and very wordy. I'm sure I'll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source Nik, Welcome to FreeSWITCH! The short answer is yes, FS can do that.
Re: [Freeswitch-users] origainate through sofia gateway
Oops! Well, fortunately I don't use that voip provider anymore (nor the script). Thanks Brian. Nicolas On Tue, Feb 3, 2009 at 2:25 PM, Brian West br...@freeswitch.org wrote: YOU should NEVER use this method or call setCallerData at all you should use the correct methods to override the callerid. If its a B-Leg born from an A-Leg you use these on the on the A-Leg: http://wiki.freeswitch.org/wiki/Channel_Variables#effective_caller_id_name http://wiki.freeswitch.org/wiki/Channel_Variables#effective_caller_id_number If you're originating you use this: http://wiki.freeswitch.org/wiki/Channel_Variables#origination_caller_id_name http://wiki.freeswitch.org/wiki/Channel_Variables#origination_caller_id_number /b ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Generating calls from external source
There is also an event socket library written in C called esl that is in the fs tree in the libs directory. This has the ability to establish connections both inbound and outbound from FS. There is also a perl module FreeSWITCH::Client that mr collins may be interested in in the tree as well. On Tue, Feb 3, 2009 at 7:12 AM, Raul Fragoso r...@etellicom.com wrote: In addition do David's suggestion, you probably want to have your application to watch for some specific events after the call is originated and take action based on them. For example, you could watch for the CHANNEL_ANSWER event and play some audio file waiting for some digit, which is generated by the DTMF event. To watch only for those specific events, you should do the following just after authentication (still using Perl as an example, but the mod_event_socket is language agnostic), then you will receive those events from FreeSWITCH through the socket stream: ... print $sock auth XXX\n\n; print $sock event plain CHANNEL_ANSWER DTMF\n\n; ... To see a list of available events, please look at the following wiki pages: http://wiki.freeswitch.org/wiki/Mod_event_socket#event http://wiki.freeswitch.org/wiki/Event_list Regards, Raul On Tue, 2009-02-03 at 09:46 +, David Knell wrote: Hi Nik, Here's a snipped in Perl that launches an outbound call: if (my $sock = IO::Socket::INET-new(Proto ='tcp', PeerAddr = '127.0.0.1', PeerPort = 8021)) { print $sock auth XXX\n\n; print $sock api originate {softivr_id=$siid,src_softivr_id= $siid,softivr_outdial=true}sofia/frombt/$...@1.2.3.4 $service\n\n; $sock-close(); } - it does no error checking or anything, but (line by line) it: - opens a socket to the event socket interface - authenticates - issues an originate which dials out to the number in $ntd. The bits in {} set a bunch of variables on the channel, which are used by the software which processes the call later on. The call is linked to the extension in $service - FS looks this up in the dialplan - which handles our end. - closes the socket Cheers -- Dave Thanks for that, coming from a C++ background it's a refreshing change to be looking at something that seems logical and efficient. I'd briefly looked at the event socket and wondered if that was the way to go. I presume that there's some sort of event generation that can trigger and external process as well somewhere, though all I need to do is update mysql (hopefully using some sort of pooled connection) I'm not using a TDM card, I have a direct interconnect with the PSTN breakout provider with 1,500 channels available to me. I'm finding Asterisk proving to be less than stable at high call volumes and load values spike at more than 100 calls with billing/accounting in place, hence my interest in FS. The only thing that's concerning me is XML at the moment. Lots of code and very wordy. I'm sure I'll appreciate why XML given time Regards, From: freeswitch-users-boun...@lists.freeswitch.org [mailto: freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael S Collins Sent: 03 February 2009 01:17 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Generating calls from external source Nik, Welcome to FreeSWITCH! The short answer is yes, FS can do that. The first thing that you should do is unlearn the Asterisk way of thinking. Usually there is an elegant way of doing things in FS that wasn't possible in Ast. I would recommend that you start by looking at the event socket, which is somewhat analogous to the AMI only cooler. :) I have personally done something similar to this using the event socket and a Perl script. The key is to learn the syntax of the originate command. (definitely hit the wiki and IRC channel) Are you using TDM cards for this? Just curious. -MC (IRC nick: mercutioviz) Sent from my iPhone On Feb 2, 2009, at 3:35 PM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Hi Guys, As a long time Asterisk user, I'm looking into freeswitch as an alternative mainly due to (list multiple reasons here) Can anyone give me a pointer as to how I would achieve the following? I need to replicate an emergency broadcast system currently running under Asterisk. At the moment, I run through a Mysql database and using the manager API, issues an Originate command to dial a number. When the call is answered, a message is played, and the recipient has the option of hitting a digit to confirm receipt. I then call an AGI script to update the database. Is this fairly easy to do in Freeswitch? Not looking for code, just some pointers as to what's available to do the above /
Re: [Freeswitch-users] OPenser - FS Do I need this?
Well Openser has better NAT handling than Asterisk for a start. In addition it takes the load off of Asterisk with regards to registrations. Further, I'm able to have multiple asterisk servers fronted by Openser Finally, I've numerous posts that * chokes with sip clients 200. I couldn't afford to take the risk. But the biggest issue is with load spikes and asterisk. I've never gotten to the bottom of it, and believe me a lot of people far smarter then me have tried to figure it out. So... The more I can keep asterisk out of the mundane stuff the better. It's been said to me many times, that the way Asterisk is put together is fundamentally flawed and this really shows it's self under load. Not knocking Asterisk, it's served me well for the last 4 years. Heck I've got a book being published on it in a couple of months, but for me, I need a scalable solution, hence my interest in FS. I also don't see * going beyond 1.4. 1.6 as far as I can tell has a very low take-up rate, why ? well because they've changed how everything works to the extent that hardly anything written for 1.4 can port to 1.6. The syntax changes don't appear to serve any real purpose. So to get back to my original question, if FS can handle a significantly higher number of call setups, then perhaps I don't need OpenSer, that was the thrust of my post. Regards -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Michael Collins Sent: 03 February 2009 17:08 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] OPenser - FS Do I need this? On Tue, Feb 3, 2009 at 8:20 AM, Nik Middleton nik.middle...@noblesolutions.co.uk wrote: Newbie with FS, currently have Asterisk servers front ended by Openser Question: I have around 400 sip remote clients, if I were to deploy FS, do I need Openser? Is there any advantage in retaining Openser? If I may ask... why did you have OpenSER with your Asterisk deployment? Reason I ask is because some people do that because Asterisk sucks but others have a specific application or reason. What does OpenSER do for your Asterisk install? -MC Regards ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] OPenser - FS Do I need this?
FreeSwitch is very capable of handling high call setup loads... The question is what do you consider high setup loads? Where it is true, OpenSER/SIP/whatever its called this week can handle a much higher packet per second load then freeswitch, freeswitch on the other hand is capable of handling much more call volume then asterisk... Certain people hate when I quote numbers but I have personally deployed FreeSwitch on projects that handle (per FS Box) 500 calls/sec (that's 2 leg calls) and in excess of concurrent calls... The real question is not can FS hang, but what at what level do you call 'high volume'... What I call high volume is a telemarketer running at 2500 calls/sec and peak concurrent channel usage in the 10,000 to 15,000 channel range K From: Nik Middleton nik.middle...@noblesolutions.co.uk Subject: Re: [Freeswitch-users] OPenser - FS Do I need this? SNIP So to get back to my original question, if FS can handle a significantly higher number of call setups, then perhaps I don't need OpenSer, that was the thrust of my post. SNIP ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] OPenser - FS Do I need this?
If you're telling me that FS can handle the figures quoted, that's plenty enough for me. I have 5,000 lines PSTN /channels, possibly double that shortly. I need to fill all of them as quickly as possible and maintain that level for a given period of time. So I guess I'm in the upper medium end of the scale. Regards, -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of Ken Rice Sent: 03 February 2009 18:16 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] OPenser - FS Do I need this? FreeSwitch is very capable of handling high call setup loads... The question is what do you consider high setup loads? Where it is true, OpenSER/SIP/whatever its called this week can handle a much higher packet per second load then freeswitch, freeswitch on the other hand is capable of handling much more call volume then asterisk... Certain people hate when I quote numbers but I have personally deployed FreeSwitch on projects that handle (per FS Box) 500 calls/sec (that's 2 leg calls) and in excess of concurrent calls... The real question is not can FS hang, but what at what level do you call 'high volume'... What I call high volume is a telemarketer running at 2500 calls/sec and peak concurrent channel usage in the 10,000 to 15,000 channel range K From: Nik Middleton nik.middle...@noblesolutions.co.uk Subject: Re: [Freeswitch-users] OPenser - FS Do I need this? SNIP So to get back to my original question, if FS can handle a significantly higher number of call setups, then perhaps I don't need OpenSer, that was the thrust of my post. SNIP ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
Hi Rod, Great info, Thanks! Glad to see others are interested in the same concept. My reasons for SER as routing core and implementation is slightly different yet similar. I like your Redirect model, with that you are truly using your Kamailio as route server only. I would imagine very scalable. - Are you able to do any round robin, serial or parallel forking with this? - I wonder if multiple Contacts in the 302 response maybe with some logic in FreeSwitch dialplan? If so I think your design is a bit more efficient than mine as it keeps SER out of the call path. My design is little different.. it is more of a Stateful setup. With SER staying in call path and FreeSwitch at Edge. I do this to enable Serial Forking to a series of SBCs (FreeSwitch) geo distributed, when one of the branches is congested it forks to the next SBC (route). The FreeSwitch guys are probably right tho... with mod_easyroute and mod_lcr we could probably implement all of this in FreeSwitch without SER. I would be curious to know if anyone is doing something similar at high volumes and what sort of concurrency and cps they are able to achieve. I am a Perl and C# guy, I thought about implementing a mod_manged_lcr with memcached support. Memcache support would prob boost the scalability by a factor of 10 at least. I will let you know if I end up developing a high performance FreeSwitch route module. Right now I use memcache in a OpenSIPS perl script for my route caching and its incredibly fast and clusters well. It actually might be easier to add memcached support to mod_lcr and mod_easyroute but im not real strong in C/C++ I'll jump on IRC later and chat with some of the experts on this as I know memcache has been discussed before. I'd be curious to know if any progress has been made there already. Regards, -Adam -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Tuesday, February 03, 2009 1:33 AM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC Hi Adam, I'm in the process of using FS as a SBC. For the route lookup, I do it using OpenSER carrierroute, without having to flow through SBC---Openser---SBC. I'm using carrierroute at this time cause I need more than 200 000 routing entries and carrierroute has been tested with twice this number. Here is the setup: - install openser and carrierroute and make openser listening on 127.0.0.1:5062 (for example) on your SBC - populate carrierroute table What I do to use carrierroute module from FS is to use a specific X-header (X-LOOKUP). In the dialplan, in the default context, I have something like this: extension name=LOOKUP_ROUTE condition field=destination_number expression=(\d+)$ action application=set data=hangup_after_bridge=true/ action application=set data=continue_on_fail=true/ action application=export data=sip_h_X-ROUTE=LOOKUP/ action application=bridge data=sofia/internal/${sip_req_us...@127.0.0.1:5062/ action application=export data=sip_h_X-ROUTE=${sip_redirect_contact_host_0}/ action application=transfer data=${destination_number} XML ROUTING/ /condition /extension The process is simple: the export sip_h_X-ROUTE=LOOKUP had a sip header X-ROUTE=LOOKUP then I bridge the call to 127.0.0.1:5062 (openser process) In openser I have a route block that checks the presence of header LOOKUP and openser sends a 604: unable to route call if the prefix is not found, or a 302: with the IP of the gateway found In FS, you can get the IP using the variable ${sip_redirect_contact_host_0}. Then I transfer this to the context ROUTING, where the check condition is based on the LOOKUP header that has been rewritten with this variable. I will document all this setup (installation of openser/carrierroute and config file of FS and openser) on a wiki page I start writing yesterday, so please be indulgent and patient. The next step is to test the scalability of this. I'm a very bad programmer, so that's the only way for me to contribute to FS, and as I see many people interested for an SBC setup, I think it could be great if we share our work/knowlegde. The wiki page is there: http://wiki.freeswitch.org/wiki/SBC_Setup regards, rod. Adam Long wrote: Hi Guys, I've been working at setting up a couple of FreeSwitch nodes as a topology hiding SBCs that handles both ingress traffic from my providers/peers and pass traffic up to an openser router that then routes call across the cluster of SBCs through which they reach the destination. I have OpenSIPS/SER setup doing DB route lookups and ENUM with LCR/Serial forking etc. My question is what would be the best way to send a call out to a destination choosen by the OpenSER router? For example: SIP Provider -- SBC --- OpenSER ( route lookup returns 123.123.123.4 as dest ) -- SBC --- 123.123.123.4 I was thinking
[Freeswitch-users] mod_sofia ReINVITE
In every one of my SIP sessions FreeSwitch appears to be inserting .. Contact: sip:mod_so...@xxx.xxx.xxx.xxx:5060 Is this normal? I only ask as it is causing some of my end points to RE-INVITE back to this after the initial ( INVITE 100 Trying--- 200 OK ) call setup. If this is not normal or by design I can provide more details on configuration and dialplan. Thanks! Regards, -Adam ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
Actually I currently deploy FreeSWITCH for high volume usage using FreeSWITCH + mod_easyroute (I'm the author) and an advanced LCR module that does things like load balancing across multiple media gateways, auto route advance, and a few other nifty things... (this LCR module uses a proprietary algorithm so its not open source but it is licensable) With these things we do run OpenSER but only as a proxy to aggregate traffic heading upstream toward certain carriers (like L3 who make any IP changes a royal pain) Now to get down to some hard numbers that we have experience Equipment: DB Servers: Dell 2650 RAID 3+1 or 0+1 depending on number of Spindles, Dual 3GHz XEON (single code old slow FSB ones), 4G RAM, running Centos 5.2 and PostgreSQL 8.3 SIP Servers: Dell 1950 Dual Quad Core 2Ghz (E5335 part), 4 to 8G of RAM, GIG-E ethernet, whatever hard drive was cheap at time of order. Nothing really lives on these boxes but FreeSWITCH with mod_easyroute, mod_lcr_adv, and some CDR processing stuff DB servers feed all the route information... (yes we do the route lookups from the DB in real-time, the problem with most LCRs in doing this is an algorithm Call Rates Sustained, 500 avg cps, 2000 calls (that's 2 legs not 1), avg invite delay 115ms (INVITE in to INVITE out measured with 'ngrep -q -t INVITE' - Note this is not a true picture of PDD as a number of other factors affect that, this is a picture of how much time we are adding on box in delaying an INVITE message) On Registrations we have experienced Registration/second rates exceeding 150 registrations per second using mod_xml_curl to feed the users directory. I suspect, this number can be greatly increased if we were to feed directory with something that cut out the apache and php over head K From: Adam Long ajl...@worldlink.net Reply-To: freeswitch-users@lists.freeswitch.org Date: Tue, 3 Feb 2009 13:47:59 -0500 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC The FreeSwitch guys are probably right tho... with mod_easyroute and mod_lcr we could probably implement all of this in FreeSwitch without SER. I would be curious to know if anyone is doing something similar at high volumes and what sort of concurrency and cps they are able to achieve. ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
im using the latest svn of freeswitch On Tue, Feb 3, 2009 at 12:23 PM, Brian West br...@freeswitch.org wrote: You forgot to tell us what revision of the code you're on? /b On Feb 3, 2009, at 11:16 AM, e schmidbauer wrote: hey everyone. just wondering if anyone has tested recording conferences at 48000h celt to a shoutcast stream or wav file. we are able to have cd quality conferences with 3 members each using the celt codec with little or no noise disturbances or skipping. but when we try to record the conference either to a wav file or to a shoutcast stream, the quality significantly decreases due to skipping or popping noises. im not sure but maybe we are having this problem because our server doesnt have the CPU power to handle reencoding on the fly like that. we are using a 2.8ghz amd64 dual core, 4gig ddr 800 as our freeswitch server. im thinking if there is a way to record the conference as a celt audio file (instead of reencoding to mp3) that may reduce the CPU power needed and therefore solve the problem or we just need a more powerful server. could anyone recommended what kind of server we would need to handle such instances as i described above? thank you. ___ Freeswitch-users mailing list ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
FreeSWITCH Version 1.0.trunk (11567) check out these sample recordings http://bwrl.org/recordings/2009-01-31-12-07-49.mp3 http://bwrl.org/recordings/2009-01-31-12-07-49.wav http://bwrl.org/recordings/test2.mp3 http://bwrl.org/recordings/test2.wav the conferences were recorded as wav files, i then converted them to mp3, both sound the same to me On Tue, Feb 3, 2009 at 3:51 PM, Brian West br...@freeswitch.org wrote: Can you get me a sample of the recording to listen to? /b On Feb 3, 2009, at 2:26 PM, e schmidbauer wrote: im using the latest svn of freeswitch On Tue, Feb 3, 2009 at 12:23 PM, Brian West br...@freeswitch.org wrote: You forgot to tell us what revision of the code you're on? /b ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
We are attempting distributed radio. We plan on having the hosts of the shows join the conference using CELT. But callers to the show would be joining using regular phones therefore using lower end codecs. I will be in the IRC shortly. On Tue, Feb 3, 2009 at 4:21 PM, Brian West br...@freeswitch.org wrote: You're doing distributed radio right? So callers are calling in with CELT from all over the place? Can you contact us on IRC because we are very interested in debugging this issue. You can get us on IRC #freeswitch on irc.freenode.net Thanks, /b On Feb 3, 2009, at 2:59 PM, e schmidbauer wrote: FreeSWITCH Version 1.0.trunk (11567) check out these sample recordings http://bwrl.org/recordings/2009-01-31-12-07-49.mp3 http://bwrl.org/recordings/2009-01-31-12-07-49.wav http://bwrl.org/recordings/test2.mp3 http://bwrl.org/recordings/test2.wav the conferences were recorded as wav files, i then converted them to mp3, both sound the same to me ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
Ken Rice napsal(a): ... On Registrations we have experienced Registration/second rates exceeding 150 registrations per second using mod_xml_curl to feed the users directory. I suspect, this number can be greatly increased if we were to feed directory with something that cut out the apache and php over head If someone interested I have few numbers on Registrar performance: DB server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64, MySQL 5.0 Registrar server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64 Tested using sipp with 10.000 and 30.000 users. FreeSWITCH as registrar - current trunk: 1. FreeSwitch si simply modified (code doing NAT-ping is commented out :-) 2. Directory is served through lighttpd and simple C binary doing one trivial select. Lighttpd runs on the same machine as FS. When I move lighhtpd to another machine, I cannot see any significat performance boost. Result: I can go up to the 470-500 reg/s. and FS is heavy overloaded and retransmissions occurs. Kamailio as registrar - 1.4.3. no TLS: 1. Kamailio runs with usrloc db_mode 3 (no caching) Result: I can go up to the 3500-3700 reg/s. and Kamailio server is at 0.3 load and all 8 cores are bellow 15 %. Without retransmissions. The limit is DB throughput. Just for curiosity I switched userloc to db_mode 2 (write back) and at 5000 regs/s I stopped the sipp test, because I saw the bottle neck becomes the server runnig sipp (very old P4 box). Conclusion: While I see amazing FreeSWITCH performance on INVITEs per seconds and concurrent calls (another galaxy from * point of view :-), if you have to handle lots of registrations per second, it is IMO better to use Kamailio/OpenSIPS/SER as separate registrar and propagate users to FS through SQL view. Hope this helps someone... Best regards, kokoska.rokoska ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
What does it look like if you serve the directory from the static xml file out of curiosity. On Tue, Feb 3, 2009 at 4:11 PM, kokoska.rokoska kokoska.roko...@post.czwrote: Ken Rice napsal(a): ... On Registrations we have experienced Registration/second rates exceeding 150 registrations per second using mod_xml_curl to feed the users directory. I suspect, this number can be greatly increased if we were to feed directory with something that cut out the apache and php over head If someone interested I have few numbers on Registrar performance: DB server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64, MySQL 5.0 Registrar server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64 Tested using sipp with 10.000 and 30.000 users. FreeSWITCH as registrar - current trunk: 1. FreeSwitch si simply modified (code doing NAT-ping is commented out :-) 2. Directory is served through lighttpd and simple C binary doing one trivial select. Lighttpd runs on the same machine as FS. When I move lighhtpd to another machine, I cannot see any significat performance boost. Result: I can go up to the 470-500 reg/s. and FS is heavy overloaded and retransmissions occurs. Kamailio as registrar - 1.4.3. no TLS: 1. Kamailio runs with usrloc db_mode 3 (no caching) Result: I can go up to the 3500-3700 reg/s. and Kamailio server is at 0.3 load and all 8 cores are bellow 15 %. Without retransmissions. The limit is DB throughput. Just for curiosity I switched userloc to db_mode 2 (write back) and at 5000 regs/s I stopped the sipp test, because I saw the bottle neck becomes the server runnig sipp (very old P4 box). Conclusion: While I see amazing FreeSWITCH performance on INVITEs per seconds and concurrent calls (another galaxy from * point of view :-), if you have to handle lots of registrations per second, it is IMO better to use Kamailio/OpenSIPS/SER as separate registrar and propagate users to FS through SQL view. Hope this helps someone... Best regards, kokoska.rokoska ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_miness...@hotmail.com msn%3aanthony_miness...@hotmail.com GTALK/JABBER/PAYPAL:anthony.miness...@gmail.compaypal%3aanthony.miness...@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:8...@conference.freeswitch.org sip%3a...@conference.freeswitch.org iax:gu...@conference.freeswitch.org/888 googletalk:conf+...@conference.freeswitch.orggoogletalk%3aconf%2b...@conference.freeswitch.org pstn:213-799-1400 ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
You're doing distributed radio right? So callers are calling in with CELT from all over the place? Can you contact us on IRC because we are very interested in debugging this issue. You can get us on IRC #freeswitch on irc.freenode.net Thanks, /b On Feb 3, 2009, at 2:59 PM, e schmidbauer wrote: FreeSWITCH Version 1.0.trunk (11567) check out these sample recordings http://bwrl.org/recordings/2009-01-31-12-07-49.mp3 http://bwrl.org/recordings/2009-01-31-12-07-49.wav http://bwrl.org/recordings/test2.mp3 http://bwrl.org/recordings/test2.wav the conferences were recorded as wav files, i then converted them to mp3, both sound the same to me ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
Anthony Minessale napsal(a): What does it look like if you serve the directory from the static xml file out of curiosity. Good question :-) I have never thing about it, becasue I need dynamic users. But it should show up very impressive number :-) I'll try it tommorow (here is midnight) and let you know. BTW: I try to find some another server in colocation with higher performace. With mentioned P4 I'm affraid have no chance to stress FS with static xml directory... Thank you for your interest, Anthony! Best regards, kokoska.rokoska On Tue, Feb 3, 2009 at 4:11 PM, kokoska.rokoska kokoska.roko...@post.cz mailto:kokoska.roko...@post.cz wrote: Ken Rice napsal(a): ... On Registrations we have experienced Registration/second rates exceeding 150 registrations per second using mod_xml_curl to feed the users directory. I suspect, this number can be greatly increased if we were to feed directory with something that cut out the apache and php over head If someone interested I have few numbers on Registrar performance: DB server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64, MySQL 5.0 Registrar server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64 Tested using sipp with 10.000 and 30.000 users. FreeSWITCH as registrar - current trunk: 1. FreeSwitch si simply modified (code doing NAT-ping is commented out :-) 2. Directory is served through lighttpd and simple C binary doing one trivial select. Lighttpd runs on the same machine as FS. When I move lighhtpd to another machine, I cannot see any significat performance boost. Result: I can go up to the 470-500 reg/s. and FS is heavy overloaded and retransmissions occurs. Kamailio as registrar - 1.4.3. no TLS: 1. Kamailio runs with usrloc db_mode 3 (no caching) Result: I can go up to the 3500-3700 reg/s. and Kamailio server is at 0.3 load and all 8 cores are bellow 15 %. Without retransmissions. The limit is DB throughput. Just for curiosity I switched userloc to db_mode 2 (write back) and at 5000 regs/s I stopped the sipp test, because I saw the bottle neck becomes the server runnig sipp (very old P4 box). Conclusion: While I see amazing FreeSWITCH performance on INVITEs per seconds and concurrent calls (another galaxy from * point of view :-), if you have to handle lots of registrations per second, it is IMO better to use Kamailio/OpenSIPS/SER as separate registrar and propagate users to FS through SQL view. Hope this helps someone... Best regards, kokoska.rokoska ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org mailto:Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_miness...@hotmail.com mailto:msn%3aanthony_miness...@hotmail.com GTALK/JABBER/PAYPAL:anthony.miness...@gmail.com mailto:paypal%3aanthony.miness...@gmail.com IRC: irc.freenode.net http://irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:8...@conference.freeswitch.org mailto:sip%3a...@conference.freeswitch.org iax:gu...@conference.freeswitch.org/888 http://iax:gu...@conference.freeswitch.org/888 googletalk:conf+...@conference.freeswitch.org mailto:googletalk%3aconf%2b...@conference.freeswitch.org pstn:213-799-1400 ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] mod_sofia ReINVITE
Yes this is normal. Your contact is mod_sofia ... why would it change?Remember its a B2Bua. Now you can put param name=NDLB-to- in-200-contact value=true/ in your sofia profile but be warned it will break some devices. /b On Feb 3, 2009, at 2:24 PM, Adam Long wrote: In every one of my SIP sessions FreeSwitch appears to be inserting …. Contact: sip:mod_so...@xxx.xxx.xxx.xxx:5060 Is this normal? I only ask as it is causing some of my end points to RE-INVITE back to this after the initial ( INVITE 100 Trying--- 200 OK ) call setup. If this is not normal or by design I can provide more details on configuration and dialplan. Thanks! Regards, -Adam ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] mod_voicemail: Limiting the number how often a menu is repeated
no, there is no way to do that. On Tue, Feb 3, 2009 at 11:09 AM, Helmut Kuper helmut.ku...@ewetel.dewrote: Hi, has anybody an idea? regards Helmut Am 02.02.2009 19:00, schrieb Helmut Kuper: Hello, today I searched for a way to limit the number of menu repeatings in mod_voicemail to let's say 3 times and when it reached the limit voicemail should abort. But I couldn't find a hint. Any ideas? regards helmut ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Mit freundlichen Grüßen Helmut Kuper Finanzdienstleistungen und Entwicklung Telefax: (0441) 8000-2799 mailto:helmut.ku...@ewetel.de ___ EWE TEL GmbH Cloppenburger Straße 310 26133 Oldenburg EWE TEL GmbH Handelsregister Amtsgericht Oldenburg HRB 3723 Vorsitzender des Aufsichtsrates: Heiko Harms Geschäftsführung: Hans-Joachim Iken (Vorsitzender), Dr. Norbert Schulz, Dirk Thole Homepage: http://www.ewetel.de ___ ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_miness...@hotmail.com msn%3aanthony_miness...@hotmail.com GTALK/JABBER/PAYPAL:anthony.miness...@gmail.compaypal%3aanthony.miness...@gmail.com IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:8...@conference.freeswitch.org sip%3a...@conference.freeswitch.org iax:gu...@conference.freeswitch.org/888 googletalk:conf+...@conference.freeswitch.orggoogletalk%3aconf%2b...@conference.freeswitch.org pstn:213-799-1400 ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
Can you get me a sample of the recording to listen to? /b On Feb 3, 2009, at 2:26 PM, e schmidbauer wrote: im using the latest svn of freeswitch On Tue, Feb 3, 2009 at 12:23 PM, Brian West br...@freeswitch.org wrote: You forgot to tell us what revision of the code you're on? /b ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] shoutcast skips
latest isn't a number... Can you provide the exact SVN rev you're on? /b On Feb 3, 2009, at 2:26 PM, e schmidbauer wrote: im using the latest svn of freeswitch ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
Never tried hah... From: Anthony Minessale anthony.miness...@gmail.com Reply-To: freeswitch-users@lists.freeswitch.org Date: Tue, 3 Feb 2009 16:34:38 -0600 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC What does it look like if you serve the directory from the static xml file out of curiosity. On Tue, Feb 3, 2009 at 4:11 PM, kokoska.rokoska kokoska.roko...@post.cz wrote: Ken Rice napsal(a): ... On Registrations we have experienced Registration/second rates exceeding 150 registrations per second using mod_xml_curl to feed the users directory. I suspect, this number can be greatly increased if we were to feed directory with something that cut out the apache and php over head If someone interested I have few numbers on Registrar performance: DB server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64, MySQL 5.0 Registrar server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64 Tested using sipp with 10.000 and 30.000 users. FreeSWITCH as registrar - current trunk: 1. FreeSwitch si simply modified (code doing NAT-ping is commented out :-) 2. Directory is served through lighttpd and simple C binary doing one trivial select. Lighttpd runs on the same machine as FS. When I move lighhtpd to another machine, I cannot see any significat performance boost. Result: I can go up to the 470-500 reg/s. and FS is heavy overloaded and retransmissions occurs. Kamailio as registrar - 1.4.3. no TLS: 1. Kamailio runs with usrloc db_mode 3 (no caching) Result: I can go up to the 3500-3700 reg/s. and Kamailio server is at 0.3 load and all 8 cores are bellow 15 %. Without retransmissions. The limit is DB throughput. Just for curiosity I switched userloc to db_mode 2 (write back) and at 5000 regs/s I stopped the sipp test, because I saw the bottle neck becomes the server runnig sipp (very old P4 box). Conclusion: While I see amazing FreeSWITCH performance on INVITEs per seconds and concurrent calls (another galaxy from * point of view :-), if you have to handle lots of registrations per second, it is IMO better to use Kamailio/OpenSIPS/SER as separate registrar and propagate users to FS through SQL view. Hope this helps someone... Best regards, kokoska.rokoska ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_miness...@hotmail.com mailto:msn%3aanthony_miness...@hotmail.com GTALK/JABBER/PAYPAL:anthony.miness...@gmail.com mailto:paypal%3aanthony.miness...@gmail.com IRC: irc.freenode.net http://irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:8...@conference.freeswitch.org mailto:sip%3a...@conference.freeswitch.org iax:gu...@conference.freeswitch.org/888 http://iax:gu...@conference.freeswitch.org/888 googletalk:conf+...@conference.freeswitch.org mailto:googletalk%3aconf%2b...@conference.freeswitch.org pstn:213-799-1400 ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
[Freeswitch-users] Recording background music and voice is out of sync
Hi, I was trying to record a background music with a user's voice at the same time. I did a playback and started recording. But the recorded user's voice and the background music is about 0.5 second out of sync. I also tried to use uuid_displace instead of playback, but I got the same result. I guess it was the transfer delay between freeswitch and the end user. Is there a way to avoid that? One of the solution that I can think of is to route the background music to the end user and then route it back to freeswitch and let freeswitch recorded user's voice and the routed music together. But I don't know how I can do that in freeswitch. Any idea? Thanks. Daniel ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
I did the test when I start looking at FS. With 10 000 files in conf/directory/default mounted as a ramdisk (if not in Ramdisk, the IO are too high) and an intel quad core q9550 (2.83Ghz) with 4GB RAM and the db also in Ramdisk, I was stuck at approx 150cps with a very high CPU usage. The version I used was 1.0.1, but not sure. Anthony Minessale wrote: What does it look like if you serve the directory from the static xml file out of curiosity. On Tue, Feb 3, 2009 at 4:11 PM, kokoska.rokoska kokoska.roko...@post.cz mailto:kokoska.roko...@post.cz wrote: Ken Rice napsal(a): ... On Registrations we have experienced Registration/second rates exceeding 150 registrations per second using mod_xml_curl to feed the users directory. I suspect, this number can be greatly increased if we were to feed directory with something that cut out the apache and php over head If someone interested I have few numbers on Registrar performance: DB server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64, MySQL 5.0 Registrar server: 2x Quad core E5345 @ 2.33GHz, 16 GiB RAM Centos 5 x86_64 Tested using sipp with 10.000 and 30.000 users. FreeSWITCH as registrar - current trunk: 1. FreeSwitch si simply modified (code doing NAT-ping is commented out :-) 2. Directory is served through lighttpd and simple C binary doing one trivial select. Lighttpd runs on the same machine as FS. When I move lighhtpd to another machine, I cannot see any significat performance boost. Result: I can go up to the 470-500 reg/s. and FS is heavy overloaded and retransmissions occurs. Kamailio as registrar - 1.4.3. no TLS: 1. Kamailio runs with usrloc db_mode 3 (no caching) Result: I can go up to the 3500-3700 reg/s. and Kamailio server is at 0.3 load and all 8 cores are bellow 15 %. Without retransmissions. The limit is DB throughput. Just for curiosity I switched userloc to db_mode 2 (write back) and at 5000 regs/s I stopped the sipp test, because I saw the bottle neck becomes the server runnig sipp (very old P4 box). Conclusion: While I see amazing FreeSWITCH performance on INVITEs per seconds and concurrent calls (another galaxy from * point of view :-), if you have to handle lots of registrations per second, it is IMO better to use Kamailio/OpenSIPS/SER as separate registrar and propagate users to FS through SQL view. Hope this helps someone... Best regards, kokoska.rokoska ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org mailto:Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_miness...@hotmail.com mailto:msn%3aanthony_miness...@hotmail.com GTALK/JABBER/PAYPAL:anthony.miness...@gmail.com mailto:paypal%3aanthony.miness...@gmail.com IRC: irc.freenode.net http://irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:8...@conference.freeswitch.org mailto:sip%3a...@conference.freeswitch.org iax:gu...@conference.freeswitch.org/888 http://iax:gu...@conference.freeswitch.org/888 googletalk:conf+...@conference.freeswitch.org mailto:googletalk%3aconf%2b...@conference.freeswitch.org pstn:213-799-1400 ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] Freeswitch freezes on increasing call traffic
Hi anthony, I Modified the whole architecture of call routing system, Now after getting required routes, script exit and, control comes back to Dialplan, and call is bridged there, And call hangup, CDR is posted to cdr.php file (using xml_cdr). So now there is no blocking statement (bridge or anything like that) in current javascript, It return back control instantly. So, setting up all above architecture... First I tested FS 1.0.1 , It get crashed two times, in interval of 3 to 5 hours and simultaneous call of about 100 to 150. BT is the same as before... http://www.nabble.com/file/p21825226/bt_new_arch.txt bt_new_arch.txt Now I am also testing 1.0.3RC1, and post it back if any found. Thanks msp Clearly you have an issue with your javascript code. You have the Garbage collector blocking in every thread. Are you doing any endless loops in your code where you do not check session.ready() as a condition for continuing the script? any time session.ready() fails you must immediately exit. Are you using session.execute to execute long blocking operations like bridging many calls or entering a conference? You should avoid doing this as all the collective scripts on the system share a common Garbage Collector provided by the JS engine and it can lead to the exact issues you describe if the code is not properly designed. What else does you script do that are things provided by FS such as playing files and executing applications. -- View this message in context: http://www.nabble.com/Freeswitch-freezes-on-increasing-call-traffic-tp21701744p21825226.html Sent from the Freeswitch-users mailing list archive at Nabble.com. ___ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
Hi Adam, I detailed a bit more my previous mail on this page: http://wiki.freeswitch.org/wiki/SBC_Setup Round robin is managed by the carrierroute module. Carrierroute will reply based on the probability you defined for a route, so if you define 0.3 and 0.7 for the same prefix, your traffic will point to 2 different gateways with a probability of 30% for one and 70% for the others (If I understood well the behaviour of carrierroute). For forking, what I do is that carrierroute replies with a code and not an IP address. This code, is then used as a condition in FS and the dialplan matched could then propose serial or parallel forking (in the wiki, I detailed serial forking). The idea is that you could define many combination of GWs, eg: - code01: try IP_A then IP_B (serial) - code02: try IP_B then IP_A (serial) - code03: try IP_A and IP_C (parallel) this setup is working for me as I do not have 1000 of GWs but I need a big routing table (approx 16). I'm sure it could be possible to use the failure route functionnality of carrierroute to define a new route when the first one failed without having to define code. The drawback of this method is that you can't define metrics/properties for a route (quality, cost, fax compliance...) in realtime, and this is where using/enhancing the native FS module mod_lcr could be better (I have no idea on how mod_lcr performs, I will give it a try). rod Adam Long wrote: Hi Rod, Great info, Thanks! Glad to see others are interested in the same concept. My reasons for SER as routing core and implementation is slightly different yet similar. I like your Redirect model, with that you are truly using your Kamailio as route server only. I would imagine very scalable. - Are you able to do any round robin, serial or parallel forking with this? - I wonder if multiple Contacts in the 302 response maybe with some logic in FreeSwitch dialplan? If so I think your design is a bit more efficient than mine as it keeps SER out of the call path. My design is little different.. it is more of a Stateful setup. With SER staying in call path and FreeSwitch at Edge. I do this to enable Serial Forking to a series of SBCs (FreeSwitch) geo distributed, when one of the branches is congested it forks to the next SBC (route). The FreeSwitch guys are probably right tho... with mod_easyroute and mod_lcr we could probably implement all of this in FreeSwitch without SER. I would be curious to know if anyone is doing something similar at high volumes and what sort of concurrency and cps they are able to achieve. I am a Perl and C# guy, I thought about implementing a mod_manged_lcr with memcached support. Memcache support would prob boost the scalability by a factor of 10 at least. I will let you know if I end up developing a high performance FreeSwitch route module. Right now I use memcache in a OpenSIPS perl script for my route caching and its incredibly fast and clusters well. It actually might be easier to add memcached support to mod_lcr and mod_easyroute but im not real strong in C/C++ I'll jump on IRC later and chat with some of the experts on this as I know memcache has been discussed before. I'd be curious to know if any progress has been made there already. Regards, -Adam -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Tuesday, February 03, 2009 1:33 AM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC Hi Adam, I'm in the process of using FS as a SBC. For the route lookup, I do it using OpenSER carrierroute, without having to flow through SBC---Openser---SBC. I'm using carrierroute at this time cause I need more than 200 000 routing entries and carrierroute has been tested with twice this number. Here is the setup: - install openser and carrierroute and make openser listening on 127.0.0.1:5062 (for example) on your SBC - populate carrierroute table What I do to use carrierroute module from FS is to use a specific X-header (X-LOOKUP). In the dialplan, in the default context, I have something like this: extension name=LOOKUP_ROUTE condition field=destination_number expression=(\d+)$ action application=set data=hangup_after_bridge=true/ action application=set data=continue_on_fail=true/ action application=export data=sip_h_X-ROUTE=LOOKUP/ action application=bridge data=sofia/internal/${sip_req_us...@127.0.0.1:5062/ action application=export data=sip_h_X-ROUTE=${sip_redirect_contact_host_0}/ action application=transfer data=${destination_number} XML ROUTING/ /condition /extension The process is simple: the export sip_h_X-ROUTE=LOOKUP had a sip header X-ROUTE=LOOKUP then I bridge the call to 127.0.0.1:5062 (openser process) In openser I have a route block that checks the presence of header LOOKUP and
Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC
One more thing, I worked on a setup like yours: - Kamailio as a registrar that do the routing decision - FS as a SBC What you have to do is just append an header with Kamailio and send the invite to your FS server using something like that (use of pseudo variables in Kamailio): #--- # PREPARE ROUTING USING REWRITING OF DOMAIN #--- if (is_method(INVITE) from_uri==myself src_ip!=10.10.10.254){ if(!cr_route(default, 0, $rU, $rU, call_id)){ xlog($ci CALLEE ROUTING FAILED: no route found); sl_send_reply(604, Unable to route this call); exit; } else { xlog($ci Route found for $rU via $rd); } } # - # Route to FREESWITCH using domain rewriting applied above for LCR # - xlog($ci ROUTE: $rd); append_hf(X-ROUTE: $rd\r\n); rewritehostport(10.10.10.254:5062); # there you have to distribute the invite to your FS servers, take a look at the dispatcher module Using that, the FS server receiving the Invite, just need to parse the X-ROUTE header and route the call, without having to resend the call to a Kamailio server. I think you can adapt this scenario to your perl script using variable exportation and append_hf function. rod. Adam Long wrote: Hi Rod, Great info, Thanks! Glad to see others are interested in the same concept. My reasons for SER as routing core and implementation is slightly different yet similar. I like your Redirect model, with that you are truly using your Kamailio as route server only. I would imagine very scalable. - Are you able to do any round robin, serial or parallel forking with this? - I wonder if multiple Contacts in the 302 response maybe with some logic in FreeSwitch dialplan? If so I think your design is a bit more efficient than mine as it keeps SER out of the call path. My design is little different.. it is more of a Stateful setup. With SER staying in call path and FreeSwitch at Edge. I do this to enable Serial Forking to a series of SBCs (FreeSwitch) geo distributed, when one of the branches is congested it forks to the next SBC (route). The FreeSwitch guys are probably right tho... with mod_easyroute and mod_lcr we could probably implement all of this in FreeSwitch without SER. I would be curious to know if anyone is doing something similar at high volumes and what sort of concurrency and cps they are able to achieve. I am a Perl and C# guy, I thought about implementing a mod_manged_lcr with memcached support. Memcache support would prob boost the scalability by a factor of 10 at least. I will let you know if I end up developing a high performance FreeSwitch route module. Right now I use memcache in a OpenSIPS perl script for my route caching and its incredibly fast and clusters well. It actually might be easier to add memcached support to mod_lcr and mod_easyroute but im not real strong in C/C++ I'll jump on IRC later and chat with some of the experts on this as I know memcache has been discussed before. I'd be curious to know if any progress has been made there already. Regards, -Adam -Original Message- From: freeswitch-users-boun...@lists.freeswitch.org [mailto:freeswitch-users-boun...@lists.freeswitch.org] On Behalf Of rod Sent: Tuesday, February 03, 2009 1:33 AM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] FreeSwitch setup as a Dumb SBC Hi Adam, I'm in the process of using FS as a SBC. For the route lookup, I do it using OpenSER carrierroute, without having to flow through SBC---Openser---SBC. I'm using carrierroute at this time cause I need more than 200 000 routing entries and carrierroute has been tested with twice this number. Here is the setup: - install openser and carrierroute and make openser listening on 127.0.0.1:5062 (for example) on your SBC - populate carrierroute table What I do to use carrierroute module from FS is to use a specific X-header (X-LOOKUP). In the dialplan, in the default context, I have something like this: extension name=LOOKUP_ROUTE condition field=destination_number expression=(\d+)$ action application=set data=hangup_after_bridge=true/ action application=set data=continue_on_fail=true/ action application=export data=sip_h_X-ROUTE=LOOKUP/ action application=bridge data=sofia/internal/${sip_req_us...@127.0.0.1:5062/ action application=export data=sip_h_X-ROUTE=${sip_redirect_contact_host_0}/ action application=transfer data=${destination_number} XML ROUTING/ /condition /extension The process is simple: the export sip_h_X-ROUTE=LOOKUP had a sip header X-ROUTE=LOOKUP then I bridge the call to 127.0.0.1:5062 (openser process) In openser I have a route block that checks the presence of header LOOKUP and openser sends a 604: unable to route call if the prefix is not found, or a