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