freeswitch对接asterisk案例

本文详细介绍了如何配置Freeswitch与Asterisk进行SIP号码的呼叫过程,包括修改配置文件、设置域、网关、呼叫规则等关键步骤,确保在内网环境下成功实现SIP呼叫。
重点说明freeswitch的配置
我们假设asterisk的IP为210.134.185.9,有个sip号码为60006
1、asterisk配置
     修改sip.conf,添加如下内容:
[fs]
username=fs
secret=123
host=dynamic 
type=peer
nat=yes
context=from-internal
2、配置domain
修改freeswitch安装目录下conf/drectory/default.xml,添加如下内容:
<domain name="210.134.185.9">
     <params>
      <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
    </params>


    <variables>
      <variable name="record_stereo" value="true"/>
      <variable name="default_areacode" value="$${default_areacode}"/>
      <variable name="transfer_fallback_extension" value="operator"/>
    </variables>
     <user id="210.134.185.9">
         <gateways>
            <X-PRE-PROCESS cmd="include" data="gateway/*.xml"/>
         </gateways>
     </user>
</domain>
3、配置网关(gateway)
在freeswtich的conf/directory/目录下新建文件夹gateway,在gateway文件夹下新建一个xml文件,内容如下:
<include>
<gateway name="asterisk">
    <param name="username" value="fs"/>
    <param name="password" value="123"/>
    <param name="realm" value="210.134.185.9"/>
    <param name="from-domain" value="210.134.185.9"/>
    <param name="expire-seconds" value="600"/>
    <param name="register" value="false"/>
</gateway>
</include>
4、配置呼叫规则
修改freeswtich安装目录下的conf/dialplan/default.xml,添加内容如下:
<extension name="extension-asterisk">
      <condition field="destination_number" expression="^(6[01][01][0-9][0-9])$">
          <action application="set" data="dialed_extension=$1"/>
          <action application="bridge" data="sofia/gateway/asterisk/$1"/>
      </condition>
</extension>
配置完毕,启动freeswitch即可进行呼叫


注意:
如果freeswitch和asterisk都在内网,请修改freeswtich安装目录下的conf/sip_profiles下的external.xml,如下,原来为:
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
修改为:
<param name="ext-rtp-ip" value="$${local_ip_v4}"/>
<param name="ext-sip-ip" value="$${local_ip_v4}"/>
### Freeswitch与AMP对接方法 #### 1. 配置网络环境 要保证Freeswitch和AMP所在的服务器网络能够互通,可通过`ping`命令测试网络连通性。例如在Linux系统中: ```bash ping <AMP服务器IP地址> ``` 同时,需要开放必要的端口,Freeswitch通常使用5060(SIP协议)等端口,AMP也有其特定的端口,要在防火墙中允许这些端口的通信。 #### 2. 配置FreeswitchFreeswitch配置文件中进行相应设置。编辑`sip_profiles/external.xml`文件,添加对AMP的SIP注册信息: ```xml <include> <gateway name="amp_gateway"> <param name="realm" value="<AMP服务器IP地址>"/> <param name="username" value="<AMP用户名>"/> <param name="password" value="<AMP密码>"/> </gateway> </include> ``` 保存文件后,重启Freeswitch服务: ```bash fs_cli -x "reloadxml" ``` #### 3. 配置AMP 在AMP系统中,需要添加Freeswitch作为一个SIP终端。进入AMP的SIP配置界面,添加新的SIP用户,填写Freeswitch的相关信息,如IP地址、端口、用户名和密码等。 #### 4. 测试对接 使用Freeswitch的命令行工具`fs_cli`进行呼叫测试: ```bash fs_cli -x "originate sofia/gateway/amp_gateway/<AMP电话号码> &echo" ``` 如果能够成功呼叫并听到回铃音,说明对接基本成功。 ### 技术资料获取途径 #### 1. 官方文档 Freeswitch的官方文档(https://freeswitch.org/confluence/display/FREESWITCH/Documentation )提供了详细的配置指南和API参考。AMP的官方文档也是重要的技术资料来源,可在其官方网站查找。 #### 2. 社区论坛 Freeswitch社区论坛(https://freeswitch.org/community/ )和AMP相关的社区论坛上有很多开发者分享的经验和解决方案。可以在论坛中搜索相关的对接问题,也可以自己发帖提问。 #### 3. 书籍 一些关于VoIP和通信技术的书籍也会涉及到Freeswitch和AMP的相关内容,如《Freeswitch权威指南》等。 #### 4. 开源项目 在GitHub等开源代码托管平台上搜索Freeswitch和AMP相关的开源项目,这些项目的代码和文档可以作为参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值