Получите бесплатную консультацию
Мы очень любим общаться и не жалеем на это времени.
Напишите нам - задайте интересующий Вас вопрос, поделитесь идеей.
Мы постараемся ответить Вам как можно быстрее.
Каждое сообщение директор читает лично.
И так. Приступим.
yum install zip unzip usbutils libusb-devel tcl autoconf automake
cd /tmp
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
или в зависимости от разрядности ситемы
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
yum install usb_modeswitch
wget https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip
unzip asterisk11
cd asterisk-chan-dongle-asterisk11/
yum install asterisk-devel
yum install minicom
yum install usbutils
aclocal
autoconf
automake -a
./configure
make
make install
cp etc/dongle.conf /etc/asterisk/
cp chan_dongle.so /usr/lib64/asterisk/modules/
или в зависимости от разрядности ситемы
cp chan_dongle.so /usr/lib/asterisk/modules/
asterisk -r
CLI> module load chan_dongle
выгрузка модуля делается следующим образом
CLI> module unload chan_dongle
CLI> dongle show devices
CLI> dongle show device settings <dongle-name>
Управление донглом прямо из интерфейса уже подключенного донгла не подключаясь к миником
pbx*CLI> dongle cmd <dongle_name> AT+CPMS=\"SM\",\"SM\",\"SM\"
vim /etc/asterisk/dongle.conf
Приведем к виду:
[general]
interval=15 ; Количество секунд между попытками подключения к устройствам
[defaults]
context=dongle-incoming ; контекст для входящих вызовов
rxgain=4 ; увеличить громкость входящих; может быть отрицательным
txgain=4 ; увеличить громкость исходящих; может быть отрицательным
usecallingpres=yes ;использовать АОН
callwaiting=no ; Ожидающие вызовы включены 'yes'
dtmf=relax
[GSM1]
;Для определения модема можно использовать 2 типа. Определение по imei предпочтительнее, ;тк после перезагрузки моде может инициализироваться как другой USB интерфейс.
;Нужное раскоментировать
;Определение по USB;audio=/dev/ttyUSB1 ; определить модем по USB устройству
;data=/dev/ttyUSB2 ; определить модем по USB устройству
;Определение по imei;imei=012345678901234 ; определить модем по imei
vim /etc/asterisk/extensions_custom.conf
Приведем к виду:
[from-gsm]
exten => s,1,Set(CALLERID(all)=${CALLERID(num)})
exten => s,n,Set(CALLERID(num)=${CALLERID(num)})
exten => s,n,goto(from-trunk,${DONGLEIMEI},1)
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLENAME} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLENAME}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
service asterisk restart
Во FreePBX создаем кастомный транк, где указываем imei модема:
dongle/i:imei-номер/$OUTNUM$
Создаем исходящий маршрут, подключаем внутренние номера и звоним.
ls -la /dev/ttyUSB*
Если пустой вывод, то устройство не инициализировалось автоматически. Делаем следующее:
chmod 666 /dev/ttyUSB*
lsusb
Вы увидите на экране строки, подобные этим:
Bus 001 Device 003: ID 12d1:155b Huawei Technologies Co., Ltd.:
где:
ID xxxx:yyyy - это как раз и есть vid и pid модема. xxxx - это vid, а yyyy - это pid нашего 3g модема
Инициализация для Huawei e173 по умолчанию не нужна если мы переключилие гоу же через миником
usb_modeswitch -I -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1436 -M "55534243123456780000000000000011062000000100000000000000000000"
В случае, если команда выполнена успешно, Вы увидите сообщение типа:
insmod /lib/modules/2.6.32-431.17.1.el6.i686/kernel/drivers/usb/serial/usbserial.ko vendor=0x12d1 product=0x1506
Подробнее информацию о подключенном устройстве можно получить lsusb -v -d VID:PID
Для работы с модемом через minicom потребуется список AT команд для модема. Их можно посмотреть по ссылке:
Далее работаем строго по порядку:
Запустите команду:
minicom -s
Выберите пункт "Serial port setup" ("Настройка последовательного порта")
Нажмите "A" для выбора имени устройства COM порта
Введите название устройства: /dev/ttyUSB...
Нажмите Enter 2 раза
Выберите пункт "Save setup as .." ("Сохранить настройки как")
Введите название профиля
Дождитесь сохранения профиля и выберите пункт "Exit from minicom" (Выход из minicom)
Теперь запустите из командной строки:
minicom имя-профиля
Если программа "вылетит" с ошибкой, значит проблема в драйвере (либо драйвере модема, либо драйвере COM порта - usbserial, и т.д.). Далее мы предполагаем, что программа открылась нормально, и отобразила пустое (или непустое) окошко.
Введите команду:
ATI
После чего нажмите Enter. Обратите внимание: символы, которые Вы вводите, могут не отображаться на экране! Однако, после ввода команды и нажатия Enter, модем должен отобразить результат.
Выполните нужные Вам AT команды для модема.
Для выхода в меню программы нажмите Ctrl+A, затем Z
Для выхода из программы (находясь в меню) нажмите Q и подтвердите выход нажатием Enter.
Если программа не выдает никакой информации (или выдает абракадабру) в ответ на AT команды, значит неверно указано имя устройства, на котором находится часть 3G модема, принимающая AT-команды. Попробуйте другое имя (обычно это ttyUSBx, где x - цифра от 0 до 2).
#minicom –s
Выбираем настройку последовательного порта, нажимаем А и редактируем порт — /dev/ttyUSB0 после этого жмем два раза Enter и нажимаем Выход. После подключения вводим AT команду AT^U2DIAG=0 и выходим нажав Ctrl-A а потом Q
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=256 (девайс в режиме модем + Card Reader)