chumarov: А нужен ли здесь мост? Просто заворачиваете по правилу 0/0:3896 -> записыватель:5060.
Ну и почему бы просто не поставить asterisk промежутком - он будет и разговоры писать(причем сразу в файлы OGG, со сведенным звуком), и CDR вести.
tw1911: Второй вариант можно реализовать при помощи загрузки по сети (чтобы не трогать оригинальный загрузчик) небольшой утилиты, которая сравнит до загрузки ОС файлы на диске с файлами в хранилище и затрет изменения, а затем запустит загрузку windows уже с ЖД. Гигабитный канал очень желателен.
По поводу загрузки всей Windows по сети (без жесткого диска вообще) есть масса руководств.
Илья: Мне кажется, вы базу данных видите в первый раз. Вы статью по ссылке видели?
Если автору нужно всегда хранить ровно 10 значений, он может пойти двумя путями - создать 10 колонок или создать две таблицы:
TABLE MAIN
ID OTHER DATA
1 ....
2
3
4
TABLE ADDITIONALS
ID MAIN_ID VAL
1 1 "alpha"
2 1 "beta"
3 1 "gamma"
4 2
5 2
Запрос: "вытащи мне все дополнительные значения для строки 1 главной таблицы:" select id, val from additionals where main_id=1
Григорий Бондаренко: Это решается программой на Qt в 150 строчек. Логика такая:
обработчик сигнала "можно читать строку из ком-порта" - читает и запоминает данные в буфере
обработчик сигнала "можно читать TCP" - читает TCP, смотрит в буфер, Если буфер пустой, отсылает, что он пустой, иначе - отсылает буфер.
обработчик сигнала "новое соединение" - создает класс - приемник событий от клиента TCP.
обработчик сигнала "TCP разъединилось" - уничтожает приемник событий от клиента TCP
Григорий Бондаренко: 1) Надо поглядеть исходники. Дело в том, что в них реализован конкурентный доступ к промежуточному файлу, а значит, нет гарантии, что процесс не "подзастрянет" на сотню-другую миллисекунд. Можно провести эксперимент.
2)В базу попадает все, что попадает в SMDR.
3) Эти решения очень ненадежны - приложение на этом конце должно одновременно обслуживать события от TCP и от ком-порта, что на баше сделать трудновасто.
4) Контроль доставки по TCP реализуется очень просто. Клиент шлет серверу по соединению запросы "Есть чего?", а сервер отвечает "Есть, вот" или "нету". А если не отвечает, клиент поднимает тревогу.
Григорий Бондаренко: У меня "C++ головного мозга", поэтому я буду всячески рекомендовать C++, к сожалению.
В принципе, мою связку программ можно настроить на более частую передачу информации в базу. Firebird умеет слать уведомление клиенту о новых записях - это как раз можно применить для организации всплывающего окна.
Григорий Бондаренко: Имеется в виду разрыв соединения между БД и АТС, при котором звонки перестанут попадать в базу и отображаться у оператора.
Понятно, что это маловероятная ситуация, но довольно опасная.
Ну и почему бы просто не поставить asterisk промежутком - он будет и разговоры писать(причем сразу в файлы OGG, со сведенным звуком), и CDR вести.