Вот проект
Вид для печати
Вот проект
да, что то у меня Ваш номер не конвертируется с помощью этой функции
Все разобрался, оказывается все номера с четным количеством знаков дают на выходе функции пустую строку, теперь остается ждать понедельника когда Евгений Сергеевич выйдет и поправит баг
Не знаю как работает обсуждаемая библиотека, но я подозреваю, что этот номер для сотового оператора связи в никуда( на деревню дедушке!).
Номер в международном формате должен начинаться с "+".
Попробуйте позвонить с мобильника на этот номер без префикса "+", что вы услышите? "Не правильно набранный номер"!
МинСязи РБ в 2006 г. установило правила набора мобильных номеров http://forum.onliner.by/viewtopic.php?t=506761.
Если библиотека не позволяет наличия "+" в начале номера телефона, то можно попробовать такЦитата:
Порядок набора в международном формате:
"+" - международный код Республики Беларусь (375) - код мобильной сети (29 – МТС и БелСел, 25 – БеСТ) - номер абонента
(например, +375 29 7хх хх хх, +375 29 5хх хх хх, +375 29 2xx xx xx, +375 29 4хх хх хх, +375 25 9хх хх хх)
.Цитата:
8 10 - международный код Республики Беларусь (375) - код мобильной сети (29 – МТС и БелСел, 25 – БеСТ)- номер абонента
(например, 8 10 375 29 7хх хх хх, 8 10 375 29 5хх хх хх, 8 10 375 29 2xx xx xx, 8 10 375 29 4хх хх хх, 8 10 375 25 9хх хх хх)
Если Ваш получатель СМС находится в Беларусии, то можно попробовать так
Резюме. Попробуйте или "8 10 375 33 6587963" или "8 0 33 6587963", если нельзя использовать "+375 33 6587963":cool:Цитата:
8 0 - код мобильной сети (29 – МТС и БелСел, 25 – БеСТ) - номер абонента
(например, 8 0 29 7хх хх хх, 8 0 29 5хх хх хх, 8 0 29 2xx xx xx, 8 0 29 4хх хх хх, 8 0 25 9хх хх хх)
В том то и дело что пробовал по разному задавать номера телефонов.брал симки разных операторов.смс только приходили на российские мобильные номера,на белорусские увы пока не получается.
ps:спасибо за помощь думаю решение вопроса уже близко.
0011000C91 здесь выделены две цифры замещающие номер центра СМС, будет использоваться номер по умолчанию для конкретного оператора. В 146 и 148 сообщениях этой темы показаны посылки сообщений, если их сравнить видно что в первом варианте отсутствует номер получателя, функция которая за него отвечает не обрабатывает номера с четным количеством знаков. Можете погуглить как формируется смска для отправки
Для поста 146
Попробуйте в начале дать модему команду (можно в гипертерменале) AT+CMEE=1 или AT+CMEE=2 и вместо бесполезного ответа ERROR получите расширенный ответ об ошибке, в первом случае код ошибки в виде +CME ERROR : xxx или+CMS ERROR :xxx, а во втором случае описание ошибки, напишет что именно ему не нравится в команде. Правда команду AT+CMEE=2 поддерживают не все модемы. Поддерживаемые режимы можно узнать командой AT+CMEE=?
По коду ошибки можно копать дальше.
Вот некоторые коды для +CMS ERROR :<xxx> (из стандарта GSM 04.11 дополнениеE-2)
Это выдержка, есть и другие коды ошибокЦитата:
Причина 1: "Неназначенный(неразмеченный) номер"
Данная причина показывает, что невозможно достичь адресата, аданного мобильной станцией, поскольку, хотя номер и имеет правильный формат, он не назначен (неразмечен).
Причина8: "Запрет определяется оператором"
Данная причина указывает на то, что мобильная станция пыталась править сообщение с мобильного устройства в тот момент, когда поставщик услуг запретил передачу.
Причина 10: "Вызов запрещен"
Данная причина указывает на то, что услуга запрета исходящих вызовов применяется и для службы сообщений.
Причина 21: "Отказано в передаче сообщения"
Данная причина указывает на то, что устройство, отославшее эту причину, не желает принимать это сообщение, хотя оно бы могло быть принято, поскольку устройство, посылающее причину, не занято и совместимо.
Cause no 27: "Адресат не обслуживается"
Данная причина указывает на то, что адресат, заданный мобильной станцией, недоступен, поскольку его интерфейс работает некорректно. Термин«работает некорректно» указывает на то, что сигнальное сообщение не могло быть доставлено удаленному пользователю; например, у удаленного пользователя имеются физические неполадки или неполадки канала передачи данных и т.д.
Cause no 28: "Неопознанный абонент"
Данная причина указывает на то, что абонент не зарегистрирован в мобильной сети (например, неизвестенIMSI).
Причина29: "Возможность отклонена"
Данная причина указывает на то, что возможность, запрашиваемая мобильной станцией, не поддерживается мобильной сетью.
Причина30: "Неизвестный абонент"
Данная причина указывает на то, что абонент не зарегистрирован в HLR (например, IMSI
или номер директории не размечен под абонента).
Причина38: "Сеть недоступна"
Данная причина указывает на то, что сеть работает некорректно и что данное состояние сети может продлиться довольно долго, например, немедленная повторная попытка
отсылки сообщения вряд ли будет успешной.
Причина41: "Временные неполадки"
Данная причина указывает на то, что сеть работает некорректно и что данное состояние сети не должно продлиться долго, например, мобильная станция может еще раз попытаться отправить сообщение сразу же.
Причина42: "Перегрузка"
Данная причина указывает на то, что в данный момент услуга передачи коротких сообщений не может быть предоставлена из-за высокой нагрузки каналов связи.
Причина47: "Ресурсы недоступны, не заданы"
Данная причина используется для события, оповещающего о недоступности ресурсов, если ни одна другая причина не подходит.
Причина69: "Запрашиваемая возможность не реализована"
Данная причина указывает на то, что сеть не может предоставить запрашиваемую услугу коротких сообщений.
Причина81: "Неверное ссылочное значение передачи короткого сообщения"
Данная причина указывает на то, что устройство, отославшее эту причину, получило сообщение со ссылкой на короткое сообщение, которая в данный момент не используется в интерфейсеMS-сетей.
Причина95: "Неверное сообщение, не задано"
Данная причина используется для события неверного сообщения только когда не подходит ни одна другая причина из класса неверных сообщений.
Причина96: "Неверная обязательная информация"
Данная причина указывает на то, что устройство, отсылающее эту причину, получило сообщение, в котором отсутствует элемент обязательной информации и/или обязательная информация имеет ошибку содержания(два класса неразделимы).
Причина97: "Тип сообщения не существует или не выполняется"
Данная причина указывает на то, что устройство, отсылающее эту причину, получило сообщение, тип которого ого не распознает либо поскольку это сообщение не определено, либо определено, но не выполняется устройством, отсылающим эту причину.
Причина98: "Сообщение несовместимо с состоянием протокола коротких сообщений"
Данная причина указывает на то, что устройство, отсылающее эту причину, получило сообщение так, что процедуры показывают, что это недопустимое сообщение для приема в состоянии работы с короткими сообщениями.
Причина99: "Элемент информации не существует или не выполняется"
Данная причина указывает на то, что устройство, отсылающее эту причину, получило
сообщение, включающее в себя нераспознанные элементы информации, поскольку идентификатор элементов информации не задан или задан, но не выполняется устройством, отсылающим причину.
Тем не менее, не требуется, чтобы в сообщении так присутствовал элемент информации, что устройство отсылает причину, чтобы обработать сообщение..
Причина 111: "Ошибка протокола, не задан"
Данная причина используется для события ошибки протокола только если не подходит никакая другая причина.
Причина 127: "Межсетевой обмен, не задан"
Данная причина указывает на то, что шел обмен данными с сетью, не отсылающей причины, таким образом, невозможно получить точную причину при работе с сообщениями.
Все значения, кроме вышеперечисленных, необходимо обрабатывать как ошибки причины41.
да тут к гадалке не ходи, CMGS содержит 26 байт, а в отправляемой строке нехватает положенных, поэтому и ошибка. Совсем другое дело с российским номером, там все сходится. Для справки считается без номера центра и каждый байт занимает два знакоместа
Номер центра СМС должен указываться для конкретного оператора отдельной командой "AT+CSCA" по умолчанию его нет.
AT+CMGS= "+33146290800"<CR> Privet, kak dela?<ctrl-Z> //Примечание: отправить сообщениеЦитата:
Адрес сервис-центра: +CSCA
Описание
Данная команда используется для указания, в какой сервис-центр посылать сообщение.
У продукта не задано адреса по умолчанию. Если приложение пытается отослать сообщение и если до этого не был указан адрес сервис-центра, то будет выдана ошибка.
Таким образом, приложение должно указывать SC адрес при инициализацииSMS.
Данный адрес затем будет действовать постоянно. При необходимости приложение может изменять его.
Синтаксис
Синтаксис команды: AT+CSCA=sca
+ CMS ERROR: 330 //Примечание: неизвестен сервис-центр
AT+CSCA="0696741234" //Примечание: инициализация сервис-центра
OK
AT+CMGS = "+33146290800"<CR> S dnem rozhdeniya ! <ctrl-Z> //Примечание: отправить сообщение
+CMGS: 1
OK //Примечание: отправлено успешно