<div>Hi all,</div>
<div>&nbsp;</div>
<div>I tried to using <a href="http://bugs.digium.com/file_download.php?file_id=15943&amp;type=bug" target="_blank">rtcc-curl-1.4.13.patch</a>&nbsp;in bug id 6335 <a href="http://bugs.digium.com/view.php?id=6335">http://bugs.digium.com/view.php?id=6335</a>&nbsp;reported by KNK. I patch it to asterisk <a href="http://1.4.18.1">1.4.18.1</a> and it&nbsp;seems work.</div>

<div>&nbsp;</div>
<div>My extensions.conf lists below:</div>
<div>&nbsp;</div>
<div>exten =&gt; _X.,1,Set(TimeLimit=${CURL(<a href="http://127.0.0.1/test.php?app=rtcc&amp;accountcode=${ACCOUNTCODE}&amp;dst=${EXTEN}&amp;channelid=${UNIQUEID}&amp;seqnum=1">http://127.0.0.1/test.php?app=rtcc&amp;accountcode=${ACCOUNTCODE}&amp;dst=${EXTEN}&amp;channelid=${UNIQUEID}&amp;seqnum=1</a>)})<br>
exten =&gt; _X.,n,Set(TimeLimit=${MATH(${TimeLimit}+5,int)})<br>exten =&gt; _X.,n,Set(TimeLimit=${MATH(${TimeLimit}*1000,int)})<br>exten =&gt; _X.,n,Set(dst=${EXTEN})<br>exten =&gt; _X.,n,NoOp(Initial time limit for ${ACCOUNTCODE} and ${EXTEN} set at ${TimeLimit})<br>
exten =&gt; _X.,n,Set(RTCC_START_SEQNUM=2)<br>exten =&gt; _X.,n,Set(RTCC_INTERVAL=60000)<br>exten =&gt; _X.,n,Dial(SIP/1025,,L(${TimeLimit}:::<a href="http://127.0.0.1/test.php)">http://127.0.0.1/test.php)</a>)<br>exten =&gt; _X.,n,Hangup<br>
<br>My URL test.php always reponses interger 120.&nbsp;It is&nbsp;pure text format without any symbol before/after it.</div>
<div>&nbsp;</div>
<div>My test.php: ( one row only )</div>
<div>120</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp; -- Accepting AUTHENTICATED call from XXX.XXX.XXX.XXX:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; requested format = ilbc,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; requested prefs = (),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; actual format = ilbc,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; host prefs = (ilbc),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; priority = mine<br>
&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:1] Set(&quot;SIP/2922-10&quot;, &quot;TimeLimit=120&quot;) in new stack<br>&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:2] Set(&quot;SIP/2922-10&quot;, &quot;TimeLimit=125&quot;) in new stack<br>&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:3] Set(&quot;SIP/2922-10&quot;, &quot;TimeLimit=125000&quot;) in new stack<br>
&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:4] Set(&quot;SIP/2922-10&quot;, &quot;dst=295&quot;) in new stack<br>&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:5] NoOp(&quot;SIP/2922-10&quot;, &quot;Initial time limit for&nbsp; and 295 set at 45000&quot;) in new stack<br>
&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:6] Set(&quot;SIP/2922-10&quot;, &quot;RTCC_START_SEQNUM=2&quot;) in new stack<br>&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:7] Set(&quot;SIP/2922-10&quot;, &quot;RTCC_INTERVAL=60000&quot;) in new stack<br>
&nbsp;&nbsp;&nbsp; -- Executing [_X.@default:8] Dial(&quot;SIP/2922-10&quot;, &quot;SIP/1025||L(125000::<a href="http://127.0.0.1/test.php)">http://127.0.0.1/test.php)</a>&quot;) in new stack<br>&nbsp;&nbsp;&nbsp; -- Limit Data for this call:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; timelimit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 125000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; play_warning&nbsp;&nbsp; = 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; play_to_caller = yes<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; play_to_callee = no<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; warning_freq&nbsp;&nbsp; = 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; rtcc url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = //127.0.0.1/test.php<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; rtcc interval&nbsp; = 60000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; rtcc exp intvl = 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; rtcc seqnum&nbsp;&nbsp;&nbsp;&nbsp; = 2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; start_sound&nbsp;&nbsp;&nbsp; = (null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; warning_sound&nbsp; = timeleft<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; end_sound&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = (null)</div>
<div>&nbsp;</div>
<div>During the period, I trace the /var/log/httpd/access_log. I can&#39;t find any request to test.php.&nbsp;Should&nbsp;it be visited each 6 sec ?</div>
<div>
<div>(Only this line)</div>
<div><a href="http://127.0.0.1">127.0.0.1</a> - - [27/Mar/2008:17:51:54 +0800] &quot;GET /test.php?app=rtcc&amp;accountcode=&amp;dst=295&amp;channelid=1206611514.2&amp;seqnum=1 HTTP/1.1&quot; 200 3 &quot;-&quot; &quot;asterisk-libcurl-agent/1.0&quot;</div>

<div>&nbsp;</div>
<div>Then, I tried to reduce the integer number 120 to 80. I wish it can be&nbsp;hunup when 80 seconds reached. But the answer was NO. It made my asterisk crashed. I got this message&nbsp;in debug mode.</div>
<div>&nbsp;</div></div>
<div>[Mar 27 17:52:58] DEBUG[32053]: app_dial.c:877 rtcccallback: call control accountcode=2922, dst=295.<br>asterisk: symbol lookup error: /usr/lib/asterisk/modules/app_dial.so: undefined symbol: curl_easy_init</div>
<div>&nbsp;</div>
<div>Can&nbsp;anyone kindly give me any idea?</div>
<div>&nbsp;</div>
<div>Best regards,</div>
<div>Charles</div>
<div>&nbsp;</div>
<div><span class="gmail_quote">2007/7/15, Grey Man &lt;<a href="mailto:greyvoip@yahoo.com.au">greyvoip@yahoo.com.au</a>&gt;:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br><br>----- Original Message ----<br>From: Kaloyan Kovachev &lt;<a href="mailto:kkovachev@varna.net">kkovachev@varna.net</a>&gt;<br>
To: Asterisk Developers Mailing List &lt;<a href="mailto:asterisk-dev@lists.digium.com">asterisk-dev@lists.digium.com</a>&gt;<br>Sent: Sunday, 15 July, 2007 10:50:29 AM<br>Subject: Re: [asterisk-dev] Real-time call control for Dial app<br>
<br>On Sat, 14 Jul 2007 14:36:27 -0700 (PDT), Grey Man wrote<br>&gt; ----- Original Message ----<br>&gt; &gt;From: Kaloyan Kovachev &lt;<a href="mailto:kkovachev@varna.net">kkovachev@varna.net</a>&gt;<br>&gt; &gt;To: Asterisk Developers Mailing List &lt;<a href="mailto:asterisk-dev@lists.digium.com">asterisk-dev@lists.digium.com</a>&gt;<br>
&gt; &gt;Sent: Saturday, 14 July, 2007 3:00:54 PM<br>&gt; &gt;Subject: Re: [asterisk-dev] Real-time call control for Dial app<br>&gt; &gt;<br>&gt; &gt;Hi again,<br>&gt;&nbsp;&nbsp;&gt;i guess Asterisk is not used for prepaid applications too much, or more<br>
&gt; &gt;likely the risk of overused account is just ignored (there are providers with<br>&gt; &gt;&#39;pay as go&#39; services with which i had negative balance for a while).<br>&gt; &gt;Even separate thread for each call bridge is not the best way and adding<br>
&gt; &gt;another one is not a good idea - agree, but the call control thread is<br>&gt; &gt;sleeping most of the time, so it shouldn&#39;t cause too much problems.<br>&gt; &gt;Unfortunately my C skills (and available time) are not enough to make (my<br>
&gt; &gt;long term idea) a single call control thread for which each call will just<br>&gt; &gt;register and which will also be responsible for the warning messages on that<br>&gt; &gt;call instead of the bridging thread itself. I think this is the way to go, but<br>
&gt; &gt;for now this is at least some way to control the call duration after it has<br>&gt; &gt;started.<br>&gt;<br>&gt; Hi Kaloyan,<br>&gt;<br>&gt; My idea is to put the real-time call control onto the the thread in<br>
channel.c that is already monitoring the bridge. You already nicely slotted in<br>the &quot;recheck&quot; thread into this main bridge thread with your patch by using the<br>nexteventts property and I think I might be able to do call control I need on<br>
the bridge thread and remove the need for the &quot;recheck&quot; thread.<br>&gt;<br>&gt; The problem with doing things on channel.c is it rightly doesn&#39;t know<br>anything about applications, dialplans or specific channel properties. However<br>
the more I&#39;ve played around with real-time call control the more I&#39;m thinking<br>the main requirement is to have a clean scalable way to update the call time<br>and not so much about being able to periodically call more involved<br>
applications on an in progress calls. For example my requirement would be<br>satisifed by having the bridge thread on channel.c send the accountcode, call<br>destination and call time to an external IP socket and get back a single<br>
integer that specifies any adjustment that should be made to the call time.<br><br>&gt; Can&#39;t you do this via Manager? By leaving blank the LIMIT_RECHECK_APP, but<br>&gt; setting LIMIT_RECHECK_INTERVAL and LIMIT_RECHECK_DELAY you will get Manager<br>
&gt; event and then you may have enough time (LIMIT_RECHECK_DELAY) to proces it and<br>&gt; to set CALL_LIMIT variable to that channel back from Manager. As you need the<br>&gt; acount code you will need to add it to the event field.<br>
<br>MAPI is an option but it would result in another moving part to be able to control calls and would still need the extra thread per bridged call to fire the events. If the real-time call control mechanism was a request approach from channel.c then there is need to use MAPI or any additional threads. The bridge thread in channel.c doesn&#39;t seem to be doing much at all, just waiting for the call time limit to expire, so giving it an extra task would give better utilisation of that thread.<br>
<br>Regards,<br><br>Greyman.<br><br><br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp; ____________________________________________________________________________________ Yahoo!7 Mail has just got even bigger and better with unlimited storage on all webmail accounts.<br>
<a href="http://au.docs.yahoo.com/mail/unlimitedstorage.html">http://au.docs.yahoo.com/mail/unlimitedstorage.html</a><br><br><br><br><br>_______________________________________________<br>--Bandwidth and Colocation Provided by <a href="http://www.api-digital.com--">http://www.api-digital.com--</a><br>
<br>asterisk-dev mailing list<br>To UNSUBSCRIBE or update options visit:<br>&nbsp;&nbsp;<a href="http://lists.digium.com/mailman/listinfo/asterisk-dev">http://lists.digium.com/mailman/listinfo/asterisk-dev</a><br></blockquote></div>
<br><br clear="all"><br>-- <br><br>Best Regards<br>Charles