PDA

Просмотр полной версии : GSM. Определить факт снятия трубы абонентом



Rett Pop
03.08.2005, 14:27
Memento mori, All!

Имеется задача определить момент снятия трубы абонентом при прозвонке на него GSM-модемом. Модем - Sony Ericsson GR-47. Условие - не использовать расширенные команды. Токмо стандартными.
Момент снятия трубы вообще легко определяется через AT+CPAS. Но трабла в том, что снять трубу может оператор со словами "Вне зоны досягаемости", "Пополните счет" и т.д. Можно ли каким-то образом определить, что трубу снял не оператор, а именно абонент?

cONST
24.11.2005, 21:59
Ни разу не работал с GSM модемами, но попробую рассказать что знаю о GSM связи и ей подобных протоколах соединения. Возможно, каким-то образом поможет. Если нет - прошу прощения за оффтоп.

В общем, GSM использует сигналлизацию подобную DSS1 (рекомендация ITTU Q.931). Кажется, там поверх MAP эмулируется сигналлизация ISUP (см. рекомендации на SS7).

Так вот - согласно последней когда вызывающий абонент начинает дозваниваться он посылает ряд запросов в сеть (SETUP, INFORMATION) когда вызываемый абонент получает вызов (у него начинает звенеть телефон), вызывающий абонент получает CALL PROCEEDING или ALERTING сообщения. Когда вызывающая сторона отвечает (снимает трубку) к нам прийдёт CONNECT. Замечу, что всё время до получения CONNECT информация (звук) проходить только в нашу сторону. после получения CONNECT открывается тракт в обратном направлении и голос (данные) идут к вызываемому абоненту.
В случае, когда отвечает IVR оператора, то сообщение CONNECT приходить не должно вместо него прийдёт RELEASE с кодом ошибки, почему не дозвонились.
К слову, большинство современных цифровых систем коммутации (читайте - АТС) начинают учёт длительности разговора именно после получения вызывающим абонентом CONNECT.

Вывод. Если Ваш ГСМ модем позволил бы отлавливать получения CONNECT сообщения, тогда проблем не вижу.

Rett Pop
25.11.2005, 08:44
Ни разу не работал с GSM модемами, но попробую рассказать что знаю о GSM связи и ей подобных протоколах соединения. Возможно, каким-то образом поможет. Если нет - прошу прощения за оффтоп.

В общем, GSM использует сигналлизацию подобную DSS1 (рекомендация ITTU Q.931). Кажется, там поверх MAP эмулируется сигналлизация ISUP (см. рекомендации на SS7).

Так вот - согласно последней когда вызывающий абонент начинает дозваниваться он посылает ряд запросов в сеть (SETUP, INFORMATION) когда вызываемый абонент получает вызов (у него начинает звенеть телефон), вызывающий абонент получает CALL PROCEEDING или ALERTING сообщения. Когда вызывающая сторона отвечает (снимает трубку) к нам прийдёт CONNECT. Замечу, что всё время до получения CONNECT информация (звук) проходить только в нашу сторону. после получения CONNECT открывается тракт в обратном направлении и голос (данные) идут к вызываемому абоненту.
В случае, когда отвечает IVR оператора, то сообщение CONNECT приходить не должно вместо него прийдёт RELEASE с кодом ошибки, почему не дозвонились.
К слову, большинство современных цифровых систем коммутации (читайте - АТС) начинают учёт длительности разговора именно после получения вызывающим абонентом CONNECT.

Вывод. Если Ваш ГСМ модем позволил бы отлавливать получения CONNECT сообщения, тогда проблем не вижу.
Хм. А в каком виде это сообщение получать-то? Работаю я с ним через com-порт. Посредством HAYES команд. Соответвтсвенно, "CONNECT" приходит токмо при установке модемного соединения. А как быть с голосовым вызовом?