Подключаем к Asterisk мобильный телефон
Для тех, кто много ездит по миру, вполне может пригодится возможность совершать звонки родным по тарифам вашего мобильного оператора.
Для этого нужен небольшой домашний сервер (у многих людей нашей профессии он есть) и установленный Asterisk с подключеным мобильным телефоном.
Об этом и поговорим.
Итак, у нас есть сервер с Ubuntu 14.04, bluetooth dongle, и старый мобильный телефон типа Nokia 6300. Сразу устанавливаем все необходимое:
$ sudo apt-get update && sudo apt-get install asterisk asterisk-mobile bluez-utils bluez-hcidump libbluetooth-dev python-gobject-2 python-dbus
Теперь необходимо соединить телефон с нашим сервером. Посмотрим MAC адрес нашего донгла:
$ sudo hcitool dev
Devices:
hci0 00:15:83:3D:1A:57
Пробуем установить связь. Для этого нам понадобится небольшой скрипт:
$ pushd /tmp
$ wget https://raw.githubusercontent.com/DmitriyLyalyuev/simple-agent/master/simple-agent.py
$ chmod +x /tmp/simple-agent.py
$ hcitool scan
Scanning ...
00:11:22:33:44:55 Nokia 6300
Мы нашли MAC адрес нашего телефона. Теперь нужно его подключить.
$ sudo /tmp/simple-agent.py hci0 00:11:22:33:44:55
RequestPinCode (/org/bluez/22380/hci1/dev_00_11_22_33_44_55)
Enter PIN Code: 4567
Release
New device (/org/bluez/22380/hci1/dev_00_11_22_33_44_55)
Если все прошло именно так, как описано выше, то настраиваем Asterisk:
/etc/asterisk/chan_mobile.conf:
[Adapter]
address = 00:15:83:3D:1A:57
id = Dongle
Перегружаем asterisk и ищем наш телефон:
$ sudo service asterisk reload
$ sudo rasterisk
asterisk*CLI> mobile search
Address Name Usable Type Port
00:11:22:33:44:55 Mokia 6300 Yes Phone 13
asterisk*CLI> module unload chan_mobile
asterisk*CLI> exit
Теперь у нас есть вся информация о телефоне и мы можем его вписать в конфигурацию.
/etc/asterisk/chan_mobile.conf:
[Adapter]
address = 00:15:83:3D:1A:57
id = Dongle
[Nokia]
address = 00:11:22:33:44:55
port = 13
context = from-phone
adapter = Dongle
Возврщаемся в консоль asterisk'a и загружаем модуль:
$ sudo rasterisk
asterisk*CLI> module load chan_mobile
asterisk*CLI> mobile show devices
ID Address Group Adapter Connected State SMS
Nokia 00:11:22:33:44:55 0 Dongle Yes Free Yes
asterisk*CLI> exit
В итоге мы соединили наши устройства и Asterisk готов совершать вызовы через этот телефон.
Осталось настроить пользователей и планы звонков.
/etc/asterisk/sip.conf:
[internal](!)
type=friend
host=dynamic
context=home
dtmfmode=rfc2833
canreinvite=no
[200](internal)
secret=Password
callerid='Username' <200>
/etc/asterisk/extensions.conf:
[from-phone]
exten => s,1,Answer
exten => s,n,Dial(SIP/200)
exten => s,n,Hangup()
[home]
exten => _.,1,Dial(MOBILE/Nokia/${EXTEN})
exten => _.,n,Hangup()
Перечитываем конфиги и пробуем звонить.
$ sudo service asterisk reload
Исходящие звонки будут идти через телефон. Поступивший звонок на телефон будет переадресован на внутренний номер 200.
Осталось установить любой VoIP клиент на ноутбук или смартфон и звонить через интернет своим родным.
И не забудьте про правильные пароли, а то много ботов пытается подбирать пароль к пользователям asterisk'a. А еще лучше уставновите fail2ban для защиты от перебора пароля.
Комментарии: