chan_datacard: PDU mode SMS

Разработка и отладка Asterisk и его приложений.

Модераторы: Admins, Модераторы

Ответить
xelas
admin
Сообщения: 1143
Зарегистрирован: 05 мар 2007, 11:21

chan_datacard: PDU mode SMS

Сообщение xelas » 10 окт 2010, 13:12

Написал патч для chan_datacard. Данный патч добавляет в модуль функции для отсылки SMS в виде PDU. Соответственно, становится возможным отсылать SMS с русским языком без каких-либо проблем.

Ограничения:
1) максимальный размер PDU -- 70 байт. Соотвественно после включения отсылки SMS как PDU ниодно сообщение(как на английском, так и на русском) не может быть более 70 байт в кодировке UCS-2.

Патч писался к 174 ревизии chan_datacard(на данный момент последняя в транке). После наложения патча и установки chan_datacard для вкючения режима PDU необходимо в datacard.conf добавить smsaspdu=yes к конфигурации устройства.

Это мой первый опыт написания чего-либо для астера, так что не судите строго.
Вложения
smspdu.patch
(17.76 КБ) 49 скачиваний

bird_of_Luck
Модератор
Сообщения: 485
Зарегистрирован: 30 авг 2008, 13:46

Сообщение bird_of_Luck » 14 окт 2010, 21:08

В случе выключенного smsaspdu там будет понемногу течь память из-за dstnum, например.
ast_strdup там почти нигде не надо

xelas
admin
Сообщения: 1143
Зарегистрирован: 05 мар 2007, 11:21

Сообщение xelas » 15 окт 2010, 06:36

Ага, не заметил. Спасибо.

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 09 дек 2010, 07:18

посмотрел сюда, посмотрел туда и переписал chan_datacard для полной работы с PDU :P :P
а то как то странно, включаешь отправку в PDU а приёма больше нет :))

Там сейчас проверяется сообщение на 7битность и шлётся в GSM 7Bit что позволяет слать до 160 символов как и
положенно. Могу прикрутить разбиение на фрагменты, но может оказаться дорого пульнуть КБ 10-16 :)


смотреть сюда http://code.google.com/p/datacard/

xelas
admin
Сообщения: 1143
Зарегистрирован: 05 мар 2007, 11:21

Сообщение xelas » 24 дек 2010, 07:05

Было бы прекрасно, если бы вам удалось встроить в chan_datacard "очередь sms" с контролем отправки. Т.е. что бы следующее СМС не отправлялось до той поры, пока не отправлено предыдущее(так, например, реализовано в smstools). В текущей ситуации, если не выдержать значительную паузу между двумя подряд СМС --- chan_datacard уходит в ступор после отправки первой СМС, так как пытается послать вторую не дождавшись ответа OK после отправки первой СМС.

Надеюсь, что объяснил понятно.

bg1
Сообщения: 238
Зарегистрирован: 11 ноя 2010, 21:11

Сообщение bg1 » 02 янв 2011, 20:11

объяснил понятно.
очередь команд существует c Сб Ноя 13, 2010
http://asteriskforum.ru/viewtopic.php?p=46694#46694
и насколько я понимаю по задержке после подачи приглашения на ввод текста или PDU, ввода и 0x1A происходит
отправка.
Коллизий при отправке SMS нет, т.к. команды выполняются задачами.
Снята с выполнения может быть только целая задача, и пока одна задача не завершена
другая на обработку в модем не попадает.

Ответить