©2002, INPRO Development Corporation
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход

Требуются скрытые возможности драйвера модема :)

 
Начать новую тему   Ответить на тему    Список форумов Форум по модемам IDC -> General
Предыдущая тема :: Следующая тема  
Автор Сообщение
Oxy
Member


Зарегистрирован: 03.03.2004
Сообщения: 175
Откуда: Киев

СообщениеДобавлено: Сб Апр 22, 2006 7:07 pm    Заголовок сообщения: Требуются скрытые возможности драйвера модема :) Ответить с цитатой

Ситуация следующая.
Модем настроен на разрыв соединения по Call Waiting.
Однако есть необходимость в том, чтобы Call Waiting был включен только во время сеанса модемной связи, а всё остальное время -- отключен.
АТС предполагает для этого команды:
вкл==*43# и выкл==#43#
После ввода комманды выдается DialTone, но дальнейший набор АТС НЕ воспринимает! (особенность АТС Question)
Т.е., чтобы набрать номер, необходимо сначала сбросить линию.
В итоге, номер выглядит так: *43#!w1234567
Здесь выкрутились Smile Но нужно еще каким-то способом отключить CW после разрыва соединения Confused
Вот я и подумал: драйвер ведь собирает статистику по завершении сеанса, т.е. дает модему команду #ud
А как можно заменить эту команду на более полезную (#43#wh) ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Сб Апр 22, 2006 9:06 pm    Заголовок сообщения: Ответить с цитатой

Насколько мы знаем, команда at#ud "намертво зашита" в TAPI. Можно попробовать вставить нужную команду куда-нибудь в ATH или в последовательность инициализации модема (TAPI переинициализирует модем после сеанса связи). Конечно, выглядеть всё это будет довольно странно: сначала включаем Call Waiting при инициализации, затем отключаем его для звонка), но пока лучшего решения не видно.

Попробуйте также проконсультироваться в Microsoft.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Oxy
Member


Зарегистрирован: 03.03.2004
Сообщения: 175
Откуда: Киев

СообщениеДобавлено: Пн Апр 24, 2006 6:45 am    Заголовок сообщения: Ответить с цитатой

Technical Support писал(а):
TAPI переинициализирует модем после сеанса связи

Question Не верю Wink

Technical Support писал(а):
Можно попробовать вставить нужную команду куда-нибудь в ATH

Что-то не выходит
Нетерпеливый какой-то этот TAPI: до "Retrying..."модем успевает лишь снять трубку
Цитата:

04-24-2006 05:44:03.70 - Hanging up the modem.
04-24-2006 05:44:03.70 - Hardware hangup by lowering DTR.
04-24-2006 05:44:05.38 - Recv: <cr><lf>NO CARRIER<cr><lf>
04-24-2006 05:44:05.38 - Interpreted response: No Carrier
04-24-2006 05:44:05.38 - Send: ATH<cr>
04-24-2006 05:44:05.38 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 05:44:05.38 - Interpreted response: Ok
04-24-2006 05:44:05.38 - Send: ate1<cr>
04-24-2006 05:44:05.38 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 05:44:05.38 - Interpreted response: Ok
04-24-2006 05:44:05.38 - Send: atdt#43#;<cr>
04-24-2006 05:44:05.38 - Recv: atdt#43#;<cr>
04-24-2006 05:44:08.38 - Recv: <no response>
04-24-2006 05:44:08.38 - WARNING: Unrecognized response. Retrying...
04-24-2006 05:44:08.38 - Send: atdt#43#;<cr> -- Эха нет! -> OK от предыдущей комманды?
04-24-2006 05:44:10.39 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 05:44:10.39 - Interpreted response: Ok
04-24-2006 05:44:10.39 - Send: ath<cr>
04-24-2006 05:44:10.39 - Recv: ath<cr>
04-24-2006 05:44:10.39 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 05:44:10.39 - Interpreted response: Ok

При этом статистике модема Termination Reason==KEY ABORT, что подтверждает торопливость TAPI.

А вот и ракообразный выход из ситуации: Smile
Цитата:

04-24-2006 06:11:58.52 - Hanging up the modem.
04-24-2006 06:11:58.52 - Hardware hangup by lowering DTR.
04-24-2006 06:12:00.15 - Recv: <cr><lf>NO CARRIER<cr><lf>
04-24-2006 06:12:00.15 - Interpreted response: No Carrier
04-24-2006 06:12:00.15 - Send: ATH1<cr>
04-24-2006 06:12:01.03 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 06:12:01.03 - Interpreted response: Ok
04-24-2006 06:12:01.03 - Send: ate1<cr>
04-24-2006 06:12:01.03 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 06:12:01.03 - Interpreted response: Ok
04-24-2006 06:12:01.03 - Send: atdt#43#;<cr>
04-24-2006 06:12:01.03 - Recv: atdt#43#;<cr>
04-24-2006 06:12:03.40 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 06:12:03.40 - Interpreted response: Ok
04-24-2006 06:12:03.40 - Send: ath<cr>
04-24-2006 06:12:03.40 - Recv: ath<cr>
04-24-2006 06:12:04.96 - Recv: <cr><lf>OK<cr><lf>
04-24-2006 06:12:04.96 - Interpreted response: Ok
04-24-2006 06:12:04.96 - 115200,N,8,1

Выходит, что при снятой трубке TAPI более терпелив Smile Но не на много, ибо комманда H после ; уже "не помещается"

Еще один неприятный момент: при таком решении теряется статистика реального сеанса связи (Last dialed number==T#43#; )
Это можно как-то побороть Question

Цитата:
Попробуйте также проконсультироваться в Microsoft.

Видимо, в конце предложения пропущено: "Very Happy Very Happy Very Happy"

PS
Впрочем, нашел выход: доверил эту миссию ModemSPD (добавил нужную команду в конец сторки сбора статистики) Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Пн Апр 24, 2006 8:00 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Цитата:
Попробуйте также проконсультироваться в Microsoft.

Видимо, в конце предложения пропущено: "Very Happy Very Happy Very Happy"


TAPI - продукт Microsoft. Они пытались предусмотреть возможность отключения Call Waiting при совершении звонков к провайдеру (соотв. опции есть в настройках модема), но в Вашем случае предлагаемое Microsoft решение не работает из-за особенностей Вашей АТС. Поэтому вполне разумно обратиться к ним с просьбой помочь решить проблему.

Теперь по поводу "терпеливости": дело в особенностях работы команды ATD. Если при получении этой команды модем находится в положении on-hook (трубка положена), то перед набором номера модем либо ожидает непрерывный гудок (в режиме X4, например), либо выдерживает паузу, задаваемую регистром S6 (режим X3). Так или иначе, есть задержка, пауза между моментом снятия трубки и началом набора номера.

Если же модем находится в положении off-hook (трубка снята), то набор номера начинается немедленно по получению ATD. Так сделано для удобства выполнения "составных" команд набора номера:

atdt1234567;
OK

(модем набрал номер и вернулся в командный режим, трубка снята)

atdt7654321

(модем набирает 7654321 и пытается соединиться)

Вы же столкнулись с побочным эффектом данного подхода: при выполнении ATD после ATH1 набор номера начинается немедленно и следовательно, заканчивается раньше (чем у TAPI заканчивается "терпение") Smile

Решение с помощью MODEMSPD было отвергнуто по той причине, что программа может не всегда получать управление. Например, если Вы отменяете набор номера, или если после сеанса "вклинивается" другое приложение (Ventafax). Поэтому, чтобы обеспечить гарантированное включение Call Waiting, нужно это делать из того же процесса, который его (Call Waiting) отключал, т.е. TAPI. Так что придётся Вам обсуждить вопрос с Microsoft.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Oxy
Member


Зарегистрирован: 03.03.2004
Сообщения: 175
Откуда: Киев

СообщениеДобавлено: Вт Апр 25, 2006 12:53 am    Заголовок сообщения: Ответить с цитатой

Technical Support писал(а):
Решение с помощью MODEMSPD было отвергнуто по той причине, что программа может не всегда получать управление

Хм, но ведь это единственное решение, при котором не теряется статистика сеанса!

А вопрос с TAPI, в принципе, решен: "ракообразный" вариант работает Smile
Единственное, о чем можно просить Мелкомягких -- посылать модему код отключения CW уже после #UD. Но это не решит проблему потери статистики для ModemSPD/IDCdiag Sad
Разве что, если ModemSPD интегрируют в TAPI Very Happy

А посему, вопрос к вам: можно ли как-нибудь набрать в линию код отключения CW, не потеряв при этом статистику? Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Вт Апр 25, 2006 7:27 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Хм, но ведь это единственное решение, при котором не теряется статистика сеанса!


Кроме варианта, который мог бы предложить Microsoft. И ещё, тут Вам нужно принять решение, что важнее: сбор статистики или включение Call Waiting.

Цитата:
можно ли как-нибудь набрать в линию код отключения CW, не потеряв при этом статистику?


Никак нельзя. Набор номера "открывает" следующий сеанс связи; при этом статистика предыдущего сеанса теряется.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Andrey V.Panukov
Member


Зарегистрирован: 30.06.2004
Сообщения: 40
Откуда: Syktyvkar

СообщениеДобавлено: Вт Апр 25, 2006 10:49 am    Заголовок сообщения: Ответить с цитатой

Можно выкрутиться программным методом.
Ждать сообщения о разъединении через RasConnectionNotification,
а затем набрать через TAPI номер #43#WH
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Oxy
Member


Зарегистрирован: 03.03.2004
Сообщения: 175
Откуда: Киев

СообщениеДобавлено: Чт Апр 27, 2006 2:17 am    Заголовок сообщения: Ответить с цитатой

Technical Support писал(а):
Цитата:
Хм, но ведь это единственное решение, при котором не теряется статистика сеанса!


Кроме варианта, который мог бы предложить Microsoft.

Ги-ги, и что ж такого интересного по вашему мог бы придумать дядя Билли, даже за бутылкой хорошей водки Question Very Happy Моей фантазии хватило лиш на интеграцию с ModemSPD...
А банально подшивать статистику к логу -- не красиво. Лог и так содержит массу избыточной информации, а его длина ограничена 256Кб (в Win 9x)
После ModemSPD на такое даже смотреть не хочется!
Technical Support писал(а):

И ещё, тут Вам нужно принять решение, что важнее: сбор статистики или включение Call Waiting.

Да, неприятная дилема Sad

Technical Support писал(а):

Цитата:
можно ли как-нибудь набрать в линию код отключения CW, не потеряв при этом статистику?


Никак нельзя. Набор номера "открывает" следующий сеанс связи; при этом статистика предыдущего сеанса теряется.

Очень жаль Sad
Дело в том, что такое поведение АТС, похоже, является нормой для Украины. По крайней мере, в Киеве я пока не встречал АТС, которые бы позволяли продолжить набор после отключения CW. Да и в официальной инструкции УкрТелекома недвусмыслено говорится о необходимости повесить трубку после переключения режима услуги.

В связи с этим, к вам просьба: предусмотрите, пожалуйста, возможность набора номера без открытия нового сеанса (модификатор для ATD и т.п.)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Чт Апр 27, 2006 7:06 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Дело в том, что такое поведение АТС, похоже, является нормой для Украины.


И это повышает шансы на успех. Вы не будете просить Microsoft в одиночку!

Цитата:
В связи с этим, к вам просьба: предусмотрите, пожалуйста, возможность набора номера без открытия нового сеанса (модификатор для ATD и т.п.)


Нужно посмотреть, как поступит Microsoft, и потом подстроиться под их решение. Один из вариантов - отложить очистку статистики до получения команды ATD без модификатора ';'.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Oxy
Member


Зарегистрирован: 03.03.2004
Сообщения: 175
Откуда: Киев

СообщениеДобавлено: Пт Апр 28, 2006 2:27 am    Заголовок сообщения: Ответить с цитатой

Technical Support писал(а):

Нужно посмотреть, как поступит Microsoft, и потом подстроиться под их решение.

А чего им решать то Question Ведь мы уже сами всё решили: благополучно внедрились в ATH Smile
Цитата:

Один из вариантов - отложить очистку статистики до получения команды ATD без модификатора ';'.

Отличный вариант! И это всё, что требуется Wink
И ни каких "подводных камней" вроде не видать Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Technical Support
Expert


Зарегистрирован: 31.10.2002
Сообщения: 6330

СообщениеДобавлено: Пт Апр 28, 2006 7:38 am    Заголовок сообщения: Ответить с цитатой

Цитата:
А чего им решать то? Ведь мы уже сами всё решили: благополучно внедрились в ATH


Во-первых, это достаточно "кривое" решение: при наличии "фирменной" опции отключения Call Waiting в TAPI приходится править .INF-файл. Если временно отключать Call Waiting не нужно (пользуетесь ноутбуком и переехали на другую АТС) - опять надо править .INF Sad

Во-вторых, есть временные ограничения на исполнение команды ATH (и всего того, что Вы впишете в этот ключ вместо ATH). Отключение проверки dialtone за счёт ATH1Dxxx - не выход, поскольку нет уверенности в том, что АТС восприняла выданную модемом команду на включение Call Waiting (иногда АТС "запаздывают" с выдачей dialtone и следовательно, не способны принимать набор номера/команды).

Так что нынешнее решение можно воспринимать лишь как временную меру.
_________________
Inpro
Technical Support
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Форум по модемам IDC -> General Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group

Created this page in 0.030973 seconds : 16 queries executed : GZIP compression enabled : Debug Mode

©2002, INPRO Development Corporation

Rambler's Top100