咨询热线:15535715731 联系人:王耀辉 地址:烟台市芝罘区胜利南路453号
在NuoDB上运行Asterisk
来源:利赢国际网址 发布时间:2019-11-22 点击量:481
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
本文来自云+社区翻译社,作者Hans362
您可能已经熟悉Asterisk,一个广泛部署的开源Telephony框架。如果你不太熟悉,你应该适当了解一下。这是一个非常酷的软件。可以部署Asterisk的低负载实例来使用文件系统来存储电话注册数据和语音邮件等内容。但是如果你想使用Asterisk做任何事情,或者如果你碰巧关心诸如容错之类的事情,你可能会考虑将Asterisk指向数据库。如果你碰巧有一个大的Asterisk集群构建来处理重要的负载,你可以考虑指向一个可弹性扩展的数据库的Asterisk。在这篇文章中,我将引导您通过NuoDB在一台基于RPM的Linux机器上设置Asterisk的最小化安装。Asterisk可以跨越多个数据中心进行远程的安装,但我会将这些问题留给更专业的人士。将这样的安装与NuoDB配对至少会让数据库痛苦不堪。让我们开始吧。
安装NuoDB
首先,下载并安装NuoDB。
sudo rpm -i nuodb.rpm
这将在该主机上启动一个NuoDB代理。接下来,我们启动一个事务引擎和存储管理器:
java -jar /opt/nuodb/jar/nuodbmanager.jar --broker localhost --user domain --password bird --command "start process sm database asteriskCDR host localhost archive /tmp/ast-cdr initialize yes"java -jar /opt/nuodb/jar/nuodbmanager.jar --broker localhost --user domain --password bird --command "start process te database asteriskCDR host localhost options "--dba-user asteriskUser --dba-password mySecret""
设置ODBC
尽管Asterisk支持直接与MySQL和PostgreSQL连接,但更多测试和强化的途径是通过ODBC连接到数据库。在这里,我们安装unixODBC,这是Unix类操作系统的ODBC驱动程序管理器。
as root:yum install gcc gcc-c++ ncurses-devel unixODBC unixODBC-devel
这创建了两个文件:/etc/odbc.ini和/etc/odbcinst.ini,我们现在编辑该文件以指向我们的NuoDB实例。
/etc/odbc.ini[NuoODBC]Description = NuoDB ODBC3 Driver DSNDriver = /opt/nuodb/lib64/libNuoODBC.soDatabase = asteriskCDRServerName = localhostUser = asteriskUserPassword = mySecretSchema = user
我们可以让/etc/odbcinst.ini为空,或者如果你想启用(非常详细!)日志记录:
/etc/odbcinst.ini[ODBC]TraceFile = /tmp/odbc.logTrace = Yes
这些绝不是唯一可以让unixODBC启动并运行的选项,但现在我们将为此进行推广。让我们确保到目前为止我们所做的工作:
isql NuoODBC asteriskUser mySecret -v -3+---------------------------------------+| Connected! || || sql-statement || help [tablename] || quit || |+---------------------------------------+SQL>
安装Asterisk
在撰写本文时,Asterisk当前测试和稳定版本是11.4.0,但您可以在这里查看您选择的版本。
as root:yum install libtool-ltdl libtool-ltdl-devel sqlite-devel libxml2-devel openssl-devel libuuid-develcd /usr/srcwget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-11.4.0.tar.gzwget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-11.4.0.tar.gz.sha1sha1sum -c asterisk-11.4.0.tar.gz.sha1tar zxvf asterisk-11.4.0.tar.gzcd asterisk-11.4.0./configure --libdir=/usr/lib64 --disable-xmldocmake menuselect && make && make install && make samples && make config
在make menuselect期间,请检查呼叫详细记录(CDR)以确保cdr_odbc已启用。按q离开使用menuselect。之后,你可以得到一杯咖啡,花几分钟时间查看恐龙漫画。如果您的系统上的编译成功,并且make install阶段可以识别您的发行版,那么您应该能够启动Asterisk服务:
sudo service asterisk start
连接Asterisk和NuoDB
Asterisk可以以各种方式使用数据库。例如,我们将设置CDR日志记录。
/etc/asterisk/cdr_odbc.conf[global]dsn=NuoODBCloguniqueid=nodispositionstring=yestable=cdrusegmtime=yeshrtime=yes/etc/asterisk/res_odbc.conf[NuoODBC]enabled => yesdsn => NuoODBCusername => asteriskUserpassword => mySecretpre-connect => yessanitysql => select 1 from dual
我们强制重新加载配置文件:
sudo service asterisk restart
现在我们可以在Asterisk控制台中用一个简单的命令来检查数据库连接。
asterisk -rvvv<snip>p131*CLI> odbc showODBC DSN Settings----------------- Name: NuoODBC DSN: NuoODBC Last connection attempt: 2013-09-03 10:45:41
正如您可能已经猜到的那样,我们会将通话详细记录记录到名为cdr的表格中。我们来创建表格:
/opt/nuodb/bin/nuosql asteriskCDR --user asteriskUser --password mySecret <<EOFCREATE SEQUENCE "SEQ_cdr_cdrID" START WITH 1;CREATE TABLE "cdr" ("cdrID" REAL GENERATED BY DEFAULT AS IDENTITY("SEQ_cdr_cdrID") NOT NULL, "calldate" TIMESTAMP NOT NULL DEFAULT "0000-00-00 00:00:00", "clid" VARCHAR(80) NOT NULL DEFAULT "", "src" VARCHAR(80) NOT NULL DEFAULT "", "dst" VARCHAR(80) NOT NULL DEFAULT "", "dcontext" VARCHAR(80) NOT NULL DEFAULT "", "channel" VARCHAR(80) NOT NULL DEFAULT "", "dstchannel" VARCHAR(80) NOT NULL DEFAULT "", "lastapp" VARCHAR(80) NOT NULL DEFAULT "", "lastdata" VARCHAR(80) NOT NULL DEFAULT "", "duration" INTEGER NOT NULL DEFAULT "0", "billsec" INTEGER NOT NULL DEFAULT "0", "disposition" VARCHAR(45) NOT NULL DEFAULT "", "amaflags" INTEGER NOT NULL DEFAULT "0", "accountcode" VARCHAR(20) NOT NULL DEFAULT "", PRIMARY KEY ("cdrID"));CREATE INDEX "IDX_cdr_calldate" ON "cdr" ("calldate");CREATE INDEX "IDX_cdr_dst" ON "cdr" ("dst");
一个简单的测试
为了表明这一切都有效,我们将在/etc/asterisk/extensions.conf底部添加几行Dialplan,并用SIPp测试设置。
/etc/asterisk/extensions.conf[sipp]exten => 123,1,Answerexten => 123,2,SetMusicOnHold(default)exten => 123,3,WaitMusicOnHold(2)exten => 123,4,Hangup/etc/asterisk/sip.conf[sipp]type=friendcontext=sipphost=dynamicuser=sippcanreinvite=nodisallow=allallow=ulaw
我们再次强制重新加载配置文件,并安装SIPp:
as root:service asterisk restartyum install sipp
如果您的发行版的存储库不包含SIPp,解决办法也很简单。为了测试我们的安装,我们运行以下命令。您可以通过查看Asterisk控制台中的日志来验证SIPp是否指向了您的Asterisk实例。
sipp -d 2000 -s 123 127.0.0.1 -l 10 -timeout 4s
现在我们可以通过发出后看到一个非零数字来确认我们有通话记录:
echo "select count(*) from cdr;" | /opt/nuodb/bin/nuosql asteriskCDR --user asteriskUser --password mySecret
概括
由于Asterisk是一个可以运行各种电话应用程序的框架,因此它与数据库之间有任意多个可能的连接点。我们已经测试了CDR功能以及其他一些路径,但我们很乐意提供您的反馈。请让我们知道您使用Asterisk和NuoDB的经历!
问答为移动浏览器设置电话链接的可靠方法是什么?相关阅读如何获取iOS应用网络权限 针对.NET开发者的NuoDB 1.1发布Android Service 系统服务
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1144402?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
相关产品
-
官方同时表示,天津已进入汽车“爆发式增长期”。2006年至2012年,机动车保有量由120万辆增加到236万辆,每年增量由7万辆增加到30万辆。2011年第四次综合交通调查显示,天津中心城区主干路高峰时段平均车速为19.5公里/小时,与2000年相比下降了18%,低于20公里/小时的国际拥堵警戒线。市区主要交通节点已发生了较为严重的交通拥堵。如不采取限制措施,中心城区主干路高峰时段将出现恶性拥堵。
-
《全球投资移民热点》还指出,随着中国富裕人群全球投资步伐的加快,投资的经商环境成为继子女海外教育后的第二大考量维度,在这方面美国也具有明显的优势。
-
在去年二次转会期间,舜天将刘伟的名字补报进预备队名单,号码为39号。被提拔到一队后,刘伟回忆了自己这段历程,他说:“一开始在预备队训练,有点跟不上强度,去年冬训就跟着球队去昆明了。当时也没指望一下子就能踢进一队,就是顺其自然。有人问我南大毕业,出去应该能找个不错的工作,何苦到预备队拿几千块的工资?其实我就是想圆个职业球员梦。”
-
中新网重庆4月19日电 (记者 刘贤)综合抵免方法究竟如何计算?外派员工个人所得如何申报?19日,重庆税务部门聚焦“一带一路”建设,为“走出去”企业进行专题辅导,详细解读政策“干货”,并发布《税收服务“走出去”导航手册》,为企业境外涉税事务“精准导航”。
-
另一方面,有的父母可能迫于生活压力,有的则是见钱眼开,自愿将孩子卖给犯罪集团。年前山东警方破获一宗贩婴大案,在济宁市郊区一个废弃工场发现“地下产房”,人贩子通过各种渠道和孕妇达成协议,让孕妇以五六万元左右的价格把婴儿卖掉。报道称,所谓虎毒不吃子,这些父母简直“连禽兽都不如”。
-
商业团体还向听证会陈情,儿童入学年龄应该全国协调,而且以省为基础的迁移税应该废除,包括印花税,以鼓励更大的劳工流动性。(峻鸣)
-
车身尺寸方面,该车的长宽高分别为4290/1780/1622mm(16英寸轮胎对应高度1622mm,17英寸轮胎对应高度1627mm),轴距为2590mm,对比现款车型,车身长度增加了20mm。根据车型配置的不同,该车还将配备有不同样式的门把手、轮圈等。新车将有205/65 R16和215/60 R17两种轮胎规格可选。
-
日前,以“心手相牵 快乐歌唱”为主题的2013年“海峡杯”首届闽台少儿歌手大奖赛总决赛在福州举行。来自海峡两岸的211位选手共同角逐金银铜奖。
热点资讯
- 揭淘宝职业差评师乱象“网络水军”如何碰瓷敲诈?2019-11-18
- 调查显示:近20%的人计划在明年购买智能家居产品2019-11-13
- 奥斯卡最佳外语片排行榜2019-07-17
- 美媒:中国“知识付费”规模庞大,和美国依赖广告不同2019-11-06
- 2018年上半年网约车报告:补贴叫停后,美团和滴滴的数据如何变化?2019-07-17
- 微信安卓版v6.7.2第二轮更新:“信息流”订阅号又回来了2019-07-17
- 华擎推JupiterQ370迷你主机:一升体积,可搭载65瓦CPU2019-07-17
- [Design]后端程序高并发与异步2019-11-09