управления модемом через TAPI

Тема в разделе "WASM.ZEN", создана пользователем DRAHM, 2 авг 2007.

  1. DRAHM

    DRAHM New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    12
    Достоинным добра и здоровья!!!
    Есть ли у кого нибудь опыт написания прграмм для работы с модемом а то чето у меня все колом т.е. есть программка которая выводит звук с линии в колонки все нормально но через несколько минут модем виснит походу дело в настройках модема но как его настраивать не знаю.
     
  2. tender_swallow

    tender_swallow New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    45
    DRAHM
    Я рулил модемом непосредственно через AT команды. Модем у меня был внешний висел на последовательном порту. Но хочу отметить, что эта прога работала и с программными модемами на PCI, т.к. они распозновались так же как подключенные к COM порту но уже с большими индексам COM3, COM4. Таким образом я выбирал либо режим команд, либо режим передачи данных и выплевывал в порт либо AT команды либо данные соответственно.
     
  3. DRAHM

    DRAHM New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    12
    Внимание дорого.
    Пробываал я так.С начала открывал порт ( CreateFile ) у меня на модеме (внутр.) есть маленький спекер вот он при этом щелкает (также как при открыти через TAPI ) потом пишу в порт (WriteFile ) "ATDP1234"
    по идеи модем должен начать набирать номер "1234" но почему то не реагирует ни как .
    А если управлять через АТ то звук с линии уже наверно ни как не захватишь.
    А что за прога интересно на неё взглянуть ?
    Всем отдуши душевно
    Пока всё ушел.
     
  4. DRAHM

    DRAHM New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    12
    Ага тут я оду не срастуху заметил в своем примери.Так как очень мало информации о TAPI я пытаюсь методом "проб и ошибок" и случайно закоментарил
    в void CALLBACK DDf две строки "ddd=1;и ddd=0;"
     
  5. tender_swallow

    tender_swallow New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    45
    DRAHM
    По поводу проги, это была прога сбора данных от узлов учета тепловой энергии. Т.е. стояли в разных точках города тепловычислители с модемами, я написал прогу, она к ним конектилась так же по модему и собирала данные по протоколу MODBUS, затем эти данные складываются в базу данных ну и обрабатываются. Если интересно могу скинуть листинги для работы с модемом.
    А по поводу того что у тебя не пашет - возможно ты не совсем правильно работаешь с COM портом через API. Последовательность действий примерно такая:
    - Открытие порта через CreateFile (кстати, я работал в асинхронном режиме Overlapped)
    - Настройка параметорв порта через GetCommState, SetCommState, SetupComm
    - Установка таймаутов через GetCommTimeOuts, SetCommTimeouts
    - Непосредственно запись/чтение в порт WriteFile, ReadFile ()
    Поищи эти функции по MSDN, а так же структуры TDCB, TCOMMTIMEOUTS, TCOMMSTATE
    Для обмена данными рекомендую запускать отдельный поток опроса COM порта и использовать функции GetCommMask, SetCommMask, GetCommModemStatus, WaitCommEvent.

    Попробуй сначала попросту послать команду AT, он в ответ должен выдать OK.
     
  6. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Там всё куда геморней. У меня на мобиле с Windows CE есть TAPI. Так там через него можно заставить телефон звонить куда-либо программно. Думаю через это все звонки и сделаны. Взяд такую вещь к модемным командам привяжут..
     
  7. tender_swallow

    tender_swallow New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    45
    Proteus
    Ты ошибаешься. Через AT команды так же можно с легкостью организовать дозвон ATDP -тональный набор, ATDT импульсный - набор. Более того предполагаю, что приложение, взаимодействуя с модемом через TAPI, так же в результате формирует AT команды.
    Правда есть нюанс в том, что существуют стандартизированные команды, как то набор номера, а так же есть команды различающиеся от произодителя к производителю, но они, как правило, нечасто востребованы.
     
  8. al79

    al79 Алексей

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    133
    Адрес:
    Екатеринбург
    По TAPI может здесь чего нибудь нароешь:
    http://www.exceletel.com/products/TeleTools/SamplePrograms/Index.htm
    Пароль для архивов "ExceleTel"
     
  9. cavy

    cavy New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2007
    Сообщения:
    5
    а никто не подскажет как узнать, какие протоколы поддерживает модем? (используя тот же TAPI...)
     
  10. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Поспрашивать у него самого. АТ-команды зависят от марки модема, но есть те, которые поддерживаются большинством с незапамятных времён.
    ATI0 ... ATI7 - какие-то выводят марку модема, версию прошивки, макс. скорость.

    Reporting Supported Range of Parameter Values
    Command: +FCLASS=?
    Response: +FCLASS: (n range)
    Example: +FCLASS: (0, 1,1.0,8, 80)
    0 Select Data Mode (Default.)
    1 Select Facsimile Class 1 Mode
    1.0 Select Facsimile Class 1 Mode
    8 Select Voice Mode
    80 Select VoiceView Mode

    Это пожалуй основные команды, с помощью которых можно опознать модем и узнать, что он умеет. Поэкспериментируй с ними в терминале. Конкретнее надо смотреть в паспорте на модем. Если нужно, могу отмылить списки основных команд.
     
  11. cavy

    cavy New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2007
    Сообщения:
    5
    так в том то и дело что должно на всех модемах работать... ну без всякого изврата типа адсл) но за подсказку спасибо ;)