Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Oxy Member
Зарегистрирован: 03.03.2004 Сообщения: 175 Откуда: Киев
|
Добавлено: Сб Апр 22, 2006 7:07 pm Заголовок сообщения: Требуются скрытые возможности драйвера модема :) |
|
|
Ситуация следующая.
Модем настроен на разрыв соединения по Call Waiting.
Однако есть необходимость в том, чтобы Call Waiting был включен только во время сеанса модемной связи, а всё остальное время -- отключен.
АТС предполагает для этого команды:
вкл==*43# и выкл==#43#
После ввода комманды выдается DialTone, но дальнейший набор АТС НЕ воспринимает! (особенность АТС )
Т.е., чтобы набрать номер, необходимо сначала сбросить линию.
В итоге, номер выглядит так: *43#!w1234567
Здесь выкрутились Но нужно еще каким-то способом отключить CW после разрыва соединения
Вот я и подумал: драйвер ведь собирает статистику по завершении сеанса, т.е. дает модему команду #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 |
|
Вернуться к началу |
|
|
Oxy Member
Зарегистрирован: 03.03.2004 Сообщения: 175 Откуда: Киев
|
Добавлено: Пн Апр 24, 2006 6:45 am Заголовок сообщения: |
|
|
Technical Support писал(а): | TAPI переинициализирует модем после сеанса связи |
Не верю
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.
А вот и ракообразный выход из ситуации:
Цитата: |
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 более терпелив Но не на много, ибо комманда H после ; уже "не помещается"
Еще один неприятный момент: при таком решении теряется статистика реального сеанса связи (Last dialed number==T#43#; )
Это можно как-то побороть
Цитата: | Попробуйте также проконсультироваться в Microsoft. |
Видимо, в конце предложения пропущено: " "
PS
Впрочем, нашел выход: доверил эту миссию ModemSPD (добавил нужную команду в конец сторки сбора статистики) |
|
Вернуться к началу |
|
|
Technical Support Expert
Зарегистрирован: 31.10.2002 Сообщения: 6330
|
Добавлено: Пн Апр 24, 2006 8:00 am Заголовок сообщения: |
|
|
Цитата: | Цитата: | Попробуйте также проконсультироваться в Microsoft. |
Видимо, в конце предложения пропущено: " " |
TAPI - продукт Microsoft. Они пытались предусмотреть возможность отключения Call Waiting при совершении звонков к провайдеру (соотв. опции есть в настройках модема), но в Вашем случае предлагаемое Microsoft решение не работает из-за особенностей Вашей АТС. Поэтому вполне разумно обратиться к ним с просьбой помочь решить проблему.
Теперь по поводу "терпеливости": дело в особенностях работы команды ATD. Если при получении этой команды модем находится в положении on-hook (трубка положена), то перед набором номера модем либо ожидает непрерывный гудок (в режиме X4, например), либо выдерживает паузу, задаваемую регистром S6 (режим X3). Так или иначе, есть задержка, пауза между моментом снятия трубки и началом набора номера.
Если же модем находится в положении off-hook (трубка снята), то набор номера начинается немедленно по получению ATD. Так сделано для удобства выполнения "составных" команд набора номера:
atdt1234567;
OK
(модем набрал номер и вернулся в командный режим, трубка снята)
atdt7654321
(модем набирает 7654321 и пытается соединиться)
Вы же столкнулись с побочным эффектом данного подхода: при выполнении ATD после ATH1 набор номера начинается немедленно и следовательно, заканчивается раньше (чем у TAPI заканчивается "терпение")
Решение с помощью MODEMSPD было отвергнуто по той причине, что программа может не всегда получать управление. Например, если Вы отменяете набор номера, или если после сеанса "вклинивается" другое приложение (Ventafax). Поэтому, чтобы обеспечить гарантированное включение Call Waiting, нужно это делать из того же процесса, который его (Call Waiting) отключал, т.е. TAPI. Так что придётся Вам обсуждить вопрос с Microsoft. _________________ Inpro
Technical Support |
|
Вернуться к началу |
|
|
Oxy Member
Зарегистрирован: 03.03.2004 Сообщения: 175 Откуда: Киев
|
Добавлено: Вт Апр 25, 2006 12:53 am Заголовок сообщения: |
|
|
Technical Support писал(а): | Решение с помощью MODEMSPD было отвергнуто по той причине, что программа может не всегда получать управление |
Хм, но ведь это единственное решение, при котором не теряется статистика сеанса!
А вопрос с TAPI, в принципе, решен: "ракообразный" вариант работает
Единственное, о чем можно просить Мелкомягких -- посылать модему код отключения CW уже после #UD. Но это не решит проблему потери статистики для ModemSPD/IDCdiag
Разве что, если ModemSPD интегрируют в TAPI
А посему, вопрос к вам: можно ли как-нибудь набрать в линию код отключения CW, не потеряв при этом статистику? |
|
Вернуться к началу |
|
|
Technical Support Expert
Зарегистрирован: 31.10.2002 Сообщения: 6330
|
Добавлено: Вт Апр 25, 2006 7:27 am Заголовок сообщения: |
|
|
Цитата: | Хм, но ведь это единственное решение, при котором не теряется статистика сеанса! |
Кроме варианта, который мог бы предложить Microsoft. И ещё, тут Вам нужно принять решение, что важнее: сбор статистики или включение Call Waiting.
Цитата: | можно ли как-нибудь набрать в линию код отключения CW, не потеряв при этом статистику? |
Никак нельзя. Набор номера "открывает" следующий сеанс связи; при этом статистика предыдущего сеанса теряется. _________________ Inpro
Technical Support |
|
Вернуться к началу |
|
|
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. |
Ги-ги, и что ж такого интересного по вашему мог бы придумать дядя Билли, даже за бутылкой хорошей водки Моей фантазии хватило лиш на интеграцию с ModemSPD...
А банально подшивать статистику к логу -- не красиво. Лог и так содержит массу избыточной информации, а его длина ограничена 256Кб (в Win 9x)
После ModemSPD на такое даже смотреть не хочется!
Technical Support писал(а): |
И ещё, тут Вам нужно принять решение, что важнее: сбор статистики или включение Call Waiting.
|
Да, неприятная дилема
Technical Support писал(а): |
Цитата: | можно ли как-нибудь набрать в линию код отключения CW, не потеряв при этом статистику? |
Никак нельзя. Набор номера "открывает" следующий сеанс связи; при этом статистика предыдущего сеанса теряется. |
Очень жаль
Дело в том, что такое поведение АТС, похоже, является нормой для Украины. По крайней мере, в Киеве я пока не встречал АТС, которые бы позволяли продолжить набор после отключения CW. Да и в официальной инструкции УкрТелекома недвусмыслено говорится о необходимости повесить трубку после переключения режима услуги.
В связи с этим, к вам просьба: предусмотрите, пожалуйста, возможность набора номера без открытия нового сеанса (модификатор для ATD и т.п.) |
|
Вернуться к началу |
|
|
Technical Support Expert
Зарегистрирован: 31.10.2002 Сообщения: 6330
|
Добавлено: Чт Апр 27, 2006 7:06 am Заголовок сообщения: |
|
|
Цитата: | Дело в том, что такое поведение АТС, похоже, является нормой для Украины. |
И это повышает шансы на успех. Вы не будете просить Microsoft в одиночку!
Цитата: | В связи с этим, к вам просьба: предусмотрите, пожалуйста, возможность набора номера без открытия нового сеанса (модификатор для ATD и т.п.) |
Нужно посмотреть, как поступит Microsoft, и потом подстроиться под их решение. Один из вариантов - отложить очистку статистики до получения команды ATD без модификатора ';'. _________________ Inpro
Technical Support |
|
Вернуться к началу |
|
|
Oxy Member
Зарегистрирован: 03.03.2004 Сообщения: 175 Откуда: Киев
|
Добавлено: Пт Апр 28, 2006 2:27 am Заголовок сообщения: |
|
|
Technical Support писал(а): |
Нужно посмотреть, как поступит Microsoft, и потом подстроиться под их решение. |
А чего им решать то Ведь мы уже сами всё решили: благополучно внедрились в ATH
Цитата: |
Один из вариантов - отложить очистку статистики до получения команды ATD без модификатора ';'. |
Отличный вариант! И это всё, что требуется
И ни каких "подводных камней" вроде не видать |
|
Вернуться к началу |
|
|
Technical Support Expert
Зарегистрирован: 31.10.2002 Сообщения: 6330
|
Добавлено: Пт Апр 28, 2006 7:38 am Заголовок сообщения: |
|
|
Цитата: | А чего им решать то? Ведь мы уже сами всё решили: благополучно внедрились в ATH |
Во-первых, это достаточно "кривое" решение: при наличии "фирменной" опции отключения Call Waiting в TAPI приходится править .INF-файл. Если временно отключать Call Waiting не нужно (пользуетесь ноутбуком и переехали на другую АТС) - опять надо править .INF
Во-вторых, есть временные ограничения на исполнение команды ATH (и всего того, что Вы впишете в этот ключ вместо ATH). Отключение проверки dialtone за счёт ATH1Dxxx - не выход, поскольку нет уверенности в том, что АТС восприняла выданную модемом команду на включение Call Waiting (иногда АТС "запаздывают" с выдачей dialtone и следовательно, не способны принимать набор номера/команды).
Так что нынешнее решение можно воспринимать лишь как временную меру. _________________ Inpro
Technical Support |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|