首页 > 学院 > 开发设计 > 正文

4.运行freeswitch

2019-11-06 08:54:45
字体:
来源:转载
供稿:网友

1.命令行参数

1) freeswitch -help -nf 不允许Fork新进程 -u 启动后以非root用户运行 -g 启动后以非root组运行 -help 帮助信息 -version 版本信息 -waste 允许浪费内存地址空间 -core 出错时进行内核转储 -rp 开启高优先级(实时) -lp 开启低优先级 -np 普通优先级 -vg 调试内存泄漏 -nosql 不适用SQL -heavy-timer 更精确的始终 -nocal 关闭时钟核准 -nort2) freeswitch -nc freeswitch在启动时默认会启用uPnP协议试图查找你的路由器是否支持,如果你的路由器不支持该协议,这一步可能耗时较长,因而影响启动速度 如果内网,并且一天启动多次的话,可以关掉 freeswitch -nc -nonat

2.系统启动脚本

1) 通过log/freeswitch.log跟踪系统运行情况 cat /var/log/freeswitch/freeswitch.log2) 一般需要freeswitch随系统启动 启动脚本一般放在/etc/init.d/下

3.判断FreeSWITCH是否运行

1) 查看进程 ps aux | grep freeswitch2) 查看端口是否被占用 netstat -ano | grep 5060

4.控制台

1) 常用命令version 显示当前版本status 显示当前状态 第3行,显示系统自启动以来处理了多少session 第4行,显示当前有多少Session,其中0 out of max 30 per sec,说明系统最大支持每秒处理30个Session,也就是cps,可以在配置文件修改 第5行,系统最大处理的并发Session 第6行,最小及当前空闲的CPU 第7行,显示当前使用堆栈和系统预留的堆栈sofia status 显示sofia状态help 显示帮助2) fs_cli是一个类似Telnet的客户端 如果出现Error Connecting,可能是FreeSwitch没有启动或mod_event_socket没有正确加载,请检查TCP的8021端口是否被其他进程占用3) -x参数,运行执行一条命令后退出 fs_cli -x "version" fs_cli -x "originate user/1000 &bridge(uesr/1001)" 回拨4) 特殊命令 /quit /bye /exit Ctrl+D 退出fs_cli /help 帮助 /event 开启事件接受 /noevents 关闭事件接受 /nixevent 除了特定一种,开启所有事件 /log 设置log级别,/log info 或 /log debug /nolog 关闭log /filter 过滤事件

5.呼叫

1) originate发起呼叫 originate user/1000 &echo 呼叫1000,执行echo,echo是回音程序2) 呼叫字符串 user/1000 ,user是一种特殊的呼叫字符串 sofia status PRofile internal reg 查看注册信息 1.Contact "" <sip:10085455@10.6.2.29:55856;ob;fs_nat=yes;fs_path=sip%3A10085455%4010.6.2.29%3A55856%3Bob> 2.10085455的sip地址 sip:10085455@10.6.2.29:55856 3.当使用originate呼叫user/10085455这个字符串时,Freeswitch会在用户目录查找10085455这个用户,找到他的dial-string,dial-string包含10085455实际Contact地址的查找方法,进而找到Contact地址sip:10085455@10.6.2.29:55856,并向其发送INVITE请求

6.API与App

1) originate是freeswitch内部的一个命令,用于控制freeswitch发起一个呼叫 命令不仅可以在控制台使用,也可以在各种嵌入式 脚本,因而称为API Commands2) 1.echo是一个常用的应用程序(APP),它的作用是控制一个Channel的一端 我们知道一个Channel有两端,在上面的例子10085455是一端,另一端就是echo,电话接通后相当于alice与echo通话,实际上组成了freeswitch的一条腿,这种通话称为单腿通话 2.park是另一个常用的应用程序 当我们初始化了一个呼叫时,在10085455接电话后对端必须有一个人跟他讲话,而如果freeswitch找不到合适的人,就会将该电话挂起,park就实现这个挂起功能 3.park用户体验很差,因为10085455不知道要等多长时间,听不到任何声音 hold就比较友好,它能在等待的同事播放保持音乐 originate user/10085455 &hold 4.也可以播放一个特定的声音文件 originate user/10085455 &playback(/root/welcome.wav) 5.也可以录音 originate user/10085455 &record(/tmp/voice_of_10085455.wav)3) 以上的例子实际上都只是建立一个Channel,相当于freeswitch作为一个UA跟10085455通话,它只有一条腿,大多数情况下,freeswitch都是作为一个B2BUA来桥接两个UA进行通话的,在10085455接听电话后,bridge程序再启动一个UA呼叫bob originate user/1008545 &bridge(user/10085467)4) API与App最本质的区别 一个App是一个程序,作为一个Channel一端与另一端UA进行通信,工作在Channel内部 一个API则是独立于Channel之外的,他通过找到Channel的uuid来控制一个Channel
上一篇:5.freeswitch架构

下一篇:3.初始freeswitch

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表