اطلاعیه

بستن
No announcement yet.

گرفتن متغییر در php agi

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

    گرفتن متغییر در php agi

    من با dailplanمتغیرا رو به php پاس میدم بعد تو php که میگیرم فقط یکی رو میگیره get_variableدومو که میذارم ارور میده.تابع دیگه ای نیست که بتونم همه متغییرامو بگیرم:221:

    #2
    به چه صورت پاس میدید و به چه صورت تحویل میگیرید ؟

    کامنت


      #3
      به این صورت بفرستید
      فرستادن
      کد PHP:
      same => n,AGI(checkexist.php,${code1},${code2}) 
      گرفتن در php agi
      کد PHP:
       $code1-new = $argv[1];
       
      $code2-new = $argv[2]; 

      کامنت


        #4
        این روش شما رو هم امتهان کردم ولی نتونستم میشه بیشتر توضیح بدین؟


        من متغیرو داخل دایل پلن ست میکنم بعد به همراه تماس به phpagiمیره اونجا هم با get_variable میگیرم ولی فقط یکی رو میگیره.دومی رو که میذارم برنامه اجرا نمیشه.same =>n,set(num=${CALLERID(num)})
        same =>n,set(address=/var/lib/asterisk/sounds/custom/${CALLERID(num)}/${UNIQUEID:5:4})



        $test = $agi->get_variable("address");

        $test = $test['data'];
        $id = get_variable("CALLERID(num)");
        $id = $id['data'];

        کامنت


          #5
          شما باید متغیر رو از dial plan به این صورت بگیری
          کد PHP:
           $code1-new = $argv[1]; 
          و اگه بخوای از php agi به dial plan بفرستی باید به این صورت بفرستی
          کد PHP:
          $agi->set_variable('status',"${variable}"); 

          کامنت


            #6
            سلام
            من هم تو این قضیه مشکل دارم، کجای کار اشتباه بوده؟
            محتویات dial plan:
            کد:
            [test_2]
            exten => 300,1,Answer() 
            exten => 300,n,Set(code=1111)
            exten => 300,n,AGI(test.php,${code}) 
            exten => 300,n,Dial(sip/${code})
            exten => 300,n,Hangup()
            محتویات test.php:
            کد PHP:
            #!/usr/bin/php -q
            <?
            ob_implicit_flush(false);
            set_time_limit(6);
            $stdin = fopen('php://stdin', 'r');
            $stdlog = fopen('my_agi.log', 'w');
            $debug = false;
            /* Read input from Asterisk and output via $astOutput */
            function astRead()
            {
            global $stdin, $debug, $stdlog;
            $astOutput = str_replace("\n", "", fgets($stdin, 4096));
            if ($debug) fputs($stdlog, "read: $input\n");
            return $astOutput ;
            }
            /* Write AGI command to Asterisk */
            function astWrite($agiCommand)
            {
            global $debug, $stdlog;
            if ($debug) fputs($stdlog, "write: $agiCommand\n");
            echo $agiCommand."\n";
            }
            /* Handling execution input from Asterisk */
            $agivar = array();
            while (!feof($stdin))
            {
            $temp = fgets($stdin);
            $temp = str_replace("\n","",$temp);
            $s = explode(":",$temp);
            $agivar[$s[0]] = trim($s[1]);
            if ($temp == "")
            {
            break;
            }
            }
            /* Say the number 123456 */
            astWrite("SAY DIGITS 123 #");
            astRead();
            $code-new = $argv[1];
            /* Finalization of AGI script and clean-ups */
            fclose ($stdin);
            fclose ($stdlog);
            exit(0);
            ?>
            ولی اصلا وارد agi نمیشه، ولی وقتی در dialplan در دستور agi متغیر رو برمی دارم وارد agi میشه! چطور می تونم متغیر code رو بفرستم php؟

            کامنت


              #7
              کدتونو مرتب بفرستید . دقیقا میخواید چه کاری انجام بدید ؟

              کامنت


                #8
                میخوام داخل dialplan یک متغیر به اسم code داشته باشم، بعد مقدار این متغیر رو بفرستم agi بعد اونجا مقدارشو تغییر بدم و برش گردونم به dialplan ...

                کامنت


                  #9
                  در بالا توضیح دادم 2 بار این هم دفعه سوم
                  فرستادن از dialplan به php agi
                  کد PHP:
                  same => n,AGI(checkexist.php,${code1},${code2}) 
                  گرفتن php agi از dail plan
                  کد PHP:
                   $code1-new = $argv[1];
                   
                  $code2-new = $argv[2]; 
                  فرستادن از php agi به dial plan
                  کد PHP:
                  $agi->set_variable('status',"${variable}"); 
                  با همین نام status در dial plan با متغییر کار کنید .

                  کامنت


                    #10
                    با گرفتن داده مشکلی ندارد ولی نمی تواند دستور فرستادن به dialplan را بخواند:
                    کد PHP:
                    $newcode1 $argv[1];
                    $newcode1 $newcode1-1011;
                    astWrite("SAY DIGITS ${newcode1} #");
                    $agi->set_variable('code',"${newcode1}");
                    astWrite("SAY DIGITS 54321 #"); 
                    این خط را هم اول فایل php اضافه کردم:
                    کد PHP:
                    require('phpagi.php'); 
                    ولی 54321 را نمی خواند!

                    کامنت


                      #11
                      $agi = new AGI();
                      رو اضافه می کنم به فایلم، سکوت پخش میشه! کجای کار اشتباه کردم؟ تا این خط رو حذف می کنم دستورات غیر از $agi->set_variable اجرا میشه!

                      کامنت


                        #12
                        شما باید از دستور
                        کد PHP:
                        $AGI->say_number(1984); 
                        برای خوندن اعداد استفاده کنید .

                        - - - Updated - - -

                        استریسک دارید یا الستیکس حامد جان ؟

                        کامنت


                          #13
                          ممنون از سعه صدرتون اقای کریمی، حل شد. :202:

                          کامنت


                            #14
                            خواهش میکنم.
                            بسته شد:280:
                            آخرین ویرایش توسط Habili; در تاریخ/ساعت 12-06-2014, 12:21 AM.

                            کامنت

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

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

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

                            ایمیل مدیریت

                            Habili@linux-zone.org

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