Differences

This shows you the differences between two versions of the page.

Link to this comparison view

phone:at:set-number [2020/01/14 08:11] (current)
owlbook created
Line 1: Line 1:
 +===== Установка номера телефона для SIM =====
  
 +Последнее время в память симкарт перестали писать номер телефона,​ к которому она привязана и используя данную симкарту в связке с GSM свистком для Asterisk мы неизменно натыкаемся на проблему её идентификации в телефонной станции.
 +
 +Но, как водится,​ разработчики стандартов не дураки и можно, вооружившись терминалом((в моём случае minicom, в вашем что угодно,​ что может ходить в последовательный порт со скоростью 115200 бод)), поправить поля в симке, что позволит нам дальше успешно её использовать.
 +
 +Итак, берём GSM-свисток,​ который поддерживает звонки и смс((в моём случае я остановился на Huawei E173 разлоченном)),​ втыкаем туда свежеприобретённую симкарту,​ вставляем в Asterisk, ставим модуль chan_dongle и настраиваем по образу и подобию((я просто указал IMEI в конфиге)). После этого заходим в сам астериск,​ загружаем модуль и смотрим что у нас там появилось. Если всё указано верно - получаем наш свисток:​
 +
 +<​code>​
 +phone*CLI>​ dongle show devices ​                                                                                      
 +ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware ​         IMEI             ​IMSI ​            ​Number ​       ​
 +donglename ​  ​0 ​    ​Free ​      ​7 ​   5    4       ​Tele2 ​         E173       ​11.126.85.00.209 ​ 800000000000009 ​ 200000000000009 ​ Unknown
 +</​code>​
 +
 +Как видимо в поле Number Asterisk говорит,​ что не может никак определить номер. В теории конечно можно пытаться отправлять AT команды через интерфейс Asterisk (dongle cmd donglename <AT COMMAND>​),​ но что-то я ему не доверяю,​ поэтому отключаем свисток от Asterisk и идём любимым терминалом в порт (в Linux это /​dev/​ttyUSB*,​ нужно методом научного тыка подобрать тот порт, при отправке в который команды AT в ответ мы получим OK) После подключения начинаем вводить команды (через строчку команда и ожидаемый ответ):​
 +
 +<​code>​
 +AT
 +OK
 +
 +AT+CNUM
 ++CME ERROR: unknown
 +
 +AT+CPBS?
 ++CPBS: "​SM",​3,​100
 +OK
 +
 +AT+CPBS="​ON"​
 +OK
 +
 +AT+CPBS?
 ++CPBS: "​ON",​0,​2
 +OK
 +
 +AT+CPBW=,"​+79000000000"​
 +OK
 +
 +AT+CPBS?
 ++CPBS: "​ON",​1,​2
 +OK
 +
 +AT+CPBR=1
 ++CPBR: 1,"​+79000000000",​145,""​
 +OK
 +
 +AT+CNUM
 ++CNUM: "","​+79000000000",​145
 +OK
 +</​code>​
 +
 +Разберём что тут произошло:​
 +  * AT - проверка работы свистка и протокола,​ эдайки ping-pong
 +  * AT+CNUM - возвращает номер, прикреплённый к симкарте
 +  * AT+CPBS? - возвращает информацию о выбранной в данный момент телефонной книге, количестве записей в ней и общей вместимости
 +  * AT+CPBS="​ON"​ - переключение на сервисную телефонную книгу
 +  * AT+CPBW=,"​+79000000000"​ - внесение номер в конец выбранной телефонной книги
 +  * AT+CPBR=1 - чтение первой записи в выбранной телефонной книге
 +
 +После проведения данного ритуала вновь включаем наш свисток в Asterisk и voila, всё как и просили:​
 +
 +<​code>​
 +phone*CLI>​ dongle show devices ​
 +ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware ​         IMEI             ​IMSI ​            ​Number ​       ​
 +donglename ​  ​0 ​    ​Free ​      ​7 ​   0    0       ​Tele2 ​         E173       ​11.126.85.00.209 ​ 800000000000009 ​ 200000000000009 ​ +79000000000  ​
 +</​code>​