Bay
08.09.2002, 11:20
хай
ситуация - станция 51С, к ней присобачено два выноса, один 11С по SL1, второй Siemens Hicom 150E, по EuroISDN, выходов наружу несколько - два на городскую сеть (Dual PRI EuroISDN и 4 карты COT), выход на межгород по DTI R2MFS, выход на международку 2 COT, плюс прямой выход на местного сотового оператора через еще один DTI R2MFS. После подключения последнего в строке CDR появились нечитаемые кракозябры при транзитном звонке от любого из выносов через голову на сотовую связь. Звонки из головного биллингуются без проблем. Все остальные типы звонков через другие направления тоже. При входящей связи с сотового на абонента выноса - легко. При исходящей - абсолютно нечитаемая строка. Если кто сталкивался, подскажите...
PS На биллинговую прогу можно не грешить - в обычной терминалке строка не читается. Настройки CDR-порта нормальные - все остальное выдается правильно...

PhoneMan
09.09.2002, 09:45
Можно посмотреть на фрагмент ?

Bay
09.09.2002, 11:12
без проблем
в аттаче



11-42881-51C.txt

PhoneMan
09.09.2002, 12:06
Да уж ...
нет, раньше такого видеть не приходилось :(

Gurij
10.09.2002, 12:05
Первое, в твоих CDR сообщениях есть симоволы с ASCII кодом выше 127 (шестнадцатиричный 79). Такого быть не может. Значит в настройках порта у тебя стоит 8 бит. Зачем, если восьмой бит в CDR не используется? Я не утверждаю, что проблема именно в этом, но когда я начинал принимать CDR, то что-то подобное было. Тогда и сделал настройку порта 7-бит,1-стоповый,без паритета.
Второе, в твоих CDR встречаются символы с ASCII кодом меньше 32 (20), т.е. управляющие символы. В документации сказано, что в CDR строке может передаваться любое количество символов с кодом 00 в любом месте строки. На терминале их не видно, но при обработке строк CDR в программе их нужно учитывать. Теоретически программа, принимающая CDR, должна вырезать все символы 00. Я на всякий случай режу все, что меньше 32, тогда в базу летит строка даже без 0D0A.