Команды CLI FreeSWITCH (FS_CLI), profile, gateways, debug, reloadxml.
В этой статье мы расскажем, как пользоваться FreeSWITCH CLI (Command Line Interface) (FS_CLI) и приведем основные команды, которые помогут вам в процессе эксплуатации FreeSWITCH. CLI необходима для дебага ошибок и управления FreeSWITCH .
Для захода в FreeSWITCH CLI (FS_CLI) необходимо ввести следующие команды:
fs_cli
если у вас не установлена ссылка на fs_cli, то
/usr/local/freeswitch/bin/fs_cli
Параметры командной строки для запуска FreeSWITCH
-?,-h --help Помощь. Cписок доступных параметров командной строки-H, --host=hostname Хост, к которому нужно подключится
-P, --port=port Порт для подключения (1 - 65535)
-u, --user=user@domain user@domain
-p, --password=password Пароль
-i, Разрешить использовать Ctrl-C, чтобы выйти из консоли
-x, "<команда CLI>" Для выполнения команд из консоли Linux. Например, fs_cli -x "sofia status profile internal"
-l, Уровень ведения журнала
-U, Включить UUID на выходе журнала
-S, Включить укороченный UUID в выходе журнала
-q, Отключить ведение журнала
-r, В случае неудачного соединения попытка повторного соединения
-R, Повторное подключение при отключении
-d, Уровень Отладки (0 - 7)
-b, Пакетный режим
-t, Тайм-аут для команды API (в миллисекундах)
-T, Таймаут для сокет соединения (в миллисекундах)
-n, Отключить цветовое оформление
Для выхода из консоли необходимо нажать Ctrl-D или ввести /exit,/quit,/bye.
Теперь перейдем непосредственно к командам в CLI.Запуск нового профиля
Если вы создали новый профиль, необходимо запустить его из консоли:
freeswitch> sofia profile start
Перегрузка профилей(profiles) и шлюзов (gateways)
Вы можете перегрузить определенные профили, выполнив в консоли команду restart/rescan.
freeswitch> sofia profile [|] reloadxml
Разница между rescan и restart в том, что rescan просто загрузит новый конфиг, и не будет останавливать FreeSWITCH , так что все текущие вызовы (разговоры) не оборвутся.
Удаление шлюзов (gateways)
Если вам требуется удалить определенный шлюз, можно воспользоваться командой killgw.
freeswitch> sofia profile killgw
Перезагрузка шлюза (gateways)
Для принудительной перезагрузки шлюза используйте комбинацию команд killgw и rescan. При этом сохранятся текущие вызовы.
freeswitch> sofia profile killgw
freeswitch> sofia profile rescan
Добавление/изменение существующих шлюзов (gateways)
Будем считать, что все ваши шлюзы находятся в директории: /usr/local/freeswitch/conf/sip_profiles/external, и вы только что создали новый шлюз. Команды rescan, reloadxml добавят новый шлюз, но не повлияют на текущие вызовы.
freeswitch> sofia profile external rescan reloadxml
Предположим, что вы ошиблись с данными в созданном шлюзе (gateways), и нужно внести изменения (исправить). Вы вносите нужные изменения, и теперь нужно убить существующую регистрацию командой killgw, а затем командами rescan и reloadxml перечитать конфиг и поднять шлюз.
freeswitch> sofia profile external killgw
freeswitch> sofia profile external rescan reloadxml
Просмотр SIP регистраций
Если вы хотите посмотреть все устройства, зарегистрированные в системе, выполните следующие команды:
freeswitch> sofia status profile reg
freeswitch> sofia status profile default reg
freeswitch> sofia status profile outbound reg
Если вы хотите посмотреть статус зарегистрированных устройств в формате XML, выполните следующие команды:
freeswitch> sofia xmlstatus profile reg
freeswitch> sofia xmlstatus profile default reg
freeswitch> sofia xmlstatus profile outbound reg
Отобразить статус шлюзов
Отобразить статус активных шлюзов:
freeswitch> sofia profile gwlist up
Отобразить статус неактивных шлюзов:
freeswitch> sofia profile gwlist down
Дебаг и отладка
FreeSWITCH может выводить отладочную информацию следующих уровней:
- 0 SU_DEBUG_0() - fatal errors, panic
- 1 SU_DEBUG_1() - critical errors, minimal progress at subsystem level
- 2 SU_DEBUG_2() - non-critical errors
- 3 SU_DEBUG_3() - warnings, progress messages
- 5 SU_DEBUG_5() - signaling protocol actions (incoming packets, ...)
- 7 SU_DEBUG_7() - media protocol actions (incoming packets, ...)
- 9 SU_DEBUG_9() - entering/exiting functions, very verbatim progress
Дебаги бывают следующих видов (перевод смысла не имеет, так как все и так понятно):
- #SOFIA_DEBUG Default debug level (0..9)
- #NUA_DEBUG User Agent engine (nua) debug level (0..9)
- #SOA_DEBUG SDP Offer/Answer engine (soa) debug level (0..9)
- #NEA_DEBUG Event engine (nea) debug level (0..9)
- #IPTSEC_DEBUG HTTP/SIP authentication module debug level (0..9)
- #NTA_DEBUG Transaction engine debug level (0..9)
- #TPORT_DEBUG Transport event debug level (0..9)
- #TPORT_LOG If set, print out all parsed SIP messages on transport layer
- #TPORT_DUMP Filename for dumping unparsed messages from transport
- #SU_DEBUG su module debug level (0..9)
Уровень детальности сообщений и дебаг можно задать с помощью команды:
freeswitch> sofia loglevel
[0-9]
Уровень 0 отключает отладку. Отключить отладку у всех можно с помощью команды:
freeswitch> sofia loglevel all 0
Теперь перейдем к Sip debug
Включить общий SIP debug :
sofia global siptrace [on|off]
Включить SIP debug для определенного профиля:
freeswitch> sofia profile siptrace on|off
Если вы хотите получать SIP debug в файл /usr/local/freeswitch/log/freeswitch.log, введите команду:
freeswitch> sofia tracelevel info (or any other loglevel name or number)
Если хотите включить в общий лог SIP дебага по умолчанию, добавьте в sofia.conf.xml следующую опцию
nano /usr/local/freeswitch/conf/autoload_configs/sofia.conf.xml
<global_settings>
...
<param name="tracelevel" value="DEBUG"/>
...
</global_settings>
А так же нужно добавить в настройки нужного нам sip профиля:
<profiles>
...
<profile name="...">
...
<param name="sip-trace" value="yes"/>
...
</profile>
...
</profiles>
После чего в консоли FS делаем
reload mod_sofia и reloadxml
Sofia SIP Stack Watchdog
Иногда (в редких случаях) модуль Sofia может перестать отвечать на запросы или просто зависнет, можно включить опцию контроля watchdog. Эта опция позволяет контролировать модуль Sofia, и, в случае не ответа на запросы, в течении указанного кол-ва миллисекунд watchdog перезагрузит FreeSWITCH.
<param name="watchdog-enabled" value="no"/>
<param name="watchdog-step-timeout" value="30000"/>
<param name="watchdog-event-timeout" value="30000"/>
В FS CLI Watchdog может быть включен или выключен глобально или для конкретного профиля:
sofia profile internal watchdog off
sofia profile internal watchdog on
sofia global watchdog off
sofia global watchdog on
На этом наш небольшой "экскурс" в CLI FreeSWITCH закончен.Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.