Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. public static function GetCurrentCallData($dst)
  2. {
  3. $response = _AsteriskAjam::CoreShowChannels();
  4.  
  5. foreach ($response as $entry) {
  6. if (
  7. empty($entry['BridgedChannel'])
  8. || stripos($entry['Channel'], "SIP/{$dst}") === false
  9. ) {
  10. continue;
  11. }
  12.  
  13. $is_outgoing = false;
  14.  
  15. // Нам нужны только члены очередей
  16. if (
  17. (
  18. $entry['Event'] == 'CoreShowChannel'
  19. && $entry['ChannelStateDesc'] == 'Up'
  20. && $entry['ApplicationData'] == '(Outgoing Line)'
  21. ) || $is_outgoing = _AsteriskAjam::GetVar($entry['BridgedChannel'], 'call_type') == self::CALL_TYPE_OUTGOING
  22. ) {
  23. // Оригинальный идентификатор звонка
  24. $call_id = _AsteriskAjam::GetVar($entry['BridgedChannel'], 'UniqueID_Orig');
  25.  
  26. if ($call_id) {
  27. $entry['BridgedUniqueID'] = $call_id;
  28. }
  29.  
  30. // Идентификатор ROIstat
  31. $entry['RoiStatId'] = _AsteriskAjam::GetVar($entry['BridgedChannel'], 'X-ROISTAT-ID') ?: '';
  32.  
  33. if (!$is_outgoing) {
  34. // Подменяем номер телефона, оригинальный хранится в переменной
  35. $entry['ConnectedLineNum'] = substr(
  36. _AsteriskAjam::GetVar($entry['BridgedChannel'], 'INCOMINGCALLERID'),
  37. -10
  38. );
  39. } else {
  40. // получаем телефон клиента
  41. $phone = $entry['Extension'];
  42.  
  43. if (starts_with($phone, '8')) {
  44. $phone = substr_replace($phone, '', 0, 1);
  45. }
  46.  
  47. $entry['ConnectedLineNum'] = $phone;
  48. }
  49.  
  50. // Данные для формирования order_pbx_calls
  51. $entry['PbxCall'] = static::prepareOrderPbxCall($entry);
  52.  
  53. // Ответ готов, отдаем запись о канале целиком
  54. return $entry;
  55. }
  56. }
  57.  
  58. return null;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement