Size: a a a

2020 November 24

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
planfix-in.php

<?php
//данные в запросе
$ExtNum = $argv[1]; //Номер клиента
$IntNum = $argv[2]; //Внутренний номер сотрудника
$CallID = $argv[3]; //Уникальный идентификатор
//$FullFname = $argv[4]; //Ссылка на файл записи разговора
//$CallMeDURATION = $argv[5]; //Продолжительность звонка
//$CallMeDISPOSITION = $argv[6]; //Статус звонка

//Формирования массива данных звонка
$result = getPlanfixApi(array(
                               'cmd' => 'event',
                               'type' => 'in',
                               'event' => 'INCOMING',
                               'phone' => $ExtNum,
                               'diversion' => $IntNum,
                               'ext' => $IntNum,
                               'callid' => $CallID,
                               'planfix_token' => '0000000000000000000000000000',
                               ));

//Функция обращения к методу EVENT API Planfix
function getPlanfixApi($data){
               $url = 'https://softmart.planfix.ru/tel/api';
               if (!$url) return false;
           $queryUrl = $url;
           $queryData = http_build_query($data);
           $curl = curl_init();
           curl_setopt_array($curl, array(
           CURLOPT_SSL_VERIFYPEER => 0,
           CURLOPT_POST => 1,
           CURLOPT_HEADER => 1,
           CURLOPT_RETURNTRANSFER => 1,
           CURLOPT_URL => $queryUrl,
           CURLOPT_POSTFIELDS => $queryData,
               ));
           $result = curl_exec($curl);
                       //echo $result;
           curl_close($curl);
       }
?>
источник

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
planfix-end.php

<?php
//данные в запросе
$ExtNum = $argv[1]; //Номер клиента
$IntNum = $argv[2]; //Внутренний номер сотрудника
$CallID = $argv[3]; //Уникальный идентификатор
$FullFname = $argv[4]; //Ссылка на файл записи разговора
$CallMeDURATION = $argv[5]; //Продолжительность звонка
$CallMeDISPOSITION = $argv[6]; //Статус звонка

// Проверка статуса звонка
   switch ($CallMeDISPOSITION) {
      case 'ANSWERED':
        $sipcode = 'Success'; // успешный звонок
        break;
     case 'ANSWER':
       $sipcode = 'Success'; // успешный звонок
       break;
      case 'NO ANSWER':
        $sipcode = 'Cancelled'; // нет ответа
        break;
      case 'BUSY':
       $sipcode =  'Missed'; //  занято
        break;      
      default:
        if(empty($CallMeDISPOSITION)) $sipcode = 'Missed'; //если пустой пришел, то поставим неотвечено
       else $sipcode = 'Cancelled'; // отклонено, когда все остальное
        break;
   }

   
if ($CallMeDISPOSITION == "ANSWERED") {
//Формирования массива данных звонка
$result = getPlanfixApi(array(
           'cmd' => 'event',
           'type' => 'in',
           'event' => 'ACCEPTED',
           'phone' => $ExtNum,
           'diversion' => $IntNum,
           'ext' => $IntNum,
           'callid' => $CallID,
                       'planfix_token' => '0000000000000000000000000000'
                               ));  
               
$result = getPlanfixApi(array(
           'cmd' => 'event',
           'type' => 'in',
           'event' => 'COMPLETED',
           'phone' => $ExtNum,
           'diversion' => $IntNum,
           'ext' => $IntNum,
           'callid' => $CallID,
           'duration' => $CallMeDURATION,
           'is_recorded' => '1',
           'status' => $sipcode,
           'record_link' => $FullFname,
                       'planfix_token' => '0000000000000000000000000000'
                               ));                
                   }
                   else {
//Формирования массива данных звонка
$result = getPlanfixApi(array(
           'cmd' => 'event',
           'type' => 'in',
           'event' => 'COMPLETED',
           'phone' => $ExtNum,
           'diversion' => $IntNum,
           'ext' => $IntNum,
           'callid' => $CallID,
           'duration' => $CallMeDURATION,
           'is_recorded' => '1',
           'status' => $sipcode,
           'record_link' => $FullFname,
                       'planfix_token' => '0000000000000000000000000000'
                               ));
                           }
//Функция обращения к методу EVENT API Planfix            
function getPlanfixApi($data){
               $url = 'https://softmart.planfix.ru/tel/api';
               if (!$url) return false;
           $queryUrl = $url;
           $queryData = http_build_query($data);
           $curl = curl_init();
           curl_setopt_array($curl, array(
           CURLOPT_SSL_VERIFYPEER => 0,
           CURLOPT_POST => 1,
           CURLOPT_HEADER => 1,
           CURLOPT_RETURNTRANSFER => 1,
           CURLOPT_URL => $queryUrl,
           CURLOPT_POSTFIELDS => $queryData,
               ));
           $result = curl_exec($curl);
     //echo $result;
           curl_close($curl);
       }
?>
источник

OS

Oleg Shteinliht in Asterisker-ы
да, это оно. нужно добавить строку
error_log("{$url}:\n", 3, '/tmp/planfix.log');
error_log("{$queryData}:\n", 3, '/tmp/planfix.log');
error_log("{$result}:\n", 3, '/tmp/planfix.log');
источник

OS

Oleg Shteinliht in Asterisker-ы
можно это добавить после curl_close()
источник

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
И в одном и во втором?
источник

OS

Oleg Shteinliht in Asterisker-ы
сюда
источник

OS

Oleg Shteinliht in Asterisker-ы
убедитесь, что нет синтаксических ошибок php -l ./script.php
источник

OS

Oleg Shteinliht in Asterisker-ы
где script.php имя скрипта, который выправили
источник

OS

Oleg Shteinliht in Asterisker-ы
да, в оба файла добавьте
источник

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
Oleg Shteinliht
можно это добавить после curl_close()
источник

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
Oleg Shteinliht
можно это добавить после curl_close()
источник

OS

Oleg Shteinliht in Asterisker-ы
да, так
источник

OS

Oleg Shteinliht in Asterisker-ы
пробуйте сделать звонок
источник

OS

Oleg Shteinliht in Asterisker-ы
и смотрите файл /tmp/planfix.log
источник

OS

Oleg Shteinliht in Asterisker-ы
там должны появится данные
источник

OS

Oleg Shteinliht in Asterisker-ы
еще можно это добавить, чтобы получить код ответа
$code = (int)curl_getinfo($curl, CURLINFO_HTTP_CODE);
источник

OS

Oleg Shteinliht in Asterisker-ы
это после curl_exec
источник

OS

Oleg Shteinliht in Asterisker-ы
и его тоже надо распечатать
error_log("{$code}:\n", 3, '/tmp/planfix.log');
источник

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
источник

UM

ULADZISLAU MiDNiGHTE... in Asterisker-ы
по нулям.
источник