前几天,儿子由于顽皮以及我的疏忽碰破了头,去医院缝了3针,所以,这两天心神有点不宁,如果写得不好,抱歉了。 好在我们家附近有一家新开的医院,环境看起来都很新,人也不多,服务也不错。包扎好了就没事了,大家也不用担心。只是这几天我得在家里陪着他。 在医院时,看到医院到处都是易拉宝,墙上也贴着宣传牌。不过,上面的英语都翻译的很搞笑,当时没顾得拍照,但记得有一项“亲民医院”之类的词翻译成了kiss。当然,见怪不怪,这种神翻译随处可见,网友也有诸多吐嘈。相信大部分都是用机器翻译的,甚至有的还有不伦不类的“Service not available”。 不明白,为什么这些制作标牌的广告公司这么没修养(没文化有情可原,你告诉人家啊)。当然,出现这些问题主要的原因也不能太怪广告公司,还是在于花钱做这些广告牌子的人。即使自己不认识英语,找个大学生帮忙看看花不了几个钱吧?要不,就直接回归拼音吧,我记得小时间的标志牌都是中文和拼音并排的,如“新华书店”上面就挂着“XIN HUA SHU DIAN”。 好了,不扯这些了,今天说说mod_portaudio。
与昨天讲的mod_sofia类似,mod_portaudio也是一个Endpoint模块。与mod_sofia不同,mod_sofia实现了SIP,而mod_portaudio实现了驱动本地声卡,即,它可以从本地麦克风获取输入,并将声音从耳机中播放出来。因而,配合mod_sofia,可以用作一个软电话。 该模块默认是不编译的。到你的源代码树下,执行如果命令编译安装: make mod_portaudio make mod_portaudio-install 然后到控制台中,执行: FS> load mod_portaudio 如果得到“Cannot find an input device”之类的错误可能是你的声卡驱动有问题。如果是提示“+OK”就是成功了,接着执行: FS> pa devlist API CALL [pa(devlist)] output: 0;Built-in Microphone;2;0; 1;Built-in Speaker;0;2;r 2;Built-in Headphone;0;2; 3;Logitech USB Headset;0;2;o 4;Logitech USB Headset;1;0;i 以上是在笔者Mac笔记本上的输出,它列出了所有的声音设备。其中,3和4最后的“o”和“i”分别代表声音输出(out)和输入(in)设备。在你的电脑上可能不一样,如果你想选择其他设备,可以使用命令: FS> pa indev #0 FS> pa outdev #2 以上命令会选择我电脑上内置的麦克风和耳机。 接下来你就可以有一个可以用命令行控制的软电话了,酷吧? FS> pa looptest (回路测试,echo) FS> pa call 9999 FS> pa call 1000 FS> pa hangup 如上所示,你可以呼叫刚才试过的所有号码。现在假设想从SIP分机1000呼叫到你,那需要修改拨号计划(Dialplan)。用你喜欢的编辑器编辑以下文件放到conf/dialplan/default/portaudio.xml <include> <extension name="call me"> <condition field="destination_number" expression="^(me|12345678)$"> <action application="bridge" data="portaudio"/> </condition> </extension> </include> 然后,在控制台中按“F6”或输入以下命令使之生效: FS> reloadxml 在分机1000上呼叫“me”或“12345678”(你肯定想为自己选择一个更酷的号码),然后在控制台上应该能看到类似“[DEBUG] mod\_portaudio.c:268 BRRRRING! BRRRRING! call 1”的输出(如果看不到的话按“F8”能得到详细的Log),这说明你的软电话在振铃。多打几个回车,然后输入“pa answer”就可以接听电话了。“pa hangup”可以挂断电话。 当然,你肯定希望在振铃时能听到真正的振铃音而不是看什么BRRRRRING。好办,选择一个好听一声音文件(.wav格式),编辑conf/autoload_configs/portaudio.conf.xml,修改下面一行: <param name="ring-file" value="/home/your_name/your_ring_file.wav"/> 然后重新加载模块: FS> reloadxml FS> reload mod_portaudio 再打打试试,看是否能听到振铃音了? 如果你用不惯字符界面,可以看一下FreeSWITCH-Air(https://wiki.freeswitch.org/wiki/FsAir),它为 FreeSWITCH 提供一个简洁的软电话的图形界面。另外,如果你需要高清通话,除需要设置相关的语音编解码器(codec)外,你还需要有一幅好的耳机才能达到最好的效果。本人使用的是一款USB耳机。 另外两款基于FreeSWITCH的软电话是 [FSComm](http://wiki.freeswitch.org/wiki/FSComm)(QT实现) 和 [FSClient](http://wiki.freeswitch.org/wiki/FSClient)(C#实现)。 当然,上述内容是我在几年前写的,最新的Mac系统上(好像从10.7开始),mod_portaudio已经不能正确运行了。不过,在Linux或Windows上应该还是可以的,感兴趣的朋友可以试一下。当然,用新版Mac的朋友也不用郁闷,通过我讲的这些内容,至少知道除了mod_soifa外还有其它的Endpoint不是。 ---------------------------------------- 题图:Shit-神翻译 来自 Google ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的“FreeSWITCH中文社... ”,或在通迅录->订阅号中搜索“FreeSWITCH-CN”来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2011~2013连续三年参加了在美国芝加哥举办的ClueCon全球VoIP开发者大会,该会议是由FreeSWITCH核心团队主办的。 如果你在学习和使用FreeSWITCH的过程中,有什么有趣的故事,也欢迎与我分享。移动设备上打字不方便,如果想写长的留言可以发邮件到 wechat@freeswitch.org.cn 。
本文分享自 FreeSWITCH中文社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!