Форум: "Потрепаться";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];
ВнизМодем, АОН Найти похожие ветки
← →
Suharew (2003-03-11 18:47) [0]Как на Delphi реализовать ф-цию АОН`а. У кого есть исходники?или подскажите документацию
← →
Fredericco (2003-03-11 19:33) [1]Так же как и на других языках :-)
Сначала даешь команду модему что бы он определял номер при сигнале вызова на линии. Убедись что модем поддерживает данную функцию (АОН), так как именно он номер и определяет. Далее при сигнале вызова модем снимает трубку, дает тебе в порт комманду RING, АТС сообщает модему, после снятия трубки, номер абонента либо трелью (которую ты наверное часто слышал) либо другими способами. После снятия трубки модем выдает в линию характерные длинные гудки, что бы на том конце провода не догадались что трубку уже сняли, так что когда вообще кому-то звонишь после того как "щелкнул" АОН, а гудки все еще идут, не спеши сквернословить в трубку - там могут слышать. Когда АТС сообщила все инфу о звонившем модему, он кладет ее в свой регистр (его память), и , зараза, редкая модель модема тебя об этом оповещает. Далее специальной коммандой модему запрашиваешь у него состояние этого самого регистра. Определяешь номер, и даешь комманду, что бы модем больше не дурачил людей на той стороне. Все. Комманды для твоего модема смотри в иненте. Разные фирмы производители модемов - отличающиеся комманды, но как правило не очень.
← →
Vad (2003-03-12 02:27) [2]To:Fredericco ©
Ну и нагородил! :-)
To:Suharew ©
Зависит от того какой модем.
← →
Suharew (2003-03-12 10:19) [3]Модем Zyxel с поддержкой АОН`а.
А по конкретней, ни укого нет? ну там примерчик (хотябы на примере другого модема). Или документации.
С меня пиво.
← →
Fredericco (2003-03-12 10:31) [4]1. Тебе нужна работа с СОМ портом. Или в ручную, или ищи компонент. Лично я пользуюсь TComPortDriver.
2. Открываешь порт на максимальной скорости, которую поддерживает модем. Шлешь в порт строку и ничего более (регистр имеет значение), что-то вроде "ATN1" или "ATN0". Где 0 - выкл. АОНа, а 1 - вкл. АОНа. Какая точно комманда смотри САМ. Если все хорошо, модем вернет тебе в порт "OK".
3. Спустя 2-3 сек. после того как модем снял трубку шли ему комманду на запрос определившегося номера. Какая точно комманда смотри САМ. Модем тебе вернет все что надо. Если номер не определился, модем тебе прямо об этом и скажет.
Короче ищи доки по твоему зюхелю в инете их полно. Или ищи компонент, но это не интереснее VML.
ЗЫ: Работать с модемом не трудно. Можешь вполне обойтись без стороннего компонента.
← →
Max (2003-03-12 11:22) [5]
ResetEvent(Modem.RingEvent);
Modem.Command("ATL1M2N7+FCLASS=8+VGT=255+VNH=1+VRA=0+FLO=0"#13);
if WaitForResponse(2000) <> MODEM_READY then Exit;
Modem.Command("ATA"#13);
if WaitForResponse(5000) <> MODEM_READY then
begin
LogEvent("Ошибка !!!");
end;
s := Modem.Answer;
//***************************
while pos("VCON",s) = 0 do
begin
s := Modem.Answer;
end;
Modem.PhoneNumber := copy(S, Pos("CALLER""S NUMBER:", S)+17, 7);
if copy(Modem.PhoneNumber, 1, 1) = "?" then Modem.PhoneNumber := "XXXXXXX";
try
LogEvent("Звонок с номера: "+ Modem.PhoneNumber);
except
end;
← →
Max (2003-03-12 11:25) [6]Строка инициализации для зухеля.
Modem.Command("ATZE0N7L7S41.4=1S42.6=1"#13);
← →
Suharew (2003-03-12 11:48) [7]to: max
переменные Modem и S какого типа,
еще ведь надо наверное какойто модуль подключать?
И что такое LogEvent
← →
max_ (2003-03-12 16:14) [8]Я тебе пример из рабочей проги вырвал!
S соответственно String
A Modem это созданный в другом модуле объект!
Не лезь в дебри моей проги!
Тебе нужен был пример - вот пример!
Тебя интересуют только:
Modem.Command("ATL1M2N7+FCLASS=8+VGT=255+VNH=1+VRA=0+FLO=0"#13);
Modem.Command("ATA"#13);
Modem.PhoneNumber := copy(S, Pos("CALLER""S NUMBER:", S)+17, 7);
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c