В сети интернет очень много статей, про то как сделать сервер телефонии на базе Linux и Asterisk, но совсем мало как сделать то же самое в самой совершенной системе OS X. Все что будет описано ниже, было собрано и настроено на OS X Mountain Lion 10.8.5. Хочу обратить ваше внимание, на то, что я не пытаюсь досконально описать сам процесс, так как возможно вам придется собирать дополнительные библиотеки и программы или столкнуться с другими сложностями. Пишите о них в комментариях, я постараюсь вам помочь.
Итак, моя цель создать сервер IP-телефонии на базе Asterisk 11.2 (cert2, lts), модуля chan_dongle.so (для работы с USB-модемом HUAWEI-E173). Практический смысл задачи придумайте сами, мною просто движет любопытство.
Установка драйверов модема Huawei e173
Драйвера, от модема Huawei e173 для OS X находятся в установочных файлах штатного программного обеспечения модема (правой кнопкой мыши по установщику, выбираем Show Content и ищем файл MobileConnectDriver.pkg. Так же вы можете скачать этот пакет из Интернет. Если ваш модем huawei привязан к определенному оператору, его можно отвязать от него, и активировать голосовые функции, если они заблокированы. В сети полно статей про отвязку модема, поэтому я не буду повторяться, пользуйтесь гуглом.
После установки модема, он будет определяться в системе устройствами:
Итак, собираем Asterisk 11.2 cert2
выбираем что компилировать, если ничего не хотите менять нажимаем клавишу Q (я отключал res_snmp), или просто не выполняем команду make menuselect
Последняя команда установит примеры конфигурационных файлов. На этом будем считать установку Asterisk 11 завершенной. Конфигурационные файлы должны лежать в папке /usr/local/etc/asterisk, лог-файлы в каталоге /Library/Logs/Asterisk, остальные файлы PBX Asterisk расположены в папке "/Library/Application Support/Asterisk", а сам исполняемый файл находиться по адресу /usr/local/sbin/asterisk. Я создал символическую ссылку на исполняемый файл, чтобы каждый раз не указывать путь (в принципе можно было бы добавить этот путь в переменную PATH, делайте так как считаете нужным)
Для автоматической загрузки сервера Asterisk при старте OS X вам нужно будет создать plist для LaunchDaemons, разместить его в каталоге /Library/LaunchDaemons и загрузить с помощью команды launchctl. Любой маковод должен знать как это делается.
Собираем chan_dongle.so версии 1.1.r34
затем я отредактировал созданный Makefile, заменив -Xlinker 10.4 на -Xlinker 10.8 и продолжил компиляцию
а вот саму установку я сделал руками (make install не сработал, а разбираться из-за чего было лениво)
После установки драйверов модема, Asterisk, модуля chan_dongle.so, остается только настроить dialplan и модуль chan_dongle. Настройку dialplan посмотрите в статье http://habrahabr.ru/post/160299/. А в /usr/local/etc/asterisk/dongle.conf внесите изменения в секции [dongle0].
imei и imsi можно посмотреть в самом Asterisk с помощью команды dongle show devices. В данном виде мой GSM-шлюз принимает входящие вызовы с sim карты без проблем, сохраняет sms в файл. Вызовов на sim-карту не очень много, поэтому мне сложно судить о производительности или надежности этой системы. Через некоторое время отпишусь по поводу надежности и качества работы системы.
UPDATE: довелось мне обновиться до версии Asterisk 11.6 cert2. И столкнулся с тем, что по SIP появилась односторонняя слышимость. Оказалось что в Asterisk 11.6 по умолчанию компилируются и загружаются модули res_timing_kqueue.so и res_timing_pthread.so. Так вот при загруженном модуле res_timing_kqueue.so и начинает это происходить. Поэтому просто выгрузите его и запретите загружаться.
Итак, моя цель создать сервер IP-телефонии на базе Asterisk 11.2 (cert2, lts), модуля chan_dongle.so (для работы с USB-модемом HUAWEI-E173). Практический смысл задачи придумайте сами, мною просто движет любопытство.
Установка драйверов модема Huawei e173
Драйвера, от модема Huawei e173 для OS X находятся в установочных файлах штатного программного обеспечения модема (правой кнопкой мыши по установщику, выбираем Show Content и ищем файл MobileConnectDriver.pkg. Так же вы можете скачать этот пакет из Интернет. Если ваш модем huawei привязан к определенному оператору, его можно отвязать от него, и активировать голосовые функции, если они заблокированы. В сети полно статей про отвязку модема, поэтому я не буду повторяться, пользуйтесь гуглом.
После установки модема, он будет определяться в системе устройствами:
/dev/cu.HUAWEIMobile-Diag /dev/cu.HUAWEIMobile-Modem /dev/cu.HUAWEIMobile-Pcui
Итак, собираем Asterisk 11.2 cert2
# mkdir /usr/src # cd /usr/src # curl -OL http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.2-current.tar.gz # tar xzvf certified-asterisk-11.2-current.tar.gz # cd certified-asterisk-11.2-cert2 # ./configure # make menuselect
выбираем что компилировать, если ничего не хотите менять нажимаем клавишу Q (я отключал res_snmp), или просто не выполняем команду make menuselect
# make # make install # make samples
Последняя команда установит примеры конфигурационных файлов. На этом будем считать установку Asterisk 11 завершенной. Конфигурационные файлы должны лежать в папке /usr/local/etc/asterisk, лог-файлы в каталоге /Library/Logs/Asterisk, остальные файлы PBX Asterisk расположены в папке "/Library/Application Support/Asterisk", а сам исполняемый файл находиться по адресу /usr/local/sbin/asterisk. Я создал символическую ссылку на исполняемый файл, чтобы каждый раз не указывать путь (в принципе можно было бы добавить этот путь в переменную PATH, делайте так как считаете нужным)
# ln -s /usr/local/sbin/asterisk /usr/bin/asterisk
Для автоматической загрузки сервера Asterisk при старте OS X вам нужно будет создать plist для LaunchDaemons, разместить его в каталоге /Library/LaunchDaemons и загрузить с помощью команды launchctl. Любой маковод должен знать как это делается.
Собираем chan_dongle.so версии 1.1.r34
# cd /usr/src # curl -OL https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip # unzip asterisk11.zip # cd asterisk-chan-dongle-asterisk11 # aclocal # autoconf # automake -a # ./configure --with-asterisk=/usr/src/certified-asterisk-11.2-cert2/include
затем я отредактировал созданный Makefile, заменив -Xlinker 10.4 на -Xlinker 10.8 и продолжил компиляцию
# make
а вот саму установку я сделал руками (make install не сработал, а разбираться из-за чего было лениво)
# cp chan_dongle.so /Library/Application\ Support/Asterisk/Modules # cp etc/dongle.conf /usr/local/etc/asterisk
После установки драйверов модема, Asterisk, модуля chan_dongle.so, остается только настроить dialplan и модуль chan_dongle. Настройку dialplan посмотрите в статье http://habrahabr.ru/post/160299/. А в /usr/local/etc/asterisk/dongle.conf внесите изменения в секции [dongle0].
[dongle0] audio=/dev/cu.HUAWEIMobile-Diag data=/dev/cu.HUAWEIMobile-Pcui imei=ваш imei imsi=ваш imsi context=ваш входящий диалплан
imei и imsi можно посмотреть в самом Asterisk с помощью команды dongle show devices. В данном виде мой GSM-шлюз принимает входящие вызовы с sim карты без проблем, сохраняет sms в файл. Вызовов на sim-карту не очень много, поэтому мне сложно судить о производительности или надежности этой системы. Через некоторое время отпишусь по поводу надежности и качества работы системы.
UPDATE: довелось мне обновиться до версии Asterisk 11.6 cert2. И столкнулся с тем, что по SIP появилась односторонняя слышимость. Оказалось что в Asterisk 11.6 по умолчанию компилируются и загружаются модули res_timing_kqueue.so и res_timing_pthread.so. Так вот при загруженном модуле res_timing_kqueue.so и начинает это происходить. Поэтому просто выгрузите его и запретите загружаться.
Комментариев нет:
Отправка комментария