吴伟贤のBlog

Feed Rss

freeswitch-cookbook 第五章(一) PBX Functionality

07.20.2013, freeswitch, by .

转自:http://www.8000hz.com/archives/35.html

PBX Functionality
本章中我们将涵盖

  • 创建用户
  • 使用语音邮箱
  • 公司目录
  • 使用短语宏创建语音提示
  • 创建XML IVR 菜单
  • 保持音乐
  • 创建会议室
  • 发邮件
  • 收邮件
  • Mod_flite TTS
  • 高级TTS  mod_tts_commandline
  • 使用telecast监听正在通话的内容
  • 录音


介绍

FreeSWITCH支持大多数电话系统或PBX的典型功能应用. 这个本章中的小方法重点将关注PBX中常用的功能, 像语音邮件, 传真, 通话录音, IVR菜单等等. 
添加用户
每一个Freeswitch都有一个用户目录.大多数情况下一个用户就是表示一个拥有电话的真实的人. 当我们说我们”添加用户’’我们指的是我们要创建一个用户目录中的用户账号(user account).每一个”user”都有一个SIP凭证拨打外部电话以及访问语音邮件的PIN number. 事实上, 你不能只拥有一个语音邮箱账号而不创建一个与它对应的用户账号.
准备
你得先有一个命令行界面 用来向你的操作系统执行命令. 使用add_user 脚本 , 你的操作系统需要安装Perl 语言环境.
How to do it…
创建用户只需要两步. 步骤如下:
1.  添加用户到directory
2.  添加对应号码到拨号方案 
让我们假想我们有一个刚装好的FreeSWITCH, 这表示我们拥有分机1009到1019 (拨号方案中的Local_Extension已经设置路由电话到这些分机 ).
让我们使用下面步骤添加用户:
1.  打开命令行和cd 到你的FreeSWITCH 源码目录.
2.  Linux 用户执行下面命令: ./scripts/perl/add_user 1020.
3.  Windows 用户做这个: perl scripts\perl\add_user 1020.
你会看到一些输出来确定用户已经创建.
下一步我们需要修改default context 中的 Local_Extension .
执行下面的步骤:
1.  使用一个文本编辑器打开conf/dialplan/default.xml.
2.  定位到名叫Local_Extension 的 diaplan extension.
3.  更改表达式^(10[01][0-9])$ 到 ^(10[012][0-9])$.
4.  保存文件退出.
然后在fs_cli中执行命令reloadxml.   用户1020现在已经可以用了. 测试, 使用一个SIP电话注册为1020然后使用它来拨打另一个电话.
How it works…  
add_user脚本只是简单的添加一个文件到directory中. 在例子中的 1020, 它创建了一个文件conf/directory/default/1020.xml.一旦文件创建(和你需要执行reloadxml命令)一个SIP电话就可以用这个用户注册了.然后, 默认拨号并不会处理当有些人拨打1020, 这就是为什么我们不得不更改default.xml中的Local_Extension. Local_Extension默认的< condition >是:
<condition field=”destination_number” expression=”^(10[01][0-9])$”>
这个pattern 匹配 1000, 1001, … 1019. 我们修改<condition>为这样:
<condition field=”destination_number” expression=”^(10[012][0-9])$”>
我们的新pattern 添加了 1020.1021…1029到Local_Extension. 为什么是整个一行而不是仅仅”1020”. 到是没什么阻止你这么干, 然后通常情况些我们都是添加一段用户而不是一次一个. 如果你愿意, 你可以使用下面的这个pattern:
<condition field=”destination_number” expression=”^(10[01][0-9]|1020)$”>
顺便说句, 不过, 这个就表示如果你想添加一个用户1021那么你就得再回来更改这个正则表达式pattern.
There’s more…  
Add_users 这个脚本包含些比较实用的功能(执行add_users –help 去查看完整的参数设置).  其实的一个有用的功能就是添加一组用户. 例如, 如果我们想添加一个完整的一组1020, 1021,….1029 我们不需要添加的时候为每个用户执行一次脚本. 取而代之的是, 使用—users参数指定一个范围: ./scripts/perl/add_user –users=1020-1029   注意add_user这个脚本不会覆盖已经存在的用户. Regular expressions with Regexp::Assemble 当你执行add_user脚本的时候,你可能在屏幕上看到过下面的提醒信息.
If CPAN module Regexp::Assemble were installed this program would be able to suggest a regex for your new users.
如果你安装了CPAN模块Regexp::Assemble, add_user脚本将会提示一个正则表达式. 一种快速安装这个模块的命令行是:
perl -MCPAN -e ‘install Regexp::Assemble’
现在当你使用这个脚本添加一个用户时会提示你一个正则表达式. 注意这只是一个提醒而已- 你还是需要自己检验表达式来确保它是你需要的.
See also
参考第2章中的 配置一个SIP电话注册到FreeSWITCH方法.
Accessing voicemail(访问语音邮箱)
语音邮箱是PBX系统中一个非常普通的功能.本方法将会讲述如何为用户接入语音邮件.
Getting ready
你需要至少有一部注册在你系统上的电话, 然后有两部和多部电话测试会更简单些.和其他用户通话.目标分机会把通话送到语音邮件. 主叫留下一个信息然后挂断. 一旦留下一个信息, 目标电话就可以访问语音邮件了.
How to do it…  
访问语音邮件的最简单方法就是直接拨*98. 系统将会需要输入用户ID和密码(默认下密码和USER ID相同). 让我们假设1001正在检查她的语音信息. 她需要做下面步骤:
1.  Dial *98, wait for system to answer.拨打*98, 等待系统应答.
2.  Enter the ID and press # (1001# in our example).输入ID然后按#(在我们的例子中是1001)
3.  Enter the password and press # (1001# in our example).输入密码然后按#(在我们的例子中是1001)
4.  New messages are automatically played.新的留言会自动播放
从语音邮件系统中退出简单的挂断电话.
How it works…  
语音邮件系统无非就是一个特殊类型的IVR系统. 在这种情况下用户可以登录以及有多种选择.
主菜单选项如下所示:
sa.png
当听取新留言和已保存留言时用户有以下选项:
sb.png
当留言已经被播放, 有以下选项:
SC.png
高级选项如下:
SD.png
大多数用户会发现FreeSWITCH的语音邮件系统非常的面熟, 这是因为FreeSWITCH模仿了大多数主要的移动运营商使用的语音邮件系统.
See also
Refer to the Confguring a SIP phone to register with FreeSWITCH recipe in Chapter 2

评论已关闭。