专为易燃易爆环境设计的扩音电话
基于SIP协议的网络电话机
基于SIP协议的IP对讲机
实现不同通信网络之间的互联互通。
为应急通信系统提供应急广播设备
专用的应急指挥通中心通信调度设备
提供寻呼、广播、对讲、电话、报警等功能...
集成了语音、视频、即时消息、会议的通信平台...
基于电话通信技术,为企业提供客服呼叫方案...
用于实时调度和指挥工作,快速响应和协调沟通...
为制造业、矿业、石油化工、等场所,构建可靠的通信方案...
为高速公路、地铁、隧道等交通场所提供应通信方案...
处理客户的查询、投诉、技术支持、订单处理...
专门为处理紧急情况而设计的通信系统
专门设计用于危险环境中的通信系统
公司动态简介
行业知识简介
博客
2017-01-12
命令行参数 一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动。在此,仅作简单介绍。如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到。
使用 freeswitch -help 或 freeswitch --help 会显示以下信息:
-nf -- no forking -u [user] -- 启动后以非 root 用户 user 身份运行 -g [group] -- 启动后以非 root 组 group 身份运行 -help -- 显示本帮助信息 -version -- 显示版本信息 -waste -- 允许浪费内存,FreeSWITCH 仅需 240K 的栈空间 你可以使用 ulimit -s 240 限制栈空间使用,或使用该选择忽略警告信息 -core -- 出错时进行内核转储 -hp -- 以高优先级运行 -vg -- 在 valgrind 下运行,调试内存泄露时使用 -nosql -- 不使用 SQL,show channels 类的命令将不能显示结果 -heavy-timer -- 更精确的时钟。可能会更精确,但对系统要求更高 -nonat -- 如果路由器支持 uPnP 或 NAT-PMP,则 FreeSWITCH 可以自动解决 NAT 穿越问题。如果路由器不支持,则该选项可以使启动更快 -nocal -- 关闭时钟核准。FreeSWTICH 理想的运行环境是 1000 Hz 的内核时钟 如果你的内核时钟小于 1000 Hz 或在虚拟机上,可以尝试关闭该选项 -nort -- 关闭实时时钟 -stop -- 关闭 FreeSWTICH,它会在 run 目录中查找 PID文件 -nc -- 启动到后台模式,没有控制台 -c -- 启动到控制台,默认 -conf [confdir] -- 指定其它的配置文件所在目录,须与 -log、 -db 合用 -log [logdir] -- 指定其它的日志目录 -run [rundir] -- 指定其它存放 PID 文件的运行目录 -db [dbdir] -- 指定其它数据库目录 -mod [moddir] -- 指定其它模块目录 -htdocs [htdocsdir] -- 指定其它 HTTP 根目录 -scripts [scriptsdir] -- 指定其它脚本目录
系统启动脚本 在学习调试阶段,你可以启动到前台,而系统真正运行时,你可以使用 -nc 参数启动到后台,然后通过查看 log/freeswitch.log 跟踪系统运行情况(你可以用 tail -f 命令实时跟踪,我一般使用 less)。
一般情况下,启动到前台更容易调试,但你又不想在每次关闭 Terminal 时停止 FreeSWITCH,那么,你可以借助 screen 来实现。
在真正的生产系统上,你需要它能跟系统一起启动。在 *nix 系统上,启动脚本一般放在 /etc/init.d/。你可以在系统源代码目录下找到不同系统启动脚本 debian/freeswitch.init 及 build/freeswitch.init.*,参考使用。在 Windows 上,你也可以注册为 Windows 服务,参见附录中的 FAQ。
控制台与命令客户端 系统不带参数会启动到控制台,在控制台上你可以输入各种命令以控制或查询 FreeSWITCH 的状态。试试输入以下命令:
version -- 显示当前版本 status -- 显示当前状态 sofia status -- 显示 sofia 状态 help -- 显示帮助
为了调试方便,FreeSWITCH 还在 conf/autoload_configs/switch.conf.xml 中定义了一些控制台快捷键。你可以通过F1-F12来使用它们(不过,在某些操作系统上,有些快捷键可能与操作系统的相冲突,那你就只直接输入这些命令或重新定义他们了)。
<cli-keybindings> <key name="1" value="help"/> <key name="2" value="status"/> <key name="3" value="show channels"/> <key name="4" value="show calls"/> <key name="5" value="sofia status"/> <key name="6" value="reloadxml"/> <key name="7" value="console loglevel 0"/> <key name="8" value="console loglevel 7"/> <key name="9" value="sofia status profile internal"/> <key name="10" value="sofia profile internal siptrace on"/> <key name="11" value="sofia profile internal siptrace off"/> <key name="12" value="version"/> </cli-keybindings>
FreeSWITCH 是 Client-Server结构,不管 FreeSWITCH 运行在前台还是后台,你都可以使用客户端软件 fs_cli 连接 FreeSWITCH.
fs_cli 是一个类似 Telnet 的客户端(也类似于 Asterisk 中的 asterisk -r命令),它使用 FreeSWITCH 的 ESL(Event Socket Library)库与 FreeSWITCH 通信。当然,需要加载模块 mod_event_socket。该模块是默认加载的。
正常情况下,直接输入 bin/fs_cli 即可连接上,并出现系统提示符。如果出现:
[ERROR] libs/esl/fs_cli.c:652 main() Error Connecting [Socket Connection Error]
这样的错误,说明 FreeSWITCH 没有启动或 mod_event_socket 没有正确加载,请检查TCP端口8021端口是否处于监听状态或被其它进程占用。
fs_cli 也支持很多命令行参数,值得一提的是 -x 参数,它允许执行一条命令后退出,这在编写脚本程序时非常有用(如果它能支持管道会更有用,但是它不支持):
bin/fs\_cli -x "version" bin/fs\_cli -x "status"
其它的参数都可以通过配置文件来实现,在这里就不多说了。可以参见:
使用fs_cli,不仅可以连接到本机的 FreeSWITCH,也可以连接到其它机器的 FreeSWITCH 上(或本机另外的 FreeSWITCH 实例上),通过在用户主目录下编辑配置文件 .fs_cli_conf(注意前面的点“.”),可以定义要连接的多个机器:
[server1] host => 192.168.1.10 port => 8021 password => secret_password debug => 7
[server2] host => 192.168.1.11 port => 8021 password => someother_password debug => 0
注意:如果要连接到其它机器,要确保 FreeSWITCH 的 Event Socket 是监听在真实网卡的 IP 地址上,而不是127.0.0.1。另外,在UNIX中,以点开头的文件是隐藏文件,普通的 ls 命令是不能列出它的,可以使用 ls -a。
一旦配置好,就可以这样使用它:
bin/fs_cli server1 bin/fs_cli server2
在 fs_cli 中,有几个特殊的命令,它们是以 “/” 开头的,这些命令并不直接发送到 FreeSWITCH,而是先由 fs_cli 处理。/quit、/bye、/exit、Ctrl + D 都可以退出 fs_cli;/help是帮助。
联系我们
028-83110277
IP电话机、视频电话机供应商
手机:
成都世讯电科信息技术有限公司是一家多媒体融合通信解决方案及运营服务提供商,公司专注于为广大用户提供简单高效的通信产品和真正符合行业用户需求的行业应用解决方案,让用户享受到个性化、私密性强又具开放性、兼容性强又易于管理的高科技服务,帮助用户实现办公及运营通信的现代化与网络信息化。
公司拥专注于IP多媒体解决方案的应用与实施,有IP多媒体通信系统(IPBX)、IP多媒体通信平台定制与搭建(运营、对讲广播、门禁、调度、音视频会议及与视频监控交互式应用等)、IP电话机、视频电话机、项目租赁、云通信及系统集成等服务。
电话:028-83110277
Q Q:86313858