FreeSwitch之拨号计划~简单例子(二)

1. 编写目的

FreeSwitch之拨号计划~简单例子(一)后,介绍第二个例子——使用lua语言。

2. 使用lua语言的Hello World

注意

  • lua语言在CentOS系统中的安装在此不做介绍,如果灭有这个环境的请自行安装好,非常简单。
  • 基本步骤与简单例子(一)基本是一致的,所以只介绍改动之处,如有疑惑,欢迎留言。

具体步骤

  1. 编写.lua文件。在自己系统上新建一个txt文本文件,编辑此文件,在空文本中写入print(“Hello World”),保存,然后修改后缀名为 lua。

  2. 使用WinSCP这样的工具,把这个文件上传到 /usr/share/freeswitch/scripts/
    文件夹中。

  3. 编辑/etc/freeswitch/dialplan/default.xml,添加内容如下:

      <extension name="Number Game">
        <condition field="destination_number" expression="^1236|info$">
    	  <action application="lua" data="game.lua"/>
    	  <action application="lua" data="game.lua"/>
    	  <action application="lua" data="game.lua"/>
        </condition>
      </extension>
    
  4. 运行freeswitch,如果已经运行了跳过此步骤。

    /usr/bin/freeswitch -nonat
    
  5. 运行完成后,在freeswitch运行后的控制台中输入指令 reloadxml,回车。

  6. 打开X-Lite,连接Freeswitch,拨打1236,尽管这个电话会很快挂断,但是我们仍然可以看到后台输出效果如图所示。
    在这里插入图片描述
    也就是说lua脚本语言已经成功运行。目标完成!

3.总结

同样是非常简单的例子,但是可以使用lua语言无疑是个很重要的,进步阶段,在这个基础上我们可以使用lua脚本完成很多我们想做的事情。特别需要注意lua文本文件放的位置。

### FreeSWITCH拨号计划和 IVR 的配置 在 FreeSWITCH 中,拨号计划 (Dialplan) 和交互式语音应答系统 (IVR) 是核心功能之一。通过 XML 文件定义拨号计划和 IVR 流程,可以灵活控制呼叫路由、播放提示音以及执行各种操作。 #### 1. 基础概念 拨号计划是一个逻辑结构,用于匹配传入或传出的电话号码并决定如何处理这些呼叫。IVR 则是一种自动化的语音服务流程,允许用户通过按键输入或其他方式与系统互动[^1]。 #### 2. 配置拨号计划示例 以下是一个简单拨号计划配置文件 `dialplan/default.xml` 示例: ```xml <extension name="welcome_ivr"> <condition field="destination_number" expression="^(1234)$"> <action application="answer"/> <action application="playback" data="ivr/ivr-welcome_to_freeswitch.wav"/> <!-- 欢迎消息 --> <action application="sleep" data="1000"/> <action application="bridge" data="sofia/gateway/mygateway/${destination_number}"/> </condition> </extension> ``` 上述代码片段的功能如下: - 当拨打号码为 `1234` 时触发此扩展。 - 使用 `answer` 应用程序接听来电。 - 播放欢迎音频文件 `ivr/ivr-welcome_to_freeswitch.wav`。 - 添加短暂延迟以确保音频完全播放完毕。 - 将呼叫桥接到指定网关上的目标号码。 #### 3. 配置 IVR 节点 为了创建更复杂的 IVR 功能,可以通过绑定数字动作来实现多级菜单导航。以下是另一个示例: ```xml <extension name="main_menu_ivr"> <condition field="destination_number" expression="^5678$"> <action application="menu" data="simple_main_menu"/> </condition> </extension> <!-- 定义简单菜单 --> <menu name="simple_main_menu"> <prompt>Thank you for calling our service. For sales press one, for support press two.</prompt> <entry action="bind_digit_action" digits="1" param="exec:set:department=sales"/> <entry action="bind_digit_action" digits="2" param="exec:set:department=support"/> </menu> ``` 在此配置中: - 用户拨打 `5678` 进入主菜单。 - 提供两个选项:按 `1` 表示销售部门;按 `2` 表示支持部门。 - 数字键按下后会设置变量 `department` 并继续后续处理^[]。 #### 4. 设置会议模式控制器 对于需要高级权限管理的情况(如主持人控制),可以在拨号计划中加入特定的应用程序调用来启用会议模块中的特殊功能。例如: ```xml <extension name="conference_moderator"> <condition field="destination_number" expression="^9000$"> <action application="set" data="conference_controls=moderator"/> <action application="conference" data="my_conference@default"/> </condition> </extension> ``` 这段代码的作用是当用户拨打到 `9000` 号码时进入名为 `my_conference` 的会议室,并赋予其主持人的身份[^2]。 #### 5. 使用 fs_cli 工具调试 除了静态配置外,还可以利用命令行工具 `fs_cli` 实时测试和调整行为。例如查看当前运行状态或者发送指令给正在工作的实例。这有助于快速验证修改效果而不必重启整个服务器[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smile-yan

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值