Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 08:01   #1
Slippy
Пользователь
 
Аватар для Slippy
 
Регистрация: 29.12.2010
Сообщений: 55
По умолчанию GSM-модем: передача аудио

Есть GSM-модем (Huawei), подключенный к COM-порту компа, при помощи AT-комманд написал на дельфи программку, посылающую вызов на указанный номер. Всё нормально коннектится, но вот по следующему вопросу совсем нет идей — как организовать, собственно, передачу и приём голоса? Реально ли это вообще и, если да, в каком направлении копать?

Заранее спасибо.
Теория – это когда все известно, но ничего не работает. Практика – это когда все работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает и никто не знает почему ©
Slippy вне форума Ответить с цитированием
Старый 13.01.2011, 10:40   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...а в вашем модеме есть голосовые функции ? ...к примеру, как в Huawei e1550, телепатируйте название?

Если все так, то:
1- изучаете спецификацию на ваш голосовой модем (в разных по-разному может выглядеть инициализация)
2- у вас должен быть файлик WAV формат PCM/8 кГц/16 бит/моно (собственно, можно выбирать тот кодек, который поддерживается вашим модемом, это может быть G.721 ADPCM или IMA ADPCM и т.п.)
3- далее передаете в COM порт следующее, организуете буфер с ожиданием ответа!:
Код:
// далее приведены ориентировочные команды, для вашего модема они могут быть другими
AT+FCLASS=8 
AT+VSM=130,8000,0,0
AT+VSD=128,50
AT+VLS=1
ATDT0505934138;
AT+VTX = ваш путь\голос.wav
Цитата:
После ввода команды #VTX и получения ответа CONNECT можно передавать в
модем голосовые данные на устройство вывода, указанное командой #VLS в
соответствующем формате (см. #VSM). Для передачи данных в формате GSM,
необходимо сформировать 38-байтовые GSM-кадры (как было указано выше) и
передавать их в модем. Если передаваемые данные находятся в PCM-формате
(например, обычный WAV-файл), то необходимо с помощью специального кодера
перекодировать их в формат GSM.
Для того, чтобы окончить вопроизведение голосовых данных, необходимо
послать в модем символьную пару <DLE><ETX>. После чего модем выдаст ответ
(VCON) и возвратится в голосовой командный режим.
смысл ясен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.01.2011, 11:16   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

А можно я спрошу, может глупость, но мне действительно интересно.
В чем смысл этой команды?

Цитата:
AT+VTX = ваш путь\голос.wav
Как я понимаю, АТ команды обрабатываются внутри модема. И что ему делать с переданным путём в другой мир?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 13.01.2011, 11:31   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

верно, только понимать нужно так (см. цитату выше): после отсылки VTX придет ответ "CONNECT", далее вы просто шлете в COM порт фреймы аудио в формате GSM/

http://www.usrsupport.ru/usrobotics/support/vm3.shtml
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.01.2011, 11:36   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Т.е. это чистая формальность, можно передать любой путь и дальше слать аудио фреймы например сразу со звуковой карты?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 13.01.2011, 11:56   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

нет, имеется ввиду, что после VTX нужно послать ввод, дождаться ответа "Connect" и слать данные из своего файла "путь/голос.wav"/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.01.2011, 11:57   #7
Slippy
Пользователь
 
Аватар для Slippy
 
Регистрация: 29.12.2010
Сообщений: 55
По умолчанию

raxp, Спасибо за ответ, буду разбираться =)

Код:
...а в вашем модеме есть голосовые функции ? ...к примеру, как в Huawei e1550
Да, у меня именно эта модель.

А еще вот такой вопрос, почитал про виндовский Telephony API - если я правильно понял по описанию, с его помощью можно решить ту же задачу. Может проще будет, чем напрямую с COM-портом общаться?
Теория – это когда все известно, но ничего не работает. Практика – это когда все работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает и никто не знает почему ©
Slippy вне форума Ответить с цитированием
Старый 13.01.2011, 12:03   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
нет, имеется ввиду, что после VTX нужно послать ввод, дождаться ответа "Connect" и слать данные из своего файла "путь/голос.wav"/
Т.е. чистая формальность, ясно ) Или модем будет проверять, откуда я беру фреймы, и если вдруг не из этого файла, то откажется передавать )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 13.01.2011, 12:08   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
А еще вот такой вопрос, почитал про виндовский Telephony API ...
как вам сказать, эту службу еще активировать нужно (не на каждой винде будет активна), да и чего уж проще, чем просто с COM портом работать, не заморачиваясь дополнительными API

...а вот, представьте себе, что перед вами встала задача работы с голосовым модемом из своего устройства-контроллера, винды там нет, следовательно службы TAPI тоже (не брать же в самом деле из-за этого ARM проц ...кстати, по последним новостям мелкософт уже показала полноценный, не CE, виндовс на ARM проце), а так на любой тиньке работаете с UART, прикошачили (вроде год кота ) карточку MMC, на ней ваши WAV-ки и все. Или вы вообще не под виндой, а под каким-нить линуксом и вам поставили задачу работы с голосовым модемом. Т.е. первое решение, кроссплатформеннее что-ли.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 13.01.2011 в 12:11.
raxp вне форума Ответить с цитированием
Старый 17.01.2011, 16:59   #10
Slippy
Пользователь
 
Аватар для Slippy
 
Регистрация: 29.12.2010
Сообщений: 55
По умолчанию

Что то уже целую кучу интернетов перерыл. Но никак не могу найти команды управления голосовыми функциями в e1550.. Пробовал от кучи других модемов - мой на всё ругается.

Реализовать голосовую связь 100% должно быть возможно с этим девайсом, т.к. через стандартную софтину Huawei я с него легко звонил на свою мобилу. Может у кого получалось?
Теория – это когда все известно, но ничего не работает. Практика – это когда все работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает и никто не знает почему ©
Slippy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация выхода в Интернет через GSM модем blazonic Общие вопросы .NET 5 16.05.2011 09:55
Нужно привязать любой GSM модем к Win CE6.0 kostya.spbb Windows 3 25.06.2010 12:08
Дельфисты с GSM модемами puzik_off Компьютерное железо 4 22.04.2010 15:24
передача голоса в телефонную линию через модем посредством звуковой карты borysandrew Общие вопросы Delphi 1 21.03.2010 22:55
GSM - шлюз snake-as Свободное общение 3 01.04.2008 14:50