Страница 1 из 1

Управление переадресацией у оператора через донглы и ussd

Добавлено: 18 мар 2015, 12:55
metris
Есть универсальные USSD коды для управления переадресацией, к примеру:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
**67*номер телефона#
Активация переадресации: «занято» — переадресация звонков, если Вы в данный момент разговариваете по телефону
**61*номер телефона#
Активация переадресации: «нет ответа» — переадресация, если Вы не отвечаете на звонок
**62*номер телефона#
Активация переадресации: «вне зоны досягаемости» — переадресация, когда Вы находитесь вне зоны покрытия GSM либо Ваш телефон выключен
##002#
Отмена всех видов переадресации
##21#
Отмена переадресации «немедленно» — безусловная переадресация всех звонков
##67#
Отмена переадресации «занято» — переадресация звонков, если Вы в данный момент разговариваете по телефону
##61#
Отмена переадресации «нет ответа» — переадресация, если Вы не отвечаете на звонок
##62#
Отмена переадресации «вне зоны досягаемости» — переадресация, когда Вы находитесь вне зоны покрытия GSM либо Ваш телефон выключен
*#21#
Проверить состояние переадресации «немедленно» — безусловная переадресация всех звонков
*#21#
Проверить состояние переадресации «немедленно» — безусловная переадресация всех звонков
*#67#
Проверить состояние переадресации «занято» — переадресация звонков, если Вы в данный момент разговариваете по телефону
*#61#
Проверить состояние переадресации «нет ответа» — переадресация, если Вы не отвечаете на звонок
*#62#
Проверить состояние переадресации «вне зоны досягаемости» — переадресация, когда Вы находитесь вне зоны покрытия GSM либо Ваш телефон выключен
При отправке такого кода через asterisk получаю ответ:

Код: Выделить всё

asterisk*CLI> dongle ussd dongle14 *#61#
[dongle14] USSD queued for send with id 0x12f4db0
    -- [dongle14] Successfully sent USSD 0x12f4db0
[2015-03-18 11:21:45] NOTICE[28605]: at_response.c:267 at_response_ok: [dongle14] Successfully sent USSD 0x12f4db0
 [b][dongle14] Got USSD type 2 'USSD Terminated by network': ''[/b]
    -- Executing [ussd@dongle-cdma:1] Verbose("Local/ussd@dongle-cdma-000010a1;1",[b] "Incoming USSD: "[/b]) in new stack
Incoming USSD:
    -- Executing [ussd@dongle-cdma:2] System("Local/ussd@dongle-cdma-000010a1;1", "echo '2015-03-18 11:21:47 - : ' >> /var/log/asterisk/ussd.txt") in new stack
    -- Executing [ussd@dongle-cdma:3] Hangup("Local/ussd@dongle-cdma-000010a1;1", "") in new stack
  == Spawn extension (dongle-cdma, ussd, 3) exited non-zero on 'Local/ussd@dongle-cdma-000010a1;1'

Или у другого оператора:

asterisk*CLI> dongle ussd dongle16 *#61#
[dongle16] USSD queued for send with id 0x1306e80
    -- [dongle16] Successfully sent USSD 0x1306e80
[2015-03-18 11:21:59] NOTICE[27288]: at_response.c:267 at_response_ok: [dongle16] Successfully sent USSD 0x1306e80
[b] [dongle16] Got USSD type 0 'USSD Notify': 'UNKNOWN APPLICATION'[/b]
    -- Executing [ussd@dongle-drop:1] Verbose("Local/ussd@dongle-drop-000010a2;1", [b]"Incoming USSD: UNKNOWN APPLICATION"[/b]) in new stack
Incoming USSD: UNKNOWN APPLICATION
    -- Executing [ussd@dongle-drop:2] System("Local/ussd@dongle-drop-000010a2;1", "echo '2015-03-18 11:22:01 - : UNKNOWN APPLICATION' >> /var/log/asterisk/ussd.txt") in new stack
    -- Executing [ussd@dongle-drop:3] Hangup("Local/ussd@dongle-drop-000010a2;1", "") in new stack
  == Spawn extension (dongle-drop, ussd, 3) exited non-zero on 'Local/ussd@dongle-drop-000010a2;1'
Ответ на код *#61# с мобильного (не смартфона) похоже обрабатывается каким-то скриптом, это точно не простой текст, как при проверке баланса и пр.

Вопрос - проблема из-за того, что я отправляю не с телефона, а с модема (E1550, E173) или в том, что астериск не понимает ответ?
Судя по логу скорее всего первое... Как можно это обойти?

Re: Управление переадресацией у оператора через донглы и uss

Добавлено: 18 мар 2015, 18:38
metris

Код: Выделить всё

asterisk*CLI> core show version
Asterisk 11.15.0 built by root @ asterisk on a x86_64 running Linux on 2015-01-13 17:39:15 UTC

asterisk*CLI> dongle show version
chan_dongle: Huawei 3G Dongle Channel Driver, Version 1.1, Revision 34
Project Home: http://code.google.com/p/asterisk-chan-dongle
Bug Reporting: http://code.google.com/p/asterisk-chan-dongle/issues/list
Сорс:
https://drive.google.com/folderview?id= ... api&ddrp=1#

Re: Управление переадресацией у оператора через донглы и uss

Добавлено: 29 фев 2016, 05:53
eug.lv
Вопрос - проблема из-за того, что я отправляю не с телефона, а с модема (E1550, E173) или в том, что астериск не понимает ответ?
Судя по логу скорее всего первое... Как можно это обойти?
Проблема не в астериске, наверное. У меня такие же модемы, из астериска команда проверки счёта *111# - работает, а команда *#61# - говорит UNKNOWN APPLICATION
Я думаю что проблема не в астериске - так как в комплекте с этими модемами шло програмное обеспечение под Windows - "Mobile Partner". С помощью этой программы из-под винды можно звонить, писать смс, подключать интернет и слать USSD запросы. Так вот, программа что шла в комплекте с модемом - тоже не шлёт USSD запрос *#61# и говорит - UNKNOWN APPLICATION, а запрос проверки счёта работает.
Думаю проблема где-то в прошивке модема, видимо он не правильно кодирует USSD запросы. Хотя, возможно, на стороне оператора тоже можно что-то подшаманить, что бы все USSD запросы заработали.

Пока не знаю, как это обойти.

P.S.
Проверял на сим картах Киевстар и Life