531 lines
16 KiB
PHP
531 lines
16 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* To change this license header, choose License Headers in Project Properties.
|
|||
|
|
* To change this template file, choose Tools | Templates
|
|||
|
|
* and open the template in the editor.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Description of MtsApiClass
|
|||
|
|
*
|
|||
|
|
* @author Ira
|
|||
|
|
*/
|
|||
|
|
ini_set('error_reporting', E_ALL);
|
|||
|
|
ini_set('display_errors', 1);
|
|||
|
|
ini_set('display_startup_errors', 1);
|
|||
|
|
|
|||
|
|
class MtsApiClass extends MangoApiClass {
|
|||
|
|
private $api_key;
|
|||
|
|
private $base_url = "https://vpbx.mts.ru/api/";
|
|||
|
|
private $subscription_url = "https://joywork.ru/callevents/incall_mts.php";
|
|||
|
|
private $metod;
|
|||
|
|
private $header;
|
|||
|
|
private $post;
|
|||
|
|
private $users = array();
|
|||
|
|
private $phone_type;
|
|||
|
|
private $phone_types = [0 => 'mtsAbonentNoAnswer',
|
|||
|
|
1 => 'mtsAbonentAnswer',
|
|||
|
|
2 => 'abonentMtsAnswer',
|
|||
|
|
3 => 'abonentMtsNoAnswer'];
|
|||
|
|
|
|||
|
|
public function __construct($api_key){
|
|||
|
|
$this->api_key = $api_key;
|
|||
|
|
$this->header = ['Content-type:application/json',
|
|||
|
|
'X-AUTH-TOKEN:'.$api_key,
|
|||
|
|
'cache-control:no-cache'
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public function chechSubscription($user){
|
|||
|
|
$abonentId = $user->userId;
|
|||
|
|
$sql = "SELECT * FROM call_subscription WHERE operator_id = 5 AND batc_id = $abonentId";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$row = mysql_num_rows($q);
|
|||
|
|
if($row == 0){
|
|||
|
|
$this->setSubscription($abonentId);
|
|||
|
|
} else {
|
|||
|
|
$sub = mysql_fetch_assoc($q);
|
|||
|
|
if(!$this->getSubscription($sub)){
|
|||
|
|
$this->doSubscription($sub);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private function getSubscription($sub){
|
|||
|
|
$result = false;
|
|||
|
|
$this->metod = 'subscription?abonentId='.$sub['batc_id'].'&subscriptionId='.$sub['subscriptionId'];
|
|||
|
|
$body = [
|
|||
|
|
"abonentId" => $sub['batc_id'],
|
|||
|
|
"subscriptionId" => $sub['subscriptionId'],
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
$res = json_decode($this->sendCurl(false,['type'=>"GET","body"=>json_encode($body)]), true);
|
|||
|
|
|
|||
|
|
if(isset($res['expires'])){
|
|||
|
|
if($res['expires'] > 25200){
|
|||
|
|
$result = true;
|
|||
|
|
}
|
|||
|
|
$sql = "UPDATE call_subscription SET expires='$res[expires]' WHERE id = $sub[id]";
|
|||
|
|
|
|||
|
|
mysql_query($sql);
|
|||
|
|
}
|
|||
|
|
return $result;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private function setSubscription($abonentId){
|
|||
|
|
$this->metod = 'subscription';
|
|||
|
|
$this->post = json_encode ([
|
|||
|
|
"abonentId" => $abonentId
|
|||
|
|
]);
|
|||
|
|
$res = json_decode($this->sendCurl(true));
|
|||
|
|
|
|||
|
|
if(isset($res->subscriptionId)){
|
|||
|
|
$sql_in = "INSERT INTO call_subscription SET operator_id = 5, batc_id = $abonentId, api_key = '$this->api_key', subscriptionId='$res->subscriptionId', expires='$res->expires'";
|
|||
|
|
mysql_query($sql_in);
|
|||
|
|
}
|
|||
|
|
return $res;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private function doSubscription($sub){
|
|||
|
|
$this->metod = 'subscription';
|
|||
|
|
$this->post = json_encode ([
|
|||
|
|
"abonentId" => $sub['batc_id']
|
|||
|
|
]);
|
|||
|
|
$res = json_decode($this->sendCurl(true));
|
|||
|
|
|
|||
|
|
if(isset($res->subscriptionId)){
|
|||
|
|
$sql_up = "UPDATE call_subscription SET subscriptionId='$res->subscriptionId', expires='$res->expires' WHERE id = $sub[id]";
|
|||
|
|
mysql_query($sql_up);
|
|||
|
|
}
|
|||
|
|
return $res;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function set_users($users){
|
|||
|
|
$this->users = $users;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function find_user($phone, $agency_id=0){
|
|||
|
|
$user_id = 0;
|
|||
|
|
$phone = $this->ver_phone($phone);
|
|||
|
|
|
|||
|
|
$sql_user = "SELECT id FROM users WHERE phone = '".$phone."' and blocked=0";
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
$q_user = mysql_query($sql_user);
|
|||
|
|
if(mysql_num_rows($q_user) > 0){
|
|||
|
|
$r_user = mysql_fetch_assoc($q_user);
|
|||
|
|
$user_id = $r_user['id'];
|
|||
|
|
}
|
|||
|
|
return $user_id;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private function sendCurl($post = false, $custom = false){
|
|||
|
|
$response = 0;
|
|||
|
|
$url = $this->base_url . $this->metod;
|
|||
|
|
//echo $url.'<br>';
|
|||
|
|
$ch = curl_init($url);
|
|||
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|||
|
|
//if($header){
|
|||
|
|
|
|||
|
|
curl_setopt($ch, CURLOPT_HEADER,0);
|
|||
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
|||
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
|||
|
|
|
|||
|
|
if($post){
|
|||
|
|
curl_setopt($ch, CURLOPT_POST, 1);
|
|||
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->post);
|
|||
|
|
}
|
|||
|
|
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'DEFAULT@SECLEVEL=1');
|
|||
|
|
// var_dump($this->header);
|
|||
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header);
|
|||
|
|
if($custom){
|
|||
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $custom['type']);
|
|||
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS,$custom['body']);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$response = curl_exec($ch);
|
|||
|
|
$response_info = curl_getinfo($ch);
|
|||
|
|
|
|||
|
|
if($response_info['http_code'] != 200){
|
|||
|
|
$response = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($errno = curl_errno($ch)) {
|
|||
|
|
$error_message = curl_strerror($errno);
|
|||
|
|
echo "cURL error ({$errno}):\n {$error_message}";
|
|||
|
|
}
|
|||
|
|
curl_close($ch);
|
|||
|
|
|
|||
|
|
return $response;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function find_client($phone, $no = false){
|
|||
|
|
$this -> set_client_stage(0);
|
|||
|
|
$client_id = 0;
|
|||
|
|
$phone_client = $this -> ver_phone($phone);
|
|||
|
|
|
|||
|
|
$sql_cl = "SELECT `id`, `stage` FROM `clients` WHERE cancel=0 AND (phone = '$phone_client' OR id in (SELECT client_id FROM clients_phone2 WHERE phone = '$phone_client')) and (id_agent in (".implode(',', $this->users).") or who_work in (".implode(',', $this->users)."))";
|
|||
|
|
if($no){
|
|||
|
|
$sql_cl = "SELECT `id`, `stage` FROM `clients` WHERE cancel=0 AND (phone = '$phone_client' OR id in (SELECT client_id FROM clients_phone2 WHERE phone = '$phone_client'))";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//echo $sql_cl.'****************';
|
|||
|
|
$q_cl = mysql_query($sql_cl);
|
|||
|
|
if(mysql_num_rows($q_cl) > 0){
|
|||
|
|
$r_cl = mysql_fetch_assoc($q_cl);
|
|||
|
|
$client_id = $r_cl['id'];
|
|||
|
|
$this -> set_client_stage($r_cl['stage']);
|
|||
|
|
}
|
|||
|
|
return $client_id;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Установка стадии клиента
|
|||
|
|
private function set_client_stage($stage){
|
|||
|
|
$this -> client_stage = $stage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Получение стадии клиента
|
|||
|
|
public function get_client_stage(){
|
|||
|
|
return $this -> client_stage;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function getUsers(){
|
|||
|
|
$this->metod = 'abonents';
|
|||
|
|
$res = $this->sendCurl(false);
|
|||
|
|
return $res;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Сохранение пользователя МТС
|
|||
|
|
private function saveUserMTS($user, $agency_id){
|
|||
|
|
|
|||
|
|
$user_id = 0;
|
|||
|
|
$mts_id = $user->userId;
|
|||
|
|
$fio = '';
|
|||
|
|
$set = " SET ";
|
|||
|
|
if(!empty($user->firstName)){
|
|||
|
|
$fio .= $user->firstName;
|
|||
|
|
}
|
|||
|
|
if(!empty($user->lastname)){
|
|||
|
|
if(!empty($fio)) $fio .= ' ';
|
|||
|
|
$fio .= $user->lastname;
|
|||
|
|
}
|
|||
|
|
if(!empty($fio)){
|
|||
|
|
if($set != " SET ") $set .= ", ";
|
|||
|
|
$set .= "fio='$fio'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(!empty($user->phoneNumber)){
|
|||
|
|
|
|||
|
|
$phone = $this->ver_phone($user->phoneNumber);
|
|||
|
|
if($set != " SET ") $set .= ", ";
|
|||
|
|
$set .= "phone='$phone'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(!empty($user->extension)){
|
|||
|
|
$ext = $user->extension;
|
|||
|
|
if($set != " SET ") $set .= ", ";
|
|||
|
|
$set .= "ext='$ext'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(!empty($user->email)){
|
|||
|
|
$email = $user->email;
|
|||
|
|
if($set != " SET ") $set .= ", ";
|
|||
|
|
$set .= "email='$email'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Поиск user_id
|
|||
|
|
if(isset($phone)){
|
|||
|
|
$sql = "SELECT id FROM users WHERE phone='$phone'";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
if(mysql_num_rows($q) > 0){
|
|||
|
|
$user_id = mysql_fetch_array($q)[0];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(isset($email) && $user_id == 0){
|
|||
|
|
$sql = "SELECT id FROM users WHERE email='$email'";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
if(mysql_num_rows($q) > 0){
|
|||
|
|
$user_id = mysql_fetch_array($q)[0];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($set != " SET ") $set .= ", ";
|
|||
|
|
$set .= "user_id='$user_id'";
|
|||
|
|
|
|||
|
|
|
|||
|
|
$sql = "SELECT id FROM mts_users WHERE mts_id = $mts_id";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$row = mysql_num_rows($q);
|
|||
|
|
if($row > 0){
|
|||
|
|
$sql_up = "UPDATE mts_users $set WHERE mts_id = $mts_id";
|
|||
|
|
mysql_query($sql_up);
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
if($set != " SET ") $set .= ", ";
|
|||
|
|
$set .= "mts_id='$mts_id', agency_id=$agency_id";
|
|||
|
|
$sql_in = "INSERT INTO mts_users $set";
|
|||
|
|
mysql_query($sql_in);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Сохранение данных пользователя телефонии
|
|||
|
|
public function saveUser($user, $agensy_id){
|
|||
|
|
$this->saveUserMTS($user, $agensy_id);
|
|||
|
|
|
|||
|
|
$user_id = $user->userId;
|
|||
|
|
|
|||
|
|
$poles = array();
|
|||
|
|
$poles_up = array();
|
|||
|
|
//Проверка есть ли запись
|
|||
|
|
$sql = "SELECT id FROM mango_call_users WHERE user_id='".$user_id."'";
|
|||
|
|
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
//Записываем
|
|||
|
|
|
|||
|
|
$fio = '';
|
|||
|
|
$poles[] = "user_id = '".$user_id."'";
|
|||
|
|
if(!empty($user->firstName)){
|
|||
|
|
$fio .= $user->firstName;
|
|||
|
|
}
|
|||
|
|
if(!empty($user->lastname)){
|
|||
|
|
if(!empty($fio)) $fio .= ' ';
|
|||
|
|
$fio .= $user->lastname;
|
|||
|
|
}
|
|||
|
|
if(!empty($fio)){
|
|||
|
|
$poles[] = "fio = '".$fio."'";
|
|||
|
|
$poles_up[] = "fio = '".$fio."'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$number_sip = '';
|
|||
|
|
if(!empty($user->phoneNumber)){
|
|||
|
|
|
|||
|
|
$poles[] = "number_phone = '".$this->ver_phone($user->phoneNumber)."'";
|
|||
|
|
$number_sip = $this->ver_phone($user->phoneNumber);
|
|||
|
|
$poles_up[] = "number_phone = '".$this->ver_phone($user->phoneNumber)."'";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(!empty($user->extension)){
|
|||
|
|
$poles[] = "extension = '".$user->extension."'";
|
|||
|
|
if(empty($number_sip)){
|
|||
|
|
$number_sip = $user->extension;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$poles[] = "number_sip = '".$number_sip."'";
|
|||
|
|
$poles_up[] = "number_sip = '".$number_sip."'";
|
|||
|
|
|
|||
|
|
if(mysql_num_rows($q) == 0){
|
|||
|
|
$poles[] = "agency_id = '".$agensy_id."'";
|
|||
|
|
$insert = "INSERT INTO `mango_call_users` set ".implode(', ', $poles);
|
|||
|
|
mysql_query($insert);
|
|||
|
|
} else {
|
|||
|
|
$insert = "UPDATE `mango_call_users` set ".implode(', ', $poles_up)." WHERE user_id = ".$user_id;
|
|||
|
|
mysql_query($insert);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Юзеры агенства
|
|||
|
|
public function setUsers($agency_id){
|
|||
|
|
$usersIds = array();
|
|||
|
|
$w = new WebHookIn();
|
|||
|
|
$usersIds = $w->getAllUserAgency($agency_id);
|
|||
|
|
//var_dump($usersIds);
|
|||
|
|
$this->set_users($usersIds);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function get_phone_type($phone){
|
|||
|
|
$this->type_phone($phone);
|
|||
|
|
return $this -> phone_type;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private function type_phone($phone){
|
|||
|
|
|
|||
|
|
$type = 0;
|
|||
|
|
if($phone->direction == 'TERMINATING'){
|
|||
|
|
|
|||
|
|
if($phone->status == 'MISSED'){
|
|||
|
|
$type = 3;
|
|||
|
|
} else {
|
|||
|
|
$type = 2;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if($phone->status == 'MISSED'){
|
|||
|
|
$type = 0;
|
|||
|
|
} else {
|
|||
|
|
$type = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$this->phone_type = $this->phone_types[$type];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function get_record($record_uuid){
|
|||
|
|
$this->metod = 'callRecording/mp3/'.$record_uuid;
|
|||
|
|
$res = $this->sendCurl();
|
|||
|
|
return $res;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//
|
|||
|
|
public function recordSaveMTS($call, $agency_id){
|
|||
|
|
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/server/mts")) {
|
|||
|
|
mkdir($_SERVER['DOCUMENT_ROOT'] . "/server/mts", 0777);
|
|||
|
|
}
|
|||
|
|
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/server/mts/".$agency_id)) {
|
|||
|
|
mkdir($_SERVER['DOCUMENT_ROOT'] . "/server/mts/".$agency_id, 0777);
|
|||
|
|
}
|
|||
|
|
$records = array();
|
|||
|
|
if(isset($call->extTrackingId) && !empty($call->extTrackingId)){
|
|||
|
|
$file = trim($this->get_record($call->extTrackingId));
|
|||
|
|
|
|||
|
|
if(!empty($file)){
|
|||
|
|
$name = str_replace(":","",$call->extTrackingId).'.mp3';
|
|||
|
|
if(!file_exists($_SERVER['DOCUMENT_ROOT'].'/server/mts/'.$agency_id.'/'.$name)){
|
|||
|
|
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/server/mts/'.$agency_id.'/'.$name, $file);
|
|||
|
|
}
|
|||
|
|
$records[] = str_replace(":","",$call->extTrackingId);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return json_encode($records);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//История звонков
|
|||
|
|
public function callHistory($start_date, $end_date, $page){
|
|||
|
|
$this->metod = "v1/callHistory/enterprise?dateFrom=$start_date&dateTo=$end_date&page=$page&size=100";
|
|||
|
|
// echo $this->metod."\n";
|
|||
|
|
$res = json_decode($this->sendCurl());
|
|||
|
|
return $res;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function stat($call, $agency_id, $only_widget=0){
|
|||
|
|
$id = 0;
|
|||
|
|
|
|||
|
|
$this->type_phone($call);
|
|||
|
|
|
|||
|
|
// echo $call->from_username.' - '.$type.'<br>';
|
|||
|
|
$to_number = $call->calledNumber;
|
|||
|
|
$from_number = $call->callingNumber;
|
|||
|
|
$entry_id = $to_number;
|
|||
|
|
$tempuiid = explode('-', $call->extTrackingId);
|
|||
|
|
|
|||
|
|
$id_uuid = str_replace([':', '-', 'callhalf'], '', $tempuiid[1]);
|
|||
|
|
|
|||
|
|
$record = $this->recordSaveMTS($call, $agency_id);
|
|||
|
|
$answer = 0;
|
|||
|
|
$answerResult = $call->terminationCause;
|
|||
|
|
if($call->status == "PLACED"){
|
|||
|
|
$answer = $call->callTime + $call->answerDuration;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$from_extension = '';
|
|||
|
|
if($call->direction == 'ORIGINATING'){
|
|||
|
|
$from_extension = $call->callingNumber;
|
|||
|
|
$to_number = $call->callingNumber;
|
|||
|
|
}
|
|||
|
|
if($call->direction == 'TERMINATING'){
|
|||
|
|
|
|||
|
|
//$entry_id = $call->callingNumber;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$start = $call->callTime;
|
|||
|
|
$finish = $call->callTime + $call->duration;
|
|||
|
|
|
|||
|
|
//echo $to_number.'<br>';
|
|||
|
|
$sql = "SELECT id FROM mango_calls WHERE operator_id=5 and operator_call_id = '".$id_uuid."'";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$row = mysql_num_rows($q);
|
|||
|
|
if($row == 0 && $only_widget == 0){
|
|||
|
|
|
|||
|
|
$in = "INSERT INTO `mango_calls` SET
|
|||
|
|
`records`='".$record."',
|
|||
|
|
`start`= $start,
|
|||
|
|
`finish`=$finish,
|
|||
|
|
`answer`=$answer,
|
|||
|
|
`from_extension`='".$from_extension."',
|
|||
|
|
`from_number`= '".$from_number."',
|
|||
|
|
`to_extension`='".$call->calledNumber."',
|
|||
|
|
`to_number`='".$to_number."',
|
|||
|
|
`disconnect_reason`='".$answerResult."',
|
|||
|
|
`entry_id`='".$entry_id."',
|
|||
|
|
`line_number`='mts',
|
|||
|
|
`operator_id`=5,
|
|||
|
|
`location`='',
|
|||
|
|
`operator_call_id`='{$id_uuid}',
|
|||
|
|
`uuid`='".$call->extTrackingId."',
|
|||
|
|
`agency_id`=$agency_id
|
|||
|
|
";
|
|||
|
|
|
|||
|
|
mysql_query($in);
|
|||
|
|
$id = mysql_insert_id();
|
|||
|
|
} else if($row > 0) {
|
|||
|
|
$r = mysql_fetch_assoc($q);
|
|||
|
|
$id = (int)$r['id'];
|
|||
|
|
$in = "UPDATE `mango_calls` SET
|
|||
|
|
`records`='".$record."',
|
|||
|
|
`start`= $start,
|
|||
|
|
`finish`=$finish,
|
|||
|
|
`answer`=$answer,
|
|||
|
|
`from_extension`='".$from_extension."',
|
|||
|
|
`from_number`= '".$from_number."',
|
|||
|
|
`to_extension`='".$call->calledNumber."',
|
|||
|
|
`to_number`='".$to_number."',
|
|||
|
|
`disconnect_reason`='".$answerResult."',
|
|||
|
|
`entry_id`='".$entry_id."',
|
|||
|
|
`line_number`='mts',
|
|||
|
|
`agency_id`=$agency_id
|
|||
|
|
WHERE
|
|||
|
|
operator_id=5 and operator_call_id = '".$id_uuid."'
|
|||
|
|
";
|
|||
|
|
//echo $in;
|
|||
|
|
mysql_query($in);
|
|||
|
|
}
|
|||
|
|
return $id;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function save_user_call($id_call, $user_find, $main_user, $agency_id = 0){
|
|||
|
|
$user_id = 0;
|
|||
|
|
|
|||
|
|
if($id_call > 0){
|
|||
|
|
$user_id = (int)$this->find_user($user_find);
|
|||
|
|
if($user_id == 0){
|
|||
|
|
$user_id = (int)$main_user;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($user_id > 0){
|
|||
|
|
$sql = "SELECT id FROM user_call WHERE call_id = {$id_call}";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
if(mysql_num_rows($q) == 0){
|
|||
|
|
$sql_in = "INSERT INTO user_call SET call_id = {$id_call}, user_id = {$user_id}";
|
|||
|
|
mysql_query($sql_in);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function findSource($phone){
|
|||
|
|
$source = 0;
|
|||
|
|
$sql = "SELECT * FROM advertising_phone WHERE phone = '".$phone."'";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
if(mysql_num_rows($q) > 0){
|
|||
|
|
$r = mysql_fetch_assoc($q);
|
|||
|
|
$sql_v = "SELECT id FROM advertising_sources WHERE id = ".$r['adv_id']." AND user_id in (".implode(', ',$this->users).")";
|
|||
|
|
$q_v = mysql_query($sql_v);
|
|||
|
|
|
|||
|
|
if(mysql_num_rows($q_v) > 0){
|
|||
|
|
$r_v = mysql_fetch_assoc($q_v);
|
|||
|
|
$source = $r_v['id'];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return $source;
|
|||
|
|
}
|
|||
|
|
}
|