ניווט

    • הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    מחלקה של תקשורת עם ימות API

    פורום מפתחים API
    13
    26
    791
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגב כנושא
    התחבר בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • מ. מ. פליישער
      מ. מ. פליישער נערך לאחרונה על ידי מ. מ. פליישער

      לתועלת הציבור, מצורפת מחלקה שמתקשרת עם ימות בAPI בקלות.
      (לצורך עבודה תקינה של המחלקה צורפו כל המחלקות האפשרויות.)
      תודות ל @מאזין-נלהב על הבנייה של המחלקה הראשית.

      אני בס"ד הוספתי את המחלקות החדשות.

      /*================יצירת אובייקט(מופע) חדש ברגיל====================*/
      $con = new connecting_to_yemot_api('0773137770', '0000',false);
      
      /*================יצירת אובייקט(מופע) חדש בפרייבט====================*/
      $con = new connecting_to_yemot_api('0773137770', '0000',true);
      
      /*================עריכת פרטי מנהל המערכת====================*/
      
      $body = array
      
      (
      
      // שם לקוח
      'name' => 'מנחם',
      
      //כתובת המייל
      'email' => 'example@example.com',
      
      // שם ארגון
      'organization' => 'אהבת ישראל',
      
      //שם איש קשר
      'contactName' => 'פליישער',
      
      // טלפון ליצירת קשר
      'phones' => '0534100432',
      
      //חשבונית על שם...
      'invoiceName' => 'שירותי התוכן היהודי',
      
      //כתובת למשלוח חשבונית
      'invoiceAddress' => 'תל אביב',
      
      //פקס
      'fax' => '0771234567',
      );
      
      $a = $con -> connecting('SetCustomerDetails', $body);
      
      print_r($a);
      
      /*===============================================================*/
      
      /*================קבלת רשימת קבצים שבשלוחה====================*/
      
      $body = array
      
      (
      'path' => 'ivr2:1',
      );
      
      $a = $con -> connecting('GetIvrTree', $body);
      
      
      //בשביל להדפיס את התשובה שהתקבלה מימות
      
      echo $a->responseStatus;
      
      //בשביל להדפיס את מספר השלוחה הנוכחית
      
      echo $a->thisPath;
      
      //בשביל להדפיס את מספר השלוחה ההורה
      
      echo $a->parentPath;
      
      
      
      //כאן רץ מערך שצריך להריץ בforeach כך שכל הנתונים יוצגו אך ניתן להדפיס רק אבר אחד מן המערך וזאת ע"י המספר שלו. המיון מבתבצע לפי א-ב האנגלית
      
      
      
      // האם קיים
      echo $a->items[0]->exists;
      
      // שם הקובץ
      echo $a->items[1]->name;
      
      // מספר id מיוחד
      echo $a->items[2]->uniqueId;
      
      // סוג קובץ
      echo $a->items[3]->fileType;
      
      // גודל הקובץ
      echo $a->items[4]->size;
      
      // תאריך יצירת הקובץ
      echo $a->items[5]->mtime;
      
      // אורך הקובץ גירסא 1
      echo $a->items[6]->duration;
      
      // אורך הקובץ בשעות ודקות
      echo $a->items[7]->durationStr;
      
      // מספר המערכת
      echo $a->items[8]->customerDid;
      
      // שם הקובץ המקורי לפני העלתו
      echo $a->items[9]->meta->title;
      
      // תאריך שינוי אחרון
      echo $a->items[10]->date;
      
      // יוצר הקובץ
      echo $a->items[11]->source;
      
      // טלפון יוצר הקובץ במידה והוא יצר
      echo $a->items[12]->phone;
      
      // כתובת ip יוצר הקובץ
      echo $a->items[13]->ip;
      
      // מספר השלוחה המלאה
      echo $a->items[14]->what;
      
      
      //בforeach 
      
      foreach($a->items as $b){
      // האם קיים
      echo $b->exists;
      
      // שם הקובץ
      echo $b->name;
      
      // מספר id מיוחד
      echo $b->uniqueId;
      
      // סוג קובץ
      echo $b->fileType;
      
      // גודל הקובץ
      echo $b->size;
      
      // תאריך יצירת הקובץ
      echo $b->mtime;
      
      // אורך הקובץ גירסא 1
      echo $b->duration;
      
      // אורך הקובץ בשעות ודקות
      echo $b->durationStr;
      
      // מספר המערכת
      echo $b->customerDid;
      
      // שם הקובץ המקורי לפני העלתו
      echo $b->meta->title;
      
      // תאריך שינוי אחרון
      echo $b->date;
      
      // יוצר הקובץ
      echo $b->source;
      
      // טלפון יוצר הקובץ במידה והוא יצר
      echo $b->phone;
      
      // כתובת ip יוצר הקובץ
      echo $b->ip;
      
      // מספר השלוחה המלאה
      echo $b->what;
      }
      print_r($a);
      
      /*===============================================================*/
      
      /*================העתקת,העברת,מחיקת קובץ====================*/
      
      $body = array
      
      (
      
      //סוג הפעולה:move | copy |  (בפקודה זו לא צריך לכתוב target)delete
      'action' => 'copy',
      //שלוחה מלאה והקובץ ממנה המוצא. *שימו לב שבמקום ivr/ יש לכתוב ivr2:
      'what' => 'ivr2:1/ext.ini',
      //שלוחה מלאה והקובץ ממנה היעד *שימו לב יש לכתוב אך ורק שלוחה שכבר קיימת
      'target' => 'ivr2:4584/ext.ini',
      );
      
      $a = $con -> connecting('FileAction', $body);
      
      print_r($a);
      
      /*===============================================================*/
      
      /*================קבלת תוכן קובץ טקסט====================*/
      
      $body = array
      
      (
      //מספר השלוחה והקובץ המלא. שימו לב לשינוי לivr2: במקום ivr/
      'what' => 'ivr2:2/ext.ini',
      );
      
      $a = $con -> connecting('GetTextFile', $body);
      
      
      //בשביל להדפיס את התשובה שהתקבלה מימות
      echo $a->responseStatus;
      
      //בשביל להדפיס את תכולת הטקסט
      echo $a->contents;
      
      //בשביל לומר האם הקובץ קיים
      echo $a->file->exists;
      
      //בשביל להדפיס את שם הקובץ
      echo $a->file->name;
      
      //בשביל להדפיס את הקוד הייחודי של הקובץ
      echo $a->file->uniqueId;
      
      //בשביל להדפיס את סוג הקובץ
      echo $a->file->fileType;
      
      //בשביל להדפיס את גודל הקובץ
      echo $a->file->size;
      
      //בשביל להדפיס את תאריך יצירת הקובץ
      echo $a->file->mtime;
      
      //בשביל להדפיס את כתובת השלוחה המלאה
      echo $a->file->what;
      
      print_r($a);
      /*===============================================================*/
      
      /*================קבלת רשימת שיחות נכנסות====================*/
      
      $a = $con -> connecting('GetIncomingCalls');
      
      
      //בשביל להדפיס את התשובה שהתקבלה מימות
      echo $a->responseStatus;
      
      //מספר המערכת
      echo $a->did;
      
      //מספר המתקשרים שנמצאים בזמן אמת על המערכת
      echo $a->callsCount;
      
      //כאן רץ מערך שצריך להריץ בforeach כך שכל הנתונים יוצגו אך ניתן להדפיס רק אבר אחד מן המערך וזאת ע"י המספר שלו. 
      
      // המספר אליו חייגו
      echo $a->calls[0]->did;
      
      // המספר המחייג
      echo $a->calls[0]->callerIdNum;
      
      // מספר השניות שנמצא במערכת
      echo $a->calls[0]->duration;
      
      // מערכת המעבירה את השיחה במידה וקיים
      echo $a->calls[0]->transferFrom;
      
      // מספר id 
      echo $a->calls[0]->id;
      
      // מיקום המתקשר/ת במערכת
      echo $a->calls[0]->path;
      
      
      
      //בforeach 
      
      foreach($a->calls as $b){
      
      // המספר אליו חייגו
      echo $b->did;
      
      // המספר המחייג
      echo $b->callerIdNum;
      
      // מספר השניות שנמצא במערכת
      echo $b>duration;
      
      // מערכת המעבירה את השיחה במידה וקיים
      echo $b->transferFrom;
      
      // מספר id 
      echo $b->id;
      
      // מיקום המתקשר/ת במערכת
      echo $b->path;
      
      }
      print_r($a);
      
      /*===============================================================*/
      
      /*================קבלת מספר היחידות====================*/
      
      $a = $con -> connecting('GetSession');
      
      print_r($a);
      
      /*===============================================================*/
      
      /*================הפעלת קמפיין====================*/
      
      $body = array
      (
      // מספר הקמפיין
      'templateId' => '203584',
      );
      
      $a = $con -> connecting('RunCampaign', $body);
      
      print_r($a);
      /*===============================================================*/
      
      /*================הורדת קובץ====================*/
      
      $body = array
      (
      // נתיב הקובץ
      'path' => 'ivr/ext.ini',
      );
      
      $a = $con -> connecting('DownloadFile', $body);
      
      print_r($a);
      
      /*===============================================================*/
      
      /*================העלאת קובץ====================*/
      
      // יצירת הקובץ
      $File = new oFile('ext.ini', 'text/plain', 'type=menu');
      
      $body = array
      (
      'path' => 'ivr/ext.ini',
      'convertAudio' => 0,
      'fileUpload' => $File
      );
      
      $a = $con -> connecting('UploadFile', $body);
      
      print_r($a);
      
      /*===============================================================*/
      

      להלן המחלקה:

      $SetSite = $_GET["SetSite"];
      	if ($SetSite == NULL) {
      	define("URL", "https://www.call2all.co.il/ym/api/");
      }
      	if ($SetSite == "private") {
      	define("URL", "https://www.private.call2all.co.il/ym/api/");
      }
      class BodyPost
      {
      // part "multipart/form-data"
          public static function PartPost($name, $val)
           {
               $body = 'Content-Disposition: form-data; name="' . $name . '"';
      // check instance of oFile
               if($val instanceof oFile)
                {
                    $file = $val->Name();
                    $mime = $val->Mime();
                    $cont = $val->Content();
       
                    $body .= '; filename="' . $file . '"' . "\r\n";
                    $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
                    $body .= $cont."\r\n";
                } else $body .= "\r\n\r\n".$val."\r\n";
               return $body;
           }
       
          public static function Get(array $post, $delimiter = '-------------0123456789')
           {
               if(is_array($post) && !empty($post))
                {
                    $bool = true;
                    //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
                    if($bool)
                     {
                         $ret = '';
                         foreach($post as $name=>$val)
                             $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
                         $ret .= "--" . $delimiter . "--\r\n";
                     } else $ret = http_build_query($post);
                } else throw new \Exception('Error input param!');
               return $ret;
           }
      }
       
      class oFile
      {
           private $name;
           private $mime;
           private $content;
       
           public function __construct($name, $mime=null, $content=null)
            {
                if(is_null($content))
                 {
                     $info = pathinfo($name);
      // check is exist and readable file
                     if(!empty($info['basename']) && is_readable($name))
                      {
                          $this->name = $info['basename'];
      // get MIME
                          $this->mime = mime_content_type($name);
      // load file
                          $content = file_get_contents($name);
                          if($content!==false)
                          {
                              $this->content = $content;
                          }
                          else
                          {
                              throw new Exception('Don`t get content - "'.$name.'"');
                          }
                      }
                      else
                      {
                          throw new Exception('Error param');
                      }
                 }
                 else
                 {
                         $this->name = $name;
                         if(is_null($mime)) $mime = mime_content_type($name);
                         $this->mime = $mime;
                         $this->content = $content;
                  };
            }
       
          public function Name() { return $this->name; }
       
          public function Mime() { return $this->mime; }
       
          public function Content() { return $this->content; }
       
      }
       
      class connecting_to_yemot_api
      {
          public $token;
       
          const URL = URL;
       
          public function __construct($user_name, $password)
          {
              $body = array('username' => $user_name, 'password' => $password);
       
              $body = http_build_query($body);
       
              $opts = array('http' => array(
       
                  'method'  => 'POST',
       
                  'header'  => "Content-Type: application/x-www-form-urlencoded",
       
                  'content' => $body,
       
                  'follow_location' => false) );
       
               $context  = stream_context_create($opts);
       
               $url = self::URL.'Login';
       
                  $result = file_get_contents($url, FALSE, $context);
       
                  $result = json_decode($result);
       
                  if($result -> responseStatus == 'OK')
                  {
                      $this -> token = $result -> token;
       
                      return TRUE;
                  }
                  else
                  {
                      throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
                  }
          }
       
          public function __destruct()
          {
              $this -> connecting('Logout');
          }
       
          public function connecting($action, $body = array())
          {
              $delimiter = '----'.uniqid();
       
              $body['token'] = $this -> token;
       
              $body = BodyPost::Get($body, $delimiter);
       
              $opts = array('http' =>
                      array(
                          'method'  => 'POST',
                          'header'  => 'Content-Type: multipart/form-data; boundary='.$delimiter,
                          'content' => $body,
                          'follow_location' => false
                          )
                        );
              $context  = stream_context_create($opts);
       
              $url = self::URL.$action;
       
              $result = file_get_contents($url, FALSE, $context);
       
              $headers = $this -> parseHeaders($http_response_header);
       
              if($headers['Content-Type'][0] == 'application/json')
              {
                  return json_decode($result);
              }
              else
              {
                  return $result;
              }
          }
       
          private function parseHeaders($headers)
          {
              // פונקציה שמקבלת מערך של שורות הכותרות
              // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
       
       
              // מערך הכותרות
              $head = array();
       
              foreach( $headers as $k=>$v )
              {
                  $t = explode( ':', $v, 2 );
       
                  if( isset( $t[1] ) )
                  {
                      if($t[0] == 'Set-Cookie')
                      {
                          $CookiesArr = array();
       
                          $cookies = explode( ';', $t[1]);
       
                          foreach($cookies as $cookie)
                          {
                              $c = explode( '=', $cookie);
       
                              if( isset( $c[1] ) )
                              {
                                  $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
                              }
                              else
                              {
                                  $CookiesArr[] = trim( $c[0] );
                              }
                          }
       
                          $head[ trim($t[0]) ] = $CookiesArr;
                      }
                      elseif($t[0] == 'Content-Type')
                      {
                          $arr = array();
       
                          $children = explode( ';', $t[1]);
       
                          foreach($children as $child)
                          {
                              $c = explode( '=', $child);
       
                              if( isset( $c[1] ) )
                              {
                                  $arr[ trim($c[0]) ] = trim( $c[1] );
                              }
                              else
                              {
                                  $arr[] = trim( $c[0] );
                              }
                          }
       
                          $head[ trim($t[0]) ] = $arr;
                      }
                      else
                      {
                          $head[ trim($t[0]) ] = trim( $t[1] );
                      }
                  }
                  else
                  {
                      $head[] = $v;
                      if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                      {
                          $head['reponse_code'] = intval($out[1]);
                      }
                  }
              }
              return $head;
          }
      }
      
      
      א P 2 תגובות תגובה אחרונה תגובה ציטוט 7
      • א
        איש ימיני @מ. מ. פליישער נערך לאחרונה על ידי

        @מ-מ-פליישער
        יש לך את אפשרויות החדשות של ה-API הרשמי?
        המחלקה הוא רק על האפשרויות הישנות

        מ. מ. פליישער תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • מ. מ. פליישער
          מ. מ. פליישער @איש ימיני נערך לאחרונה על ידי

          @איש-ימיני אמר במחלקה של תקשורת עם ימות API:

          @מ-מ-פליישער
          יש לך את אפשרויות החדשות של ה-API הרשמי?
          המחלקה הוא רק על האפשרויות הישנות

          בוצע.

          א אהרן שובקס 2 תגובות תגובה אחרונה תגובה ציטוט 2
          • א
            איש ימיני @מ. מ. פליישער נערך לאחרונה על ידי

            @מ-מ-פליישער
            תודה רבה!!

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • ה
              הוי דן נערך לאחרונה על ידי הוי דן

              איזה שפה זה?
              איך ממירים את זה לכתובת URL (ישירות מהדפדפן)?
              כמו זה:

              https://www.call2all.co.il/ym/api/UploadTextFile?token=079XXXXXXX:XXXX&what=ivr2:/1/ext.ini&contents=type=say_hour_and_minute end_goto=/

              תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • ח
                חסידישער נערך לאחרונה על ידי

                ואפה שמים את כל ההגדרות

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • P
                  p03121997 @מ. מ. פליישער נערך לאחרונה על ידי p03121997

                  @מ-מ-פליישער אם אפשר הסבר מה זה הדבר הזה לא הבנתי מה זה מחלקה ומה זה כל ההגדרות האלו (ודרך אגב מנחם מה עם האלפון אני לא מצליח להשתמש איתו)

                  מ. מ. פליישער תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • מ. מ. פליישער
                    מ. מ. פליישער @p03121997 נערך לאחרונה על ידי

                    @p03121997 אמר במחלקה של תקשורת עם ימות API:

                    @מ-מ-פליישער אם אפשר הסבר מה זה הדבר הזה לא הבנתי מה זה מחלקה ומה זה כל ההגדרות האלו (ודרך אגב מנחם מה עם האלפון אני לא מצליח להשתמש איתו)

                    זה מחלקה לשימוש בphp למי שיש שרת אחסון באינטרנט של php יכול להשתמש בזה

                    P תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • P
                      p03121997 @מ. מ. פליישער נערך לאחרונה על ידי

                      @מ-מ-פליישער אמר במחלקה של תקשורת עם ימות API:

                      @p03121997 אמר במחלקה של תקשורת עם ימות API:

                      @מ-מ-פליישער אם אפשר הסבר מה זה הדבר הזה לא הבנתי מה זה מחלקה ומה זה כל ההגדרות האלו (ודרך אגב מנחם מה עם האלפון אני לא מצליח להשתמש איתו)

                      זה מחלקה לשימוש בphp למי שיש שרת אחסון באינטרנט של php יכול להשתמש בזה

                      ומה עם האלפון?

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • ע
                        עידן נערך לאחרונה על ידי

                        אולי פעם מישהו יתן איזו הדרכה איך אפשר להתחיל ללמוד את הנושא של API?
                        היכן לומדים את זה על הירח?!?! איפה אפשר לראות את ההגדרות של ימות ולבנות את הAPI..... בקיצור לתת על זה שיעור לפשוטים שבעם אולי זה יביא תועלת למערכות של ימות?!

                        אהרן שובקס חנון המרבה 2 תגובות תגובה אחרונה תגובה ציטוט 0
                        • אהרן שובקס
                          אהרן שובקס ניהול @עידן נערך לאחרונה על ידי אהרן שובקס

                          @עידן
                          מה זה קשור לפה?
                          תפתח נושא חדש!

                          תגובה 1 תגובה אחרונה תגובה ציטוט 1
                          • חנון המרבה
                            חנון המרבה @עידן נערך לאחרונה על ידי

                            @עידן https://freeivr.co.il/oldforum//f2//viewtopic.php?f=12&t=2844

                            ע תגובה 1 תגובה אחרונה תגובה ציטוט 2
                            • ע
                              עידן @חנון המרבה נערך לאחרונה על ידי עידן

                              @חנון-המרבה חזק מאד אולי צריך לשים את הקישור הזה באיזשהו מקום בפורום API

                              תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • אהרן שובקס
                                אהרן שובקס ניהול @מ. מ. פליישער נערך לאחרונה על ידי אהרן שובקס

                                @מ-מ-פליישער או מישהו אחר
                                אולי תוכל לעזור לי הגדרתי ככה:

                                foreach($a->calls as $b){
                                    if ($b->path==4){{
                                

                                וזה עובד מצוין אבל אם אני מגדיר ככה:

                                $ff=$_GET['bbb'];
                                foreach($a->calls as $b){
                                    if ($b->path==$ff){
                                

                                אז הוא לא קולט שזה 4

                                ש תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • ש
                                  שלמה צובל @אהרן שובקס נערך לאחרונה על ידי

                                  @אהרן-שובקס @איש-ימיני ו @מאזין-נלהב ודאי ידעו לעזור פה..

                                  אהרן שובקס תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                  • אהרן שובקס
                                    אהרן שובקס ניהול @שלמה צובל נערך לאחרונה על ידי אהרן שובקס

                                    @שלמה-צובל
                                    ב"ה הסתדרתי בעזרת @אלחנן1
                                    הבעיה היא שאת מיקום המאזין מקבלים עם רווח זאת אומרת אם המאזין נמצא בשלוחה 4 אז מקבלים "4 " @מ-מ-פליישער לבדיקתך

                                    ע D 2 תגובות תגובה אחרונה תגובה ציטוט 1
                                    • ע
                                      עידן @אהרן שובקס נערך לאחרונה על ידי עידן

                                      @אהרן-שובקס אז בקרוב זה הולך לצאת לציבור ? 😝

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                      • מ
                                        מאזין נלהב נערך לאחרונה על ידי

                                        למשתמשי נוד:
                                        יש את המחלקה הזאת בjs.
                                        https://github.com/MusiCode1/yemot-api

                                        התקנה:

                                         npm i yemot-api
                                        
                                        const yemot_api = require("yemot-api");
                                        
                                        (async () => {
                                        
                                        	const y = new yemot_api("0773137770", "1234");
                                        
                                        	let r;
                                        
                                        	/** קבלת מספר יחידות */
                                        	r = await y.exec("GetSession");
                                        
                                        	console.log(r);
                                        
                                        	/** העלאת קובץ */
                                        	let o = {
                                        
                                        		file: {
                                        			value: "12345",
                                        			options: {
                                        				filename: "123.txt",
                                        				contentType: "text/txt"
                                        			}
                                        		},
                                        		path: "ivr/123.txt"
                                        	};
                                        
                                        	r = await y.exec("UploadFile", o);
                                        
                                        	console.log(r);
                                        
                                        	/** הורדת קובץ */
                                        	o = {
                                        		path: "ivr/123.txt"
                                        	};
                                        
                                        	r = await y.exec("DownloadFile", o);
                                        
                                        	console.log(r);
                                        
                                        })();
                                        
                                        תגובה 1 תגובה אחרונה תגובה ציטוט 5
                                        • D
                                          dudu @אהרן שובקס נערך לאחרונה על ידי

                                          @אהרן-שובקס איך אפשר לדעת בשרת מה מקבלים?
                                          איך אפשר לעקוב בזמן אמת מה נתונים שיש בשרת?
                                          איך מדבגים בphp?

                                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • ב
                                            באמת נערך לאחרונה על ידי

                                            @dudu אמר במחלקה של תקשורת עם ימות API:

                                            @אהרן-שובקס איך אפשר לדעת בשרת מה מקבלים?
                                            איך אפשר לעקוב בזמן אמת מה נתונים שיש בשרת?
                                            איך מדבגים בphp?

                                            תעשה שמירה לקובץ ותפעיל את השלוחה לפחות פעם אחת דרך הטלפון

                                            D תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                            • First post
                                              Last post