Провиженинг Softphone.Pro
Описание: В одной из наших статей было рассмотрено как выполнить настройку внутреннего номера в Softphone.Pro https://voxlink.ru/kb/ip-phones-configuration/softfon/ustanovka-i-nastrojka-softphonpro/, но данное ПО обладает функционалом автонастройки и значительно облегчает настройку большого количества внутренних номеров. В рамках данной статьи будет рассмотрено как выполнить подготовку WEB сервера провиженинга, создание скриптов для генерации конфигурационных файлов на основе данных из БД FreePBX: В […]
Описание:
В одной из наших статей было рассмотрено как выполнить настройку внутреннего номера в Softphone.Pro https://voxlink.ru/kb/ip-phones-configuration/softfon/ustanovka-i-nastrojka-softphonpro/, но данное ПО обладает функционалом автонастройки и значительно облегчает настройку большого количества внутренних номеров. В рамках данной статьи будет рассмотрено как выполнить подготовку WEB сервера провиженинга, создание скриптов для генерации конфигурационных файлов на основе данных из БД FreePBX:
В
статье использовались файлы:
configs.php — скрипт
генерации конфигурационных файлов провиженинга, содержащих внутренний номер и
пароль регистрации внутреннего номера
users.php — скрипт генерации конфигурационного файла , содержащего
лоигн:пароль для авторизации на web сервере
провиженинга
softphonepro_provisioning_server.zip — web сервер провиженинга
Инструкция:
- Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.
- Выполним скачивание WEB сервера провиженинга в корневую директорию Apache
# cd /var/www/html/
# git clone https://github.com/vedisoft/softphonepro_provisioning_server.git softphonepro
# chown asterisk:asterisk /var/www/html/softphonepro -R
3. Выполним настройку базового конфигурационного файла, который будет использоваться для всех внутренних номеров:
# nano /var/www/html/softphonepro/templates/sip_account_common.ini
Где ключевые параметры для изменения:
Server — IP адрес
или доменное имя сервера телефонии(в примере данной статьи 192.168.170.197)
Domain — IP адрес или доменное имя сервера
телефонии(в примере данной статьи 192.168.170.197)
LocalPort – локальный порт софтфона можно не указывать, тогда будет
генерироваться динамический(в примере данной статьи 5060)
Transport — протокол, может принимать значения Auro/TCP/UDP(в примере данной статьи UDP)
CallTransferDTMF – код используемый
для условного трансфера вызова
CallPickupDTMF — код парковки вызова
RtpPortStart — диапазон голосовых портов
RtpPortEnd — диапазон голосовых
портов
4. Выполним настройку Apache для доступа к WEB серверу провиженинга по http:
# nano +1500 /etc/httpd/conf/httpd.conf
Добавить следующие строки:
NameVirtualHost
*:8080
Listen 8080
<VirtualHost *:8080>
DocumentRoot /var/www/html/softphonepro
<Directory /var/www/html/softphonepro>
RewriteEngine off
Options +FollowSymLinks
</Directory>
</VirtualHost>
5. Создадим скрипты автоматической генерации конфигурационных файлов провиженинга на основе данных из БД FreePBX:
# nano /opt/configs.php
<?php
// Данные
подключения к БД
$DBhost = "localhost";
$DBuser = "freepbxuser";
$DBpass = "пароль";
$DBdatabase = "asterisk";
// Функция
удаления старых конфигурационных файлов
recursive("/var/www/html/softphonepro/configs");
function recursive($dirname){
if(is_dir($dirname)){
$opendir = opendir($dirname);
while(($name = readdir($opendir)) !==
false){
$fullpath = $dirname.'/'.$name;
if(is_file($fullpath)){
if(preg_match('~(.*)+\.ini~',
$fullpath)){
echo 'file "'.$fullpath.'"
deleted!<br>' . "\r\n";
unlink($fullpath);
}
}
else if($name != '.' && $name
!= '..') recursive($fullpath);
}
closedir($opendir);
}
else echo $dirname.' - not dir!';
}
recursive('stats');
// Подключение
к БД и получение данных для регистрации
всех внутренних номеров
$DBlink = @mysql_connect($DBhost, $DBuser,
$DBpass) or die("Could not connect to host.");
@mysql_select_db($DBdatabase, $DBlink) or die("Could not find
database.");
$DBquery = "SELECT id,data FROM sip WHERE keyword='secret';";
$QUERYresult = @mysql_query($DBquery,$DBlink) or die("Data not
found.");
//Добавление
данных в массив
while ($contact=@mysql_fetch_array($QUERYresult)){
$result = "{% include \"restrictions.ini\" %} \n{% include
\"app_settings.ini\" %} \n{% include
\"sip_account_common.ini\" %} \nName=" . $contact['id'] .
"\n" . "Username=" . $contact['id'] . "\n" .
"Password=" . $contact['data'] . "\n" . "AuthId="
. $contact['id'] . "\n" . "DisplayName=" . $contact['id'] .
"\n" . "\n";
file_put_contents("/var/www/html/softphonepro/configs/".
$contact['id'] . ".ini",print_r($result,true),FILE_APPEND);
//Смена
прав пользователя и группы
chmod("/var/www/html/softphonepro/configs/". $contact['id'] .
".ini", 0777);
chown("/var/www/html/softphonepro/configs/". $contact['id'] .
".ini", "asterisk");
chgrp("/var/www/html/softphonepro/configs/". $contact['id'] .
".ini", "asterisk");
}
?>
# nano /opt/users.php
<?php
// Данные подключения к БД
$DBhost = "localhost";
$DBuser = "freepbxuser";
$DBpass = "пароль";
$DBdatabase = "asterisk";
//Удаление старого конфигурационного файла
unlink("/var/www/html/softphonepro/users.xml");
// Подключение к БД и получение данных для
регистрации всех внутренних номеров
$DBlink = @mysql_connect($DBhost, $DBuser, $DBpass) or die("Could not
connect to host.");
@mysql_select_db($DBdatabase, $DBlink) or die("Could not find database.");
$DBquery = "SELECT id,data FROM sip WHERE keyword='secret';";
$QUERYresult = @mysql_query($DBquery,$DBlink) or die("Data not
found.");
file_put_contents("/var/www/html/softphonepro/users.xml",print_r("<?xml
version=\"1.0\" encoding=\"UTF-8\"?>" . "\n"
. "<users>" . "\n",true),FILE_APPEND);
// Добавление данных в массив
while ($contact=@mysql_fetch_array($QUERYresult)){
$result = "<user>" . "\n" . "<login>"
. $contact['id'] . "</login>" . "\n" .
"<password>" . $contact['id'] . "</password>" .
"\n" . "</user>" . "\n";
file_put_contents("/var/www/html/softphonepro/users.xml",print_r($result,true),FILE_APPEND);
}
file_put_contents("/var/www/html/softphonepro/users.xml",print_r("</users>"
. "\n",true),FILE_APPEND);
//Смена прав пользователя и группы
chmod("/var/www/html/softphonepro/users.xml", 0777);
chown("/var/www/html/softphonepro/users.xml", "asterisk");
chgrp("/var/www/html/softphonepro/users.xml", "asterisk");
?>
6. Выполним запуск созданных скриптов генерации конфигурационных файлов провиженинга:
# php /opt/configs.php
# php /opt/users.php
7. Выполним генерацию/скачивание/установку SoftphonePro с вшитой ссылкой на WEB сервер провиженинга, для этого перейдет на сайт разработчика по ссылке https://ru.softphone.pro/it-pros и в параметре provisioning.ini укажем конфигурации вида:
[Features]
# 0 or 1
ProvisioningEnabled=1
[Urls]
LoginUrl=http://192.168.170.197:8080/login.php?login=%LOGIN%&password=%PASSWORD_HASH%
где 192.168.170.197 — это IP адрес сервера телефонии с развернутым WEB сервером провиженинга
8080 — порт VirtualHost настраиваемый в п.4 данной статьи
SoftphonePro_provision_7.
8. При первом запуске софтфона необходимо будет ввести логин и пароль, скрипт users.php генерирует пару Логин:Пароль равную внутреннему номеру сотрудника
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.