Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как определить поднятие трубки абонентом?
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
mempfis_
Добрый день.

Разбираюсь с голосовым вызовом в модеме GE864-PY
Настраиваю его так

Код
#установка параметров
AT+FCLASS=8\r        # voice call
AT#CAP=2\r          # select microphone
AT+CLVL=10\r        # level

ATD number  #voice call


После команды ATD дожидаюсь OK, а потом только или BUSY или NO CARRIER.
Момент когда подымается трубка никак не отображается в терминале.

Подскажите как можно определить поднятие трубки абонентом или что настроить в модеме чтобы он както отображал этот момент?
Поиск по списку АТ-команд ничего не дал.
Это вообще реально - определить поднятие трубки?
aaarrr
В GSM07.07 есть команда List current calls AT+CLCC, можно воспользоваться ей.
mempfis_
Цитата(aaarrr @ Jun 16 2009, 16:20) *
В GSM07.07 есть команда List current calls AT+CLCC, можно воспользоваться ей.


Спасибо, нашёл команду, правда она довольно сложная - буду разбираться с ней завтра.
Думал определения поднятия трубки можно сделать проще.
aaarrr
Да ничего сложного по большому счету, необходимость поллинга только вызывает неудобство.
MicronSys
В обще то есть замечательная команда AT+COLP=1CRLF
Данная команды отправляется модему 1 раз при инициализации.

в случае поднятия вызываемым абонентом трубки ВЫ получите какую строку
+COLP: "+xxxxxxxxxx"CRLF где ххххх - номер абонента который поднял трубку


AT+CLCC - тоже не плохая команда но с ней нужно возится, постоянно отправлять модему
Я ее лично использую после набора номера каждые 3 секунды

Просто не все телефоны AT+COLP=1CRLF воспринимают в частности Siemens C35
mempfis_
Цитата(MicronSys @ Jun 16 2009, 20:49) *
В обще то есть замечательная команда AT+COLP=1CRLF...


К сожалению эта команда не поддерживается моим модемом.
А вот AT+CLCC действительно работает. Проверил в терминале - ответ вполне понятный.
Всем спасибо, буду использовать эту команду smile.gif
Палыч
Цитата(mempfis_ @ Jun 17 2009, 10:23) *
Проверил в терминале - ответ вполне понятный.
Там есть один "подводный камень"... Параметр stat во время вызова абонента имеет значение 3. Абонент поднят трубку - значение 0. Но, если абонент, например, вне зоны действия сети или что-то подобное, то в трубке бубнит женский голос, а значение stat остаётся равным 3 (от нормального вызова невозможно отличить). Только после того, как баба в трубке своё отбубнела (секунд через 30), в ответ на AT+CLCC Вы получите просто ОК без строк +CLCC. Вот по этому ответу "ОK без +СLCC" и можно отределить, что вывоз не прошёл из-за недоступности абонента.
mempfis_
Цитата(Палыч @ Jun 17 2009, 11:14) *
Там есть один "подводный камень"... Параметр stat во время вызова абонента имеет значение 3. Абонент поднят трубку - значение 0. Но, если абонент, например, вне зоны действия сети или что-то подобное, то в трубке бубнит женский голос, а значение stat остаётся равным 3 (от нормального вызова невозможно отличить). Только после того, как баба в трубке своё отбубнела (секунд через 30), в ответ на AT+CLCC Вы получите просто ОК без строк +CLCC. Вот по этому ответу "ОK без +СLCC" и можно отределить, что вывоз не прошёл из-за недоступности абонента.


Спасибо за информацию, учту в будущем. Сейчас не стоит задача определить что абонент не ответил из-за отсутствия в сети или звонок не удался из-за недостатка денег на счету. После того "как баба в трубке своё отбубнела" мне достаточно что она ложит трубку и по NO CARRIER я могу выйти из программы звонка smile.gif
Палыч
Цитата(mempfis_ @ Jun 17 2009, 11:26) *
После того "как баба в трубке своё отбубнела" мне достаточно что она ложит трубку и по NO CARRIER я могу выйти из программы звонка
Так, NO CARRIER - и не будет...
asvp
E Telit есть команда AT#DIALMODE. Я использую AT#DIALMODE=1.
AT#DIALMODE=1
ATD....
OK - только когда трубку поднимут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.