《 FreeSWITCH权威指南》——3.5 配置SIP网关拨打外部电话

简介:

本节书摘来自华章计算机《 FreeSWITCH权威指南》一书中的第3章,第3.5节,作者:杜金房 张令考 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.5 配置SIP网关拨打外部电话

如果你拥有某个运营商提供的SIP账号,那么你就可以通过配置SIP来拨打外部电话了。该SIP账号(或提供该账号的设备)在 FreeSWITCH 中称为SIP网关(Gateway)。添加一个网关只需要在 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>

如果你的SIP网关还需要其他参数,可以参阅同目录下的 example.xml,但一般来说上述参数就够了。你可以重启 FreeSWITCH,或者执行以下命令使用之生效:

freeswitch> sofia profile external rescan

显示一下网关的注册状态:

freeswitch> sofia status

如果显示 gateway gw1 的状态是 REGED,则表明已正确地注册到了网关上。你可以先用命令试一下网关是否工作正常:

freeswitch> originate sofia/gateway/gw1/xxxxxx &echo

以上命令会通过网关 gw1 呼叫号码 xxxxxx(可能是你的手机号),被叫号码接听电话后,FreeSWITCH 会执行 echo 程序,你应该就能听到自己的回音了。
当然,世界SIP网关五花八门,你实际操作起来可能不会这么顺利。如果真的在这里遇到问题,那么你大可继续往下阅读,相信你读完本书之后,跟任何网关对接的复杂问题都能迎刃而解了。
3.5.1 从某一分机上呼出
如果网关测试正常,你就可以配置从你的SIP软电话或portaudio呼出了。由于我们是把 FreeSWITCH 当作 PBX 用,所以需要选一个出局字冠。常见的 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"/>
    </condition>
  </extension>
</include>

其中,“^0(d+)$”为正则表达式,“(d+)”匹配 0 后面的所有数字并存到变量$1中。然后通过bridge程序通过网关gw1打出该号码。当然,建立该XML后需要在控制台中执行reloadxml使之生效。
3.5.2 呼入电话处理
如果你的 SIP 网关支持DID,那么你需要知道呼入的DID号码。一般来说,呼入的 DID 就是你的 SIP 号码,如果你不知道,也没关系,学习完第6章你就能学到如何取得这个值了。创建以下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>

在FreeSWITCH中执行reloadxml使之生效。上述配置会将来话直接转接到分机 1000 上。在后面的章节中你会学到如何更灵活地处理呼入电话,如转接到语音菜单或语音信箱等。

相关文章
使用vos3000时sip O 口网关注册成对接网关作为 ivr 接入,主叫号码如何设置
在VOS3000系统中,将SIP终端作为IVR接入点涉及配置SIP网关指向IVR应用,注册SIP设备并设定含用户名和域名的SIP账户。主叫号码设置可在注册时通过 Caller-ID 头部或拨号计划完成。拨号规则用于控制主叫号码传递,例如根据来源自动调整。配置后需测试主叫号码及IVR接入。不同版本可能有差异,欢迎交流学习。
|
1月前
|
Linux
Linux网关路由配置
Linux网关路由配置
30 0
|
20天前
|
Ubuntu Linux
ubuntu linux配置bond 网卡绑定 多个bond配置多网关
ubuntu linux配置bond 网卡绑定 多个bond配置多网关
18 1
|
20天前
|
Linux
centos bond多网关配置 bond多网关路由
centos bond多网关配置 bond多网关路由
21 2
|
1月前
|
运维 负载均衡 Cloud Native
Serverless 应用引擎产品使用之在Serverless 应用引擎中,使用云原生网关的情况下,SLB(负载均衡器)和证书配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
1月前
|
网络协议 网络架构
ensp中BGP(边界网关协议)基础原理及配置命令
ensp中BGP(边界网关协议)基础原理及配置命令
|
1月前
|
网络虚拟化 网络架构
配置基于接口划分VLAN示例(汇聚层设备作为网关)
划分VLAN的方式有:基于接口、基于MAC地址、基于IP子网、基于协议、基于策略(MAC地址、IP地址、接口)。其中基于接口划分VLAN,是最简单,最常见的划分方式。 基于接口划分VLAN指的是根据交换机的接口来划分VLAN。网络管理员预先给交换机的每个接口配置不同的PVID,当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的Tag,然后数据帧将在指定PVID中传输。 在典型的分层组网中,当接入交换机是二层交换机时,可以使用汇聚交换机作为用户的网关。另外使用汇聚交换机作为用户的网关还可以简化接入交换机的配置,使用户通过一个出接口访问外部网络,便于维护和管
|
1月前
|
运维 网络协议 安全
长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践
本文将介绍百度基于golang实现的统一长连接服务,从统一长连接功能实现和性能优化等角度,描述了其在设计、开发和维护过程中面临的问题和挑战,并重点介绍了解决相关问题和挑战的方案和实践经验。
142 1
|
7月前
|
负载均衡 应用服务中间件 API
微服务技术系列教程(25) - SpringCloud- 接口网关服务Zuul
微服务技术系列教程(25) - SpringCloud- 接口网关服务Zuul
78 0