Alter.Org.UA  
 << Back Home EN en   Donate Donate www/www1/www2

SMS/USSD fixes for Asterisk chan_datacard

by Alter (alterX@alter.org.ua (remove X))

Пользуюсь chan_datacard Rev. 185 (если я правильно понял из исходников :) Столкнулся со следующими проблемами:

  1. при приеме ussd ответов в 7-битной кодировке некорректно расшифровывалось сообщение
  2. иногда карточка оказывалась в состоянии sms prompt, из которого не выходила кроме как аппаратным reset'ом
  3. при отправке sms карточка иногда впадала в состояние, в котором после ^z стабильно возвращалась ошибка 305 (некорректный параметр для text mode). Выяснить какие именно действия вводят и выводят из этого состояния не удалось
  4. при отправке sms невозможно отправить некоторые символы, в т.ч. перевод строки и знак вопроса.

Со всеми этими проблемами поборолся

  1. некорректно определялась кодировка по заголовку
  2. сделал отправку ^z при неожиданном sms prompt
  3. по крайней мере для E1550 тех revision'ов, которые у меня используются, это лечится отправкой двойного \r после AT+CMGS="XXXXX" Тогда последующая строка с текстом сообщения принимается без вопросов всегда. Пробовал играться с задержками между передачами данных, дело не в этом.
  4. добавил спец. обработку строки для ввода хитрых символов в SMS и CMD. Каждый спец-символ должен быть обрамлен пробелами.
escape-string (in Asterisk CLI)encoded character (to be sent to device)
\\r\r (Return)
\\n\n (New Line)
\\q' (Single quotation mark)
\\Q" (Double quotation mark)
\\u? (Question mark)
\\t (Tab)
\\s (Space)
\\z^Z (Ctrl-Z)
\\[^[ (Escape)

Примеры

> datacard sms datacard0 Hello \\r World !!!
> datacard sms datacard0 Do you like \\s \\Q Heineken \\Q \\u
> datacard sms datacard0 Do you like \"Heineken\" \\u
> datacard cmd datacard0 AT+CMGF= \\u

Патчи отправлены в команду разработки.

chan_datacard.20110724.tgz
2011.07.25


Mail to alterX@alter.org.ua (remove X)  
Автор: Alter (Александр А. Телятников) Сервер: Apache+PHP под FBSD © 2002-2017