Перейти до

progxaker

Маглы
  • Всього повідомлень

    13
  • Приєднався

  • Останній візит

Все, що було написано progxaker

  1. progxaker

    Записи звонков Asterisk

    @nightfly "поклеил, как есть", а сам не дожидаясь, проверил у себя. Можно было не 300px, 285, потому что при диагонали 4:3 и "лупы" 80% есть небольшой отступ, но это лишь детали. Основной вопрос закрыт, тему можно закрывать.
  2. progxaker

    Записи звонков Asterisk

    Сегодня добавлен pull request от @bobr-kun. Как только примут в основную ветку, посмотрю и отпишусь, а после можно и тему закрывать.
  3. progxaker

    Записи звонков Asterisk

    Модуль Askozia монитор ... А топик называет "... Asterisk"... Хотя да, мне известно, что теперь используется одна функция для воспроизведения записей, но для понимания кода, оставил здесь своё решение. Да и в документацию неплохо бы добавить, что необходимо писать имена файлов в ранее указанные столбцы, а то не все шарят в PHP)
  4. progxaker

    Записи звонков Asterisk

    Разобравшись в коде(две недели назад, хех), узнал то, что было необходимо - в каком формате необходимо подавать записи БД. На самом деле в любом, главное, чтобы столбец с названием файла назывался app_data или recordingfile. Дабы не пересоздавать базу, добавил в else изменённую запись. if (!empty($this->recordingsPath)) { if (isset($each['app_data']) and in_array($each['app_data'], $allVoiceFiles)) { $fileUrl = self::URL_ME . '&astercallrecs=' . urlencode($each['app_data']); $data[] = $this->getSoundcontrols($fileUrl); } elseif (isset($each['recordingfile']) and in_array($each['recordingfile'], $allVoiceFiles)) { $fileUrl = self::URL_ME . '&astercallrecs=' . urlencode($each['recordingfile']); $data[] = $this->getSoundcontrols($fileUrl); } elseif (isset($each['filename']) and in_array($each['filename'], $allVoiceFiles)) { // То, что в each - это название столбца, в моём случае у меня всё было в filename $fileUrl = self::URL_ME . '&astercallrecs=' . urlencode($each['filename']); $data[] = $this->getSoundcontrols($fileUrl, urlencode($each['filename'])); } else { $data[] = ''; } } Дальше проблемы с плеером. У меня версия UBilling 1.0.6(не обновлял, потому что на тестовом стенде, хех), поэтому он не работает(может сейчас работает в новых версиях). Переписал на HTML5: protected function getSoundcontrols($fileUrl, $filename) { $result = ''; if (!empty($fileUrl)) { $playableUrl = $fileUrl . '&playable=true'; $playerId = 'player_' . wf_InputId(); $playControlId = 'controller_' . wf_InputId(); if($filename != "" && file_exists($this->recordingsPath . $filename)) $result .= wf_tag('audio', false, '', 'controls="" id="' . $playerId . '" preload="none" style="width: 200px;"') . wf_tag('source', false, '', 'src="' . $playableUrl . '" type="audio/wav"') . wf_tag('audio', true); } } Можно ещё дописать проверку на то, указано ли расширение в alter.ini и другие аспекты, но думаю этим уже займутся сопровождающие. Итого:
  5. progxaker

    Записи звонков Asterisk

    Хм-м) Окей, буду пинать)
  6. progxaker

    Записи звонков Asterisk

    Ха-ха) Переходим на китайскую поделку?) Если серьёзно, то что же, придётся использовать CDR Viewer. Вам спасибо за потраченое время. Может позже кто заменит на HTML5)
  7. progxaker

    Записи звонков Asterisk

    Хех. Похоже, что придётся) О результатах отпишусь завтра. Или сегодня, если просто ${UNIQUEID} зайдёт)
  8. progxaker

    Записи звонков Asterisk

    Пытался разобраться в коде, и запутался. if (!empty($this->recordingsPath)) { if (isset($each['app_data']) and in_array($each['app_data'], $allVoiceFiles)) { $fileUrl = self::URL_ME . '&astercallrecs=' . urlencode($each['app_data']); $data[] = $this->getSoundcontrols($fileUrl); } elseif (isset($each['recordingfile']) and in_array($each['recordingfile'], $allVoiceFiles)) { $fileUrl = self::URL_ME . '&astercallrecs=' . urlencode($each['recordingfile']); $data[] = $this->getSoundcontrols($fileUrl); } else { $data[] = ''; } } recordingPath у меня есть, значит выясняем allVoiceFiles. В нём записывает ответ getCallsDir, но вот что ему пихать и что получается на выходе - загадка)
  9. progxaker

    Записи звонков Asterisk

    Насчёт CEL думал, но это уже более подробная таблица, и в документации указано что "ASTERISK_CALLRECS_CEL_TAB_NAME" необязательна(т.е. и так работать может). Про "ASTERISK_CALLRECS_FORMAT" в самом конфиге прописано, что "можете оставить пустым и тогда буду смотреть все файлы", но попробую снова. Про исходный код, вроде PHP и JS не шифровал, но когда сам разбирал ногу сломал, вот и пришёл лечиться)
  10. progxaker

    Записи звонков Asterisk

    К сожалению без проблем не обошлось) Запись разговора есть, запись в БД есть, но UBilling продолжает игнорировать файл. Выставлял и 777, и запись менял(с .wav и без), однако не помогло.
  11. progxaker

    Записи звонков Asterisk

    Спасибо тебе добрый человек) Сегодня попробую, но думаю проблем не возникнет.
  12. progxaker

    Записи звонков Asterisk

    CDR Viewer Mod - это весьма заманчиво. Ранее рассматривал этот вариант. Оставил, как запасной) Есть ведь встроенная функция в UBilling, поэтому хочется воспользоваться ею. Про поле filename, правильно ли понимаю, что при вызове, вместе с записью, добавляется запись в таблицу, где указано полученное имя? Что-то вроде: exten => 100,1,Set(filename="...")
  13. Здравствуйте. Появилась потребность в подключении Asterisk к UBilling с возможностью записи разговоров. Данный функционал(со стороны Asterisk) выполнил через MixMonitor. exten => _XXX,1,MixMonitor(/var/records/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.wav) Сделал базу CDR, привязал к UBilling'у, но вот прослушать/скачать записи не получается. Хочется понять в каком формате(имя и расширение) сохранять, чтобы он мог их прочитать. P.S. В alter.ini аргументы ASTERISK_ENABLED=1, ASTERISK_CALLRECS_PATH=<папка>(права есть, группы назначены).
×
×
  • Створити нове...