Та программа под windows, а на роутере OpenWrt (это урезанный Linux), никак она на нём не пойдёт. С роутером, я работаю сейчас удалённо, чеиез picocom других вариантов просто нет. Думаю понятно, что первоначальная идея просто воткнуть в роутер звуковую карту с соответствующим драйвером, оказалась наивной. Нужен управляющий софт.
Какой-то софт нужен, конечно, который будет следить за звонками, принимать их, перекладывать данные из модема в карту и из карты в модем.
Но для ваших целей это может быть что-то самописное. Вчера гуглил - находил "обзвонщик" на таком модеме, написанный на перле.
В сети пишут, что для этой цели используется программа asterix - это программа АТС для VoIP.
Для Ваших целей Астерикс - это оверинжениринг
, тем более в рутер не влезет.
Еще вчера заметил, что
байты отличаются от нуля или от минус единицы только в двух младших битах.
Есть предположение, что никакие это не 255, а просто пропущен один байт данных, вот всё и съехало.
Очень похоже. Не обязательно один, а нечетное количество.
Либо Ваша программа не успевает вычитывать их из буфера устройства, либо теряются при передаче USB.
Вот что пишут:
Цитата:
Изохронный канал позволяет доставлять пакеты без гарантии доставки и без ответов/подтверждений, но с гарантированной скоростью доставки в N пакетов на один период шины (1 кГц у low и full speed, 8 кГц у high speed). Используется для передачи аудио- и видеоинформации.
Цитата:
Пакеты типа DATA содержат поле данных и поле контроля целостности данных CRC16. Стандарт ограничивает максимальную разрешённую длину данных: 8 байт для несконфигурированных устройств, 64 байта для устройств Low Speed, 1023 байта для устройств Full Speed и 1024 байта для устройств High Speed. Устройство может установить свою максимальную длину данных, меньшую разрешённой. Хост обязан поддерживать максимальную разрешённую длину данных.
Если теряются пакеты целиком (а не просто искажаются, что контролируются CRC16), при этом в пакете нечетное количество байт, например 1. То будет наблюдаться что-то похожее. Но выглядит маловероятным такая короткая или нечетная длина данных в пакете.
1. Я бы проверил, какой поток данных идет из модема на компе, где он "работает хорошо". В двух вариантах: а) без USB-хаба, б) с USB-хабом (который на рутере используется).
2. Можно попробовать (если рутер будет успевать) читать данные по-байтно и писать их в файл с метками времени с точностью до миллисекунд. Должна наблюдаться такая картина:
а) куча байт с примерно одним временем.
б) пауза 5-15 мс.
И посмотреть, сколько байт читается между паузами. Должно быть ровно 320.