Pull to refresh

Comments 4

Ждём новую АТС на Perl!
Спасибо!
Удачи в дальнейших разработках!
Обнаружил следующие проблемы в работе скрипта:
— На некоторых ПК (заведомо более мощных чем тот на котором велась разработка и тестирование) наблюдается задержка во время обмена аудиоданными с модемом. Это приводит к искажению воспроизводимого в модем аудио и к зависанию скрипта. Причину идентифицировать пока не удалось.
— На разных ПК можно наблюдать различную служебную информацию которая сыпется из ttyUSB2, (RSSI, CLIP, BOOT). Есть предположение что операционная система компьютера сама (без ведома пользователя) выставляет некоторые из нижеприведенных параметров модема.

Далее привожу ответ модема на команду AT&V. Ответ содержит различные настройки модема
# &C: 2; &D: 2; &E: 0; &F: 0; &S: 0; &W: 0; E: 1; L: 0; M: 0; Q: 0; V: 1;
# X: 0; Z: 0; \Q: 3; \S: 0; \V: 0; S0: 0; S2: 43; S3: 13; S4: 10; S5: 8;
# S6: 2; S7: 50; S8: 2; S9: 6; S10: 14; S11: 95; S30: 0; S103: 1; S104: 1;
# +FCLASS: 0; +ICF: 3,3; +IFC: 2,2; +IPR: 115200; +DR: 0; +DS: 0,0,2048,6;
# +WS46: 12; +CBST: 0,0,1;
# +CRLP: (61,61,48,6,0),(61,61,48,6,1),(240,240,52,6,2);
# +CV120: 1,1,1,0,0,0; +CHSN: 0,0,0,0; +CSSN: 0,0; +CREG: 0; +CGREG: 0;
# +CFUN:; +CSCS: «IRA»; +CSTA: 129; +CR: 0; +CRC: 0; +CMEE: 0; +CGDCONT: (1,«IP»,«internet.mts.ru»,«0.0.0.0»,0,0),(2,«IP»,«internet»,«0.0.0.0»,0,0),(3,«IP»,«internet.mts.ru»,«0.0.0.0»,0,0)
#; +CGDSCONT:; +CGTFT:; +CGEQREQ: (1,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(2,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(3,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(4,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(5,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(6,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(7,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(8,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(9,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(10,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(11,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(12,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(13,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(14,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(15,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0),(16,4,0,0,0,0,2,0,«0E0»,«0E0»,3,0,0)
#; +CGEQMIN:; +CGQREQ:; +CGQMIN:;; +CGEREP: 0,0; +CGCLASS: «B»;
# +CGSMS: 1; +CSMS: 0; +CMGF: 0; +CSAS: 0; +CRES: 0;
# +CSCA: "+79117654321",145; +CSMP: ,,0,0; +CSDH: 0; +CSCB: 0,"","";
# +FDD: 0; +FAR: 0; +FCL: 0; +FIT: 0,0; +ES: ,,; +ESA: 0,,,,0,0,255,;
# +CMOD: 0; +CVHU: 1;; +CPIN: ,; +CMEC: 0,0,0; +CKPD: 1,1; +CGATT: 1;
# +CGACT: 0; +CPBS: «SM»; +CPMS: «SM»,«SM»,«SM»; +CNMI: 0,0,0,0,0;
# +CMMS: 2; +FTS: 0; +FRS: 0; +FTH: 3; +FRH: 3; +FTM: 96; +FRM: 96;
# +CCUG: 0,0,0; +COPS: 0,2,""; +CUSD: 0; +CAOC: 1; +CCWA: 0; +CCLK: "";
# +CLVL: 2; +CMUT: 1; +CPOL: 0,2,"",0,0,0; +CPLS: 0; +CTZR: 0; +CTZU: 0;
# +CLIP: 0; +COLP: 0; +CDIP: 0; +CLIR: 0; ^PORTSEL: 0; ^CPIN: ,;
# ^ATRECORD: 0; ^FREQLOCK: 8859956,0; ^CVOICE: 0; ^DDSETEX: 0; ^CMSR: 0;;
# ^AUTHDATA: 1,0,"",""; ^CRPN: 0,""

На часть этих настроек не нашел никакой документации. Если у кого таковая имеется — подскажите.
Обнаружились проблемы с записью в порт голосовой информации на старых одноядерных компах, им не хватает скорости чтобы уложиться в 0.02 секунды. В результате вместо голоса получаем шумы/щелчки и подвисание скрипта. Все таки perl не лучшим образом подходит для потоковой обработки аудиоданных в режиме реального времени. Возможно для операций критичных ко времени выполнения — напишу Си библиотеки и перепишу perl-модули таким образом чтобы работа шла через эти библиотеки. Другими словами backend будет на Си, а perl будет в качестве frontend-а.
по многочисленным просьбам залил все имеющиеся наработки по теме статьи на github
Sign up to leave a comment.

Articles