Re: [OpenSIPS-Devel] [opensips] Dialplan Features/Patch Backport (#319)

2014-09-03 Thread Parantido De Rica
I also committed code ... but I don't see it ... uuuhmm!

---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/pull/319#issuecomment-54258296___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [opensips] Dialplan Features/Patch Backport (#319)

2014-09-03 Thread Parantido De Rica
I think I'm doing confusion (sorry I'm not really handy with git)!!!

I created a branch (dialplan_newfeatures) of my pull request and committed code 
there:

https://github.com/Parantido/opensips/commit/3079aa128f8fe63831a988f13cb8c79d9ffa2930

Could you help me?

---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/pull/319#issuecomment-54258727___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] Asynchronous processing in OpenSIPS 1.12

2014-09-03 Thread Bogdan-Andrei Iancu

Brett,

The timeout for the async ops will be control by the reactor (like 
triggering the timouts) and set by the module starting the op - like the 
rest_client module will set the timeout for the HTTP rest queries.


The processes are not suspended, just the context of an execution. So at 
the end is just about memory - of course there should be a safety net to 
limit the number of suspended async I/Os per type of I/O. Each type of 
I/O op will have a priority in relation to other I/O ops (like timer 
jobs higher than aysnc resume, async resume higher than reading from 
network).


An async I/O is done during handling a SIP message, so it does not 
interfere with TM timers (which are activated only when sending the 
traffic out). otherwise the dialogs and transactions (with their 
eco-system) are not affected at all.


Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 02.09.2014 19:53, Brett Nemeroff wrote:

I'm curious what the failure cases look like here..
What happens when your long running db query is excessively long? Is 
there a timeout? What happens if you have 1000s of backed up 
processes. Would love to see some sort of fifo command somehow 
quantify the effectiveness of it being async. Not sure how to say this 
right. But I'd like to be able to query a value that says either bg 
tasks are being handled in a timely fashion or bg tasks are so slow 
it's starting to affect performance


Of course, these are not normal cases... wondering how graceful we 
can allow it to be broken. I assume that the context saving will take 
X memory and eventually it will fill up? Where is that memory stored? 
How is it allocated? How much memory do you need for each backgrounded 
task?


Another thought..  how are dialog/transaction variables handled? 
AVPs? vars? How are dialogs handled across such an operation? What 
about standard (SIP) timer operations? What about dialog fr_timer and 
fr_inv_timer, do they continue to run?


Thanks, really looking forward to async!
-Brett



On Tue, Sep 2, 2014 at 11:26 AM, Răzvan Crainea raz...@opensips.org 
mailto:raz...@opensips.org wrote:


Hi all,

Among the last discussion of the last IRC meeting[1] was related
to Asynchronous processing in OpenSIPS script - we want to add a
new mechanism that allows you to perform asynchronous operations
(such as DB , REST or exec operations) directly from the script.
Using this feature will increase the throughput of OpenSIPS, since
the SIP processes will no longer be stuck waiting for I/O responses.

When reaching an asynchronous operation, the SIP message
processing will be stopped, and resumed in a different script
route. In the script, this should be reflected something like this:

route {
...
# other non I/O operations
async(my_resume_route) {
avp_db_query(SELECT setid from subscribers where username
= '$fU', $avp(setid));
}
# we never get here.
exit;
}

route[my_resume_route] {
xlog(The set used by the callee is $avp(setid)\n);
# continue message processing
}

Only the functions that are used in an async block will be ran
asynchronously. If the function does not support async processing,
it will block waiting for the response and resume in the route
indicated by the async block - so the scripting experience will
be the same even if the async OP could not be done.
In order to resume the processing in a different route, we need to
store a context of the message. This will be done using the
transaction module[2]. If this module is not used, the
asynchronous mechanism will not work.

lirakis suggested to have different processes that waits for the
asynchronous I/O responses and continues the processing. However,
we think having the SIP worker processes resume the operations
will behave better, since we'll have fewer processes and we won't
loose time with context switches.

How do you see this feature? How would you like to use it? Feel
free to contribute with any input you find suitable!

[1] http://www.opensips.org/Community/IRCmeeting20140827
[2] http://www.opensips.org/html/docs/modules/1.12.x/tm

Best regards,

-- 
Răzvan Crainea

OpenSIPS Solutions
www.opensips-solutions.com http://www.opensips-solutions.com


___
Users mailing list
us...@lists.opensips.org mailto:us...@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




___
Users mailing list
us...@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


[OpenSIPS-Devel] [FYI] OpenSIPS Social networks

2014-09-03 Thread Bogdan-Andrei Iancu

Hi,

FYI, we put together a web page with all social networks where OpenSIPS 
project is present and active, so people know where to find us:


http://www.opensips.org/Community/Networking

Regards,

--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] Message compression in OpenSIPS 1.12

2014-09-03 Thread Bogdan-Andrei Iancu

On 03.09.2014 11:59, Saúl Ibarra Corretgé wrote:

Hi Razvan,

On 02 Sep 2014, at 18:25, Răzvan Crainea raz...@opensips.org wrote:


2)Compressing the SIP message (using gzip). The idea is to take the SDP body 
and several headers that are not used in the routing logic, compress them, 
apply a base64 transformation and add to the message's body. A use case for 
this is a platform that has several edge servers (SBCs) and a few core 
instances - when entering the platform the message compression should be 
applied and then sent to the core servers. Inside the core networks, the 
messages should be carried in the compressed format to reduce the bandwidth. 
When leaving the network, the message has to be decompressed and forwarded to 
the next gateway without any compression, since the other equipments might not 
understand them.
There will be several functions exported in the script:

a) compress_msg(1,Header1|Header2); compresses the body of the message 
and listed headers
b) decompress_msg(); decompress both headers and body

What do you think about this approach? Is this something you find useful? Since 
we don't have a final decision for this topic, we are looking for more input 
from you guys.Anybody is welcome to throw any kind of useful feedback on this 
matter, so don't be shy!



IIRC this is not standard, and Apple uses it somewhere on their FaceTime 
implementation. Kamailio has it and someone was working on a patch for PJSIP, 
but other than that I’m not sure how useful it is, servers could use TCP 
between them.
It is not indeed, but the main idea is to first help you with better 
handling traffic inside your network (which may be up to 3 or 4 OpenSIPS 
boxes when you have a distributed platform) ; handling means bandwidth 
and processing as parsing SIP messages - like headers (maybe 20) or body 
you do not care about and you just want to carry through without a need 
to parse and look.


And maybe in the future it will be some progress into 
standardizationfor now I see the real need for it (at least for me:) ).


Regards,
Bogdan

___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] [FYI] OpenSIPS Social networks

2014-09-03 Thread Saúl Ibarra Corretgé

On 03 Sep 2014, at 11:44, Bogdan-Andrei Iancu bog...@opensips.org wrote:

 Hi,
 
 FYI, we put together a web page with all social networks where OpenSIPS 
 project is present and active, so people know where to find us:
 
http://www.opensips.org/Community/Networking
 

Hi Bogdan,

The Facebook page seems to be a person called “Opensips Server, not an actual 
page people can “like”. That was common practice before Facebook introduced 
“Pages”, but not anymore.


Regards,

--
Saúl Ibarra Corretgé
AG Projects





signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] Asynchronous processing in OpenSIPS 1.12

2014-09-03 Thread Bogdan-Andrei Iancu

On 03.09.2014 12:06, Saúl Ibarra Corretgé wrote:

On 02 Sep 2014, at 18:26, Răzvan Crainea raz...@opensips.org wrote:


Hi all,

Among the last discussion of the last IRC meeting[1] was related to 
Asynchronous processing in OpenSIPS script - we want to add a new mechanism 
that allows you to perform asynchronous operations (such as DB , REST or exec 
operations) directly from the script. Using this feature will increase the 
throughput of OpenSIPS, since the SIP processes will no longer be stuck waiting 
for I/O responses.

When reaching an asynchronous operation, the SIP message processing will be 
stopped, and resumed in a different script route. In the script, this should be 
reflected something like this:

route {
...
# other non I/O operations
async(my_resume_route) {
avp_db_query(SELECT setid from subscribers where username = '$fU', 
$avp(setid));
}
# we never get here.
exit;
}

route[my_resume_route] {
xlog(The set used by the callee is $avp(setid)\n);
# continue message processing
}

Only the functions that are used in an async block will be ran asynchronously. If the 
function does not support async processing, it will block waiting for the response and resume in 
the route indicated by the async block - so the scripting experience will be the same 
even if the async OP could not be done.

I find this quite problematic. How does John Doe know a function supports async 
or not? Maybe the configuration checker can know this and not let OpenSIPS 
start if you are doing it wrong? Alternatively, blocking functions could be ran 
in a thread pool thus giving the illusion of them being async.
First of all, the function will be documented as supporting Async and 
the script parser may check it (we will export some extra flags for the 
function to say it can do async).


Secondly, the script will allow you to use any combination of functions 
and script macro - I mean the script will allow you to use an async 
function in a non-async way (and the function will act as sync) or to 
use a non-async function in an async way (the function will act as async 
and with a jump to resume route).


Regards,
Bogdan

___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] Asynchronous processing in OpenSIPS 1.12

2014-09-03 Thread Saúl Ibarra Corretgé

On 03 Sep 2014, at 11:59, Bogdan-Andrei Iancu bog...@opensips.org wrote:

 On 03.09.2014 12:06, Saúl Ibarra Corretgé wrote:
 On 02 Sep 2014, at 18:26, Răzvan Crainea raz...@opensips.org wrote:
 
 Hi all,
 
 Among the last discussion of the last IRC meeting[1] was related to 
 Asynchronous processing in OpenSIPS script - we want to add a new mechanism 
 that allows you to perform asynchronous operations (such as DB , REST or 
 exec operations) directly from the script. Using this feature will increase 
 the throughput of OpenSIPS, since the SIP processes will no longer be stuck 
 waiting for I/O responses.
 
 When reaching an asynchronous operation, the SIP message processing will be 
 stopped, and resumed in a different script route. In the script, this 
 should be reflected something like this:
 
 route {
...
# other non I/O operations
async(my_resume_route) {
avp_db_query(SELECT setid from subscribers where username = '$fU', 
 $avp(setid));
}
# we never get here.
exit;
 }
 
 route[my_resume_route] {
xlog(The set used by the callee is $avp(setid)\n);
# continue message processing
 }
 
 Only the functions that are used in an async block will be ran 
 asynchronously. If the function does not support async processing, it will 
 block waiting for the response and resume in the route indicated by the 
 async block - so the scripting experience will be the same even if the 
 async OP could not be done.
 I find this quite problematic. How does John Doe know a function supports 
 async or not? Maybe the configuration checker can know this and not let 
 OpenSIPS start if you are doing it wrong? Alternatively, blocking functions 
 could be ran in a thread pool thus giving the illusion of them being async.
 First of all, the function will be documented as supporting Async and the 
 script parser may check it (we will export some extra flags for the function 
 to say it can do async).
 
 Secondly, the script will allow you to use any combination of functions and 
 script macro - I mean the script will allow you to use an async function in a 
 non-async way (and the function will act as sync) or to use a non-async 
 function in an async way (the function will act as async and with a jump to 
 resume route).
 

My concern is with that last part: if a function which doesn’t support async is 
called within an async block it will block but then make the jump thus 
deceiving the user into believing it was async when it isn’t. We need to fail 
loudly and tell users they are doing it wrong, iMHO.


Regards,

--
Saúl Ibarra Corretgé
AG Projects





signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] [FYI] OpenSIPS Social networks

2014-09-03 Thread Bogdan-Andrei Iancu

OK, we will look into it and fix it :).

Thanks and regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 03.09.2014 12:50, Saúl Ibarra Corretgé wrote:

On 03 Sep 2014, at 11:44, Bogdan-Andrei Iancu bog...@opensips.org wrote:


Hi,

FYI, we put together a web page with all social networks where OpenSIPS project 
is present and active, so people know where to find us:

http://www.opensips.org/Community/Networking


Hi Bogdan,

The Facebook page seems to be a person called “Opensips Server, not an actual 
page people can “like”. That was common practice before Facebook introduced “Pages”, 
but not anymore.


Regards,

--
Saúl Ibarra Corretgé
AG Projects





___
Users mailing list
us...@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [opensips] Dialplan Features/Patch Backport (#319)

2014-09-03 Thread Liviu Chircu
Checkout the master branch:

git checkout master

Rebase against your other branch:

git rebase dialplan_newfeatures

Push the changes to your forked repository. The Pull Request should update 
itself.

git push


---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/pull/319#issuecomment-54278865___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


[OpenSIPS-Devel] OpenSIPS Summit 2014 in Chicago - Post Facts

2014-09-03 Thread Bogdan-Andrei Iancu

Hi everyone !

Following the requests of people who were not able to attend, we put 
together a nice collection of presentations, videos and photos - all are 
shared here:

http://www.opensips.org/Community/Summit-2014Chicago
Enjoy !

Thanks again to our sponsors, to the people who helped organizing and of 
course to our beautiful audiance !


Best regards,

--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] Asynchronous processing in OpenSIPS 1.12

2014-09-03 Thread Saúl Ibarra Corretgé
 
 My concern is with that last part: if a function which doesn’t support async 
 is called within an async block it will block but then make the jump thus 
 deceiving the user into believing it was async when it isn’t. We need to 
 fail loudly and tell users they are doing it wrong, iMHO.
 Of course, we can detect that at script parsing and decide how to handle it:
- ignore and do it blocking
- warning and do it blocking
- error and do not start.
 

I’d say we shouldn’t start :-)


Regards,

--
Saúl Ibarra Corretgé
AG Projects





signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


[OpenSIPS-Devel] [opensips] DB_MYSQL - modparam ping_interval does nothing - No pings sent ever (#320)

2014-09-03 Thread hydrosine
Tried on 1.10 and 1.11.

No ping packets are being sent to keep the connection alive. I traced all mysql 
traffic for half an hour, and no ping was sent. Tried it with modparam set to 
300, 30 and with no modparam at all which would mean 300 sec.

What we can see in the code is that the modparam is being exported into a 
variable, but this variable is never used again.

---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/320___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [OpenSIPS-Users] Asynchronous processing in OpenSIPS 1.12

2014-09-03 Thread Bogdan-Andrei Iancu

On 03.09.2014 14:43, Saúl Ibarra Corretgé wrote:

My concern is with that last part: if a function which doesn’t support async is 
called within an async block it will block but then make the jump thus 
deceiving the user into believing it was async when it isn’t. We need to fail 
loudly and tell users they are doing it wrong, iMHO.

Of course, we can detect that at script parsing and decide how to handle it:
- ignore and do it blocking
- warning and do it blocking
- error and do not start.


I’d say we shouldn’t start :-)

I will keep that in mind ;)

___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [opensips] Topology_Hiding - Preserving Non-Transport Params (#301)

2014-09-03 Thread dexteruk
Closed #301.

---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/301#event-160826836___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [opensips] Topology_Hiding - Preserving Non-Transport Params (#301)

2014-09-03 Thread dexteruk
Is there any update on this?

---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/301#issuecomment-54366621___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel


Re: [OpenSIPS-Devel] [opensips] Topology_Hiding - Preserving Non-Transport Params (#301)

2014-09-03 Thread dexteruk
Reopened #301.

---
Reply to this email directly or view it on GitHub:
https://github.com/OpenSIPS/opensips/issues/301#event-160829528___
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel