Freeswitch新增网关

本文介绍认证模式网关配置

配置demo如下,文件存放路径/freeswitch/conf/sip_profiles/external/gw01.xml:

 1 <include>
 2   <gateway name="gw01">
 3   <param name="username" value="10000"/>
 4   <param name="realm" value="ims.domain.com"/>
 5   <param name="from-domain" value="ims.domain.com"/>
 6   <param name="from-user" value="10000"/>
 7   <param name="password" value="66771"/>
 8   <param name="outbound-proxy" value="172.10.16.168:5060"/>
 9   <param name="register-proxy" value="172.10.16.168:5060"/>
10   <param name="expire-seconds" value="60"/>
11   <param name="register" value="true"/>
12   <param name="ping" value="10"/>
13   </gateway>
14 </include>

配置说明如下:

 1 <gateways>
 2   <!-- 网关名称,建议使用代表性的名称 -->
 3   <gateway name="test"/>
 4     <!-- realm:对接方的域名或ip加端口的形式,如 81.70.88.88:9060 -->
 5     <param name="realm" value="www.example.com"/>
 6     <!-- 表示注册的地址 -->
 7     <param name="register-proxy" value="192.168.1.8"/>
 8     <!-- 用户名,用于开启鉴权时进行的注册验证 -->
 9     <param name="username" value="4444"/>
10     <!-- 分机的密码 -->
11     <param name="password" value="!@#qwe123"/>
12     <!-- 指定在SIP消息中的源用户信息,没有配置则默认和username相同 -->
13     <param name="from-user" value="4444"/>
14     <!-- 是指定域,它们会影响SIP中的“From”头域。有时第三方会要求我们固定 from头中内容 -->
15     <param name="from-domain" value="www.example.com"/>
16     <!-- 是否注册,认证模式为true,非认证模式为false -->
17     <param name="register" value="true"/>
18     <!-- 注册的间隔时间 -->
19     <param name="expire-seconds" value="120"/>
20     <!-- ping网关地址保持存活,有时需要,主动注册对方时,可能总是掉线刷新网关恢复,可以使用ping保持存活 -->
21     <param name="ping" value="10"/>
22  </gateway>
23 <gateways/> 

修改完网关信息后,可以重启freeswitch自动生效或者在控制台使用如下命令使网关配置生效:

sofia profile internal killgw 网关名
sofia profile internal rescan  

注册完成后可以在控制台使用sofia status gateway gw01 查看网关是否注册成功。网关状态分为两种:

  • NOREG 没有开启认证模式。
  • REGED 开启认证模式。

配置完后,可以在default.xml配置外呼路由:

 1 <extension name="call_out">
 2     <condition field="destination_number" expression="^(\d{10,13})$">
 3         <action application="set" data="RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}"/>
 4         <action application="set" data="RECORD_COPYRIGHT=(c) 2011"/>
 5         <action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/>
 6         <action application="set" data="RECORD_ARTIST=FreeSWITCH"/>
 7         <action application="set" data="RECORD_COMMENT=FreeSWITCH"/>
 8         <action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/>
 9         <action application="set" data="RECORD_STEREO=true"/>
10         <action application="set" data="media_bug_answer_req=true"/>
11         <action application="record_session" data="$${base_dir}/recordings/archive/${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/>
12         <!-- 以上内容都是录音的路由写死即可无需修改 -->
13         <!-- 超时时间 60s 对方不接听时持续振铃60S -->
14         <action application="set" data="call_timeout=60"/>
15         <!-- 规定坐席保持时播放的录音,可以单独使用其他录音 -->
16         <action application="set" data="temp_hold_music=local_stream://alternate_moh"/>
17         <!-- 设置外呼时的主叫名称和号码为 xxx-->
18         <action application="set" data="effective_caller_id_name=xxx" />
19         <action application="set" data="effective_caller_id_number=xxx" />
20         <!-- 使用刚所配置路由的地方 -->
21         <action application= "bridge" data="sofia/gateway/gw01(网关名)/${destination_number}" />
22         <action application="set" data="test=${hangup_cause}"/>
23         <action application="execute_extension" data="hangup_reason-${hangup_cause} XML features"/>
24     </condition>
25 </extension>

 

posted @ 2023-06-16 17:11  钟齐峰  阅读(542)  评论(0编辑  收藏  举报