PHP 인터페이스 개발 에 관 한 프 리 스위치
class CallSystem extends Model{
public $url = 'http://192.168.0.251:8085/api/';
public $username = 'admin'; // token
public $password = 'admin'; // token
//
/** 2、3、4
* 2、
* 3、 ,
* 4、
* @param $Extension ( )
* @param $Value
* @param $type array(2, 3, 4)
* @return array
*/
public function set_extension($Extension, $type, $Value) {
$config = array(
2 => array(
'url' => 'extension_seatstatus',
'val' => array(
0 => 'idle', //
1 => 'busy' //
)
),
3 => array(
'url' => 'extension_seatstate',
'val' => array(
0 => 'up', //
1 => 'down' //
)
),
4 => array(
'url' => 'extension_callstate',
'val' => array(
0 => 'ring', //
1 => 'talking', //
2 => 'ivr', //
3 => 'ready' //
)
),
);
if (isset($config[$type]['val'][$Value])) {
$url = $this->url . $config[$type]['url'];
$params = array(
'Extension' => $Extension,
'Value' => $config[$type]['val'][$Value]
);
$res = $this->curl($url, json_encode($params), true);
return json_decode($res, true);;
}
}
/**5、token , token
* @return mixed|string
*/
public function Token() {
$username = $this->username;
$password = $this->password;
$token = '';
$cache = \Yii::$app->cache;
//$token = $cache->delete($username . '_token');
if ($cache->get($username . '_token')) {
$token = $cache->get($username . '_token');
} else {
$params = array(
'username' => $username,
'password' => $password
);
$url = $this->url . 'login';
$res = $this->curl($url, json_encode($params), true, false);
$res_arr = json_decode($res,true);
if (isset($res_arr['token'])) {
$token = $res_arr['token'];
$cache->add($username . '_token', $res_arr['token']);
}
}
return $token;
}
/**6、 uuid
* @return mixed|string
*/
public function get_uuid() {
$username = $this->username;
$uuid = '';
$cache = \Yii::$app->cache;
if ($cache->get($username . '_uuid')) {
$uuid = $cache->get($username . '_uuid');
} else {
$url = $this->url . 'get_uuid';
$res = $this->curl($url);
$res_arr = json_decode($res, true);
if (isset($res_arr['uuid'])) {
$uuid = $res_arr['uuid'];
$cache->add($username . '_uuid', $res_arr['uuid']);
}
}
return $uuid;
}
/** 1、7、8、9、10
* 1、
* 7、 uuid
* 8、
* 9、hold
* 10、unhold
* 14、park
* 15、
* 16、
* 20 preanswer
* 22、
* @param $username ( )
* @param $type
* @return mixed
*/
public function sent($username, $type) {
$config = array(
1 => 'extension_info/',
7 => 'get_phone_uuid/',
8 => 'hangup/',
9 => 'hold/',
10 => 'unhold/',
14 => 'park/',
15 => 'intercept/',
16 => 'answer/',
20 => 'preanswer/',
22 => 'break/',
);
if (isset($config[$type])) {
$url = $this->url . 'get_phone_uuid/' . $username;
$res = $this->curl($url);
return json_decode($res, true);
}
}
/**11、
* @param $args
* @return mixed
*/
public function originate($args) {
$url = $this->url . 'originate';
$params = array(
"Job_uuid" => $this->get_uuid(), //uuid
"Callername" => $args['Callername'], //
"Callernum" => $args['Callernum'], //
"Calleenum" => $args['Calleenum'], //
"A_gatewayname" => $args['A_gatewayname'], // a , a
"B_gatewayname" => $args['B_gatewayname'], // b , b
"A_effective_caller_id_num" => $args['A_effective_caller_id_num'], //
"B_effective_caller_id_num" => $args['B_effective_caller_id_num'], //
"A_external" => $args['A_external'], // a
"B_external" => $args['B_external'] // b
);
$res = $this->curl($url, json_encode($params), true);
return json_decode($res,true);
}
/**11b 1、 2、 3、
* @param $args
* @return mixed
*/
public function originate_playring($args) {
$url = $this->url . 'originate_playring';
$params = array(
"Job_uuid" => $this->get_uuid(), //uuid
"Callername" => $args['Callername'], //
"Callernum" => $args['Callernum'], //
"Calleenum" => $args['Calleenum'], //
"A_gatewayname" => $args['A_gatewayname'], // a , a
"B_gatewayname" => $args['B_gatewayname'], // b , b
"A_effective_caller_id_num" => $args['A_effective_caller_id_num'], //
"B_effective_caller_id_num" => $args['B_effective_caller_id_num'], //
"A_external" => $args['A_external'], // a
"B_external" => $args['B_external'], // b
"Ring_id" => $args['Ring_id']
);
$res = $this->curl($url, json_encode($params), true);
return json_decode($res,true);
}
/**11c cdr post URL
* @return mixed
*/
public function originate_yn() {
$url = $this->url . 'originate_yn';
$params = array(
"Job_uuid" => "1234",
"Callername" => "1002",
"Callernum" => "1002",
"Calleenum" => "1000",
"A_gatewayname" => "",
"B_gatewayname" => "",
"A_effective_caller_id_num" => "1002",
"B_effective_caller_id_num" => "1000",
"A_external" => "false",
"B_external" => "false",
"Ring_id" => "35",
"Cdr_url" => "http://123.1.2.2/cdr/",
"Event_url" => "http://123.1.2.2/event/"
);
$res = $this->curl($url, json_encode($params), true);
return json_decode($res,true);;
}
/**11d fsgui
* @return mixed
*/
public function originate_ext() {
$url = $this->url . 'originate_ext';
$params = array(
"Job_uuid" => "1234",
"Callername" => "1002",
"Callernum" => "1002",
"Calleenum" => "1000",
"A_effective_caller_id_num" => "1002",
"GatewayGroupId" => "1",
"B_effective_caller_id_num" => "1000",
"A_external" => "false",
"B_external" => "false",
"Ring_id" => "35",
"Cdr_url" => "http://123.1.2.2/cdr/",
"Event_url" => "http://123.1.2.2/event/"
);
$res = $this->curl($url, json_encode($params), true);
$res_arr = json_decode($res,true);
return $res_arr;
}
/**12、 uuid 13、
* @param $args
* @param $type 0、 uuid 1、
* @return mixed
*/
public function bridge($args, $type) {
$config = array(
0 => array(
"A_uuid" => $this->sent($args['A_uuid'], 7),
"B_uuid" => $this->sent($args['B_uuid'], 7)
),
1 => array(
"A_phone" => $args['phone1'],
"B_phone" => $args['phone2']
)
);
if ($type==0) {
$url = $this->url . 'bridge';
} else {
$url = $this->url . 'bridge_phone';
}
$params = $config[$type];
$res = $this->curl($url, json_encode($params), true);
return json_decode($res, true);
}
/**17 、 、 ,
* 18 、 、 ,
* 19 、 、 ,
* 26 、 、 ,
* @param $args
* @param $type
* @return array
*/
public function number($args, $type) {
$args = array(
"EvdedPhone" => $args['EvdedPhone'],
"EvdPhone" => $args['EvdPhone'],
"EvdGateway" => $args['EvdGateway']
);
$flag = '';
switch ($type) {
case 17 :
$flag = 'eavesdrop';
break;
case 18 :
$flag = 'threeway';
break;
case 19 :
$flag = 'threeway';
break;
case 26 :
$flag = 'transfer';
break;
default:
break;
}
$url = $this->url . $flag;
$res = $this->curl($url, json_encode($args), true);
return json_decode($res, true);;
}
/**21、 answer
* @param $PhoneNumber
* @param $FilePath
* @param $Loopplay
* @return mixed
*/
public function playback($PhoneNumber, $FilePath, $Loopplay) {
$url = $this->url . 'playback';
$params = array(
"PhoneNumber" => $PhoneNumber,
"FilePath" => $FilePath,
"Loopplay" => $Loopplay
);
$res = $this->curl($url, json_encode($params), true);
$res_arr = json_decode($res, true);
return $res_arr;
}
/**23、
* @param $PhoneNumber
* @param $Filepath
* @param $Flag
* @param $Limit 0 , 5, 5
* @return mixed
*/
public function record($PhoneNumber, $Filepath, $Flag, $Limit) {
$url = $this->url . 'record';
$params = array(
"PhoneNumber" => $PhoneNumber,
"Filepath" => $Filepath,
"Flag" => $Flag,
"Limit" => $Limit
);
$res = $this->curl($url, json_encode($params), true);
$res_arr = json_decode($res, true);
return $res_arr;
}
/**24 dtmf
* @param $PhoneNumber dtmf
* @param $Dtmf dtmf
* @return mixed
*/
public function senddtmf($PhoneNumber, $Dtmf) {
$url = $this->url . 'senddtmf';
$params = array(
"PhoneNumber" => $PhoneNumber,
"Dtmf" => $Dtmf
);
$res = $this->curl($url, json_encode($params), true);
$res_arr = json_decode($res, true);
return $res_arr;
}
/**25
* @return mixed
*/
public function send_fax() {
$url = $this->url . 'send_fax';
$params = array(
"PhoneNumber" => "02112345678",
"GatewayName" => "fax",
"FaxFile" => "/tmp/av.tiff"
);
$res = $this->curl($url, json_encode($params), true);
$res_arr = json_decode($res, true);
return $res_arr;
}
public function curl($url, $data = [], $post=false, $flag=true){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTP_VERSION, '1.0');// HTTP 1.0
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if($post){
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FRESH_CONNECT ,true); //
// ----------------------------------
$ip = $_SERVER['REMOTE_ADDR'];
$ipArray = explode('.', $ip);
$ip = $ipArray[0].'.'.$ipArray[1].'.'.rand(2,254).'.'.rand(2,254);
$header[] = "Accept: ".$_SERVER['HTTP_ACCEPT'];
$header[] = 'X-FORWARDED-FOR: '.$ip;
$header[] = 'CLIENT-IP: '.$ip;
$header[] = "Cache-Control: no-cache";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6";
$header[] = "User-Agent: ".$_SERVER['HTTP_USER_AGENT']; // browsers keep this blank.
$header[] = "Content-Type:application/json";
if ($flag) {
$header[] = "Authorization:Nway " . $this->Token();
}
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.