Hi Liviu,

Thank you. Even I found it after sending you the mail.

Regards,
Agalya

From: Liviu Chircu [mailto:li...@opensips.org]
Sent: Thursday, September 15, 2016 3:55 AM
To: Ramachandran, Agalya (Contractor) <agalya_ramachand...@comcast.com>; 
OpenSIPS users mailling list <users@lists.opensips.org>
Subject: Re: [OpenSIPS-Users] FW: Asynchronous operation for REST queries


In OpenSIPS script, you can obtain similar results to strtok() with the 
"s.select" string transformation [1].

[1]: http://www.opensips.org/Documentation/Script-Tran-2-3#toc6

Liviu Chircu

OpenSIPS Developer

http://www.opensips-solutions.com
On 14.09.2016 21:57, Ramachandran, Agalya (Contractor) wrote:
Hi Liviu,

I have tested by treating ASYNC_SYNC as success. Now calls are not failing.
When I tried to print the HTTP response which is available in $var(body), I 
could able to see the payload for HTTP response.
{"status":200,"hasErrors":false,"id":"b991f6c0-790f-11e6-82ef-05ba3d7a5...@test.comcast.net
 <mailto:b991f6c0-790f-11e6-82ef-05ba3d7a5...@test.comcast.net%20> 
","timestamp":1473975975,"messageId":0,"Token":"2de3dbv7823wxcas3fgf"}

I have a question here. When I receive the response in resume function I will 
do a strtok and extract the domain name "test.comcast.net".

If am not hitting resume function and it comes directly to resume_route, how 
the extraction of the domain from the response string can be achieved?
Because regular 'C' code and 'C' string library won't work with opensips config 
file.
Can you please share any documentation you have for extracting particular value 
from a sting in config file? I see the documentation to form a string but not 
vice versa.

Regards,
Agalya.

From: Liviu Chircu [mailto:li...@opensips.org]
Sent: Wednesday, September 14, 2016 12:25 PM
To: Ramachandran, Agalya (Contractor) 
<agalya_ramachand...@comcast.com><mailto:agalya_ramachand...@comcast.com>; 
OpenSIPS users mailling list 
<users@lists.opensips.org><mailto:users@lists.opensips.org>
Subject: Re: [OpenSIPS-Users] FW: Asynchronous operation for REST queries


So you are doing the $rc < 0 check in the beginning of the resume_route? If 
yes, could you treat ASYNC_SYNC as a success (it actually is!), and see if your 
output variables are properly populated with the transferred data?

Liviu Chircu

OpenSIPS Developer

http://www.opensips-solutions.com
On 14.09.2016 18:58, Ramachandran, Agalya (Contractor) wrote:
Hi Liviu,

I understand this way.
When we are getting more calls in opensips, and  the TCP port is been open in 
that particular time window.
At that time when it tries to send HTTP request, start_async_http_req is 
called, since is the port is already open, it is assuming that async is 
completed.
Am I right?

most of the call fails - meaning that for first 15 to 20 calls call is 
successful from end to end.
After that for the rest of the calls, it fails because ASYNC_SYNC is returned 
and hits resume_route.
Here $rc is -4 (ASYNC_SYNC), which is $rc < 0, and am sending 403 Forbidden, 
due to which other calls are failing.

In the resume function, I have added some logic after getting the HTTP 
response, what should be done for further handling INVITE request.
In these failure calls,  it never had a chance to hit the resume function and 
hence other calls are failing.

Regards,
Agalya

From: Liviu Chircu [mailto:li...@opensips.org]
Sent: Wednesday, September 14, 2016 4:45 AM
To: Ramachandran, Agalya (Contractor) 
<agalya_ramachand...@comcast.com><mailto:agalya_ramachand...@comcast.com>; 
OpenSIPS users mailling list 
<users@lists.opensips.org><mailto:users@lists.opensips.org>
Subject: Re: [OpenSIPS-Users] FW: Asynchronous operation for REST queries


If you notice that log, then the transfer was completed together with the TCP 
connect operation, an ideal situation! There is no need to call the resume 
function anymore, since we already have all the data. As soon as we return 
ASYNC_SYNC, the resume_route will be called.

What do you mean by "most of the call fails"? Are you missing any data?

Liviu Chircu

OpenSIPS Developer

http://www.opensips-solutions.com
On 13.09.2016 21:56, Ramachandran, Agalya (Contractor) wrote:
Hi Liviu,

One more observance.  Am trying to load test on the main branch where you have 
provided your fix.
Am using REST API as, async. After receiving the response for the HTTP request, 
I will process the incoming SIP INVITE.

If am sending 50 calls at 2 calls per sec from sipp, -in this case it works 
perfectly fine.
If am sending 50 calls at 5 calls per sec from sipp, most of the call fails.

If I look at logs I could able to see that for failure case, it hits 
start_async_http_req, but never resume function is called.
It is printing LM_DBG("done, no need for async!\n"); and returns ASYNC_SYNC;
Any idea why for few calls, it is not acting as async? Particularly if I 
increase cps, am seeing this behavior.

Please let me know if am missing something.

Regards,
Agalya

From: users-boun...@lists.opensips.org<mailto:users-boun...@lists.opensips.org> 
[mailto:users-boun...@lists.opensips.org] On Behalf Of Ramachandran, Agalya 
(Contractor)
Sent: Tuesday, September 13, 2016 2:14 PM
To: Liviu Chircu <li...@opensips.org><mailto:li...@opensips.org>; OpenSIPS 
users mailling list <users@lists.opensips.org><mailto:users@lists.opensips.org>
Subject: Re: [OpenSIPS-Users] FW: Asynchronous operation for REST queries

Hi Liviu,

I have configured "Connection_timeout" value as '1' and ran 2 sipp calls.
After TCP port is opened, HTTP request is sent out approx. 95 to 100ms later. 
Am attaching the log of the opensips by enabling debugging log.

I took the code from master branch and tested it out. If you find everything OK 
let me know.
Or if you feel to test any specific scenario please update me, so that I can 
test and share you the results.

P.S:
One more observance.
In the case of synchronous, TCP port is opened within 8 ms, whereas in the case 
of async TCP port is opening after 100 ms.
Is it the expected behavior?.

What will be expected time to give this fix in a branch version?
Log file ~70 MB if I enable the debug calls for single call and couldn't post 
you that log, since it says limit for email is 40 MB.

Regards,
Agalya


From: Liviu Chircu [mailto:li...@opensips.org]
Sent: Monday, September 12, 2016 4:06 AM
To: OpenSIPS users mailling list 
<users@lists.opensips.org<mailto:users@lists.opensips.org>>; Ramachandran, 
Agalya (Contractor) 
<agalya_ramachand...@comcast.com<mailto:agalya_ramachand...@comcast.com>>
Subject: Re: FW:[OpenSIPS-Users] Asynchronous operation for REST queries


Hi Agalya,

The "connection_timeout" is a configurable module parameter, so tuning it 
properly might just solve your problem.

If you need more assistance, please enable debug logging (log_level = 4), run 
the query and post the full log output.

Best regards,

Liviu Chircu

OpenSIPS Developer

http://www.opensips-solutions.com
On 09.09.2016 23:04, Ramachandran, Agalya (Contractor) wrote:
Hi Liviu,

I have tested the patch. Now I see the delay is 2 secs. i.e after 2 secs it 
sends the HTTP request out.
I suspect this 2000 ms delay is due to the below field:
long connection_timeout = 20;

Can we reduce this field to 5 or 10, so that it waits only half a second or 
second to send the request out.
Let me know your thoughts on this.

Am seeing the below message in logs. Is everything working as you expected?
rest_client:start_async_http_req: libcurl TCP connect: we should wait up to 1ms 
(timeout=20000ms)!


Regards,
Agalya

From: Liviu Chircu [mailto:li...@opensips.org]
Sent: Thursday, September 08, 2016 7:05 AM
To: Ramachandran, Agalya (Contractor) 
<agalya_ramachand...@comcast.com><mailto:agalya_ramachand...@comcast.com>; 
Bogdan-Andrei Iancu <bog...@opensips.org><mailto:bog...@opensips.org>; OpenSIPS 
users mailling list <users@lists.opensips.org><mailto:users@lists.opensips.org>
Subject: Re: FW:[OpenSIPS-Users] Asynchronous operation for REST queries


Hi, Agalya!

Regarding the 10s delay problem, a fix was pushed to the development branch 
[1]. If you are running on 2.1.4 git branch, could you please pull the latest 
changes (git pull --rebase), and test it out? You can import it with:

git cherry-pick -x  66c337cc

[1]: 
https://github.com/OpenSIPS/opensips/commit/66c337cc89a2b5c3e1bbd78c289371efcda21886

Best regards,

Liviu Chircu

OpenSIPS Developer

http://www.opensips-solutions.com



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

Reply via email to