נושא סגור - אפשרי למחוק
-
- הודעות: 236
- הצטרף: 15:31 29/05/2017
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
.
נערך לאחרונה על ידי אהבת ישראל ב 12:39 12/03/2018, נערך פעם 1 בסך הכל.
-
- הודעות: 236
- הצטרף: 15:31 29/05/2017
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
.
נערך לאחרונה על ידי אהבת ישראל ב 12:39 12/03/2018, נערך פעם 1 בסך הכל.
-
- הודעות: 105
- הצטרף: 15:35 02/06/2017
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
אתה צריך להוסיף בשלוחת ה api במערכת -אנחנו עדיין מנסים לבדוק עם זה עובד באחד מהשרתים שלנו.(אנחנו יושבים על כמה שרתים שמחזיקים את כל הפרוייקטים).
בכל אופן נשמח אם תערוך את ההודעות שלך ולהחליף אותם לכל סימן אחר שיהווה עבורי אות למחיקת ההודעות שלי כך שנמחוק את כל ההודעות שלא קשורות לעדכונים על המערכת הנ"ל.
בכל אופן אם עלית על הבעייה, נשמח שתגיב או שתשלח אלי מייל ל mmf0534100432@gmail.com או שיחות ווצאפ ל0534100432.
תודה
קוד: בחירת הכל
api_phone_send=no
api_did_send=no
api_extension_send=no
api_enter_id_send=no
api_enter_id_name_send=no
api_hangup_send=no
בהצלחה
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
אצלי זה עובד גם בלי זהאתה צריך להוסיף בשלוחת ה api במערכת -אנחנו עדיין מנסים לבדוק עם זה עובד באחד מהשרתים שלנו.(אנחנו יושבים על כמה שרתים שמחזיקים את כל הפרוייקטים).
בכל אופן נשמח אם תערוך את ההודעות שלך ולהחליף אותם לכל סימן אחר שיהווה עבורי אות למחיקת ההודעות שלי כך שנמחוק את כל ההודעות שלא קשורות לעדכונים על המערכת הנ"ל.
בכל אופן אם עלית על הבעייה, נשמח שתגיב או שתשלח אלי מייל ל mmf0534100432@gmail.com או שיחות ווצאפ ל0534100432.
תודהכדי שזה יעבוד לךקוד: בחירת הכל
api_phone_send=no
api_did_send=no
api_extension_send=no
api_enter_id_send=no
api_enter_id_name_send=no
api_hangup_send=no
בהצלחה
-
- הודעות: 236
- הצטרף: 15:31 29/05/2017
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
.
נערך לאחרונה על ידי אהבת ישראל ב 12:39 12/03/2018, נערך פעם 1 בסך הכל.
-
- הודעות: 236
- הצטרף: 15:31 29/05/2017
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
.
נערך לאחרונה על ידי אהבת ישראל ב 12:39 12/03/2018, נערך פעם 1 בסך הכל.
-
- הודעות: 435
- הצטרף: 07:10 25/03/2016
- מיקום: ירושלים
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
הגדרת שלוחת סולמית ובחירת הגדרת השלוחה...
מאד יועיל לי ולכולם
מאד יועיל לי ולכולם
-
- הודעות: 86
- הצטרף: 13:24 29/05/2016
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
דחוף!!!יש לי הצעה לשדרוג המערכת שלכם
הוספת שלוחות שאי אפשר כרגע להוסיף דרך הטלפון
הכנתי דוגמא של קוד php שמבצע יצירת שלוחה מסוג "מעבר לשלוחה אחרת" וכן "הפניית משתמשים לפי רשימת תפוצה"
להלן הדוגמא (מבוסס על המחלקה של "מאזין נלהב")
ב ext.ini כל מה שצריך לרשום זה את הלינק לקובץ בשרת שלכםקוד: בחירת הכל
<?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;
}
}
?>
ניתן כמובן להחליף כל טקסט שמתחיל בלקובץ קריינותקוד: בחירת הכל
t-
כסבורני שתהיה זו תועלת רבה עבור אלו הזקוקים לכךקוד: בחירת הכל
f-xxxyyy
אולי תבקשו מימות המשיח שיפרסמו את הקו שלכם בכניסה לניהול של כלל המערכות עבור מאות מפעילי קווים שאין להם כלל גישה למחשב
בתודה
איך אני עושה הגבלה/תנאי שבמקרה שהשלוחה כבר קיימת אז הוא לא ייתן לו לפתוח שלוחה חדשה???!
אשמח לעזרתכם בדחיפות
תודה רבה
Re: חדש • מערכת לניהול מתקדם של הגדרות וקמפיינים במערכות ivr2 שלא קיימים בניהול הטלפוני הרגיל
מנחם, אני זורק לך אתגר
תעשה מערכת שתגיד את סך הדקות הנכנסות, לאותו יום, שבוע , חודש.
ושיהיה אפשר להגדיר כמה מקבלים תגמול על דקה, וזה ישמיע כמה כסך כבר הצטבר מתחילת החודש.
עשיתי את זה לעצמי, זה מאוד שימושי
תעשה מערכת שתגיד את סך הדקות הנכנסות, לאותו יום, שבוע , חודש.
ושיהיה אפשר להגדיר כמה מקבלים תגמול על דקה, וזה ישמיע כמה כסך כבר הצטבר מתחילת החודש.
עשיתי את זה לעצמי, זה מאוד שימושי
Re: נושא סגור - אפשרי למחוק
ממש יפה מצדך !
ואני חושב שמה שכתבת כאן מיותר לגמרי כי עובדה שלא מחיתי בידי מאזין נלהב שהעלה את המחלקה שבעצם זה אותו קוד שהעלו כאן.
כל הכבוד שלא מחית !
ח"ו היינו עלולים להפסיד את המחלקה שנתן לנו "מאזין נלהב" בטוב עינו, וטוב ליבך הנדיר פשוט הציל אותנו, תודה!
חזור אל “עזרה הדדית ונושאים כללים”
מי מחובר
משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 15 אורחים