Re: [Freeswitch-users] Scheduled Hangup Issue
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice <action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/> -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Anthony, thanks for the quick response, the new variable works great. King Regards, Nikolai Geordzhev On Wed, Apr 2, 2008 at 6:23 PM, Anthony Minessale < anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
Hello, I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call) i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is? Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/> Thanks, Tamas On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
try escaping the $ with /$ On Thu, Apr 10, 2008 at 2:21 PM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call)
i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is?
Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/>
Thanks, Tamas
On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
oops i meant \$ On Thu, Apr 10, 2008 at 4:24 PM, Anthony Minessale < anthony.minessale@gmail.com> wrote:
try escaping the $ with /$
On Thu, Apr 10, 2008 at 2:21 PM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call)
i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is?
Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/>
Thanks, Tamas
On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
The following code seems to always perform the session.recordFile(...) function late. And this leads to cutting off the first second of the recording. The problem goes away when you remove the session.execute("phrase","...") call. I even ran FreeSWITCH with the "-hp" mode to see if that changed things. No luck. Any ideas on what I can do other than setup a pre-recorded message to play? Cheers, Chris /* <macro name="sayit"> <input pattern="(.*)"> <match> <action function="speak-text" data="$1"/> </match> </input> </macro> */ function on_record_file(sess, type, obj, arg) { try { if (type=="dtmf") { dtmf += obj.digit; if (dtmf.indexOf("#") > -1) return false; } } catch (e) { console_log("error: " + e + "\n"); } return true; } var dtmf = ""; var FILELOC = "/var/sounds/"; var filename = session.uuid+".wav"; while (session.ready() && dtmf.indexOf("#") < 0) { session.execute("phrase", "sayit, Your life is a joke say something and press pound."); session.recordFile(FILELOC+filename,on_record_file,"",30,800,10); }
After debugging and fiddling with this further I discovered something of a useful workaround. Here it is. (works every time) while (session.ready() && dtmf.indexOf("#") < 0) { sayphrase("sayit", "Say something after the tone and press pound."); var tts = new TeleTone(session); tts.generate("v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"); session.recordFile(FILELOC+filename,on_record_file,"",30,500,10); } The catch is to trick the user into letting the speech engine catch up by signaling when it is ready. BTW, are there any plans of integrating something of a memcache (I know supjigator was researching it)? As-is every time a phrase is executed a call is made to the speech engine switch_ivr_phrase_macro(...) and that call invokes a huge amount of iteration across the xml elements. For testing, I did minimize the amount of iterations and found no significant difference in the time that the phrases stopped and the recording began. I suppose the better way of doing things is to avoid using phrase macros and stick predominantly to pre-recorded sound files. Cheers, Chris Chris Danielson wrote:
The following code seems to always perform the session.recordFile(...) function late. And this leads to cutting off the first second of the recording. The problem goes away when you remove the session.execute("phrase","...") call. I even ran FreeSWITCH with the "-hp" mode to see if that changed things. No luck. Any ideas on what I can do other than setup a pre-recorded message to play? Cheers, Chris
/* <macro name="sayit"> <input pattern="(.*)"> <match> <action function="speak-text" data="$1"/> </match> </input> </macro> */
function on_record_file(sess, type, obj, arg) { try { if (type=="dtmf") { dtmf += obj.digit; if (dtmf.indexOf("#") > -1) return false; } } catch (e) { console_log("error: " + e + "\n"); } return true; }
var dtmf = ""; var FILELOC = "/var/sounds/"; var filename = session.uuid+".wav"; while (session.ready() && dtmf.indexOf("#") < 0) { session.execute("phrase", "sayit, Your life is a joke say something and press pound."); session.recordFile(FILELOC+filename,on_record_file,"",30,800,10); }
_______________________________________________ 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
You also could probably do session.execute("sleep", "2000"); But a beep is a more logical indication of when you can start recording. I would not avoid phrase macros, they were designed to make ivr more flexible and easy to design. I think the problem is not related to performance it's a temporal issue so the beep buys time for a lead-in on the recording. The XML from the phrases are stored in memory and parsing them does not become a bottleneck until about the 500 calls per second mark. On Thu, Apr 10, 2008 at 9:30 PM, Chris Danielson <chris@maxpowersoft.com> wrote:
After debugging and fiddling with this further I discovered something of a useful workaround. Here it is. (works every time)
while (session.ready() && dtmf.indexOf("#") < 0) { sayphrase("sayit", "Say something after the tone and press pound."); var tts = new TeleTone(session);
tts.generate("v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"); session.recordFile(FILELOC+filename,on_record_file,"",30,500,10); }
The catch is to trick the user into letting the speech engine catch up by signaling when it is ready. BTW, are there any plans of integrating something of a memcache (I know supjigator was researching it)?
As-is every time a phrase is executed a call is made to the speech engine switch_ivr_phrase_macro(...) and that call invokes a huge amount of iteration across the xml elements. For testing, I did minimize the amount of iterations and found no significant difference in the time that the phrases stopped and the recording began. I suppose the better way of doing things is to avoid using phrase macros and stick predominantly to pre-recorded sound files. Cheers, Chris
Chris Danielson wrote:
The following code seems to always perform the session.recordFile(...) function late. And this leads to cutting off the first second of the recording. The problem goes away when you remove the session.execute("phrase","...") call. I even ran FreeSWITCH with the "-hp" mode to see if that changed things. No luck. Any ideas on what I can do other than setup a pre-recorded message to play? Cheers, Chris
/* <macro name="sayit"> <input pattern="(.*)"> <match> <action function="speak-text" data="$1"/> </match> </input> </macro> */
function on_record_file(sess, type, obj, arg) { try { if (type=="dtmf") { dtmf += obj.digit; if (dtmf.indexOf("#") > -1) return false; } } catch (e) { console_log("error: " + e + "\n"); } return true; }
var dtmf = ""; var FILELOC = "/var/sounds/"; var filename = session.uuid+".wav"; while (session.ready() && dtmf.indexOf("#") < 0) { session.execute("phrase", "sayit, Your life is a joke say something and press pound."); session.recordFile(FILELOC+filename,on_record_file,"",30,800,10); }
_______________________________________________ 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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Hello, Thanks your help! I have problems with it. when i try <action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}"/> expand doesn't change its input, so the value of spy_uuid will be '\$bridge_uuid'. I can figure this out with <action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}${foobar}"/> In this case it is expanded to spy_uuid=${bridge_uuid} But on answer brigde_uuid is undefined. Is it any other solution for setting a global variable with the value of the bridge_uuid on answer? Thanks any help, Tamas
oops i meant \$
On Thu, Apr 10, 2008 at 4:24 PM, Anthony Minessale < anthony.minessale@gmail.com> wrote:
try escaping the $ with /$
On Thu, Apr 10, 2008 at 2:21 PM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call)
i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is?
Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/>
Thanks, Tamas
On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
I found a bug where some code to optimize for escaped strings not needing expansion skipped the expansion which is not ok cos we need to strip the \ in the result Update to 8087 or newer and try my original suggestion. By the way, this is probably a race condition waiting to happen because you are using a global var here. You may want to consider using the db function instead. <action application="db" data="insert/track_uuid/${caller_id_number}/${bridge_uuid}"/> <action application="set" data="my_id=1234"/> <action application="set" data="execute_on_answer="db insert/track_uuid/\${my_id}/\${bridge_uuid}"/> then later you can make an extension that expands ${db(select/track_uuid/1234)} and it would be the bridge_uuid as inserted by the above execute_on answer and unique to the callers id On Fri, Apr 11, 2008 at 11:21 AM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
Thanks your help!
I have problems with it. when i try
<action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}"/>
expand doesn't change its input, so the value of spy_uuid will be '\$bridge_uuid'.
I can figure this out with
<action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}${foobar}"/>
In this case it is expanded to spy_uuid=${bridge_uuid} But on answer brigde_uuid is undefined. Is it any other solution for setting a global variable with the value of the bridge_uuid on answer?
Thanks any help, Tamas
oops i meant \$
On Thu, Apr 10, 2008 at 4:24 PM, Anthony Minessale < anthony.minessale@gmail.com> wrote:
try escaping the $ with /$
On Thu, Apr 10, 2008 at 2:21 PM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call)
i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is?
Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/>
Thanks, Tamas
On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com> <MSN%3Aanthony_minessale@hotmail.com<MSN%253Aanthony_minessale@hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> <PAYPAL%3Aanthony.minessale@gmail.com<PAYPAL%253Aanthony.minessale@gmail.com>
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org> <sip%3A888@conference.freeswitch.org<sip%253A888@conference.freeswitch.org>
iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> <googletalk%3Aconf%2B888@conference.freeswitch.org<googletalk%253Aconf%252B888@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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com>< MSN%3Aanthony_minessale@hotmail.com<MSN%253Aanthony_minessale@hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> <PAYPAL%3Aanthony.minessale@gmail.com<PAYPAL%253Aanthony.minessale@gmail.com>
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org>< sip%3A888@conference.freeswitch.org<sip%253A888@conference.freeswitch.org>
iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> <googletalk%3Aconf%2B888@conference.freeswitch.org<googletalk%253Aconf%252B888@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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Hello, Race condition still happens with db function. bridge_uuid is undefined. I made a hack, added execute_on_bridge variable, and execute it on bridge. This way it works for me. I am sure this is not the best solution. Please take a look, maybe improve it. Or could you suggest any other solution for this? Thanks, Tamas On 4/11/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I found a bug where some code to optimize for escaped strings not needing expansion skipped the expansion which is not ok cos we need to strip the \ in the result
Update to 8087 or newer and try my original suggestion.
By the way, this is probably a race condition waiting to happen because you are using a global var here. You may want to consider using the db function instead.
<action application="db" data="insert/track_uuid/${caller_id_number}/${bridge_uuid}"/>
<action application="set" data="my_id=1234"/> <action application="set" data="execute_on_answer="db insert/track_uuid/\${my_id}/\${bridge_uuid}"/>
then later you can make an extension that expands ${db(select/track_uuid/1234)}
and it would be the bridge_uuid as inserted by the above execute_on answer and unique to the callers id
On Fri, Apr 11, 2008 at 11:21 AM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
Thanks your help!
I have problems with it. when i try
<action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}"/>
expand doesn't change its input, so the value of spy_uuid will be '\$bridge_uuid'.
I can figure this out with
<action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}${foobar}"/>
In this case it is expanded to spy_uuid=${bridge_uuid} But on answer brigde_uuid is undefined. Is it any other solution for setting a global variable with the value of the bridge_uuid on answer?
Thanks any help, Tamas
oops i meant \$
On Thu, Apr 10, 2008 at 4:24 PM, Anthony Minessale < anthony.minessale@gmail.com> wrote:
try escaping the $ with /$
On Thu, Apr 10, 2008 at 2:21 PM, Tamas Cseke < cstomi.levlist@gmail.com> wrote:
Hello,
I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call)
i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is?
Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/>
Thanks, Tamas
On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I added support in the latest trunk to set the variable execute_on_answer to an application of your choice
<action application="set" data="execute_on_answer=sched_hangup +20 alloted_timeout"/>
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com> <MSN%3Aanthony_minessale@hotmail.com<MSN%253Aanthony_minessale@hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> <PAYPAL%3Aanthony.minessale@gmail.com<PAYPAL%253Aanthony.minessale@gmail.com>
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org> <sip%3A888@conference.freeswitch.org<sip%253A888@conference.freeswitch.org>
iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> <googletalk%3Aconf%2B888@conference.freeswitch.org<googletalk%253Aconf%252B888@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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com>< MSN%3Aanthony_minessale@hotmail.com<MSN%253Aanthony_minessale@hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> <PAYPAL%3Aanthony.minessale@gmail.com<PAYPAL%253Aanthony.minessale@gmail.com>
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org>< sip%3A888@conference.freeswitch.org<sip%253A888@conference.freeswitch.org>
iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> <googletalk%3Aconf%2B888@conference.freeswitch.org<googletalk%253Aconf%252B888@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
_______________________________________________ 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_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
Please submit it to jira so we can document it and add it to tree. On Sat, Apr 12, 2008 at 7:37 AM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
Race condition still happens with db function. bridge_uuid is undefined. I made a hack, added execute_on_bridge variable, and execute it on bridge. This way it works for me. I am sure this is not the best solution. Please take a look, maybe improve it. Or could you suggest any other solution for this?
Thanks, Tamas
On 4/11/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
I found a bug where some code to optimize for escaped strings not needing expansion skipped the expansion which is not ok cos we need to strip the \ in the result
Update to 8087 or newer and try my original suggestion.
By the way, this is probably a race condition waiting to happen because you are using a global var here. You may want to consider using the db function instead.
<action application="db" data="insert/track_uuid/${caller_id_number}/${bridge_uuid}"/>
<action application="set" data="my_id=1234"/> <action application="set" data="execute_on_answer="db insert/track_uuid/\${my_id}/\${bridge_uuid}"/>
then later you can make an extension that expands ${db(select/track_uuid/1234)}
and it would be the bridge_uuid as inserted by the above execute_on answer and unique to the callers id
On Fri, Apr 11, 2008 at 11:21 AM, Tamas Cseke <cstomi.levlist@gmail.com> wrote:
Hello,
Thanks your help!
I have problems with it. when i try
<action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}"/>
expand doesn't change its input, so the value of spy_uuid will be '\$bridge_uuid'.
I can figure this out with
<action application="set" data="execute_on_answer=set_global spy_uuid=\${bridge_uuid}${foobar}"/>
In this case it is expanded to spy_uuid=${bridge_uuid} But on answer brigde_uuid is undefined. Is it any other solution for setting a global variable with the value of the bridge_uuid on answer?
Thanks any help, Tamas
oops i meant \$
On Thu, Apr 10, 2008 at 4:24 PM, Anthony Minessale < anthony.minessale@gmail.com> wrote:
try escaping the $ with /$
On Thu, Apr 10, 2008 at 2:21 PM, Tamas Cseke < cstomi.levlist@gmail.com> wrote:
Hello,
I would like to mark the uuid of the called channel for further process. (Spying this channel with eavesdrop for other call)
i tried with the execute_on_answer variable but it doesn't suit for me. I think the value of the var is evaluated immediately, when bridged_uuid isn't set yet. Could you advise a solution for this please, if there is?
Something like: <action application="bridge" data="portaudio"/> <action application="set" data="execute_on_answer=set_global spy_uuid=${bridged_uuid}"/>
Thanks, Tamas
On 4/2/08, Anthony Minessale <anthony.minessale@gmail.com> wrote:
> I added support in the latest trunk to set the variable > execute_on_answer to an application of your choice > > <action application="set" data="execute_on_answer=sched_hangup +20 > alloted_timeout"/> > > -- > Anthony Minessale II > > FreeSWITCH http://www.freeswitch.org/ > ClueCon http://www.cluecon.com/ > > AIM: anthm > MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com> <MSN%3Aanthony_minessale@hotmail.com<MSN%253Aanthony_minessale@hotmail.com>
> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> <PAYPAL%3Aanthony.minessale@gmail.com<PAYPAL%253Aanthony.minessale@gmail.com>
> IRC: irc.freenode.net #freeswitch > > FreeSWITCH Developer Conference > sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org> <sip%3A888@conference.freeswitch.org<sip%253A888@conference.freeswitch.org>
> iax:guest@conference.freeswitch.org/888 > googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> <googletalk%3Aconf%2B888@conference.freeswitch.org<googletalk%253Aconf%252B888@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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com<MSN%3Aanthony_minessale@hotmail.com>< MSN%3Aanthony_minessale@hotmail.com<MSN%253Aanthony_minessale@hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> <PAYPAL%3Aanthony.minessale@gmail.com<PAYPAL%253Aanthony.minessale@gmail.com>
IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org<sip%3A888@conference.freeswitch.org>< sip%3A888@conference.freeswitch.org<sip%253A888@conference.freeswitch.org>
iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> <googletalk%3Aconf%2B888@conference.freeswitch.org<googletalk%253Aconf%252B888@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
_______________________________________________ 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_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Hi all, First of all I have say I'm very impressed by FreeSWITCH SIP handling. It way differs from what I know from Asterisk :-) A lot of my previous questions about adding/modifying SIP headers are irrelevant becasuse FreeSWITCH do the job automagically... ----- Now why I want to say: I think about new feature which may (or may not :-) slightly off-load the FreeSWITCH in case of handling a lot of SIP clients behind NAT. If I understand my pcap dumps right, now in case of 10.000 UACs behind NAT FreeSWITCH tries to send more than 2000 OPTIONS per second to the UACs. If I don't miss something, it is too much, I think :-) My idea is to use NAT-hack for only some of UACs, send NAT keep-alive OPTIONS for only UACs it realy need it (based on administrator decision) and make periodicity of NAT keep-alive packets configurable. I briefly looked into the sources and I think the solution could be like this: 1. Introduce new "per profile" variable "nat_keep_alive" meaning number of seconds between sending of OPTIONS. 2. Introduce new variable "sip_contact_ip" in Directory http post to xml_curl. This is helpful - if compared to "ip" - to decide if NAT-hack should be applied. 3. Introduce new variable "enable_nat_ping" which defaults to "yes". This var could be in replies to Directory http posts. 4. Remove sofia_reg_nat_callback from sofia_reg_check_expire and introduce independant call from sofia_profile_worker_thread_run driven by value of "nat_keep_alive" variable. 5. Modify DB table sip_registrations - add indexed TINYINT column "nat_ping" and write to this column value of variable "enable_nat_ping". 6. Select UACs for sending NAT keep-alive OPTINS from DB based by indexed column search instead of by expensive fullscan of table with "LIKE '%sometihng%'". This is what I think could be useful. Any comments are welcome :-) Expecially if somebody see it handy too or even works on something similar - to work together. If you see I miss something important or you see any drawback in my suggestion, please tell me it :-). Thanks! Best regards, kokoska.rokoska
Did you know that you can set the params and variables separate in each <user> if you wish. The default example where it puts them in the <domain> is not mandatory, when you add params to the domain it implies every user in that domain. On Tue, Apr 15, 2008 at 4:40 PM, kokoska rokoska <kokoska.rokoska@post.cz> wrote:
Hi all,
First of all I have say I'm very impressed by FreeSWITCH SIP handling. It way differs from what I know from Asterisk :-) A lot of my previous questions about adding/modifying SIP headers are irrelevant becasuse FreeSWITCH do the job automagically...
-----
Now why I want to say:
I think about new feature which may (or may not :-) slightly off-load the FreeSWITCH in case of handling a lot of SIP clients behind NAT.
If I understand my pcap dumps right, now in case of 10.000 UACs behind NAT FreeSWITCH tries to send more than 2000 OPTIONS per second to the UACs. If I don't miss something, it is too much, I think :-)
My idea is to use NAT-hack for only some of UACs, send NAT keep-alive OPTIONS for only UACs it realy need it (based on administrator decision) and make periodicity of NAT keep-alive packets configurable.
I briefly looked into the sources and I think the solution could be like this:
1. Introduce new "per profile" variable "nat_keep_alive" meaning number of seconds between sending of OPTIONS.
2. Introduce new variable "sip_contact_ip" in Directory http post to xml_curl. This is helpful - if compared to "ip" - to decide if NAT-hack should be applied.
3. Introduce new variable "enable_nat_ping" which defaults to "yes". This var could be in replies to Directory http posts.
4. Remove sofia_reg_nat_callback from sofia_reg_check_expire and introduce independant call from sofia_profile_worker_thread_run driven by value of "nat_keep_alive" variable.
5. Modify DB table sip_registrations - add indexed TINYINT column "nat_ping" and write to this column value of variable "enable_nat_ping".
6. Select UACs for sending NAT keep-alive OPTINS from DB based by indexed column search instead of by expensive fullscan of table with "LIKE '%sometihng%'".
This is what I think could be useful. Any comments are welcome :-) Expecially if somebody see it handy too or even works on something similar - to work together. If you see I miss something important or you see any drawback in my suggestion, please tell me it :-). Thanks!
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_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Anthony Minessale napsal(a):
Did you know that you can set the params and variables separate in each <user> if you wish. The default example where it puts them in the <domain> is not mandatory, when you add params to the domain it implies every user in that domain.
Thank you very much, Anthony, for your reply! I know it, but didn't see the right variables for my purpose. Is there already way how to send keep-alive OPTIONS to only some of UACs marked as NATed and how could I get IP address of Contact header from http post made by xml_curl? If it is possible, please help me how to do it. Best regards, kokoska.rokoska
On Tue, Apr 15, 2008 at 4:40 PM, kokoska rokoska <kokoska.rokoska@post.cz <mailto:kokoska.rokoska@post.cz>> wrote:
Hi all,
First of all I have say I'm very impressed by FreeSWITCH SIP handling. It way differs from what I know from Asterisk :-) A lot of my previous questions about adding/modifying SIP headers are irrelevant becasuse FreeSWITCH do the job automagically...
-----
Now why I want to say:
I think about new feature which may (or may not :-) slightly off-load the FreeSWITCH in case of handling a lot of SIP clients behind NAT.
If I understand my pcap dumps right, now in case of 10.000 UACs behind NAT FreeSWITCH tries to send more than 2000 OPTIONS per second to the UACs. If I don't miss something, it is too much, I think :-)
My idea is to use NAT-hack for only some of UACs, send NAT keep-alive OPTIONS for only UACs it realy need it (based on administrator decision) and make periodicity of NAT keep-alive packets configurable.
I briefly looked into the sources and I think the solution could be like this:
1. Introduce new "per profile" variable "nat_keep_alive" meaning number of seconds between sending of OPTIONS.
2. Introduce new variable "sip_contact_ip" in Directory http post to xml_curl. This is helpful - if compared to "ip" - to decide if NAT-hack should be applied.
3. Introduce new variable "enable_nat_ping" which defaults to "yes". This var could be in replies to Directory http posts.
4. Remove sofia_reg_nat_callback from sofia_reg_check_expire and introduce independant call from sofia_profile_worker_thread_run driven by value of "nat_keep_alive" variable.
5. Modify DB table sip_registrations - add indexed TINYINT column "nat_ping" and write to this column value of variable "enable_nat_ping".
6. Select UACs for sending NAT keep-alive OPTINS from DB based by indexed column search instead of by expensive fullscan of table with "LIKE '%sometihng%'".
This is what I think could be useful. Any comments are welcome :-) Expecially if somebody see it handy too or even works on something similar - to work together. If you see I miss something important or you see any drawback in my suggestion, please tell me it :-). Thanks!
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_minessale@hotmail.com <mailto:MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com <mailto:PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net <http://irc.freenode.net> #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <mailto:sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 <http://iax:guest@conference.freeswitch.org/888> googletalk:conf+888@conference.freeswitch.org <mailto:googletalk%3Aconf%2B888@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
Kokoska - A few changes/fixes for the OPTIONS keep alive were recently made by Anthm. A new option for the UAC (which, as previously mentioned can either go in the directory or the sip profile config) is: <param name="unregister-on-options-fail" value="true"/> This will set a UAC to expire should the options requests timeout/ fail. There were also a few bugs that were fixed. For example, the OPTIONS were sent to clients whose registrations had already expired (fixed) and the SIP OPTIONS request wasn't completely formatted correctly (fixed). Update and see if this helps you. What is the advantage of setting the periodicity of the NAT keep alive? I'm not sure I see it very clearly. Also, while in principle the %NATHACK% is an expensive operation I wonder just how many UAC you need to have registered before it really becomes a factor? JP On Apr 16, 2008, at 5:40 AM, kokoska rokoska wrote:
Hi all,
First of all I have say I'm very impressed by FreeSWITCH SIP handling. It way differs from what I know from Asterisk :-) A lot of my previous questions about adding/modifying SIP headers are irrelevant becasuse FreeSWITCH do the job automagically...
-----
Now why I want to say:
I think about new feature which may (or may not :-) slightly off-load the FreeSWITCH in case of handling a lot of SIP clients behind NAT.
If I understand my pcap dumps right, now in case of 10.000 UACs behind NAT FreeSWITCH tries to send more than 2000 OPTIONS per second to the UACs. If I don't miss something, it is too much, I think :-)
My idea is to use NAT-hack for only some of UACs, send NAT keep-alive OPTIONS for only UACs it realy need it (based on administrator decision) and make periodicity of NAT keep-alive packets configurable.
I briefly looked into the sources and I think the solution could be like this:
1. Introduce new "per profile" variable "nat_keep_alive" meaning number of seconds between sending of OPTIONS.
2. Introduce new variable "sip_contact_ip" in Directory http post to xml_curl. This is helpful - if compared to "ip" - to decide if NAT- hack should be applied.
3. Introduce new variable "enable_nat_ping" which defaults to "yes". This var could be in replies to Directory http posts.
4. Remove sofia_reg_nat_callback from sofia_reg_check_expire and introduce independant call from sofia_profile_worker_thread_run driven by value of "nat_keep_alive" variable.
5. Modify DB table sip_registrations - add indexed TINYINT column "nat_ping" and write to this column value of variable "enable_nat_ping".
6. Select UACs for sending NAT keep-alive OPTINS from DB based by indexed column search instead of by expensive fullscan of table with "LIKE '%sometihng%'".
This is what I think could be useful. Any comments are welcome :-) Expecially if somebody see it handy too or even works on something similar - to work together. If you see I miss something important or you see any drawback in my suggestion, please tell me it :-). Thanks!
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
I added this to the sip_profiles/default.xml commented out. Is anyone currently working on full documentation of every sip profile option? /b On Apr 15, 2008, at 9:55 PM, Jonathan Palley wrote:
<param name="unregister-on-options-fail" value="true"/>
Jonathan Palley napsal(a):
Kokoska - A few changes/fixes for the OPTIONS keep alive were recently made by Anthm.
Thank you very much, Jonathan, for your reply! I saw some discussion about it few days before, but I'm afraid it solves something else.
A new option for the UAC (which, as previously mentioned can either go in the directory or the sip profile config) is:
<param name="unregister-on-options-fail" value="true"/>
Thank you again - this very useful option for some situations...
This will set a UAC to expire should the options requests timeout/fail. There were also a few bugs that were fixed. For example, the OPTIONS were sent to clients whose registrations had already expired (fixed) and
Yes, this is what I remember from mentioned discussion.
the SIP OPTIONS request wasn't completely formatted correctly (fixed).
If you mean To: header I can say I know a little bit about it, because I reported it to jira with small (5 chars) patch :-)
Update and see if this helps you.
I will do it in few minutes :-) Best regards, kokoska.rokoska
What is the advantage of setting the periodicity of the NAT keep alive? I'm not sure I see it very clearly.
Also, while in principle the %NATHACK% is an expensive operation I wonder just how many UAC you need to have registered before it really becomes a factor?
JP On Apr 16, 2008, at 5:40 AM, kokoska rokoska wrote:
Hi all,
First of all I have say I'm very impressed by FreeSWITCH SIP handling. It way differs from what I know from Asterisk :-) A lot of my previous questions about adding/modifying SIP headers are irrelevant becasuse FreeSWITCH do the job automagically...
-----
Now why I want to say:
I think about new feature which may (or may not :-) slightly off-load the FreeSWITCH in case of handling a lot of SIP clients behind NAT.
If I understand my pcap dumps right, now in case of 10.000 UACs behind NAT FreeSWITCH tries to send more than 2000 OPTIONS per second to the UACs. If I don't miss something, it is too much, I think :-)
My idea is to use NAT-hack for only some of UACs, send NAT keep-alive OPTIONS for only UACs it realy need it (based on administrator decision) and make periodicity of NAT keep-alive packets configurable.
I briefly looked into the sources and I think the solution could be like this:
1. Introduce new "per profile" variable "nat_keep_alive" meaning number of seconds between sending of OPTIONS.
2. Introduce new variable "sip_contact_ip" in Directory http post to xml_curl. This is helpful - if compared to "ip" - to decide if NAT-hack should be applied.
3. Introduce new variable "enable_nat_ping" which defaults to "yes". This var could be in replies to Directory http posts.
4. Remove sofia_reg_nat_callback from sofia_reg_check_expire and introduce independant call from sofia_profile_worker_thread_run driven by value of "nat_keep_alive" variable.
5. Modify DB table sip_registrations - add indexed TINYINT column "nat_ping" and write to this column value of variable "enable_nat_ping".
6. Select UACs for sending NAT keep-alive OPTINS from DB based by indexed column search instead of by expensive fullscan of table with "LIKE '%sometihng%'".
This is what I think could be useful. Any comments are welcome :-) Expecially if somebody see it handy too or even works on something similar - to work together. If you see I miss something important or you see any drawback in my suggestion, please tell me it :-). Thanks!
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
------------------------------------------------------------------------
_______________________________________________ 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
I'm very sorry, Jonathan, I sent previous e-mail accidentaly before I wrote all I want, so story continues: Jonathan Palley napsal(a):
Kokoska - A few changes/fixes for the OPTIONS keep alive were recently made by Anthm.
A new option for the UAC (which, as previously mentioned can either go in the directory or the sip profile config) is:
<param name="unregister-on-options-fail" value="true"/>
This will set a UAC to expire should the options requests timeout/fail. There were also a few bugs that were fixed. For example, the OPTIONS were sent to clients whose registrations had already expired (fixed) and the SIP OPTIONS request wasn't completely formatted correctly (fixed). Update and see if this helps you.
What is the advantage of setting the periodicity of the NAT keep alive? I'm not sure I see it very clearly.
This comes from my experience: Normaly is enough to send keep-alive OPTIONS, lets say, every 20 seconds. But in few networks I see so agressive NAT, that closes UDP conenction in about 10 seconds of inactivity. So if you need to handle this kind of UACs, you need keep-alives every 9 seconds. This is just my few cents...
Also, while in principle the %NATHACK% is an expensive operation I wonder just how many UAC you need to have registered before it really becomes a factor?
If I'm not wrong in my calculation (included in first e-mail), it could become a bottle-neck in case of about 5-10.000 NATed UACs. This comes from my playing with OpenSER (but with slightly higher amount of UACs), where I need to disable NAT keep-alives and send them from my own daemon to just few of NATed UACs. And I'm affraid FreeSWITCH can't be much faster than OpenSER. BTW: Do you have (or someone else) any experience with handling large population of NATed UACs? If yes, could you share it? It could help me much... Thanks once more, Jonathan, for your reply! Best regards kokoska.rokoska
I get the feeling that some of these edge optimizations are, rightfully, not the top priority for the core team. If you make these changes I'm happy to help test as all of our users are behind a NAT. Right now we don't have enough users to justify doing this optimization ourselves though. As for keeping the UDP connection open I recommend having the client send "blank" UDP packets and setting the interval there. On Apr 16, 2008, at 2:06 PM, kokoska rokoska wrote:
I'm very sorry, Jonathan, I sent previous e-mail accidentaly before I wrote all I want, so story continues:
Jonathan Palley napsal(a):
Kokoska - A few changes/fixes for the OPTIONS keep alive were recently made by Anthm.
A new option for the UAC (which, as previously mentioned can either go in the directory or the sip profile config) is:
<param name="unregister-on-options-fail" value="true"/>
This will set a UAC to expire should the options requests timeout/ fail. There were also a few bugs that were fixed. For example, the OPTIONS were sent to clients whose registrations had already expired (fixed) and the SIP OPTIONS request wasn't completely formatted correctly (fixed). Update and see if this helps you.
What is the advantage of setting the periodicity of the NAT keep alive? I'm not sure I see it very clearly.
This comes from my experience: Normaly is enough to send keep-alive OPTIONS, lets say, every 20 seconds. But in few networks I see so agressive NAT, that closes UDP conenction in about 10 seconds of inactivity. So if you need to handle this kind of UACs, you need keep-alives every 9 seconds. This is just my few cents...
Also, while in principle the %NATHACK% is an expensive operation I wonder just how many UAC you need to have registered before it really becomes a factor?
If I'm not wrong in my calculation (included in first e-mail), it could become a bottle-neck in case of about 5-10.000 NATed UACs. This comes from my playing with OpenSER (but with slightly higher amount of UACs), where I need to disable NAT keep-alives and send them from my own daemon to just few of NATed UACs. And I'm affraid FreeSWITCH can't be much faster than OpenSER. BTW: Do you have (or someone else) any experience with handling large population of NATed UACs? If yes, could you share it? It could help me much...
Thanks once more, Jonathan, for your reply!
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
Jonathan Palley napsal(a):
I get the feeling that some of these edge optimizations are, rightfully, not the top priority for the core team.
I think so. And this why I think about to do it myself :-) If someone other see it useful...
If you make these changes I'm happy to help test as all of our users are behind a NAT.
If I have success in doing such changes to sources, I'm very glad if you help me with testing. Thanks Jonathan!
Right now we don't have enough users to justify doing this optimization ourselves though.
And I have nearly no experiences with FreeSWITCH :-)
As for keeping the UDP connection open I recommend having the client send "blank" UDP packets and setting the interval there.
Yes, I agree. But few of them (for example Nokia mobile phones) can't do that. And this why should I send keep-alive packets (dummy packets or valid OPTIONS), but only to few of NATed UACs. Thus I have to have an option to distinguish between UACs which need to be nat-pinged and which not :-) Best regards, kokoska.rokoska
Yes you remove the force-contact variable from the <domain> tag and only set it in the individual <user> tag. That is how you can pick and choose which ones do the options. You can also configure a force-expires on each user so the register will reply with a very short expiry time to trigger the client to re-register at any frequency you want. You can enable this without enabling the force-contact The force-contact option automatically sets the expire time to 20 seconds but you can make it even lower if you wish. On Wed, Apr 16, 2008 at 2:00 AM, kokoska rokoska <kokoska.rokoska@post.cz> wrote:
Jonathan Palley napsal(a):
I get the feeling that some of these edge optimizations are, rightfully, not the top priority for the core team.
I think so. And this why I think about to do it myself :-) If someone other see it useful...
If you make these changes I'm happy to help test as all of our users are behind a NAT.
If I have success in doing such changes to sources, I'm very glad if you help me with testing. Thanks Jonathan!
Right now we don't have enough users to justify doing this optimization ourselves though.
And I have nearly no experiences with FreeSWITCH :-)
As for keeping the UDP connection open I recommend having the client send "blank" UDP packets and setting the interval there.
Yes, I agree. But few of them (for example Nokia mobile phones) can't do that. And this why should I send keep-alive packets (dummy packets or valid OPTIONS), but only to few of NATed UACs. Thus I have to have an option to distinguish between UACs which need to be nat-pinged and which not :-)
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_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Anthony Minessale napsal(a):
Yes you remove the force-contact variable from the <domain> tag and only set it in the individual <user> tag. That is how you can pick and choose which ones do the options.
Thank you very much, Anthony, for your answer! Yes, I use force-contact per individual user, but if I don't see IP address UAC sends in "Contact:" header I couldn't decide if I need to force-contact or not (may be I can, but don't know how :-). And even worse, I need to force-contact (apply NAT-hack) every client behind NAT (it is obvious), but send keep-alive OPTIONS only to few of them (and it is, may be, not obvious).
You can also configure a force-expires on each user so the register will reply with a very short expiry time to trigger the client to re-register at any frequency you want. You can enable this without enabling the force-contact The force-contact option automatically sets the expire time to 20 seconds but you can make it even lower if you wish.
Yes, I see it in the sources. I force exptime (by configuration, not by hardcoding into sofia_reg.c :-) to much higher value, because IMO is REGISTER processing much more expensive compared to just sending OPTIONS. --------------- May be I am not able to clarify it enough, but I want to have registered, lets say, about 10.000 of UACs, half of them (5.000) are behid NAT (but I don't know which one of them and it changes frequently) and only about 500 of them realy have to be NAT-pinged by FreeSWITCH. There is no trouble to NAT-ping all population of 10.000 users, but I'm in doubt if FreeSWITCH could handle this amount of SIP messages. If you - or anybody other - have some experiences with similar amount of NATed users, please share the information. I shall be very happy... Thanks once more for your suggestions! Best regards, kokoska.rokoska
Apart from the few ways I mentioned, I don't know any other way. I am a fan of the client using STUN rather than the server compensating. On Wed, Apr 16, 2008 at 11:29 AM, kokoska rokoska <kokoska.rokoska@post.cz> wrote:
Anthony Minessale napsal(a):
Yes you remove the force-contact variable from the <domain> tag and only set it in the individual <user> tag. That is how you can pick and choose which ones do the options.
Thank you very much, Anthony, for your answer!
Yes, I use force-contact per individual user, but if I don't see IP address UAC sends in "Contact:" header I couldn't decide if I need to force-contact or not (may be I can, but don't know how :-). And even worse, I need to force-contact (apply NAT-hack) every client behind NAT (it is obvious), but send keep-alive OPTIONS only to few of them (and it is, may be, not obvious).
You can also configure a force-expires on each user so the register will reply with a very short expiry time to trigger the client to re-register at any frequency you want. You can enable this without enabling the force-contact The force-contact option automatically sets the expire time to 20 seconds but you can make it even lower if you wish.
Yes, I see it in the sources. I force exptime (by configuration, not by hardcoding into sofia_reg.c :-) to much higher value, because IMO is REGISTER processing much more expensive compared to just sending OPTIONS.
---------------
May be I am not able to clarify it enough, but I want to have registered, lets say, about 10.000 of UACs, half of them (5.000) are behid NAT (but I don't know which one of them and it changes frequently) and only about 500 of them realy have to be NAT-pinged by FreeSWITCH. There is no trouble to NAT-ping all population of 10.000 users, but I'm in doubt if FreeSWITCH could handle this amount of SIP messages.
If you - or anybody other - have some experiences with similar amount of NATed users, please share the information. I shall be very happy...
Thanks once more for your suggestions!
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_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Anthony Minessale napsal(a):
Apart from the few ways I mentioned, I don't know any other way.
Thanks, Anthony, for clarification!
I am a fan of the client using STUN rather than the server compensating.
I too, but users around me not :-) Best regards, kokoska.rokoska
I think with the volume of calls you are handling, this is one place where openser will serve you better than freeswitch. You said you already have openser in this role, why would you not want to use it? Mike. On Apr 16, 2008, at 1:09 PM, kokoska rokoska <kokoska.rokoska@post.cz> wrote:
Anthony Minessale napsal(a):
Apart from the few ways I mentioned, I don't know any other way.
Thanks, Anthony, for clarification!
I am a fan of the client using STUN rather than the server compensating.
I too, but users around me not :-)
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
Michael Jerris napsal(a):
I think with the volume of calls you are handling, this is one place where openser will serve you better than freeswitch. You said you already have openser in this role, why would you not want to use it?
Because I need B2BUA (for topology hiding, crappy UACs interconnection etc.). And, besides it, I have to work with media (transcoding betwwen codecs, DTMF translation, IVRs, VoiceMail...). --- Some time ago I have started with Asterisk, because it was very, very simple. After a while I found some Asterisk limitations and tried to overcome them. But it was a pain, year by year. Thou I decided "I can live without B2BUA", do all the "job" on proxy, and utilize Asterisk only as VoiceMail server. Now i know I can't live without B2BUA (for technical and law reasons). And I hope FreeSWITCH could do all the job :-) For the projects I need only and only performance, I stay with OpenSER, but for anything else I will be glad I can replace it with something like FreeSWITCH. Because it is B2BUA, handles media and do whatever I mentioned above or think about... And even thou, if I look at my OpenSER scripts few months after I wrote them I am always very surprised how it is possible that they work :-) Best regards, kokoska.rokoska
If you do the research and present us with some options I am open to implementing them as long as it makes sense. On Wed, Apr 16, 2008 at 1:56 PM, kokoska rokoska <kokoska.rokoska@post.cz> wrote:
Michael Jerris napsal(a):
I think with the volume of calls you are handling, this is one place where openser will serve you better than freeswitch. You said you already have openser in this role, why would you not want to use it?
Because I need B2BUA (for topology hiding, crappy UACs interconnection etc.). And, besides it, I have to work with media (transcoding betwwen codecs, DTMF translation, IVRs, VoiceMail...).
---
Some time ago I have started with Asterisk, because it was very, very simple. After a while I found some Asterisk limitations and tried to overcome them. But it was a pain, year by year.
Thou I decided "I can live without B2BUA", do all the "job" on proxy, and utilize Asterisk only as VoiceMail server.
Now i know I can't live without B2BUA (for technical and law reasons). And I hope FreeSWITCH could do all the job :-)
For the projects I need only and only performance, I stay with OpenSER, but for anything else I will be glad I can replace it with something like FreeSWITCH. Because it is B2BUA, handles media and do whatever I mentioned above or think about... And even thou, if I look at my OpenSER scripts few months after I wrote them I am always very surprised how it is possible that they work :-)
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_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Anthony Minessale napsal(a):
If you do the research and present us with some options I am open to implementing them as long as it makes sense.
I do what I can and lets see :-) Thanks, Anthony! Best regards, kokoska.rokoska
participants (9)
-
Anthony Minessale
-
Brian West
-
Chris Danielson
-
David Knell
-
Jonathan Palley
-
kokoska rokoska
-
Michael Jerris
-
Nikolai Geordzhev
-
Tamas Cseke