FreeSwitch配置手记

==NAT 设置==

===修改 /usr/local/freeswitch/conf/var===
 注释掉:
 <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org"/> 
 换成
 <X-PRE-PROCESS cmd="set" data="external_sip_ip=*.*.*.*"/>
 <X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
 换成
 <X-PRE-PROCESS cmd="set" data="external_rtp_ip=xxx.xxx.xxx.xxx"/>

===修改/usr/local/freeswitch/conf/sip_profiles/external.xml===
  修改为
  <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
  <param name="ext-sip-ip" value="$${external_sip_ip}"/>

===修改修改/usr/local/freeswitch/conf/sip_profiles/internal.xml===
 <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
 <param name="ext-sip-ip" value="$${external_sip_ip}"/>

===查看nat 设置===
 sofia status profile internal

页面访问freeswitch lua时需要用户名和密码

===xml_rpc.conf.xml===
  <configuration name="xml_rpc.conf" description="XML RPC">
  <settings>
    <!-- The port where you want to run the http service (default 8080) -->
    <param name="http-port" value="8080"/>
    <!-- if all 3 of the following params exist all http traffic will require auth -->
    <param name="auth-realm" value="user"/>
    <param name="auth-user" value="user"/>
    <param name="auth-pass" value="password"/>
   </settings>
  </configuration>

radius 模块相关配置

打开mod_radius_cdr
    <!-- Event Handlers -->
    <load module="mod_cdr_csv"/>
    <!-- <load module="mod_cdr_sqlite"/> -->
    <!-- <load module="mod_event_multicast"/> -->
    <load module="mod_event_socket"/>
    <!-- <load module="mod_event_zmq"/> -->
    <!-- <load module="mod_zeroconf"/> -->
    <!-- <load module="mod_erlang_event"/> -->
    <!-- <load module="mod_snmp"/> -->
    <load module="mod_radius_cdr"/>
   重启freeswitch 生效
   fs_cli -x 'fsctl shutdown restart'

===mod_radius_cdr.conf.xml===
  如果在/usr/local/freeswitch/conf/autoload_configs
  /usr/local/freeswitch/mod/上要加mod_radius_cdr.la ;mod_radius_cdr.so 的模块,然后重启freeswitch。
  vi mod_radius_cdr.conf.xml
  <configuration name="mod_radius_cdr.conf" description="RADIUS CDR Configuration">
          <settings>
                <!-- location of the radius dictionary file -->
                <param name="dictionary" value="/usr/local/freeswitch/conf/radius/dictionary"/>
                <!-- location of the radius sequence file -->
                <param name="seqfile" value="/usr/local/var/run/freeswitch/radius.seq"/>
                <!-- accounting servers, up to 8 allowed -->
                <!-- value is "host:port:secret", port is optional -->
                <!-- use IP ADDRESSES, not hostnames -->

                <param name="acctserver" value="xxx.xxx.xxx.xxx:1813:password"/>       
              
                <!-- number of retries for each server -->
                <param name="radius_retries" value="3"/>
                <!-- number of seconds to wait between retries -->
                <param name="radius_timeout" value="5"/>
                <!-- The length of time in seconds that we skip a nonresponsive RADIUS
                         server for transaction requests. Server(s) being in the "dead" state
                         are tried only after all other non-dead servers have been tried and
                         failed or timeouted. The deadtime interval starts when the server
                         does not respond to an authentication/accounting request transmissions.
                         When the interval expires, the "dead" server would be re-tried again,
                         and if it's still down then it will be considered "dead" for another
                         such interval and so on. This option is no-op if there is only one
                         server in the list. Set to 0 in order to disable the feature. -->
                <param name="radius_deadtime" value="0"/>
          </settings>
  </configuration>

==中文语音包==

===上传中文包到 /usr/local/freeswitch/sounds/===
:下载文件: [[文件:Freeswitch-sounds-zh-cn-link-8000-1.0.0.tar.gz]] 上传
 cd /usr/local/freeswitch/sounds
tar -zxvf freeswitch-sounds-zh-cn-link-8000-1.0.0.tar.gz
===增加中文定义===
 cd /usr/local/freeswitch/conf/lang
 cp -a en zh
 cd zh
 mv en.xml cn.xml

===编辑cn.xml===
:将cn.xml第2行换成
 <language name="zh" say-module="zh" sound-prefix="$${sounds_dir}/zh/cn/link" tts-engine="cepstral" tts-voice="callie">
===增加对中文的加载===
编辑/usr/local/freeswitch/conf/freeswitch.xml,找到<section name="languages" description="Language Management">段,加入
 <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>
===增加中文say模块的加载===
:编辑/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
 去除<load module="mod_say_zh"/>的注释
===设置中文为默认语言===
:编辑/usr/local/freeswitch/conf/vars.xml,加入以下几行
  <X-PRE-PROCESS cmd="set" data="default_language=zh"/>
  <X-PRE-PROCESS cmd="set" data="default_dialect=cn"/>
  <X-PRE-PROCESS cmd="set" data="default_voice=link"/>
===重新加载xml===
:在fs_cli
 reloadxml

==freeswitch lua 通话超时自动挂断==

{execute_on_answer='sched_hangup +"..calltime.."'} calltime为允许通话的时间,单位为秒

freeswitch.Session("{origination_uuid= "..matchcode.."}{execute_on_answer='sched_hangup +"..calltime.."'}

==freeswitch调节通话声音大小==

位于拨号计划中设置set_audio_level参数
 <extension name="public_did">
     <condition field="destination_number" expression="^00(\d+)$">
       <action application="set" data="domain_name=127.0.0.1"/>
       <action application="set" data="ignore_early_media=true"/>
       <action application="set_audio_level" data="read 4"/>
       <action application="set_audio_level" data="write 4"/>
      <action application="lua" data="callfromkamailio.lua"/>
    </condition>
  </extension>

acl.conf.xml
设置允许ip及域名

switch.conf.xml
设置rtp端口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容