SMS/USSD fixes for Asterisk chan_datacard
by Alter (alterX@alter.org.ua (remove X))
Пользуюсь chan_datacard Rev. 185 (если я правильно понял из исходников :)
Столкнулся со следующими проблемами:
- при приеме ussd ответов в 7-битной кодировке некорректно
расшифровывалось сообщение
- иногда карточка оказывалась в состоянии sms prompt, из которого не
выходила кроме как аппаратным reset'ом
- при отправке sms карточка иногда впадала в состояние, в котором
после ^z стабильно возвращалась ошибка 305 (некорректный параметр для
text mode). Выяснить какие именно действия вводят и выводят из этого
состояния не удалось
- при отправке sms невозможно отправить некоторые символы, в т.ч.
перевод строки и знак вопроса.
Со всеми этими проблемами поборолся
- некорректно определялась кодировка по заголовку
- сделал отправку ^z при неожиданном sms prompt
- по крайней мере для E1550 тех revision'ов, которые у меня
используются, это лечится отправкой двойного \r после AT+CMGS="XXXXX"
Тогда последующая строка с текстом сообщения принимается без вопросов всегда.
Пробовал играться с задержками между передачами данных, дело не в этом.
- добавил спец. обработку строки для ввода хитрых символов в 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
alterX@alter.org.ua (remove X)
|