
freeswitch与各种设备对接的成功配置需要的请参考有错误的地方请指导。1、对接华为softco中继配置\sip_profiles\external\拨号规则出局\conf\dialplan\default\--加拨9至softco softco侧配置对端SIP端口为50802、对接网络电话提供商中继配置\sip_profiles\external\includegateway namesip_ispparam nameusername valueusername/param namepassword valuepassword/param namerealm value$${local_ip_v4}/param namefrom-domain valuesip.isp.com//gateway/include拨号规则\conf\dialplan\default\includeextension namesip_isp_outboundcondition fielddestination_number expression^(1\d{10})$action applicationbridge datasofia/gateway/sip_isp/$1//condition/extension/include3、电信IMS对接中继配置\sip_profiles\external\include gateway namegd_ims param nameusername value8675512345678/ param namefrom-user value8675512345678/ param namerealm value$${local_ip_v4}/ param nameauth-username value8675512345678gd.ctcims.cn/ param nameproxy valuegd.ctcims.cn/ param namefrom-domain valuegd.ctcims.cn/ param nameregister-proxy value116.31.226.17/ param nameoutbound-proxy valuebac01.sz.gd.ctcims.cn/ param namepassword valuepassword/ param nameregister valuetrue/ param nameexpire-seconds value3600/ param nameretry-seconds value30/ param nameping value25/ param namecontext valuepublic/ param namesip-ip value$${local_ip_v4}/ /gateway /include!-- realm域名 --!-- username认证的用户名 --!-- password认证的密码 --!-- from-user指定在SIP消息中的源用户信息没有配置则默认和username相同 --!-- from-domain是指定域它们会影响SIP中的“From”头域。 --!-- regitster-proxy表示注册的地址 --!-- outbound-proxy表示呼出时指向的地址这里其实和注册地址是一致的 --!-- register是否注册 --!-- expire-seconds注册的间隔时间 -------------------------------------中继配置\sip_profiles\external\拨号规则出局\conf\dialplan\default\includeextension namegd_ims_outcondition fielddestination_number expression^(0\d{11}|0\d{10}|1\d{10}|\1d{2}|1\d{4}|[2-8]\d{7}|9\d{4}|9\d{5})$ !--出局--action applicationstart_dtmf_generate/ !-- 解决不能二次拨号深圳电信只支持inband收号方式--action applicationset dataeffective_caller_id_number8675512345678/!-- 主叫号码 --action applicationset dataeffective_caller_id_nameeSpace7950/ !-- 主叫设备名 --action applicationbridge datasofia/gateway/gd_ims/$1116.31.226.17/ !-- 在openwrt需要添加“目的IP域名可能不行”--/condition/extension/include拨号规则入局\conf\dialplan\public\includeextension nameims_in_1!-- 转接不成功转语音信箱 --condition fielddestination_number expression8675512345678$action applicationset datacall_timeout30/action applicationset datahangup_after_bridgetrue/action applicationset datacontinue_on_failtrue/action applicationtransfer data1002 XML default/action applicationanswer/action applicationsleep data1000/action applicationbridge dataloopback/appvoicemail:default ${domain_name} 1002//condition/extension/include4、对接华为UAP6600中继配置\sip_profiles\external\拨号规则出局\conf\dialplan\default\FreeSWICTCH —- 语音网关 —- 运营商 —- 手机或固话配置信息中继配置conf\sip_profiles\external二、配置外呼首先你要有某个运营商提供的sip账号该SIP账号或提供该账号的设备在 FreeSWITCH 中称为SIP网关Gateway。添加一个网关只需要在conf/sip_profiles/external/中创建一个XML文件内容是SIP服务器地址可以是IP或IP:端口号 SIP用户名 密码gateway namegw1param namerealm valueSIP服务器地址可以是IP或IP:端口号/param nameusername valueSIP用户名/param namepassword value密码//gateway重启FS使修改生效或者指令freeswitchsofia profile external rescan显示一下网关的注册状态freeswitch sofia status如果显示 gateway gw1 的状态是 REGED则表明已正确地注册到了网关上。你可以先用命令试一下网关是否工作正常freeswitch originate sofia/gateway/gw1/xxxxxx echo3.5.1 从某一分机上呼出修改拨号计划创建一个新的XML文件— conf/dialplan/default/call_out.xml内容如下includeextension namecall outcondition fielddestination_number expression^0(\d)$action applicationbridge datasofia/gateway/gw1/$1//condition/extension/include其中“^0(d)$”为正则表达式“(d)”匹配 0 后面的所有数字并存到变量$1中。然后通过bridge程序通过网关gw1打出该号码。当然建立该XML后需要在控制台中执行reloadxml使之生效3.5.2 呼入电话处理创建以下XML文件并放到 conf/dialplan/public/my_did.xml中includeextension namepublic_didcondition fielddestination_number expression^(你的DID)$action applicationtransfer data1000 XML default//condition/extension/include在FreeSWITCH中执行reloadxml使之生效。上述配置会将来话直接转接到分机 1000 上4、总结FreeSWITCH的外呼场景主要通过配置网关注册、拨号计划来实现实际上外呼中的呼叫、转接、会议都要用到这两个技术网关如果在同一网段或者网关在FreeSWITCH的外网的话实际上就是说FreeSWITCH可以直接访问到网关就采用FreeSWITCH注册到网关或者指向网关的方式这也是常用的方式。 如果网关在内网而FreeSWITCH在外网的话就只能采用内网网关注册到FreeSWITCH的方式。拨号计划是 FreeSWITCH 中至关重要的一部分。它的主要作用就是对电话进行路由从这一点上来说相当于一个路由表。说的简明一点就是当一个用户拨号时对用户所拨的号码进行分析进而决定下一步该做什么。当然实际上它所能做的比你想象的要强大的多。对接移动公司IMS移动的IMS对接都是注册的模式对接的所以废话不多说直接上gateway配置数据includegateway name8610xxxxxxx //此处的格式为86区号号码区号不带0param namerealm valueims.gd.chinamobile.com/ //运营商提供的域名param nameregister-transport valueudp/param nameusername value8610xxxxxxxims.gd.chinamobile.com/param namepassword value123456/param namefrom-domain valueims.gd.chinamobile.com/param nameregister-proxy value10.0.0.0/ //运营商地址param nameproxy valueims.gd.chinamobile.com/param nameregister valuetrue/param nameextension-in-contact valuetrue/param nameextension value8610xxxxxxx/param namefrom-user value8610xxxxxxx/param nameexpire-seconds value3600/param namecaller-id-in-from valuefalse//gateway/include至此网关处就已对接完毕一个号码一个gateway新增gateway可用sofia profile external rescan进行生效若号码注销需要删除可用sofia profile external killgw 8610xxxxxxx进行删除。跟移动对接需开启100rel功能并将invite中的fmtp:101 0-16修改为0-15否则会导致通话接起秒断的现象。此处的修改在源码下./src/switch_core_media.c文件进入文件搜索0-16将上图两个地方的0-16修改为图中的0-15即可。再将invite中的Supported: precondition,去掉否则会导致通话异常。此处修改源码中的./src/mod/endpoints/mod_sofia/sofia.c文件搜索precondition,大致在3055行。去掉precondition即可以上两个操作均需重新编译源码并重启FS进程方可生效。