1.什么是FreeSWITCH?
1.1.FreeSWITCH概念开源的电话交换平台. 跨平台 可伸缩: 从软电话客户端到运营商用的软交换几乎无所不能 免费 支持Sip,H323,Skype,Google Talk等多种通信协议1.2.FreeSWITCH的功能 国外,很多ISP和运营商把它作为关键的软交换设备,处理成千上万的并发通话,也用于呼叫中心 国内,广泛用户呼叫中心,指挥调度平台,从这方面讲,它是传统电话交换系统良好的替代品. 1)典型功能 在线计费,预付费 电话路由 语音转码 多点会议 IVR,语音通知服务器 ...2.快速体验
FreeSWITCH默认的配置是一个SOHOPBX(家用电话小交换机)2.1.安装基本FreeSWITCH系统 1)版本简介 版本号有3部分构成,以点隔开 第1位是主版本号,第2位是次版本号,第3位是补丁及更新的标志位,从第2位看,偶数的版本是稳定版,奇数位开发版. 2)安装FreeSWTICH3.连接SIP电话
FreeSWITCH最典型的应用是作为一个服务器,并用电话客户端软件连接到它3.1 SIP软电话:常用的X-Lite和Zoiper3.2 FreeSWITCH默认设置了1000~1019共20个用户,你可以选择一个用户配置 1.在X-Lite上右击,选"Sip Account Settings..",点击Add添加账号,填入一下参数 Display Name: 1000 User name: 1000 PassWord: 1234 Authorization user name: 1000 Domain: 你的ip 2.点击OK,注册成功会显示Ready.Your user-names is 1000 输入“9664”按回车3.3 配置FreeSwitch vars.xml 一些常用变了 switch.xml 主配置文件,用include装入其他文件 autoload_configs 存放自动加载的配置文件 modules.conf.xml 配置freeswtich启动时自动装载哪些模块 *.xml 每个模块都有一个配置文件 chatplan 聊天计划 dialplan 拨号计划 default.xml 内部用户路由 public.xml 外部来话路由 directory 用户目录 default 默认用户目录配置 *.xml sip用户,每个用户一个文件 ivr——menus IVR菜单 jingle_PRofiles 连接Google Talk lang 多语言支持 en 英语 fr 法语 mrcp_profiles MRCP,第三方语音合成,识别 sip_profiles SIP配置文件 internal.xml SIP-UA,监听本地IP及5060 external.xml SIP-UA,外部连接端口5080 skinny_profiles 思科SCCP协议话机的配置文件3.4 添加一个用户 1.在conf/directory/default/中增加一个用户配置文件 effective_caller_id_name: Jack 2.修改拨号计划使其他用户可以呼叫它 conf/dialplan/default.xml 找到<condition field="destination_number" expression="^(01[01][0-9])$"> ^(01[01][0-9])$,匹配1000~1019,因此我们修改之后就可以匹配更多 3.重新加载配置 启动fs_cli,执行reloadxml命令,重新加载配置文件 4.振铃音 conf/autoload_configs/portaudio.conf.xml <parm name="ring-file" value="/home/your_name/your_ring_file.wav" /> 5.显示多少用户已注册 sofia status profile internal reg3.5 拨打外部电话 1.添加网关 conf/sip_profiles/external/创建XML文件 <gateway name="gw1"> <param name="realm" value="SIP 服务器地址,可以是IP或IP:端口号" /> <param name="username" value="SIP用户名" /> <param name="password" value="密码" /> </gateway> 2.重启,查看网关状态 sofia profile external rescan sofia status 如果显示gw1状态是REGED,表明正确注册到网关了 3.测试一下是否工作 originate sofia/gateway/gw1/xxxxx &echo 呼叫xxxxx手机号3.5.1 从某一分机呼出 常见PBX,一般是内部拨打小号,外部电话加拨0或9,创建新的XML文件 conf/dialplan/default/call_out.xml <include> <extension name="call_out"> <condition field="destination_number" expression="^0(/d+)$"> <action application="bridge" data="sofia/gateway/gw1/$1" /> </conditon> </extension> </include>3.5.2 呼入电话处理 创建XML,放到conf/dialplan/public/my_did.xml <include> <extension name="public_did"> <condition field="destination_number" expression="^(你的DID)$"> <action application="transfer" data="1000 XML default" /> </condition> </extension> </include> 将来话转接到分机1000上4.FreeSwitch用作软电话
可以看作用FreeSWTICH做了一个X-Lite,支持CELT高清通话使用mod_portaudio模块支持本地的音频设备安装该模块make mod_portaudiomakemod_portaudio-install1)振铃音conf/autoload_configs/portaudio.conf.xml将ring-file一行修改为:<param name="ring-file" value="/home/your_name.wav" />然后重新加载模块reloadxmlreload mod_portaudio5.配置SIP网关拨打外部电话
如果你拥有某个运营商提供的SIP账号,那么你就可以通过配置SIP拨打外部电话了该SIP账号在FreeSWTICH中称为SIP网关, 1.添加一个网关只要在conf/sip_profiles/external/中创建一个xml文件,如gw1.xml<gateway name="gw1"> <param name="realm" value="SIP服务器地址,可以是IP或IP:端口号"/> <param name="username" value="SIP用户名"/> <param name="password" value="密码"/></gateway> 2.sofia profile external rescan 重新加载 3.查看网关状态 sofia status5.1从某一分机上呼出由于我们把FreeSWITCH当做PBX用,所以需要选出一个出局字冠,常见的PBX一般是内部拨小号,打外部电话加拨0或9,这些你可以自己设置,修改拨号计划,创建新的XML文件,conf/displan/default/call_out.xml<include> <extension name="call out"> <condition field="destination_number" expression="^0(/d+)$"> <action application="bridge" data="sofia/gateway/gw1/$1"/> </condition> </extension></include>^0(/d+)$,/d+匹配0后面的所有数字并保存到变量$1,然后通过bridge程序通过网关gw1打出该号码5.2.呼入电话处理如果你的SIP网关支持DID,那么你需要知道呼入的DID号码,一般来说,呼入DID就是SIP号码,创建一下XML并放到conf/displan/public/my_did.xml<include> <extension name="public_did"> <condition field="destination_number" expression="^(5551212)$"> <action application="set" data="domain_name=$${domain}"/> <action application="transfer" data="1000 XML default"/> </condition> </extension></include>来电话直接转接到分机1000上5.6.小结新闻热点
疑难解答