Jump to content

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


Recommended Posts

Здравствуйте. Появилась потребность в подключении 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=<папка>(права есть, группы назначены).

2021-02-08_21-23.png

Link to post
Share on other sites
9 минут назад, bos сказал:

Если есть возможность можете связать их через  поле filename в астере это допиливается легко 
или использовать готовый инструмент  http://prog-it.github.io/Asterisk-CDR-Viewer-Mod/ 

 

 

CDR Viewer Mod - это весьма заманчиво. Ранее рассматривал этот вариант. Оставил, как запасной) Есть ведь встроенная функция в UBilling, поэтому хочется воспользоваться ею.
Про поле filename, правильно ли понимаю, что при вызове, вместе с записью, добавляется запись в таблицу, где указано полученное имя?
Что-то вроде:

exten => 100,1,Set(filename="...")

 

Edited by progxaker
Link to post
Share on other sites

в зависимости от версии астера, начиная, по-моему, с 13го:
1) same => n,Set(CDR(filename)=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.wav);

2)  нужно создать такое поле  в самой таблице ))
3*)   иногда, если вы пишите через cdr_adaptive_odbc в разделе  добавить алиасов) 

table=cdr

alias start => calldate

alias filename => filename

  • Thanks 1
Link to post
Share on other sites
22 минуты назад, bos сказал:

в зависимости от версии астера, начиная, по-моему, с 13го:
1) same => n,Set(CDR(filename)=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.wav);

2)  нужно создать такое поле  в самой таблице ))
3*)   иногда, если вы пишите через cdr_adaptive_odbc в разделе  добавить алиасов) 

table=cdr

alias start => calldate

alias filename => filename


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

Link to post
Share on other sites

К сожалению без проблем не обошлось)

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

2021-02-09_16-27.png

Link to post
Share on other sites

1) посмотрите код веб страницы которую вы используете для просмотра в ubilling, думаю вопрос в том что при выборке он ищет определенный столбец  где находится имя записи
2) как я вижу еще может тянутся название с СEL(но опять таки нужно понимать какое поле используется) что-то мне подсказывает что ориентироваться ubilling хочет на UNIQUEID
но без исходного кода страницы сказать что либо сложно

Link to post
Share on other sites
1 час назад, progxaker сказав:

и запись менял(с .wav и без)

ASTERISK_CALLRECS_FORMAT

 

1 час назад, progxaker сказав:

запись в БД есть, но

ASTERISK_CALLRECS_CEL_TAB_NAME

 

И вообще это все скорее вопросы к Pautiina.

Link to post
Share on other sites
2 часа назад, bos сказал:

1) посмотрите код веб страницы которую вы используете для просмотра в ubilling, думаю вопрос в том что при выборке он ищет определенный столбец  где находится имя записи
2) как я вижу еще может тянутся название с СEL(но опять таки нужно понимать какое поле используется) что-то мне подсказывает что ориентироваться ubilling хочет на UNIQUEID
но без исходного кода страницы сказать что либо сложно

 

2 часа назад, nightfly сказал:

ASTERISK_CALLRECS_FORMAT

 

ASTERISK_CALLRECS_CEL_TAB_NAME

 

И вообще это все скорее вопросы к Pautiina.

 

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

Link to post
Share on other sites
2 часа назад, bos сказал:

я в пхп не очень силен, может поправите, но селект идет к cel
https://github.com/nightflyza/Ubilling/blob/887dc31198f1b402bbf800806da1ce4be763affc/api/libs/api.asterisk.php#L842

 

Пытался разобраться в коде, и запутался.
 

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, но вот что ему пихать и что получается на выходе - загадка)

Link to post
Share on other sites
2 часа назад, bos сказал:

http://ubilling.net.ua/api_doc/classes/Asterisk.html#source-view
есть еще такой документ) и как вариант все же назвать имя файла ${UNIQUEID} и подключить CEL - о чем написано в святом писании документации 

 

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

Link to post
Share on other sites
2 часа назад, nightfly сказал:

Посмотрел одним глазом. Там по неизвестной мне причине, используется флэшовый плеер. Так, что все тлен.

 

 

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

Вам спасибо за потраченое время. Может позже кто заменит на HTML5)

Link to post
Share on other sites
годину тому, progxaker сказав:

Может позже кто заменит на HTML5)

Я у себя сегодня, уже быстренько все мигрировал на html5 audio :P

Причем оно сложноее, так как пришлось еще на лету конвертировать gsm в OGG чтобы оно игралось в браузере. С голым астериском все должно быть радикально проще.

spacer.png

 

пинайте Pautiina либо bobr-kun - всякое про астериск, это их психоделическое творчество.

Link to post
Share on other sites
2 часа назад, nightfly сказал:

Я у себя сегодня, уже быстренько все мигрировал на html5 audio :P

Причем оно сложноее, так как пришлось еще на лету конвертировать gsm в OGG чтобы оно игралось в браузере. С голым астериском все должно быть радикально проще.

spacer.png

 

пинайте Pautiina либо bobr-kun - всякое про астериск, это их психоделическое творчество.


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

Link to post
Share on other sites
  • 3 weeks later...

Разобравшись в коде(две недели назад, хех), узнал то, что было необходимо - в каком формате необходимо подавать записи БД. На самом деле в любом, главное, чтобы столбец с названием файла назывался 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 и другие аспекты, но думаю этим уже займутся сопровождающие.

Итого:
image.png.fee5426783b063255bf9822c28e63661.png

Edited by progxaker
Link to post
Share on other sites
5 минут назад, Ромка сказал:

2021-02-26_17-26.thumb.png.4ae1c417fefc55a8b18ade42d44673d6.png

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

Edited by progxaker
Link to post
Share on other sites
  • 2 months later...

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

Link to post
Share on other sites
7 минут назад, progxaker сказав:

потому что при диагонали 4:3

spacer.png

 

Только вчера мне втирали, что при разрешении 800*600 на ЭЛТ мониторе интерфейс не достаточно контрастно выглядит и не всюду помещается. Пощадите.

ЗЫ и да, я знаю что с аксессибилити в контексте экранных ридеров тоже пизец полный. А еще есть протанопия, дейтеранопия, тританопия etc...

Edited by nightfly
  • Haha 2
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By nicknamer
      Доброго времени суток!
      Когда-то поднимал эту же тему по поводу NAT + шейп на freebsd 10g
      Все советы принял и использовал, получилось пройти полку 4G, но после этого некоторые абоненты жалуются на скорость, хотя потерь нет. Но есть одно отличие это было не массово всего пару абонентов, тестил пару дней, возможно просто совпадение и проблема где-то локально у абонента.
       
      Использую в качестве шейпа dummynet, в качестве ната pf
      Не какого pppoe или dhcp на сервере нет
       
      Сетевая карта intel x520-da2
       
      # uname -a
      FreeBSD R16 11.4-RELEASE-p9 FreeBSD 11.4-RELEASE-p9 #3: Tue May  4 21:21:11 EEST 2021     root@R16:/usr/obj/usr/src/sys/GATE  amd64
       
      hw.model: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
      hw.ncpu: 20
       
      # vmstat -i
      interrupt                          total       rate
      irq1: atkbd0                           6          0
      irq20: ehci1                        7786          3
      irq21: ehci0                        4667          2
      cpu0:timer                       3128716       1012
      cpu1:timer                       3428076       1109
      cpu2:timer                       3412147       1104
      cpu3:timer                       3430284       1110
      cpu4:timer                       3417359       1106
      cpu5:timer                       3396721       1099
      cpu6:timer                       3416714       1106
      cpu7:timer                       3428465       1109
      cpu8:timer                       3347696       1083
      cpu9:timer                       3363427       1088
      cpu10:timer                      3344093       1082
      cpu11:timer                      3360024       1087
      cpu12:timer                      3350830       1084
      cpu13:timer                      3324734       1076
      cpu14:timer                      3357825       1087
      cpu15:timer                      3362823       1088
      cpu16:timer                      3350687       1084
      cpu17:timer                        63572         21
      cpu18:timer                        66008         21
      cpu19:timer                        67536         22
      irq264: ix0:q0                  18975268       6141
      irq265: ix0:q1                  16632201       5382
      irq266: ix0:q2                  18659926       6038
      irq267: ix0:q3                  17284044       5593
      irq268: ix0:q4                  16380946       5301
      irq269: ix0:q5                  18725708       6060
      irq270: ix0:q6                  18228845       5899
      irq271: ix0:q7                  17149241       5550
      irq272: ix0:link                       1          0
      irq273: ix1:q0                  28765702       9309
      irq274: ix1:q1                  22434914       7260
      irq275: ix1:q2                  23281556       7534
      irq276: ix1:q3                  23077926       7468
      irq277: ix1:q4                  22338383       7229
      irq278: ix1:q5                  27636996       8944
      irq279: ix1:q6                  26828088       8682
      irq280: ix1:q7                  26300314       8511
      irq281: ix1:link                       1          0
      irq286: ciss0                      22089          7
      Total                          400152345     129492
       
      # cat /boot/loader.conf
      hint.p4tcc.0.disabled=1
      hint.acpi_throttle.0.disabled=1
      zfs_load="YES"
      dev.igb.0.rx_processing_limit="4096"  # (default 100)
      dev.igb.1.rx_processing_limit="4096"  # (default 100)
      hw.ix.tx_process_limit=512
      hw.ix.rx_process_limit=512
      hw.ix.rxd=4096
      hw.ix.txd=4096
      cc_htcp_load="YES"
      net.link.ifqmaxlen="8192"
      net.isr.defaultqlimit="4096"
      hw.igb.max_interrupt_rate="32000"
      hw.igb.rx_process_limit="-1"
      hw.igb.rxd="4096"  # (default 1024)
      hw.igb.txd="4096"  # (default 1024)
      kern.ipc.nmbclusters="5242880"
      kern.ipc.nmbjumbop="2621440"
      hw.intr_storm_threshold="9000"
      net.inet.tcp.syncache.hashsize="1024"
      net.inet.tcp.syncache.bucketlimit="100"
       
       cat /etc/sysctl.conf
      # $FreeBSD: releng/11.4/etc/sysctl.conf 112200 2003-03-13 18:43:50Z mux $
      #
      #  This file is read when going to multi-user and its contents piped thru
      #  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
      #
      # Uncomment this to prevent users from seeing information about processes that
      # are being run under another UID.
      #security.bsd.see_other_uids=0
      vfs.zfs.min_auto_ashift=12
      kern.random.sys.harvest.ethernet=0
      kern.random.sys.harvest.point_to_point=0
      kern.random.sys.harvest.interrupt=0
      kern.ipc.maxsockbuf=33554432
      net.inet.tcp.sendbuf_max=33554432
      net.inet.tcp.recvbuf_max=33554432
      net.inet.tcp.mssdflt=1460
      net.inet.tcp.minmss=1300
      net.inet.tcp.cc.htcp.adaptive_backoff=1
      net.inet.tcp.cc.htcp.rtt_scaling=1
      net.inet.tcp.syncache.rexmtlimit=0
      net.inet.ip.rtexpire=10
      net.inet.tcp.syncookies=0
      net.inet.tcp.tso=0
      net.inet.ip.check_interface=1
      net.inet.ip.dummynet.io_fast=1
      net.inet.ip.dummynet.hash_size=65536
      net.inet.ip.dummynet.pipe_slot_limit=65536
      net.inet.ip.fw.dyn_buckets=4096
      net.inet.ip.process_options=0
      net.inet.ip.random_id=1
      net.inet.ip.redirect=0
      net.inet.icmp.drop_redirect=1
      net.inet.tcp.always_keepalive=0
      net.inet.tcp.drop_synfin=1
      net.inet.tcp.ecn.enable=1
      net.inet.tcp.fast_finwait2_recycle=1
      net.inet.tcp.icmp_may_rst=0
      net.inet.tcp.msl=5000
      net.inet.tcp.path_mtu_discovery=0
      net.inet.udp.blackhole=1
      net.inet.tcp.blackhole=2
       
      Так же был вопрос почему использую скрипт на бинд процессора к прерываниям и то что freebsd нормально распределяет нагрузку. - Если не распределяю прерывание то начинается хаос, ядра простаивают а некоторые нагружены на 100% - примерно 50 на 50
      А так же делаю для того что бы убрать прерывание с 0 ядра так как даминет работает с него
       
      Так же был совет отключить Hyper Threading, отключен для этого и взяли новый сервер с 10 физическими ядрами 2x
       
      Тем не менее нагрузка трафика плавает между 3.99 и 4.6 G - 600 разрыв трафика и в основном держится на 3.99 G
       
      Пока нужно еще наблюдать, смотреть как работает, но тут появилась проблема когда включил шейп, 0 ядро просто унесло в потолок при трафике 4.6, нормально себя чувствует при 3G, хотя есть другие роутера на Freebsd на 11.0, там слабее процы и используется Hyper Threading, которые не могут преодолеть полку 4G но при нагрузке 3.5G, процы нагружены примерно в 70 % те процессоры что немного по лучше в 50-60 % и тюнинг у них не отличается.
       
      Все актуальные форумы я уже просмотрел и использовал к конфигурации разные тюнинги.
      Да и если будет вопрос почему не использую freebsd выше 11, то в freebsd 12 уже используется iflib и как бы я не старался убрать прерывания с 0 ядра, эфекта не дало, может у вас буду замечания по этому поводу, а так оно паралелится.
       
      И в заключение вопрос, это дело в железе текущем или конфигурации ? Так как я перепробовал уже массу вариаций то может вы вновь поможете куда стоит посмотреть, может где-то была допущена ошибка.
       
       
       
       
    • By eminema_nema
      Всім привіт!
      Є налаштований ubilling+mikrotik+pppoe. Все працювало коли був один NAS Mikrotik, після того як добавив ще один NAS також Mikrotik з'явилась проблема. Коли користувач переходить з стану активний\неактивний чи навпаки в логах мікротіка бачу помилку "could not add address list: already have such entry" хоча дублювання ір-адреси немає.  В статистиці сесій NAS КупаГен помилка - Port-Error. 
      Видалення та створення ідентичного користувача - не дало жодного результату, помилка залишилась.
      В таблиці mlg_reply для користувача дублюються  значення: 'attribute' => 'Framed-IP-Address', 'attribute' => 'Acct-Interim-Interval',  'attribute' => 'Mikrotik-Address-List', 'attribute' => 'Idle-Timeout'.
      Можливо хтось знає як це вирішити, буду вдячний за допомогу.
       
       
    • By Andriydjv
      Перепрошую за створення ще одної теми, може в цьому розділі швидше допоможуть мені?
      По суті тре поставити білінг і звязати з мікротіком та бути на тех підтримці для добавлення правил і налаштувань ( можу і неторбувати як все працює чи при потребі щось редагувати) за щомісячну плату.
      Детальніше: шукаю системного адміністратора для встановлення білінгової системи ubilling і обслуговування та розвитку мережі 350+ абонентів. 
      Що є:
      -Mikrotik ccr1036
      -абоненти epon - olt - Bdcom 3310 та WiFi ubiqiti 
      -авторизація по статичних IP
      -2 вхідних канали трафіку
      -самописний білінг - Nuance billing
      Що треба:
      -Впорядкувати, оптимізувати налаштування мікротіка, авторизацію абонентів і зарезервувати канали
      -встановити білінг - ubilling або щось краще з розрахунку на маштаб мережі і доцільність
      -налаштувати прийом платежів з Приват банку і автоматичну активацію абонентів в реальному часі з відображенням залишку на рахунку
      -прийом платежів з терміналів esypay в реальному часі
      -подальше обслуговування, що місячна тех підтримка /налаштування з модернізацією і розвитком мережі за адекватну до маштабу мережі що місячну плату ( ps можу за місяць дзвонити а можу і нетурбувати коли все працює і нового нічого непотрібно на той час) 
      Вимоги до кандидата:
      - територіальне знаходження у Львові / Миколаєві або Львівській області (надаю перевагу живому спілкуванню) 
      - також відкритість на спілкування по реальному номеру телефону а не конспірологія і скривання по всяких вайберах прив'язаних до недійсних номерів (звісно в неробочий, особистий, тихий час по вашому проханню турбувати небудемо без критичної на то потреби як наподобі піднятя мережі і відновлення маштабного звязку). 
      - ну і на перспективу створення сайту якщо ще в такому спеціалізуєтесь. 
      Прошу звертатись тут чи вайбер, телеграм, а краще дзвоніть з 11:00 до 20:00 (окрім Неділі і свят) за н.т: 0637766025 Андрій
    • By Andriydjv
      Шукаю системного адміністратора для встановлення білінгової системи ubilling і обслуговування та розвитку мережі 350+ абонентів. 
      Що є:
      -Mikrotik ccr1036
      -абоненти epon - Bdcom та WiFi ubiqiti 
      -авторизація по статичних IP
      -2 вхідних канали трафіку
      -самописний білінг - Nuance billing
      Що треба:
      -Впорядкувати, оптимізувати налаштування мікротіка, авторизацію абонентів і зарезервувати канали
      -встановити білінг - ubilling або щось краще з розрахунку на маштаб мережі і доцільність
      -налаштувати прийом платежів з Приват банку і автоматичну активацію абонентів в реальному часі з відображенням залишку на рахунку
      -прийом платежів з терміналів esypay в реальному часі
      -подальше обслуговування, що місячна тех підтримка /налаштування з модернізацією і розвитком мережі за адекватну до маштабу мережі що місячну плату ( ps можу за місяць дзвонити а можу і нетурбувати коли все працює і нового нічого непотрібно на той час) 
      Вимоги до кандидата:
      - територіальне знаходження у Львові / Миколаєві або Львівській області (надаю перевагу живому спілкуванню) 
      - також відкритість на спілкування по реальному номеру телефону а не конспірологія і скривання по всяких вайберах прив'язаних до недійсних номерів (звісно в неробочий, особистий, тихий час по вашому проханню турбувати небудемо без критичної на то потреби як наподобі піднятя мережі і відновлення маштабного звязку). 
      - ну і на перспективу створення сайту якщо ще в такому спеціалізуєтесь. 
      Прошу звертатись тут чи вайбер, телеграм, а краще дзвоніть з 11:00 до 20:00 (окрім Неділі і свят) за н.т: 0637766025 Андрій
    • By nightfly
      Ой, кажись уже следующий год начался, а релиза еще небыло. Вы заметили? Да? Вот, тогда получите, распишитесь - стабильный релиз Ubilling 1.1.4 rev 7876 Bringer of Conflict.
       
      Коротко о изменениях:
      Изменения в структуре БД. см. дамп. alter.ini: новая опция PT_MAXDAY управляющая максимальным днем тарификации Мощных тарифов. alter.ini: новая опция PT_CHARGEONREG управляющая флагом начисления АП при обнаружении нового пользователя на «мощном тарифе». alter.ini: новая необязательная опция ROS_NAS_PPPOE_SESSION_INFO_IN_PROFLE регулирующая отображения состояния PPPoE подключения юзера для Mikrotik NAS. alter.ini: новая необязательная опция STICKY_NOTES_NOPREVIEW отключающая превью личных заметок при отображении списком. alter.ini: новая необязательная опция PON_OLT_UPTIME_IN_PROFILE включающая отображение аптайма OLT в профиле пользователя. alter.ini: новая необязательная опция PON_REALTIME_SIGNAL_IN_PROFILE включающая отображение сигнала ONU в профиле пользователя в режиме «realtime». Может существенно замедлять загрузку профиля юзера. alter.ini: новая необязательная опция PON_REALTIME_EXTEN_INFO_IN_PROFILE включающая отображение дополнительной информации по ONU в профиле пользователя в режиме «realtime». Может существенно замедлять загрузку профиля юзера. alter.ini: новая опция DSTAT_ENABLED управляющая включением функционала «детальной статистики». Просто никогда ее не включайте. Мы предупредили. userstats.ini: новая, необязательная опция PAYMENTS_ONLYPOSITIVE включающая показ только платежей с суммой >0 в кабинете пользователя. Модуль Мощи тарифов: исправлена проблема «с постоянно наступающим первым числом». Но это не точно. Модуль «Планирование работ»: исправлено неадекватное поведение, при попытках устанавливать состояния несуществующим задачам. Модуль «Популярность тарифов»: теперь более адекватно определяет активность пользователей. Модуль Живи с этим: добавлена возможность не строгого поиска юзеров по наименованию тарифа. Модуль «Профиль пользователя»: добавлена возможность отображения состояния PPPoE подключения юзера для Mikrotik NAS. Работает через Mikrotik API. Модуль Служба ритуальных услуг: в отчете по подключениям больше не показывается график, в случае если ранее не происходило похорон. Модуль Зависть: теперь любому завистливому устройству, можно добавлять количество строк, которым будет произведен КУСЬ при сохранении в архив. Модуль TrinityTV: исправлена проблема при регистрации пользовательских устройств не имеющих MACа по коду. Модуль Склад: реализовано новое право WAREVIEW позволяющее вашим сотрудникам просматривать материалы израсходованные на их задачи. Модуль УКВ: исправлена проблема с NaN вместо пустого АРПУ в финансовом отчете на системах с PHP 7.4. Модуль Видеонаблюдение: для DVR-ов добавлено поле кастомного URL предварительного просмотра. Модуль ПОНизатор: теперь умеет отображать много разных интересных штук, включая температуры и аптаймы для OLT C-Data/Stels 11xx (firmware >= 2.4.06) и V-Solution 1600D. Модуль «Профиль пользователя»: теперь может отображать много дополнительной инфы для PON-юзеров. Отображение регулируется опциями: PON_OLT_UPTIME_IN_PROFILE, PON_REALTIME_SIGNAL_IN_PROFILE, PON_REALTIME_EXTEN_INFO_IN_PROFILE. Модуль История СМС сообщений: добавлено отображение адреса рядом с логином пользователя для улучшения визуального восприятия и читабельности. Модуль «Консоль разработчика»: добавлена возможность отображения результата SQL-запроса в виде таблицы с полями. Новый модуль «Поиск по складу»: находится в «черной магии» и помогает найти все расходные операции совершенные вокруг конкретного пользователя. Модуль «Профиль пользователя»: теперь плагины профиля, из «черной магии» могут прятаться в зависимости от прав пользователя. Модуль «Персональные заметки и напоминания»: откровения теперь также могут быть запланированы на конкретный день недели. Модуль Askozia монитор: прослушивание из браузера в силу окончания поддержки Adobe Flash Player, переехало на HTML5 Audio. Модуль «Askozia монитор»: добавлена возможность скачивания записей звонков в MP3 и OGG. Модуль «Планирование работ»: улучшен контроль доступа к задачам репрессированных пользователей. Модуль «Живи с этим»: исправлена проблема расчлененных пользователей при создании задач с поиском по городу. Кабинет пользователя: модуль «Видеонаблюдение» теперь также показывает суммарную стоимость услуги. Авторизация абонентов DHCP на MikroTik методом IP + MAC при помощи КучаГен: решительные и кардинальные изменения в скриптах для получения графиков по статистике трафика абонента с Mikrotik. RemoteAPI: вызов asterisk теперь принимает новый параметр getcontragentdata возвращающий данные связанного контрагента для определенного пользователя. UbillingTelegram: добавлена обертка для отсылки ботом клавиатур.  
      Возможно важные ссылочки:
      Вот тут полный чейнджлог. А это рекомендации к обновлению, если их кто-то еще читает. знаете... обновленную демку могли бы и сами найти.  

×
×
  • Create New...