По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Многие слышали, но боялись "пощупать" страшного зверя по имени FreeSwitch (FS). Уверяю Вас, что страшного ничего нет. Правда придется перестроить свои мозги на его понимание. Он сильно отличается от Asterisk. И хотя FS такая же программная АТС как и Asterisk, но задачи у них разные. FS позиционируется как "провайдерская" АТС, а Asterisk офисный вариант. Несмотря на это, я его использую даже, как говорится, "для дома, для семьи", то есть дома на одноплатнике Orange PI Plus 2E. Так как на нем стоит Ubuntu 16, то описывать установку я буду для Ubuntu из исходников. Если кому-то нужно попроще, то может установить на Debian (разработчики именно его рекомендуют. Как поставить из пакетов можно почитать здесь https://freeswitch.org/confluence/display/FREESWITCH/Linux А для самых искушенных даже на Windows :) https://freeswitch.org/confluence/display/FREESWITCH/Windows Сначала необходимо выполнить обновление системы: apt-get update apt-get upgrade Установим зависимости: apt-get install autoconf automake devscripts gawk g++ git-core libjpeg-dev libncurses5-dev libtool make python-dev gawk pkg-config libtiff5-dev libperl-dev libgdbm-dev libdb-dev gettext libssl-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libedit-dev libldns-dev libpq-dev libtool-bin libopus-dev libshout3-dev libmpg123-dev libmp3lame-dev libsndfile-dev libavresample-dev libswscale-dev libpng-dev libpng++-dev mpg123 После этого перезагружаемся: reboot Создаем папку и клонируем гит: cd /usr/src git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git cd /usr/src/freeswitch ./bootstrap.sh –j Подключаем необходимые модули: mcedit modules.conf + mod_rtmp + mod_directory + mod_callcenter + mod_dingaling + mod_shout + mod_cidlookup + mod_curl + mod_xml_curl Мне нужно было использовать zrtp и хранить данные в базе PostgreSQL (кстати, разработчики считают MySQL недобазой :)) Собираем с ключами: ./configure --enable-zrtp --enable-core-pgsql-support make make install Если при сборке FS ругается на openssl (switch_core_cert.lo) или что то подобное, то нужно проверить версию. Под 1.1.0 не устанавливается. Нужно ставить 1.0.2 Устанавливаем звуковые файлы: 8 kHz Standard Audio make sounds-install make moh-install 16 kHz High Definition Audio make hd-moh-install make hd-sounds-install 32 kHz Ultra High Definition Audio make uhd-moh-install make uhd-sounds-install 48 kHz CD Quality Audio make cd-sounds-install make cd-moh-install Установим русские звуковые файлы: make sounds-ru-install make cd-sounds-ru-install make uhd-sounds-ru-install make hd-sounds-ru-install Установим права и владельцев: adduser --disabled-password --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup daemon freeswitch chown -R freeswitch:daemon /usr/local/freeswitch/ chmod -R o-rwx /usr/local/freeswitch/ Создадим init скрипт для запуска /etc/init.d/freeswitch: #!/bin/bash ### BEGIN INIT INFO # Provides: freeswitch # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Freeswitch debian init script. # Author: Matthew Williams # ### END INIT INFO # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin DESC="Freeswitch" NAME=freeswitch DAEMON=/usr/local/freeswitch/bin/$NAME DAEMON_ARGS="-nc" PIDFILE=/usr/local/freeswitch/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME FS_USER=freeswitch FS_GROUP=daemon # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that sets ulimit values for the daemon # do_setlimits() { ulimit -c unlimited ulimit -d unlimited ulimit -f unlimited ulimit -i unlimited ulimit -n 999999 ulimit -q unlimited ulimit -u unlimited ulimit -v unlimited ulimit -x unlimited ulimit -s 240 ulimit -l unlimited return 0 } # # Function that starts the daemon/service # do_start() { # Set user to run as if [ $FS_USER ] ; then DAEMON_ARGS="`echo $DAEMON_ARGS` -u $FS_USER" fi # Set group to run as if [ $FS_GROUP ] ; then DAEMON_ARGS="`echo $DAEMON_ARGS` -g $FS_GROUP" fi # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null -- || return 1 do_setlimits start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background -- $DAEMON_ARGS || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } # # Function that sends a SIGHUP to the daemon/service # do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0 } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $? ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg "Reloading $DESC" "$NAME" #do_reload #log_end_msg $? #;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac exit 0 Установим ссылку на CLI cd /usr/local/bin/ ln -s /usr/local/freeswitch/bin/fs_cli fs_cli Проверим всё ли запускается: cd /usr/local/freeswitch/bin ./freeswitch freeswitch@s02d> sofia status (или просто нажимаем F5) freeswitch@s02d> list_users Если нет ошибок, и высветились профили и пользователи, то можно отключаться: freeswitch@s02d> shutdown Меняем стандартный пароль для всех пользователей (указав свой): mcedit /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="default_password=lkhd456hkhggl2"/> Включаем русский язык, если нужно: mcedit /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/ru/RU/elena"/> <X-PRE-PROCESS cmd="set" data="default_language=ru"/> После правки применяем изменения: fs_cli -x "reloadxml" Устанавливаем необходимые кодеки: mcedit /usr/local/freeswitch/conf/vars.xml <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,PCMU,PCMA,VP8"/> <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,PCMU,PCMA,VP8"/> Ну и в конце стартуем FS: service freeswitch start Для подключения к FS используем следующую команду: fs_cli -rRS Вот и всё. Мы установили и запустили FreeSwitch. О том, как настраивать пользователей, гейты, диалплан читайте в следующих статьях.
img
В этой статье приведены рекомендации по внедрению VMware vSAN (ранее известной как Virtual SAN) с помощью H730 Dell PERC или FD332-PERC контроллеров хранения данных. Лучшие практики Убедитесь, что используемая версия драйвера и микропрограммного обеспечения соответствует требованиям Руководства по совместимости VMware для vSAN (VCG). Убедитесь, что все диски поддерживаются корпорацией Dell и что все обновления встроенного ПО Dell применяются к этим дискам. Рекомендуемые комбинации драйверов и микропрограмм для основных версий vSAN см. в приведенных ниже таблицах. УстройствоРекомендуемый драйверРекомендуемое микропрограммное обеспечениеBP13G+ (Non-expander backplane)NA2.23 or laterBP13G+EX (Expander backplane)NA3.03 or laterPERC H730https://www.vmware.com/resources/compatibility/detail.php?deviceCategory=vsanio&productid=34853&deviceCategory=vsanio&details=1&vsan_type=vsanio&io_partner=23&io_releases=274&page=1&display_interval=10&sortColumn=Partner&sortOrder=AsFD332-PERChttps://www.vmware.com/resources/compatibility/detail.php?deviceCategory=vsanio&productid=38055&deviceCategory=vsanio&details=1&vsan_type=vsanio&io_partner=23&io_releases=274&keyword=FD332-PERC&page=1&display_interval=10&sortColumn=Partner&sortOrder=As Примечание: Чтобы использовать драйвер megaraid_perc9 в ESXi 5.5, необходимо отключить lsi_mr3 только в ESXi 5.5 и, возможно, драйвер megaraid_sas. Чтобы отключить эти драйверы только в ESXi 5.5: Примечание: Для выполнения этой операции требуется перезагрузка хоста ESXi. При перезагрузке убедитесь, что выбран соответствующий режим обслуживания vSAN. Для получения информации о режиме обслуживания vSAN Войдите на хост ESXi с помощью SSH или консоли. Отключите драйвер lsi_mr3, выполнив следующую команду: esxcli system module set --enabled=false --module=lsi_mr3 Перезагрузите хост ESXi. После перезагрузки определите драйвер, используемый контроллером PERC. Если используется драйвер megaraid_sas вместо megaraid_perc9, отключите драйвер megaraid_sas, чтобы заставить систему использовать соответствующий драйвер. Чтобы отключить драйвер megaraid_sas, выполните следующую команду:esxcli system module set --enabled=false --module=megaraid_sas Если вы отключили драйвер megaraid_sas на шаге 4, перезагрузите хост ESXi второй раз. Если рекомендации не выполняются, то в кластере vSAN может произойти сбой с непредвиденным сбоем диска. В среде vSAN может проявляться одно или несколько вариантов поведения: При загрузке vSAN отображается состояние vSAN Unhealthy (Нездоровый): Могут инициироваться аварийные сигналы, связанные с задержкой. В файле ESXi host/var/log/vmkernel.log отображаются следующие записи: WARNING: lsi_mr3: fusionReset:2565: megaraid_sas: Hardware critical error, returning FAILED. WARNING: ScsiPath: 7133: Set retry timeout for failed TaskMgmt abort for CmdSN 0x0, status Failure, path vmhba0:C0:T0:L0
img
Йоу! Сегодня в статье мы рассмотрим настройку телефона Grandstream GXP1620 в связке с IP-АТС Asterisk. Сразу стоит уточнить что эта инструкция также подойдет для модели GXP1625 – она отличается только отсутствием PoE. $dbName_ecom = "to-www_ecom"; $GoodID = "2537789144"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName_ecom) or die(mysql_error()); $query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';"; $res_ecom=mysql_query($query_ecom) or die(mysql_error()); $row_ecom = mysql_fetch_array($res_ecom); echo 'Кстати, купить '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. С настройкой поможем 🔧 Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽'; $dbName = "to-www_02"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); Пошаговое видео Настройка После подключения телефона к сети нам нужно определить какой IP-адрес он получил, чтобы мы смогли зайти на web-интерфейс для его настройки. Сделать это можно либо через на вашем роутере, либо через программы, сканирующие сети, либо проще всего – на самом телефоне. Для этого на экране нужно нажать на кнопку NextScr и откроется страница, на которой будет написан IP-адрес телефона. Теперь вводим этот адрес в адресной строке нашего браузера и попадаем в меню авторизации. Для телефонов Grandstream GXP1620 / GXP1625 стандартный логин – admin и стандартный пароль – admin. После ввода мы оказываемся на странице состояния учетных записей и видим, что пока наш аккаунт не активен. Сразу же можно поменять язык интерфейса можно в выпадающем меню в правом верхнем углу. Если нам нужно поменять основные сетевые настройки аппарата (например, задать статический IP адрес), то это сделать можно в разделе Сеть – Стандартный. После внесения настроек необходимо перезагрузить телефон, нажав на кнопку Перезагрузка в правом верхнем углу. Там же при необходимости можно сделать сброс к заводским настройкам, нажав кнопку Factory Reset. Теперь для настройки аккаунта нам нужно перейти во вкладку Учетные записи – Аккаунт 1 – Общее (либо Accounts – Account 1 – General Settings, если стоит английский язык). Здесь заполняем следующие поля: Аккаунт активен (Account Active) – Ставим «Да» Имя аккаунта (Account Name) – Имя для создаваемого аккаунта SIP сервер (SIP Server) – IP адрес нашей IP-АТС Второй SIP сервер (Secondary SIP Server) – указываем если имеется резервный Прокси сервер (Outbound Proxy) - IP адрес нашей IP-АТС Backup Outbound Proxy - указываем если имеется резервный SIP User ID – Указываем внутренний номер Аутентификационный ID (Authenticate ID) – Идентификационное имя, указываем внутренний номер Пароль (Authenticate Password) – Пароль внутреннего номера для регистрации на АТС Имя (Name) – Отображаемое имя Применяем настройки и телефон должен зарегистрироваться на нашей АТС. Проверить это можно зайдя во все то же меню состояния учетной записи. Наш аккаунт загорится зеленым, как и иконка трубки слева – и это значит, что регистраций прошла успешно!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59