FreeSwitch配置和使用手册培训课件
- 格式:doc
- 大小:1.62 MB
- 文档页数:10
FreeSwitch 配置和使用手册FreeSwitch 配置和使用手册目录1. 2. 3. 4.FreeSwitch 简介 ..................................................................................................... 1 获取 FreeSwitch ..................................................................................................... 2 FreeSwitch 的配置 ................................................................................................. 3 软电话连接 FreeSwitch 使用 ................................................................................ 34.1. 4.2. 语音通话....................................................................................................................... 4 发送 SMS...................................................................................................................... 81. FreeSwitch 简介FreeSwitch 是一个开源的电话软交换平台,从一个简单的软电话客户端到运营商的软 交换设备几乎无所不能,FreeSwitch 可以用作交换机引擎、PBX、多媒体网关以及多媒体服 务器等。
jssip freeswitch用法JSSIP是一个基于JavaScript的SIP协议实现库,它提供了JavaScript API,使开发人员可以轻松地在Web浏览器中实现SIP通信。
而FreeSWITCH 是一个免费的开源电话交换机平台,它支持多种音频、视频和通信协议,非常适合构建大规模的语音和视频通信应用程序。
本文将介绍如何使用JSSIP和FreeSWITCH搭建一个基本的SIP通信应用。
我们将从安装和配置FreeSWITCH开始,然后详细介绍JSSIP的用法和相关代码示例。
1. 安装和配置FreeSWITCH首先,我们需要安装FreeSWITCH。
您可以从官方网站(2. 创建一个基本的SIP用户在FreeSwitch中,我们需要创建一个SIP用户,以便让JSSIP连接并进行通信。
您可以使用以下命令在FreeSwitch终端中创建用户:freeswitchlocalhost> sofia profile internal create user myuser password mypassword这将创建一个名为“myuser”的SIP用户,密码为“mypassword”。
3. 配置JSSIP接下来,我们需要配置JSSIP。
您可以在您的Web应用程序中使用npm 或直接下载JSSIP库文件。
3.1 引入JSSIP库在您的HTML文件中,添加以下代码引入JSSIP库:html<script src="jssip.min.js"></script>3.2 创建一个JSSIP实例在您的JavaScript代码中,创建一个JSSIP实例:javascriptvar socket = newJsSIP.WebSocketInterface('wss:yourfreeswitchserver:8080'); 修改为您的FreeSWITCH服务器地址var configuration = {sockets: [socket],uri: 'sip:myuseryourfreeswitchserver', 修改为您的SIP用户和FreeSWITCH服务器地址password: 'mypassword', 修改为您的SIP用户密码};var ua = new JsSIP.UA(configuration);3.3 注册SIP用户接下来,我们需要注册SIP用户。
Architecture of FreeSWITCHFreeswitch 癿架构欢迎来到 FreeSWITCH! 如果你正读到此,那么无可置疑你对 VOIP 呾电信行业很感兴趣。
FreeSWITCH 是一个在电信通讯技术革命中起到革命性软件。
在看返个强大癿软件癿架构前,我们先瞧 一瞧有趣癿电信技术。
返对我们深入了解 FreeSWITCH 会有帮劣。
在此章节,我们将会了解: • 一场电信业癿革命 • FreeSWITCH 癿特性 • 终端呾拨号模块 • FreeSWITCH 是怎么简化像语音留言返样复杂癿应用癿一场革命已经开始,秘密已被揭开对亍大夗数人来说,电话癿工作原理是比较神秘癿。
它癿工作原理被保守为秘密已经讲夗年了。
我们仅 仅是把我们癿电话插到墙上癿电话口里,然后它们正常使用了。
大夗数人仅仅返样做,然后期待它们工 作正常。
丌过电信界癿革命已经开始了,我们已经开始去解开返个电信业遗留癿最关键秘密。
现在,像 你我返样癿普通人都有能力去创建比传统电信系统更好,同时可以以相对较低癿价格提供高级功能癿电 话系统。
丌少人已经将 FreeSWITCH 用亍商业电话系统,获叏利润。
FreeSWITCH 已经把返一切发得更 加癿容易了,所以我们要看一下它癿架构,更好癿理解它是如何工作癿。
如果返些概念吩起来很晦涩难懂呾抽象,丌要担心呾丧气,学习电话技术,特别是 VOIP,可丌是一朝一 夕癿事情,其实,我们建议你夗读几遍本章节。
在你看第一遍癿时候尽可能夗癿理解不吸收,然后当你 读完了第五章后再重复温习一遍,理解了 XML 癿拨号方案,你会惊讶癿収现你对 VOIP 呾 FreeSWITCH 癿理解将会大大癿提升。
当你读完第 9 章节癿内容后再来略读它第三遍,通过外部命令来控制 FreeSWITCH, 在那时,你将会有一个深刻地领会到 VOIP 呾 FreeSWITCH 癿概念。
给自己一个充足癿 时间去消化返些陌生癿新概念。
FreeSwitch(⼗⼀):基本功能与实现⼀、录⾳1.1、单腿录⾳originate user/1000 &record(/tmp/welcome. wav)上述命令⼤家已经很熟悉了,我们呼叫1000,1000接听后即可以直接讲话并录⾳。
由于这种录⾳⽅式仅涉及⼀条腿(leg,即⼀个Channel),因⽽称为单腿录⾳。
另外,我们也可以在 Dialplan中录⾳(与上述命令是等价的)<extension name=" record"><condition field="destination number"expression="rec(.*)S"><action application="answer"/><action application="playback"data="tone stream: //8(100, 1000, 800)"/><action application="record"data="/tmp/S1. wav"/></condition></extension>通过设置上述 Dialplan,呼叫⼀个rec开头的号码,如 recwelcome,就可以开始录⾳并将录⾳⽂件保存到/tmp/ welcome.wav中,同样也可以通过拨打其他的号码录不同名称的声⾳⽂件。
另外,为了在录⾳前给个提⽰,可以在 record前先⽤ playback播放⼀段提⽰⾳,如“请在嘀声后开始录⾳”。
在本例中,我们仅⽤ playback播放了⼀个“嘀”声,该声⾳是⽤ tone strean产⽣的。
在这种录⾳⽅式中,由于只有⼀个 Channel,所以录⾳⽂件是单声道的。
一、添加用户1、conf/directory/default目录下添加用户文件名字是分机号.xml,例如1000.xml,它的内容如下:<include><user id="1000" mailbox="1000"><params><param name="password" value="1234"/><param name="vm-password" value="1000"/></params><variables><variable name="accountcode" value="1000"/><variable name="user_context" value="default"/><variable name="effective_caller_id_name" value="Extension 1000"/><variable name="effective_caller_id_number" value="1000"/></variables></user></include>2、使其他用户可以呼叫到他<extension name="Local_Extension"><condition field="destination_number" expression="^(10[0-9][0-9])$"> FS接受到内部分机呼叫后,查找分机时用正则表达式: 10[01][0-9] 来表示1000-1019;"^(50[5-9][0-9])$"标示5050-5099;3、重新加载配置,使其生效在fs_cli下,运行:reloadxml二、出局号码在修改拨号计划/conf/dialplan下的default.xml中添加代码<extension name="call out"><condition field="destination_number" expression="^(10[0-9]+)$"><action application="bridge" data="sofia/gateway/gw1/$1"/></condition></extension>expression="^(10[0-9]+)$">为出局号,当拨号码前三位为100-109是走路由"sofia/gateway/gw1/$1";如果expression="^7(\d+)$"标示要在拨出号码前加拨7;括号内的为呼出号码!出局路由文件为gw1.xml内容如下<gateway name="gw1"><param name="realm" value="172.16.72.220:5060"/><param name="username" value="1004"/><param name="password" value="1234"/><param name="register" value="false" /></gateway>将路由文件放在conf\sip_profiles\external目录下即可。
1.1 freeswitch的定义和作用1.2 freeswitch的特点和优势二、freeswitch自定义模块2.1 什么是freeswitch自定义模块2.2 自定义模块的作用和优势三、freeswitch自定义模块的实例3.1 实例一:自定义呼叫路由模块3.1.1 模块功能介绍3.1.2 模块实现步骤3.2 实例二:自定义IVR语音交互模块3.2.1 模块功能介绍3.2.2 模块实现步骤3.3 实例三:自定义SIP接口模块3.3.1 模块功能介绍3.3.2 模块实现步骤四、自定义模块的测试与部署4.1 测试自定义模块的方法4.2 部署自定义模块的步骤和注意事项五、总结与展望5.1 自定义模块的优势和应用前景5.2 总结freeswitch自定义模块的重要性和必要性1.1 freeswitch的定义和作用freeswitch是一个免费、开源、跨评台的软交换系统,可以用于构建通信应用程序,支持语音、视瓶、文本等多种通信方式。
它具有强大的多媒体处理能力和灵活的架构,可以应用于通联方式会议、呼叫中心、语音信箱、互联网通联方式等多种通信场景。
1.2 freeswitch的特点和优势freeswitch具有模块化、灵活、可扩展、高性能、稳定可靠等特点,可以满足不同场景下的通信需求。
它支持多种通信协议和编解码算法,具有丰富的开发接口和文档,适合开发人员进行定制化开发和定制化部署。
二、freeswitch自定义模块2.1 什么是freeswitch自定义模块freeswitch自定义模块是指开发人员基于freeswitch评台,按照自己的需求和场景,开发定制化的模块,以满足特定的通信功能和业务需求。
自定义模块可以包括呼叫路由、IVR语音交互、SIP接口等多种功能模块,可以根据实际情况进行定制开发。
2.2 自定义模块的作用和优势自定义模块可以满足特定的通信需求,提高通信系统的灵活性和定制化能力,以及适应不同场景下的通信业务需求。
FreeSwitch808I 产品使用手册声明Copyright © 2008-2010上海斐讯数据通信技术有限公司及其许可者版权所有,保留一切权利。
未经本公司书面许可,任何单位和个人不得擅自摘抄、复制本书内容的部分或全部,并不得以任何形式传播。
斐讯通信为上海斐讯数据通信技术有限公司注册商标,对于本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
由于产品版本升级或其他原因,本手册内容有可能变更。
斐讯通信保留在没有任何通知或者提示的情况下对本手册的内容进行修改的权利。
本手册仅作为使用指导,斐讯通信尽全力在本手册中提供准确的信息,但是斐讯通信并不确保手册内容完全没有错误,本手册中的所有陈述、信息和建议也不构成任何明示或暗示的担保。
免责声明尽管斐讯通信尽量设法在本指南中提供准确的信息,但是斐讯通信对本操作手册中信息的准确性不承担任何责任。
斐讯通信可能会在任何时候,在未经通知的情况下更改本手册中涉及的计划或者产品。
本手册中所涉及的其他厂商的产品或者服务仅仅是为了帮助读者了解相关情况,并不表示斐讯通信认可和推荐这些产品或者服务,以及开发、销售这些产品和服务的公司。
公司网站的所有信息都是将“现有”情况连同所有的错误一同提供的。
除非另有规定,否则斐讯通信及其供货商不提供任何形式的直接或者间接保障,其中包括但不仅限于可销售性,针对特定目的的适用性,侵权行为,以及由于某种交易、使用或者商业行为而导致的问题。
斐讯通信及其供货商对任何间接的、特殊的、直接导致的或者偶然造成的损失不承担任何责任,其中包括但不限于利润或者收入的损失,更换商品或者服务的费用,由于使用本手册或者任何一种斐讯通信产品而造成的事故损坏,以及由于使用或者依赖于本手册所提供的信息而导致的损失。
即使斐讯通信或者它的供货商事先已经获得了关于这种损失的可能性的建议,斐讯通信及其供货商也不需要对损失承担任何责任。
本手册中所介绍的斐讯通信产品和服务都具有书面的软件使用许可和有限质保。
freeswitch用法FreeSWITCH是一种开源的电话交换软件,它提供了丰富的功能和灵活的配置选项。
下面我将从不同的角度介绍FreeSWITCH的用法。
1. 安装和配置:首先,你需要下载并安装FreeSWITCH软件包。
官方网站提供了详细的安装指南。
安装完成后,你需要进行配置。
主要的配置文件是`freeswitch.xml`,它定义了系统的全局设置、呼叫路由、音频编解码器等。
你可以根据自己的需求进行修改。
2. 呼叫处理:FreeSWITCH支持多种呼叫处理方式,包括呼叫转接、呼叫转发、呼叫录音、呼叫路由等。
你可以通过编辑`dialplan.xml`文件来定义呼叫路由规则。
FreeSWITCH还支持呼叫控制脚本,你可以使用脚本来实现自定义的呼叫处理逻辑。
3. 音频处理:FreeSWITCH提供了丰富的音频处理功能,包括音频编解码器转换、音频混音、音频录制等。
你可以使用这些功能来实现音频会议、语音信箱等应用。
通过编辑`codecs.xml`文件,你可以配置支持的音频编解码器。
4. SIP和其他协议支持:FreeSWITCH支持SIP协议,可以与其他SIP设备进行通信。
你可以配置SIP账号、注册SIP扩展等。
此外,FreeSWITCH还支持其他协议,如H.323、WebRTC等,你可以根据需要进行配置和使用。
5. API和扩展:FreeSWITCH提供了丰富的API,你可以使用这些API来扩展和定制系统。
例如,你可以使用mod_lua模块来编写Lua脚本扩展功能。
FreeSWITCH还支持事件和消息机制,你可以通过事件和消息来实现系统的自动化和集成。
总结起来,FreeSWITCH是一款功能强大且灵活的电话交换软件。
通过合理配置和使用,你可以实现各种电话呼叫处理、音频处理和协议支持。
同时,FreeSWITCH还提供了API和扩展机制,方便你进行系统的定制和扩展。
FreeSwitch 2024 智能以太网交换机用户手册声明Copyright © 2008-2010上海斐讯数据通信技术有限公司及其许可者版权所有,保留一切权利。
未经本公司书面许可,任何单位和个人不得擅自摘抄、复制本书内容的部分或全部,并不得以任何形式传播。
斐讯通信为上海斐讯数据通信技术有限公司简称(以下简称“斐讯通信”),对于本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
由于产品版本升级或其他原因,本手册内容有可能变更。
斐讯通信保留在没有任何通知或者提示的情况下对本手册的内容进行修改的权利。
本手册仅作为使用指导,斐讯通信尽全力在本手册中提供准确的信息,但是斐讯通信并不确保手册内容完全没有错误,本手册中的所有陈述、信息和建议也不构成任何明示或暗示的担保。
免责声明尽管斐讯通信尽量设法在本指南中提供准确的信息,但是斐讯通信对本操作手册中信息的准确性不承担任何责任。
斐讯通信可能会在任何时候,在未经通知的情况下更改本手册中涉及的计划或者产品。
本手册中所涉及的其他厂商的产品或者服务仅仅是为了帮助读者了解相关情况,并不表示斐讯通信认可和推荐这些产品或者服务,以及开发、销售这些产品和服务的公司。
公司网站的所有信息都是将“现有”情况连同所有的错误一同提供的。
除非另有规定,否则斐讯通信及其供货商不提供任何形式的直接或者间接保障,其中包括但不仅限于可销售性,针对特定目的的适用性,侵权行为,以及由于某种交易、使用或者商业行为而导致的问题。
斐讯通信及其供货商对任何间接的、特殊的、直接导致的或者偶然造成的损失不承担任何责任,其中包括但不限于利润或者收入的损失,更换商品或者服务的费用,由于使用本手册或者任何一种斐讯通信产品而造成的事故损坏,以及由于使用或者依赖于本手册所提供的信息而导致的损失。
即使斐讯通信或者它的供货商事先已经获得了关于这种损失的可能性的建议,斐讯通信及其供货商也不需要对损失承担任何责任。
精品文档FreeSwitch 配置和使用手册目录1. FreeSwitch 简介 .....................................................................................................1 2. 获取 FreeSwitch .....................................................................................................2 3. FreeSwitch 的配置 .................................................................................................3 4. 软电话连接 FreeSwitch 使用 ................................................................................34.1. 语音通话.......................................................................................................................44.2. 发送 SMS......................................................................................................................81. FreeSwitch 简介FreeSwitch 是一个开源的电话软交换平台,从一个简单的软电话客户端到运营商的软 交换设备几乎无所不能,FreeSwitch 可以用作交换机引擎、PBX、多媒体网关以及多媒体服 务器等。
FreeSwitch 具有很强的伸缩性。
旨在为音频、视频、文字或任何其他形式的媒体, 提供路由和互连通信协议。
它创建于 2006 年,填补了许多商业解决方案的的空白。
FreeSWITCH 的也提供了一个稳定的电话平台,许多广泛使用的免费电话就是在使用它开发 的,但是它不支持视频通话。
FreeSwitch 能原生地运行在 Windows、Max OS X、Linux、BSD 及 solaris 等诸多 32/64 位平台,可以用作一个简单的交换引擎、一个 PBX,一个媒体网关或媒体支持 IVR 的服务器 等。
它支持 SIP、H323、Skype、Google Talk 等协议,并能很容易地与各种开源的 PBX 系统 如 sipXecs、Call Weaver、Bayonne、YATE 及 Asterisk 等通信。
FreeSWITCH 遵循 RFC 并支 持很多高级的 SIP 特性,如 presence、BLF、SLA 以及 TCP、TLS 和 sRTP 等。
它也可以用作 一个 SBC 进行透明的 SIP 代理(proxy)以支持其它媒体如 T.38 等。
FreeSWITCH 支持宽带精品文档精品文档 及窄带语音编码,电话会议桥可同时支持 8、12、16、24、32 及 48kHZ 的语音. 而在传统的 电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃 等业务在 PSTN 网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。
2. 获取 FreeSwitch本文档不是详细介绍 FreeSwitch 理论的文章,而是讲其在实际中的应用的文章。
FreeSwitch 的各种版本的源码可以在一下的网址下载:/wiki/Download_FreeSWITCHWindows 用 户 可 以 直 接 下 载 编 译 好 的 安 装 文 件 /windows_installer/freeswitch-1.0.4.exe。
如果从源代码 安 装 的 话 , 需 要 Visual Studio 2008 , 下 载 后 点 击 安 装 , 安 装 完 成 执 行 FreeSwitchConsole.exe 便 启 动 了 此 服 务 器 , 其 配 置 文 件 在 C:\Program Files\FreeSWITCH\conf。
服务器启动后界面如图 1 所示.精品文档图 1 FreeSwitch 启动后界面精品文档3. FreeSwitch 的配置FreeSwitch 默认设置了 20 个用户,如果需要更多的用户,那么只需要简单的三步就可 以完成。
在 conf/directory/default/中增加一个用户配置文件 修改拨号计划(Dialplan)使其它用户可以呼叫它 重新加载配置使其生效 例如,要添加用户 Jack,分机号是 1020,只需要到 conf/directory/default 目录下,将 1000.xml 拷 贝 到 1020.xml , 然 后 打 开 1020.xml , 将 所 有 1000 都 改 为 1020 , 并 把 effective_caller_id_name 的值改为 Jack,然后保存退出。
如:<variable name="effective_caller_id_name" value="Jack"/> 接下来,打开 conf/dialplan/default.xml,找到<condition fied=“destionation_number” expression=“^(10[01][0-9]) $” > 行, 将其改为: <condition field=“destionation_number” expresstion=“^(10[01][0-9]|1020) $” > 保存退出,回到控制台,然后执行 reloadxml 命令或按快捷键 F6,使新的配置生效,那么 新用户 1020 便添加成功。
如果你在某个运营商拥有 SIP 账号,你可以配置拨打外部电话,由于这不是本文介绍的 重点,所以不作详细介绍。
4. 软电话连接 FreeSwitch 使用FreeSwitch 默认配置了 1000~1019 共 20 个用户,你可以随便选择一个用户进行配置 (相当于已经在此服务器下注册了 20 个用户,用户名分别是 1000、1001、……),下面就 将来测试这个服务器,支持 SIP 协议的客户端软件有:X-Lite、Zoiper、Boghe、IMSDroid 等,这里我们可以选用支持 SIP 协议的 X-Lite、Boghe、IMSDroid 来测试。
在 X-Lite 上点 右键,选 Sip Account Settings...,点 Add 添加一个账号,填入以下参数(Zoiper 可参照 配置):Display Name: 1000 User name: 1000 Password: 1234 Authorization user name: 1000 Domain: 你的 IP 地址,就是刚才你记住的那个其它都是用默认设置,点 OK 就可以了。
然后点 Close 关闭 Sip Account 设置窗口。
这时精品文档精品文档 X-Lite 将自动向 FreeSWITCH 注册。
注册成功后会显示"Ready. Your username is 1000", 另外,左侧的“拨打电话”(Dial)按钮会变成绿色的。
如下图 2。
图 2 软电话登录界面4.1. 语音通话下面重点介绍使用 Boghe 和 IMSDroid 通过服务器两个用户之间的通话,启动 Boghe, 按图 3 所示和图 4 所示(单击“Tools”,在选定“Network”), 对相应的选项填入适 当的参数,特别注意:密码是 1234,这里以“1001”登录。
精品文档精品文档图 3 软电话配置界面 在完成以上的配置后,返回到图 3 的界面,点击右下方的“Sign In”,即可登录, 登录成功后 FreeSwitch 服务器端会出现如图 5 所示的画面,注意和图 1 的区别。
下面配置 IMSDroid 安卓客户端,按图 6,图 7 配置,按照要求配置好后,选择登录,登录后就可以拨 打电话了,拨打“1001”,你会发现和真正的语音电话没多大区别。
接通后的 IMSDroid 客 户端界面如图 8。
通过实验,我们发现在局域网下通话效果令人满意,不过遗憾的是当用视频通话时,并 没有出现图像画面,看来这个服务器并不支持视频通话。
精品文档精品文档图 4 软电话配置界面精品文档图 5 FreeSwitch 运行中画面精品文档图 6 软电话配置界面精品文档图 7 软电话配置界面精品文档图 8 语音通话中界面4.2. 发送 SMS下面测试发送 SMS 信息,在 IMSDroid 客户端选中“History”,这是拨打历史记录,用 户“1000”,选择“SMS”,如图 9 所示,然后发送如图 10 所示的消息,那么在 Windows 端的 Boghe 上会弹出一个消息框如图 11 所示(注:这里显示的的用户是“dewshi”,其呼叫号码 即为“1002”,只不过给其命名了一个名字叫“dewshi”)。
精品文档精品文档图 9 IMSDroid 客户端 精品文档精品文档图 10 Boghe 客户端 精品文档。