Как определить собственный номер SIM карты.
От: zorky  
Дата: 23.03.10 16:23
Оценка:
Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.
Re: Как определить собственный номер SIM карты.
От: Crypto Украина  
Дата: 23.03.10 16:26
Оценка:
Здравствуйте, zorky, Вы писали:

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


Какая платформа? Если WM, то при чем тут "указать исходящий номер" для успешной отправки??
Re: Как определить собственный номер SIM карты.
От: Truf Россия http://meego.fruct.org
Дата: 23.03.10 17:42
Оценка:
Здравствуйте, zorky, Вы писали:

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что


Никак

Z> для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


Вряд ли
Re: Как определить собственный номер SIM карты.
От: ovr  
Дата: 30.03.10 10:58
Оценка:
http://msdn.microsoft.com/en-us/library/aa918608.aspx

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.
Re: Как определить собственный номер SIM карты.
От: hudvin  
Дата: 01.04.10 15:04
Оценка:
Здравствуйте, zorky, Вы писали:

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.

Его там может физически не быть.
Re: Как определить собственный номер SIM карты.
От: nen777w  
Дата: 03.04.10 00:41
Оценка:
Здравствуйте, zorky, Вы писали:

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


Э.. Возможно существует специальная AT команда позволяющая это сделать. Сейчас к сожалению нет нужной доки под рукой, но для каждой модели телефона есть ещё расширенный набор AT команд.
Мне кажется что смотреть надо там.
Re[2]: Как определить собственный номер SIM карты.
От: Truf Россия http://meego.fruct.org
Дата: 03.04.10 14:42
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Здравствуйте, zorky, Вы писали:


Z>>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


N>Э.. Возможно существует специальная AT команда позволяющая это сделать. Сейчас к сожалению нет нужной доки под рукой, но для каждой модели телефона есть ещё расширенный набор AT команд.

N>Мне кажется что смотреть надо там.

Если на то пошло, то некоторые операторы поддерживают USSD запросы для получения этого номера. Но не все и USSD номера у них разные.

А вообще, есть 2 источника получения собственного номера — SIM карта и оператор связи.
С SIM карты его можно выковырять с помощью нативного апи. Если и есть позволяющая это сделать AT команда, то она также использует нативное API. Проблема в том, что операторы на SIM карту пишут этот номер не всегда. Тест Антона Михайлова показал, что только один из операторов нашей большой тройки делает это:

http://discussion.forum.nokia.com/forum/showthread.php?t=184446

Если же пытаться получить свой номер через USSD — то на симбиан сделать это незаметно для пользователя не выйдет. Да и наши отечественные операторы такие сервисы вроде не предоставляют.

Есть еще один способ, надежный, но через одно место — самому себе смс послать и по ее доставке выковырять адрес отправителя.

В общем, нет нормального способа получить собственный номер.

А насчет того, что его необходимо указывать при отправке смс — это не так. Номер SMSC необходимо указывать, а не свой. Но обычно он на симке прописан.
Re: Как определить собственный номер SIM карты.
От: Аноним  
Дата: 15.04.10 09:29
Оценка:
Здравствуйте, zorky, Вы писали:

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


Network service related commands:
Subscriber number AT+CNUM

Пример:
Пишу в модем команду
echo "AT+CNUM">/dev/ttyS0

Получаю:
cat /dev/ttyS0

+CNUM: "My telephone","+38096XXXXXXX",145

Не знаю все ли операторы поддерживают, но у меня отлично работает
Re: Как определить собственный номер SIM карты.
От: Ogre Ирландия  
Дата: 19.04.10 16:42
Оценка:
Здравствуйте, zorky, Вы писали:

Z>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


Как правильно заметил Truf номер в СИМ карте пишут крайне редко. Мало кто из операторов привязывает ICCID карты к номеру на момент продакшена.
Если интересно — номер хранится в файле DF Telecom/EF MSISDN, путь 3F00/7F10/6F40 (3F00 — корень файловой системы). Файл опциональный, может не присутствовать на файловой системе СИМ.
Re[2]: Как определить собственный номер SIM карты.
От: Truf Россия http://meego.fruct.org
Дата: 19.04.10 19:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, zorky, Вы писали:


Z>>Как определить программно собственный телефонный номер SIM карты. Желательно на C++, но не принципиально. В SIM карте хранятся разные идентификаторы, но я там не нашёл абонентского номера. Номер сам по себе не нужен, просто проблема в том, что для отправки СМС требуется указать правильно исходящий номер, иначе смска не отправляется.


А>Network service related commands:

А>Subscriber number AT+CNUM

А>Пример:

А>Пишу в модем команду
А>echo "AT+CNUM">/dev/ttyS0

А>Получаю:

А>cat /dev/ttyS0

А>+CNUM: "My telephone","+38096XXXXXXX",145


А>Не знаю все ли операторы поддерживают, но у меня отлично работает


Просто для уточнения. Судя по исходникам Symbian:
http://developer.symbian.org/xref/oss/xref/Symbian3/sf/os/cellularsrv/telephonyserverplugins/multimodetsy/Multimode/monstore.cpp#223
именно получение IMSI через AT+CNUM используется классом CMobileONStore, а он в свою очередь являются частью сервера, команды которому посылаются через RMobileONStore. А класс RMobileONStore мы обсуждали на FN:
http://discussion.forum.nokia.com/forum/showthread.php?t=184446

Итого выходит, что AT команды по крайней мере на Symbian (уверен. что на др платформах также) тянут данные с SIM карты. Отсюда все те же грабли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.