Hello,<br><br>I have a very strange problem using mod_spidermonkey_curl in CentOS 5.5 x86_64 bit. Same setup i am using in other machine in Fedora 12, it works, is there any bugs????????? I receive OK, but when i use to compare it fails in logical statement.<br>
<br><br>FreeSWITCH Version 1.0.head (git-25ddef5 2010-09-24 01-55-54 +0200) Started.<br><br>Installation curl as:<br>==============<br>[root@a autoload_configs]# cat spidermonkey.conf.xml <br>&lt;configuration name=&quot;spidermonkey.conf&quot; description=&quot;Spider Monkey JavaScript Plug-Ins&quot;&gt;<br>
  &lt;modules&gt;<br>    &lt;load module=&quot;mod_spidermonkey_teletone&quot;/&gt;<br>    &lt;load module=&quot;mod_spidermonkey_core_db&quot;/&gt;<br>    &lt;load module=&quot;mod_spidermonkey_socket&quot;/&gt;<br>    &lt;!--&lt;load module=&quot;mod_spidermonkey_odbc&quot;/&gt;--&gt;<br>
<b>    &lt;load module=&quot;mod_spidermonkey_curl&quot; /&gt;</b><br><br>  &lt;/modules&gt;<br>&lt;/configuration&gt;<br><br><br><br>.../scripts/helloworld.js:<br>============<br><br>use(&quot;CURL&quot;);<br>var menuselection = &quot;&quot;;<br>
var promptfordigits_dtmf_digits = &quot;&quot;;<br>var invalidRetry = 0;<br><br>/* This is getting failed, in Centos, but in other machine it works */<br>function my_callback(string, arg)<br>{<br>  console_log(&quot;info&quot;, string);<br>
 <br>  //string = &#39;OK&#39;; // then it works!!<br>  //2010-10-08 18:40:53.585676 [INFO] mod_dialplan_xml.c:331 Processing 1002 &lt;1002&gt;-&gt;1200 in context default<br> <b> //2010-10-08 18:41:23.842965 [INFO] helloworld.js:42 OK</b><br>
  //2010-10-08 18:41:35.962099 [NOTICE] switch_ivr.c:1480 Transfer sofia/internal/<a href="mailto:1002@z.com">1002@z.com</a> to XML[3000@default]<br>  //2010-10-08 18:41:35.962099 [INFO] mod_dialplan_xml.c:331 Processing 1002 &lt;1002&gt;-&gt;3000 in context default<br>
  //2010-10-08 18:41:43.134207 [NOTICE] sofia.c:528 Hangup sofia/internal/<a href="http://z.com">z.com</a> [CS_EXECUTE] [NORMAL_CLEARING]<br><br>  <br>  if (string==&#39;OK&#39;) {  <br>   <br>   //<br>   //<br>   //       &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;------------------ It receive OK but it never execute this two, and but it execute invalid macro<br>
   //<br>   //<br>   //<br>   session.sayPhrase(&quot;valid&quot;, menuselection, &quot;en&quot;);<br>   session.execute(&quot;transfer&quot;, &#39;3000&#39;);<br>  } else {<br>   session.sayPhrase(&quot;invalid&quot;, menuselection, &quot;en&quot;);<br>
   return true;<br>}<br><br><br>/* FS wiki - example */<br>function promptfordigits_dtmf_callback(session, type, digits, arg)<br>{<br>   console_log(&quot;digit: &quot; + digits.digit + &quot;\n&quot;);<br>   promptfordigits_dtmf_digits += digits.digit;<br>
   /* returning true does not interrupt the digit collection*/<br>   return(true);<br>}<br><br>/* FS wiki - example */<br>function promptfordigits(ivrsession, promptname, numdigits, timeout)<br>{<br>   var repeat = 0;<br>
<br>   console_log(&quot;saymenu: menu=[&quot; + promptname + &quot;] numdigits=[&quot; + numdigits + &quot;]\n&quot;);<br><br>   session.flushDigits();<br>   promptfordigits_dtmf_digits = &quot;&quot;;<br><br>   while (ivrsession.ready() &amp;&amp; promptfordigits_dtmf_digits.length &lt; numdigits &amp;&amp; repeat &lt; 3) {<br>
       /* play phrase - if digit keyed while playing callback will catch them.<br>       If less than numdigits collected we get the rest after the prompt.*/<br>       ivrsession.sayPhrase(promptname, numdigits, &quot;en&quot;, promptfordigits_dtmf_callback, &quot;&quot;);<br>
<br>       console_log(&quot;Prompt done=[&quot; + promptname + &quot;] Collected &quot; + promptfordigits_dtmf_digits.length + &quot; digits [&quot; + promptfordigits_dtmf_digits + &quot;]\n&quot;);<br><br>       /* if caller still here and has not entered any selection yet (or less than numdigits entered) - wait for the rest of the digits*/<br>
       if (ivrsession.ready() &amp;&amp; promptfordigits_dtmf_digits.length &lt; numdigits ) {<br>           promptfordigits_dtmf_digits += ivrsession.getDigits(numdigits - promptfordigits_dtmf_digits.length, &quot;&quot;, timeout);<br>
           /* if still no selection or insufficient digits repeat menu */<br>           if (promptfordigits_dtmf_digits.length &lt; numdigits) {<br>               promptfordigits_dtmf_digits = &quot;&quot;;<br>               repeat++;<br>
           }<br>       }<br>   }<br>   return(promptfordigits_dtmf_digits);<br>}<br><br><br><br>function retry()<br>{<br>  /* FS wiki - example */<br>  menuselection = promptfordigits(session, &quot;DialByNumberMenu&quot;, 8, 6000);<br>
<br>  if ( session.ready() ) {<br><br>  var curl = new CURL();<br>
  curl.run( &quot;POST&quot;,<br>
            &quot;<a href="http://portal/conference/query">http://portal/conference/query</a>&quot;,<br>
            &quot;om=&quot; + menuselection + &quot;&amp;ty=__&quot;,<br>
             my_callback,<br>
             &quot;my arg\n&quot;,<br>
             &quot;p:ier&quot;);<br><br>  }<br><br>}<br><br><br>/**<br> * Let&#39;s answer our call<br> */<br>session.answer();<br>retry();<br><br><br><br><br>Thanks &amp; Regards<br><br><br>