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

затык в определении когда вызвающий положил трубку.

То есть происходит так
<вызывающий звонит на устройство>
RING
+CLIP
(проходит 6 секунд)
RING
+CLIP
(проходит 6 секунд)
RING
+CLIP
(проходит 6 секунд)
<вызывающий положил трубку>

то есть нет никакого ассинхронного события по тому, как вызывающий положил трубу. Сейчас сделал тупо: по первому +CLIP выдаем в приложение событие о входящем звонке и внутреннему счетчику назначаем к примеру 10, и посекундно вычитаем до нуля. Как новый +CLIP и счетчик = 0 то это новый входящий звонок. Но бывают ситуации (к примеру по подключению по GPRS) где приложение выдает в модем команду и пока нет результата выполнения, модем не выдает в порт ассинхронные сообщения и соотвественно счетчик обнуляется и при текущем звонке ловим как бы новое событие.

Жаль что Extended Call Monitoring (AT#ECAM) тоже не видит отваливание вызвающего

Есть вариант 2:
по первому CLIP делать опрос CCLC и тут ловить. Но на кооперативной ОСьке = конечных автоматах это такой ужос городить надо


Есть еще варианты ?
CADiLO
CLCC конечно более правильно - оно на каждый чих меняется. Но если нет автовыдачи по изменению события, то тогда только опрашивать.
=F8=
Если хотите точно знать в каком состоянии находится в данный момент модуль то других вариантов кроме периодического опроса CLCC нет.
sobr
Цитата(=F8= @ Jul 9 2012, 21:28) *
Если хотите точно знать в каком состоянии находится в данный момент модуль то других вариантов кроме периодического опроса CLCC нет.

...Или использовать OpenAT
molecul
Цитата(sobr @ Jul 9 2012, 20:16) *
...Или использовать OpenAT

В данной ситуации и Python'ом можно обойтись. Не бог весть какая сложная задача.
_Артём_
Цитата(molecul @ Jul 11 2012, 12:35) *
В данной ситуации и Python'ом можно обойтись. Не бог весть какая сложная задача.


А что CLCC позволит определить что трубка положена противоположной стороной?
И при установленном соединении тоже?
molecul
Цитата(_Артём_ @ Jul 11 2012, 13:41) *
А что CLCC позволит определить что трубка положена противоположной стороной?
И при установленном соединении тоже?

+CLCC позволяет определить состояние вызова (при его наличии)
Соответственно, если
at+clcc

OK
то трубку повесили. Если до этого был RING, значит трубку повесила вызывающая сторона.
CADiLO
О как.
Странно, а я всегда думал что в CLCC состояние показывает параметр <stat>.
Кстати у Telit не увидел stat = 6 Это как раз Disconnect

[+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>]

<idx> 1..7 Call identification number
This number can be used in +CHLD command operations

<dir> 0 Mobile originated (MO) call
1 Mobile terminated (MT) call

<stat> State of the call:
0 Active
1 Held
2 Dialing (MO call)
3 Alerting (MO call)
4 Incoming (MT call)
5 Waiting (MT call)
6 Disconnect

<mode> Bearer/tele service:
0 Voice
1 Data
2 Fax

<mpty> 0 Call is not one of multiparty (conference) call parties
1 Call is one of multiparty (conference) call parties

<number> String type (string should be included in quotation marks) phone number in format specified by <type>.

<type> Type of address

<alphaId> String type (string should be included in quotation marks) alphanumeric representation of <number>
corresponding to the entry found
in phone book.
molecul
Цитата(CADiLO @ Jul 11 2012, 14:14) *
О как.
Странно, а я всегда думал что в CLCC состояние показывает параметр <stat>.
Кстати у Telit не увидел stat = 6 Это как раз Disconnect

[+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>]

<idx> 1..7 Call identification number
This number can be used in +CHLD command operations

<dir> 0 Mobile originated (MO) call
1 Mobile terminated (MT) call

<stat> State of the call:
0 Active
1 Held
2 Dialing (MO call)
3 Alerting (MO call)
4 Incoming (MT call)
5 Waiting (MT call)
6 Disconnect

<mode> Bearer/tele service:
0 Voice
1 Data
2 Fax

<mpty> 0 Call is not one of multiparty (conference) call parties
1 Call is one of multiparty (conference) call parties

<number> String type (string should be included in quotation marks) phone number in format specified by <type>.

<type> Type of address

<alphaId> String type (string should be included in quotation marks) alphanumeric representation of <number>
corresponding to the entry found
in phone book.

Согласно ETSI TS 127 007, <stat> имеет только 5 состояний:
0 active
1 held
2 dialing (MO call)
3 alerting (MO call)
4 incoming (MT call)
5 waiting (MT call)

Так что 6 - это от лукавого wink.gif (Симкома то бишь)
Впрочем, этот спор уже с вами был полгода назад sm.gif
CADiLO
Но операторы то его выдают.... Пусть и от лукавого, но оно существует и используется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.