开源 SIP 服务器 Kamailio 3.2.0 发布
jopen 13年前
<p>这是一个主要的发行版本,包含很多新特性,例如匿名 SIP 请求路由、SDP 操作、分发 SIP消息队列、JSON 支持、连接 Redis 和 SQLite 数据库、分区用户定位服务、SIP 流量捕获服务器、用于呈现和 xcap 服务的 OMA 扩展以及完全的 CDR 存储等等。<br /> <br /> Kamailio是一个开源的SIP服务器,原名OpenSER 。</p> <p><br /> <span style="font-weight:bold;">项目地址</span>:<a href="/misc/goto?guid=4958194607497661967" target="_blank">http://www.kamailio.org/w/</a><br /> </p> <div id="p_fullcontent" class="detail"> <p><span class="hilite1"><a href="/misc/goto?guid=4958185538616997143" target="_blank"><strong>Redis</strong> </a>是</span>一个高性能的key-value数据库。 <span class="hilite1">redis</span>的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。</p> <p>性能测试结果:</p> <p>SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:</p> <p><strong>Linux 2.6</strong>, <strong>Xeon X3320 2.5Ghz</strong>.</p> <p>stackoverflow 网站使用 Redis 做为缓存服务器。<br /> </p> <div id="p_fullcontent" class="detail"> <p> </p> <p><a href="/misc/goto?guid=4958187574831218913" target="_blank"><strong>SQLite</strong></a>是遵守ACID的<span class="mw-redirect">关联式数据库</span>管理系统,它包含在一个相对小的C库中。它是<span class="new">D.RichardHipp</span>建立的公有领域项目。<br /> <img title="sqlite370_banner.gif" border="0" alt="sqlite370_banner.gif" src="https://simg.open-open.com/show/db166baff09019d12c1862a9eb70c829.gif" width="220" height="101" /></p> <p>不像常见的<span class="new">客户-服务器</span>范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接<span class="mw-redirect">API</span>调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。</p> <h2><span class="mw-headline">特征</span></h2> <p>库实现了多数的SQL-92标准,包括<span class="new">事务</span>,就是代表<span class="new">原子性</span>、<span class="new">一致性</span>、<span class="new">隔离性</span>和<span class="new">持久性</span>的(ACID),触发器和多数的复杂查询。不进行<span class="new">类型检查</span>。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。</p> <p>多个<span class="mw-redirect">进程</span>或<span class="mw-redirect">线程</span>可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。</p> <p>提供了叫做<tt>sqlite</tt>的一个独立程序用来查询和管理SQLite数据库文件。 它也充当写使用SQLite库的应用的一个例子。</p> <h2><span class="mw-headline">语言绑定</span></h2> <p>可以从C/C++程序中使用这个库,还可以获得对Tcl和一些其他脚本语言的绑定。</p> <p>在CPAN的<em>DBD::SQLite</em>上有一个Perl的<span class="new">DBI/DBD</span>模块,它不是到SQLite的接口,而是包括整个SQLite数据库引擎在其中并不需要任何额外的软件。</p> <p>还有一个Python模块叫做<span class="new">PySQLite</span>。</p> <p>PHP从PHP5.0开始包含了SQLite,但是自5.1版之后开始成为一个延伸函式库。SQLite能与PHP4一起工作但不包含在其中。</p> <p><span class="mw-redirect">Rails</span>2.0.3将缺省的数据库配置改为了SQLite 3</p> <h2><span class="mw-headline">SQLite管理客户端</span></h2> <p>SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的<span class="mw-redirect">GUI</span>软件。例如,</p> <ul> <li>SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。<span class="external text">SQLiteMan</span> </li> <li>SQLite Manager, 以 <span class="new">火狐浏览器的扩展</span>形式提供的SQLite客户端。 </li> <li><span class="new">SQLite Database Browser</span>, a graphical client to access SQLite databases </li> <li><span class="new">SqlPro SQL Client</span>, another graphical client to work with SQLite databases </li> </ul> </div> <p></p> </div> <p></p>