اطلاعیه

بستن
No announcement yet.

مشکل در ارتباط AGI با mysql

بستن
این موضوع بسته شده است.
X
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    مشکل در ارتباط AGI با mysql

    با سلام،

    من یک اسکریپت AGI نوشتم که وقتی در خود کد PHP ، با get_data ، مقداری که کاربر وارد کرده را می خوانم ، و در دیتابیس آن را جستجو می کنم ، query انجام می شود و می توانم ، مقادیر دیگر آن را به کاربر برگردانم .
    اما هنگامی که در Dialplan ، با اپلیکیشن Read ، مقداری که کاربر وارد می کند را می خواند، واین متغیر را به AGI پاس می دهم ، و همچنین در کد PHP ، به صورت زیر آن را دریافت می کنم ، و در query این متغیر را قرار می دهم . هیچ مقداری بر نمی گرداند و مانند این است که query به درستی انجام نمی شود.

    کد PHP:
    $code=argv[1

    #2
    شما قبل از تغیر در query یه verbose بگیرین ببینین اصلا متغیرتون به agi پاس داده شده
    میشه قسمتی که با تابع read متغیر گرفتین و به agi پاس دادین رو اینجا ارسال کنین
    Telegram : https://telegram.me/linuxzone

    voip trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

    کامنت


      #3
      نوشته شده توسط Backtrack مشاهده پست
      شما قبل از تغیر در query یه verbose بگیرین ببینین اصلا متغیرتون به agi پاس داده شده
      میشه قسمتی که با تابع read متغیر گرفتین و به agi پاس دادین رو اینجا ارسال کنین
      verbose گرفتم ، پاس نمی شه

      کد PHP:
      exten =>4567,1,Answer
      exten 
      =>4567,n,Read(ASW,Welcome-p,6,,,5)
      exten => 4567,n,AGI(testSQL.php,${ASW})
      exten =>4567,n,Hangup() 

      کامنت


        #4
        قسمت های دیگر برنامه هم به صورت زیر است :
        در کد زیر در verbose مقدار کدی که کاربر وارد کرده است را نشان می دهد .
        کد PHP:
        $code1 =$argv[1];
        $agi->verbose("code is " .$code1); 
        اما هنگامی که به صورت زیر به mysql پاس می دهم ، و آن را در verbose می خواهم نشان دهم ، مقداری خالی نشان می دهد.

        کد PHP:
        $query="select * from Status where trcCode=".$code;
             
        $result=mysqli_query($con,$query);
        $row=mysqli_fetch_array($result,mysqli_ASSOC);
             
        $agi->verbose('query is :'.$row["Item"]); 

        کامنت


          #5
          [php]
          کد PHP:
          $query="select * from Status where trcCode=".$code
          این $code منظورت همون $code1 نیست؟؟!!!!
          Telegram : https://telegram.me/linuxzone

          voip trainer - Asterisk - Elastix - Agi Programming- NewRock

          Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
          Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
          Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
          LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

          Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

          کامنت


            #6
            نوشته شده توسط Backtrack مشاهده پست
            [php]
            کد PHP:
            $query="select * from Status where trcCode=".$code
            این $code منظورت همون $code1 نیست؟؟!!!!
            بله شرمنده، همون $code1 هست ، در کد درستش کردم ، اما باز همین مشکل وجود دارد ،
            به نظر شما نحوه پاس دادن به mysql به همین طریق هست ؟
            چون زمانی که با get_data ، ورودی کاربر خوانده می شود ، نحوه پاس دادن به صورت $code['result'] هست.

            کامنت


              #7
              نمیدونم اشتباه کپی و پست دارین یا اینکه دقیقا همینو نوشتین به هر حال من براتون ساختار درستشو میزارم:
              کد PHP:
              $query_get mysql_query("select * from Status where trcCode='$code1'",$mycon); 
              $mycon هم که متغیر کانکشنی هست که زدین
              Telegram : https://telegram.me/linuxzone

              voip trainer - Asterisk - Elastix - Agi Programming- NewRock

              Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
              Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
              Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
              LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

              Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

              کامنت


                #8
                نوشته شده توسط Backtrack مشاهده پست
                نمیدونم اشتباه کپی و پست دارین یا اینکه دقیقا همینو نوشتین به هر حال من براتون ساختار درستشو میزارم:
                کد PHP:
                $query_get mysql_query("select * from Status where trcCode='$code1'",$mycon); 
                $mycon هم که متغیر کانکشنی هست که زدین
                ممنون از وقتی که می گذارید ، به هر حال من به صورت اولیه مشکل رو حل کردم یعنی حالت get_data ، نمی دونم هم این دو حالت از لحاظ preformance فرقی باهم دارند یا خیر ، اما کل اسکریپت رو میزارم، اگر به نتیجه ای رسیدید ، خوشحال می شوم در میان بگذارید.

                کد PHP:
                require('phpagi.php');
                $agi=new AGI();
                $agi->answer();
                $code1 =$argv[1];
                //$agi->verbose("code is " .$code1);
                if (strlen($code1)<>6)
                {
                $agi->verbose("!!!---False Code---!!!");
                        
                $agi->Stream_file(invalid);
                }
                else
                {
                //$code=$agi->get_data('beep',5000,6);
                     
                $con=mysqli_connect("127.0.0.1","xxxx","xxxx","shippingStatus")or die(mysqli_error());

                     
                $query="select * from Status where trcCode=$code1";
                     
                $result=mysqli_query($con,$query);

                     
                $row=mysqli_fetch_array($result,mysqli_ASSOC);
                     
                $agi->verbose('query is :'.$row["Item"]);
                     
                $a=$row["Count"];
                     
                $agi->say_digits($a); 
                قسمت Dialplan نیز به صورت زیر می باشد :
                کد PHP:
                exten =>4567,1,Answer
                exten 
                =>4567,n,Read(ASW,Welcome-p,6,,,5)
                exten => 4567,n,AGI(hellosara.php,${ASW})
                exten =>4567,n,Hangup() 
                در صورت نیاز ، بفرمایید ، تا اسکریپتی که درست کار می کند را نیز بگذارم.

                کامنت


                  #9
                  سلام مجدد...
                  خوشبختانه ، مشکل مورد نظر حل شد ، به این صورت که قسمت Shebang باید به صورت زیر باشد.

                  کد PHP:
                  /usr/bin/php -
                  با گذاشتن -v مطمئن خواهیم شد که argv حتما پاس می شود.

                  ممنون از همکاری شما

                  کامنت

                  درباره انجمن منطقه لینوکسی ها

                  انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

                  شبکه های اجتماعی

                  ایمیل مدیریت

                  Habili@linux-zone.org

                  در حال انجام ...
                  X