اطلاعیه

بستن
No announcement yet.

ایجاد تماس خروجی از طریق فایل php

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

    ایجاد تماس خروجی از طریق فایل php

    دوستان چجوری میشه از طریق یک فایل PHP که روی سرور هست توی پوشه www/html با AGI ارتباط برقرار کرد ویا با dialplan ارتباط برقرار کرد که بتونم تماس با بیرون بگیرم؟

    استفاده از کال فایل خیلی دردسر داره و خیلی هم نمیشه به اون اعتماد کرد فکر کنم اگر خودم بتونم تماس با بیرون را برقرار کنم و مدیریتش کنم بهتر باشه.

    لطفا در این خصوص راهنمای کنید
    خیلی ممنون میشم

    #2
    سلام
    با این کد کار کن :
    کد PHP:
    <?php



    $number1
    =$_POST["n1"];
    $number2=$_POST["n2"];
     
             
    $socket fsockopen("localhost","5038"$errno$errstr$timeout);           
                   
    fputs($socket"Action: Login\r\n");
                   
    fputs($socket"UserName: admin\r\n");   
       
    // يوزنيم و پسورد ميتوانيد از مسير etc/asterisk/manager.conf
                   
    fputs($socket"Secret: pass\r\n\r\n"); 
      
    // که مربوط به ادمين مي باشد قرار دهيد
                   
    $wrets fgets($socket,128);
                   echo 
    $wrets;
     
                   
    fputs($socket"Action: Originate\r\n" ); 
      
    // تعيين رويداد به اين مقدار براي برقراي تماس
                   
    fputs($socket"Channel: SIP/${number2}\r\n" ); 
      
    // تعيين کانال برقراري تماس (شماره تماس گيرنده)
                   
    fputs($socket"Exten: $number1\r\n" );
     
    // شماره اي که قرار است با آن تماس بگيريد
                   
    fputs($socket"Callerid: number1 <${number1}>\r\n" ); 
                 
    // تعيين کالر آيدي يا شماره تماس گيرنده
                   
    fputs($socket"Context: from-internal\r\n" );        // تعيين کانتکس مورد نظر براي برقراري تماس
                   
    fputs($socket"Priority: 1\r\n" );       
             
    // تعيين اولويت (ترتيب دستوري که از کانتکس بايد اجرا شود)
                   
    fputs($socket"Async: yes\r\n\r\n" ); 
           
    // تعيين غيرهمزماني براي برقراري چندين تماس
     
                   
    echo fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
                   echo 
    fgets($socket,128)."\r\n";
            
          
    ?>
    اینم کد html
    کد PHP:
    <html>
    </
    br>
    <
    body>
    </
    br>
    <
    form action="call.php" method="post">
    شماره مبدا: <input type="text" name="n1">
    </
    br>
    </
    br>
    </
    br>
    </
    br>
    شماره مقصد: <input type="text" name="n2">
    </
    br>
    </
    br>
    </
    br>
    </
    br>
    </
    br>
    <
    input type="submit">
    </
    form>

    </
    body>
    </
    html

    کامنت


      #3
      باز هم با تماس از طریق Socket مشکل حل نشد....!!!

      همان طور که با کال فایل تماس میگرفتم از 8 تا شماره 7 تا شو میگرفت و یه مکس میگنه و شماره آخر رو میگیره و بعد hangup می کنه باعث میشه که روی گوشی طرف موقابل miss call بوفته.

      الان از طریق socket هم تماس می گیرم باز همون اتفاق کال فایل میوفته...!!!

      ولی وقتی توی dialplan این کانتکس را مینویسم و از یه داخلی دیگه تماس میگیرم درسته. البته یه مشکلی که هست اینه که وقتی تماس برقرار میشه فایل صوتی پخش نمیشه و بعد تماس قطع نمیشه

      کد:
      [auto-dial]
      exten => 1020,1,Answer
      exten => 1020,n,Dial(dahdi/g0/09125873253)
      exten => 1020,n,Wait(2)
      exten => 1020,n,Playback(welcome)
      exten => 1020,n,Hangup()

      کامنت


        #4
        من الان دارم با همین کد کار میکنم .
        کد من با dialplan کار نمیکنه و ارتباط دو داخلی را برقرا میکند.
        یه نگاهی به انی پی دی اف بندازین
        فایل های پیوست شده

        کامنت


          #5
          نوشته شده توسط Abbas_Karimi مشاهده پست
          من الان دارم با همین کد کار میکنم .
          کد من با dialplan کار نمیکنه و ارتباط دو داخلی را برقرا میکند.
          یه نگاهی به انی پی دی اف بندازین
          آقای کریمی ممنون از توجه شما

          مشکل با تماس با داخلی از طریق کال فایل ندارم ولی وقتی می خوام از طریق کال فایل با DAHDI به یک شماره خارج از سیستم تماس بگیرم مشکل پیش میاد...!!!!

          در صورتی که یک کال فایل می سازم که از طریق Channel sip به یک داخلی تماس بگیره دیگه مشکلی نیست....!!!!

          کامنت


            #6
            تو کدتون wait زمانیش رو 8 ثانیه بزارید

            کامنت


              #7
              نوشته شده توسط Abbas_Karimi مشاهده پست
              تو کدتون wait زمانیش رو 8 ثانیه بزارید
              فرمایش شما درسته آقای کریمی ولی کلا مشکل یه جوری ...!!! تا اونجایی که من اطلاع دارم تا زمانی که طرف موقابل گوشی را برنداشته نباید دستورات توی کانتکس اجرا بشه درسته؟

              در صورتی که مثلا من Wait را میزارم 15 بازم گوشی طرف موقابل داره زنگ می خوره بعد پیغام درون کانتکس شروع به پخش شدن می کنه....!!!

              این را زمانی متوجه شدم که از روی یک داخلی Chanel خروجی را اول با 888 مانیتور کردم و بعد فایل کال فایل را کپی کردم توی فولدر outgoing

              کامنت


                #8
                سخت افزارتون باید قابلیت شناسایی اینکه طرف مقابل رو داشته باشه . من خیلی وقت پیش روی این قضیه کار کردم . باید سخت افزارتون قابلیتشو داشته باشه . تا اونجایی که من یادم میاد کارت ها این قابلیت call status رو شناسایی نمیکردن . gateway استفاده کنید

                کامنت


                  #9
                  !!!!!!!!!!!!!!!!!!!!!!!!!

                  منظورتون اینه که وقتی تماس از یک کارت با بیرون گرفته میشه به صورت خود کار بعد از یک wait پیغام پخش میشه؟ حالا می خواد کسی گوشی رو برداشته باشه یا برنداشته باشه؟

                  کامنت


                    #10
                    خیر . شما باید با dialstatus کار کنید .
                    این featuer در gate way ها فعال هست البته باید از فروشنده سوال کنید که dial status رو شناسایی میکنه یا نه . تو کد dial status رو میگیرید و هر وقت answer شد میفرستید واسه play back .

                    کامنت


                      #11
                      از این دستور استفاده کنید
                      کد PHP:
                      Gotoif($["${CDR(disposition)}"ANSWERED"]?yes:no

                      کامنت

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

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

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

                      ایمیل مدیریت

                      Habili@linux-zone.org

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