נושא סגור - אפשרי למחוק

אהבת ישראל
הודעות: 236
הצטרף: 15:31 29/05/2017

נושא סגור - אפשרי למחוק

שליחהעל ידי אהבת ישראל » 22:45 13/02/2018

בס"ד

עקב סטייה מנושא העדכונים על המערכת שלנו, עברנו לנושא חדש ובמידה ומנהלי הפורום ירצו-יהיה אפשרי למחוק שרשור זה.
http://call2all.co.il/f2/viewtopic.php?f=7&t=3046
בברכה
מנחם
נערך לאחרונה על ידי אהבת ישראל ב 12:30 12/03/2018, נערך 2 פעמים בסך הכל.

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי 011371 » 21:01 14/02/2018

מערכת יפה מאוד
עם קרינות מקצועית ומושקעת


למה אחרי שהוא מקריא את היחידות השיחה מתנתקת?

(השערה שלי : ה"נקודה" שבכמות היחידות תוקעת את ההקראה
אתם צריכים או לפלטר את הנקודה ולהמיר אותה למילה "נקודה" או לעגל את המספר באמצעות הפונקציה round
למשל אם שם המשתנה שלכם שמכיל את כמות היחידות הוא $abc
תוסיפו את השורה הבאה לפני ההדפסה

קוד: בחירת הכל

$abc=round($abc);
בהצלחה!
ותודה רבה על השכלול המיוחד! )

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי 011371 » 15:45 11/03/2018

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

קוד: בחירת הכל

<?php


/*
הוספת שלוחות
*/


$hangup = $_GET['hangup'];//ניתוק השיחה
if($hangup) {exit; }


//מספר מערכת וסיסמא
$DID=ReadFromYemot('DID', 't-אנא הַקישו את מספר המערכת שלכם וסולמית לסיום.', ",yes,10,9,7");
$PASS=ReadFromYemot('PASS', 't-אנא הַקישו את סיסמת המערכת שלכם וסולמית לסיום.', ",yes,,1,7");

//נתיב השלוחה אותה רוצים להגדיר
$path=ReadFromYemot('PATH','t-אנא הַקישו את כתובת השלוחה אותה אתם רוצים להגדיר וסולמית לסיום , להגדרת השלוחה הראשית הקישו סולמית , לתיקיות פנימיות יש להקיש את כתובת השלוחה המלאה, כאשר בין שלוחה לשלוחה יש להקיש כוכבית.'
, ",,,1,7,Alpha,,,*/,,,Ok,ivr,");

//סוג השלוחה אותה רוצים להגדיר
$type=ReadFromYemot('type', 't-אנא בחרו את סוג השלוחה אותה ברצונכם להגדיר, למעבר לשלוחה אחרת הקישו אחת , להפניית משתמשים לפי רשימת תפוצה הקישו שתיים.');

if ($type==1)
{
$go_to=ReadFromYemot('goto', 't-אנא הַקישו את כתובת השלוחה שאליה יופנו וסולמית לסיום , להגדרת השלוחה הראשית הקישו סולמית , לתיקיות פנימיות יש להקיש את כתובת השלוחה המלאה, כאשר בין שלוחה לשלוחה יש להקיש סולמית.'
, ",,,1,7,Alpha,,,*/,,,Ok,ivr,");

if ($go_to=='ivr'){$go_to=null;}
$content="type=go_to_folder
go_to_folder=/$go_to";
}

if ($type==2)
{
//התבנית שלפיה רוצים לסנן
$template=ReadFromYemot('tamplate','t-אנא הַקישו את המספר הסידורי של התבנית שלפיה אתם רוצים לבצע את המיון לתבנית ברירת המחדל הַקישו סולמית.',
",,,1,7,Alpha,,,*/,,,Ok,def,");



$go_to_activ=ReadFromYemot('gotoact' , 't-אנא הַקישו את כתובת השלוחה שאליה יופנו המופיעים ברשימה במצב פעיל וסולמית לסיום , להגדרת השלוחה הראשית הקישו סולמית , לתיקיות פנימיות יש להקיש את כתובת השלוחה המלאה, כאשר בין שלוחה לשלוחה יש להקיש סולמית.',
",,,1,7,Alpha,,,*/,,,Ok,ivr,");

$go_to_blocked =ReadFromYemot('gotoblk', 't-אנא הַקישו את כתובת השלוחה שאליה יופנו המופיעים ברשימה במצב חסום וסולמית לסיום , להגדרת השלוחה הראשית הקישו סולמית , לתיקיות פנימיות יש להקיש את כתובת השלוחה המלאה, כאשר בין שלוחה לשלוחה יש להקיש סולמית.',
",,,1,7,Alpha,,,*/,,,Ok,ivr,");

$go_to_none =ReadFromYemot('gotonon', 't-אנא הַקישו את כתובת השלוחה שאליה יופנו אלו שאינם מופיעים ברשימה וסולמית לסיום , להגדרת השלוחה הראשית הקישו סולמית , לתיקיות פנימיות יש להקיש את כתובת השלוחה המלאה, כאשר בין שלוחה לשלוחה יש להקיש סולמית'
, ",,,1,7,Alpha,,,*/,,,Ok,ivr,");

if($template=='def'){$template=null; }
else {$template="template_filter=$template";}
if ($go_to_activ=='ivr'){$go_to_activ=null;}
if ($go_to_blocked=='ivr'){$go_to_blocked=null;}
if($go_to_none=='ivr'){$go_to_none=null;}

$content="type=template_filter
$template
template_filter_active_go_to=/$go_to_activ
template_filter_none_go_to=/$go_to_none
template_filter_blocked_go_to=/$go_to_blocked";



}


/*================יצירת אובייקט(מופע) חדש====================*/

$con = new connecting_to_yemot_api($DID, $PASS);

/*===============================================================*/


if($path=='ivr'){$path="ivr/ext.ini";}
else {$path="ivr/$path/ext.ini";}

/*===============================================================*/



/*================העלאת קובץ====================*/


// יצירת הקובץ
$File = new oFile('ext.ini', 'text/plain', $content);

$body = array
(
'path' => $path,
'convertAudio' => 0,
'fileUpload' => $File
);

$a = $con -> connecting('UploadFile', $body);

if($a) {print "id_list_message=t-השלוחה הוגדרה בהצלחה&";}

/*===============================================================*/




function ReadFromYemot($var, $message, $read=",,1,1,7,No,")
{if ($_GET[$var]) { return $_GET[$var] ;}else{
print "read=$message=$var$read"; exit; }

}
//המחלקה של "מאזין נלהב"

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 = 'https://www.call2all.co.il/ym/api/';

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;
}
}


?>
ב ext.ini כל מה שצריך לרשום זה את הלינק לקובץ בשרת שלכם
ניתן כמובן להחליף כל טקסט שמתחיל ב לקובץ קריינות

קוד: בחירת הכל

f-xxxyyy
כסבורני שתהיה זו תועלת רבה עבור אלו הזקוקים לכך

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


אהבת ישראל
הודעות: 236
הצטרף: 15:31 29/05/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי אהבת ישראל » 16:04 11/03/2018

.
נערך לאחרונה על ידי אהבת ישראל ב 12:36 12/03/2018, נערך פעם 1 בסך הכל.

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי 011371 » 16:08 11/03/2018

נערך לאחרונה על ידי 011371 ב 17:05 11/03/2018, נערך פעם 1 בסך הכל.

אהבת ישראל
הודעות: 236
הצטרף: 15:31 29/05/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי אהבת ישראל » 16:13 11/03/2018

.
נערך לאחרונה על ידי אהבת ישראל ב 12:38 12/03/2018, נערך פעם 1 בסך הכל.

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי 011371 » 16:23 11/03/2018

בדקנו את זה והוא אומר שהשלוחה נוצרה אך בתכלס הוא לא יוצר את השלוחה....
בשרת שלי זה עובד מצוין
תרשו לי לנחש שהשרת שלכם חינמון

אהבת ישראל
הודעות: 236
הצטרף: 15:31 29/05/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי אהבת ישראל » 16:25 11/03/2018

.
נערך לאחרונה על ידי אהבת ישראל ב 12:38 12/03/2018, נערך פעם 1 בסך הכל.

אהבת ישראל
הודעות: 236
הצטרף: 15:31 29/05/2017

Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל

שליחהעל ידי אהבת ישראל » 16:28 11/03/2018

.
נערך לאחרונה על ידי אהבת ישראל ב 12:38 12/03/2018, נערך פעם 1 בסך הכל.


חזור אל “עזרה הדדית ונושאים כללים”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 14 אורחים