使用OpenSER构建电话通信系统——第六章(1)

Network 之十四 email 通信架构、Postfix 部署详解 电子邮件出现在 1960s 晚期,比打开浏览器就要使用的 HTTP 协议早了 20 年左右,是二十世纪人类最伟大的发明之一。这个古老、经典的框架在网络中运行了五十多年,现今仍然是网络中主要的流量类型之一。 阅读详情

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!


第六章:使用SerMyAdmin构建用户入口

在上一章中,我们用MySQL数据库实现了认证。现在,我们将需要一个工具来帮助用户和管理员们。显然,这个工具必须要比openserctl容易操作。手动对成百上千的用户进行管理是很困难的,所以用户预置工具在其过程中就变得相当重要。在这一章中,将看到SerMyAdmin工具是如何来被创建来帮助构建用户和管理员入口的。

本章末,你将能够:

l         知道为什么需要一个用户入口进行管理

l         安装SerMyAdmin和它的依赖

l         配置诸如管理者和用户访问的资源

l         添加和删除域

l         用你公司的颜色和logo来定制入口

SerMyAdmin

这段材料本来是写给SerWeb。SerWeb原本是为SER项目开发的。不幸的是,SerWeb和最新版本的OpenSER不兼容。我们没有选择SerWeb的另外一个重要的原因是它被认为有漏洞。OpenSER的一些网页接口缺少很多选项。其中我们曾发现的一种工具是OpenSER administrator。这个工具正在使用”Ruby on Rails”开发。似乎这是一个非常好的OpenSER服务器管理工具,但是它却不允许与SerWeb相同的方式来提供用户接口,并且其缺少多域(multi-domain)支持。OpenSER administrator能够在http://sourceforge.net/projects/openseradmin找到。

既然构建OpenSER入口的工具找不到,那么我们决定使用JAVA建造我们自己的工具,命名为SerMyAdmin。我们现在已经准备好使用这样的工具来构建本书。它是按照GPLv2授权的在Grails上开发(Groovy on rails)。可以在http://sourceforge.net/projects/sermyadmin上下载。

你这儿看到的是一套独立的工具。在我们的轨迹路线中,我们打算将SerMyAdmin整合进行Liferay入口。使用类似Liferay之类的内容管理系统将使你构建入口的工作更加容易。

SerMyAdmin项目可以在sermyadmin.sourceforge.net上找到。它的想法是改进OpenSER数据库的管理。SerMyAdmin在GPLv2下许可。


实验——安装SerMyAdmin(Lab——Installing SerMyAdmin)

SerMyAdmin使用Grails框架,所以它需要一个应用服务器。你可以自行进行选择,如IBM WebSphere,JBoss,Jetty,Tomcat等等。在这本书中,我们使用Apache Tomcat,因为它是免费的容易安装。因为我们要使用到一些Java1.5的特性,我们需要Sun的Java JDK,而不是免费的可供选择的GCJ。

步骤1:为SerMyAdmin创建管理者:

mysql –u root

use openser

INSERT INTO 'subscriber' ( 'id' , 'username' , 'domain' , 'password'

, 'first_name' , 'last_name' , 'email_address' , 'datetime_created' ,

'ha1' , 'ha1b' , 'timezone' , 'rpid' , 'version' , 'password_hash' ,

'auth_username' , 'class' , 'domain_id' , 'role_id' )

VALUES (

NULL , 'admin', 'openser.org', 'senha', 'Admin', 'Admin', 'admin@

openser.org', '0000-00-00 00:00:00', '1', '1', '1', '1', '1', NULL ,

'admin@openser.org', NULL , '1', '3'

);

步骤2:下一步我们要做的是更新我们的源列表以使用contrib仓库和non-free包。我们的/etc/apt/sources.list文件应该看起来是下面这个样子:

# /etc/apt/souces.list

deb http://ftp.br.debian.org/debian/ etch main contrib non-free

deb-src http://ftp.br.debian.org/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free

deb-src http://security.debian.org/ etch/updates main contrib non-free

/etc/apt/sources.list

注意到我们只是在我们的仓库定义后面添加了关键字contrib和non-free。

步骤3:使用下面的命令来更新包列表。

openser:~# apt-get update

步骤4:运行下面的命令安装Sun’s Java1.5

openser:~# apt-get install sun-java5-jdk

步骤5:确认你正在使用Sun’s Java。请运行下面的命令以告诉Debian你想要使用Sun’s Java作为你的默认的Java应用。

openser:~# update-java-alternatives -s java- 1.5.0 -sun

步骤6:到目前为止,如果每一步都顺利完成,那么你应该运行下面的命令以得到一个类似下面的输出。

openser:~# java -version

java version " 1.5.0 _14"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0 _14-b03)

Java HotSpot(TM) Client VM (build 1.5.0 _14-b03, mixed mode, sharing)

步骤7:安装Tomcat。你可以在http://tomcat.apache.org/download-60.cgi.获得Tomcat。

为了安装Tomcat,只需要运行下面的命令:

openser:/usr/local/etc/openser# cd /usr/local

openser:/usr/local# wget http://mirrors.uol.com.br/pub/apache/tomcat/tomcat-6/v 6.0.16 /bin/apache-tomcat-6.0.16.tar.gz

openser:/usr/local# tar zxvf apache-tomcat- 6.0.16 .tar.gz

openser:/usr/local# ln -s apache-tomcat- 6.0.16 tomcat6

步骤8:为了在你的服务器初始化中启动Tomcat,请复制下面的脚本到/etc/init.d/tomcat6。

#! /bin/bash –e

#### BEGIN INIT INFO

# Provides: Apache’s Tomcat 6.0

# Required-Start: $local_fs $remote_fs $network

# Required-Stop: $local_fs $remote_fs $network

# Default-Start: 2 3 4 5

# Default-Stop: S 0 1 6

# Short-Description: Tomcat 6.0 Servlet engine

# Description: Apache’s Tomcat Servlet Engine

### END INIT INFO

#

# Author: Guilherme Loch Góes <glwgoes@gmail.com>

#

set -e

PATH=/bin:/usr/bin:/sbin:/usr/sbin:

CATALINA_HOME=/usr/local/tomcat6

CATALINA_BIN=$CATALINA_HOME/bin

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

case "$1" in

start)

echo "Starting Tomcat 6" "Tomcat6"

$CATALINA_BIN/startup.sh

log_end_msg $?

;;

stop)

echo "Stopping Tomcat6" "Tomcat6"

$CATALINA_BIN/shutdown.sh

log_end_msg $?

;;

force-reload|restart)

$0 stop

$0 start

;;

*)

echo "Usage: /etc/init.d/tomcat6 {start|stop|restart}"

exit 1

;;

esac

exit 0

告诉Debian在系统启动时运行你的脚本;我们使用下面的命令实现之:

openser: chmod 755 /etc/init.d/tomcat6

openser:/etc/init.d# update-rc.d tomcat6 defaults 99

步骤10:为了确认每一步都运行正确,重启服务器,并且在你的浏览器中打开URL http://localhost:8080;如果一切顺利的话,你会看到Tomcat的开始页面。

步骤11:为Tomcat安装MySQL驱动使得SerMyAdmin可以访问你的数据库。这个驱动可以在http://dev.mysql.com/downloads/connector/j/5.1.html上找到。你可以下载驱动然后解包,之后将connector复制到Tomcat的共享库文件夹下,如下所示:

openser:/usr/src# tar zxf mysql-connector-java- 5.1.5 .tar.gz

openser:/usr/src# cp mysql-connector-java- 5.1.5 /mysql-connector-java-5.1.5-bin.jar /usr/local/tomcat6/lib

步骤12:为SerMyAdmin声明数据源以使其链接到OpenSER的数据库上。你可以在/usr/local/tomcat6/conf/context.xml上做些修改以实现之:文件看起来是下面这个样子:

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/serMyAdmin">

<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/openser_MySQL" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/openser" username="sermyadmin" password="secret"/>

</Context>

在上面的文件中,请按照你的环境修改高亮显示的参数。SerMyAdmin可以安装在其他的机器上,而不仅仅是拥有数据库的服务器上。当规模需要的时候可以这样做。在Debian上默认安装后的MySQL只接收本地请求,所以你应该修改文件/etc/mysql/my.cnf,让MySQL能够接收来自外部主机的请求。

步骤13:创建一个用户(可以参照文件context.xml)。这个用户需要访问该数据库的权限。请运行下面的命令:

openser:/var/lib/tomcat5.5/conf# mysql -u root –p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 14

Server version: 5.0.32 -Debian_7etch5-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all privileges on openser.* to sermyadmin@'%' identified by 'secret';

Query OK, 0 rows affected (0.00 sec)

步骤14:我们已经接近完成。下一步工作就是部署SerMyAdmin WAR文件了。请下载并复制文件serMyAdmin.war到Tomcat的 webapps文件夹下。重启以激活更改。

openser:/usr/src# cp serMyAdmin-0.4.war /usr/local/tomcat6/webapps/serMyAdmin.war

openser:/usr/src# invoke-rc.d tomcat6 restart

不用担心数据库的修改;SerMyAdmin将自动的为你进行处理以适应其改变。

步骤15:配置Debian的MTA(Message Transfer Agent)以允许SerMyAdmin发送一封确认邮件给新用户。运行下面的命令配置Exim4(Debian默认的MTA)。询问你公司的邮件管理员。

openser:/# apt-get install exim4

openser:/# dpkg-reconfigure exim4-config

映入眼帘的是一个以对话框为基础的配置菜单;在这个菜单上,要着重注意两个选项:邮件配置的通用类型(General type of mail configuration),这个选项应该被配成Internet Site,这样我们就可以直接使用SMTP来发送和接收邮件;转发邮件的域,这个选项应该被配成从SerMyAdmin发出的邮件你想要其表现的来自何处的域。

步骤16:定制文件

/usr/local/apache-tomcat- 6.0.16 /webapps/serMyAdmin-0.3/WEB-INF/spring/resource.xml,这个文件包含指定使用哪个email服务器来发送邮件的参数和希望如何显示这些邮件的出处的参数。下面是这个文件的一个例子:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">

<property name="host"><value>localhost</value></property>

</bean>

<!-- You can set default email bean properties here, eg: from/to/subject -->

<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">

<property name="from"><value>admin@sermyadmin.org</value></property>

</bean>

</beans>

第一个要改变的参数是我们用来发送邮件的服务器。第二个则是那些邮件要显示的从何而来的参数。

再次重启Tomcat,此时我们已经准备好要开始了。当你将浏览器指向http://<server address>:8080/serMyAdmin,你将看到登录页面,正如我们在本章开始时呈现的那样。

基本任务(Basic Tasks)

现在你能够使用SerMyAdmin来做很多工作了。在这一章中我们将向你展示如何创建和管理新的用户和组。下一章,我们将使用SerMyAdmin做些其他工作,如管理信任列表和LCR模块。

注册一个新用户(Registering a New User)

只需简单的在登录页面上的Register按钮点击一下就可以注册一个新的用户了。


填上下面这些,Username,Password,Domain,Email,First Name,Last Name,Caller Id和确认码(confirmation code)。按下屏幕的最下方的Create按钮。用户将被加入数据库。系统管理员和该用户都将收到一封关于注册的电子邮件。在用户可以打电话前,管理员必须要同意该用户。

同意新用户(Approving a New User)

按照下面的步骤一步一步做来同意一个新用户:

步骤1:用admin@localhost帐号登录,密码是在OpenSER安装时创建的openserrw。安装时已经为每一个用户创建了叫做Role的新的属性。这个属性的目的是用来区分普通用户,域管理员和通用管理员的。Admin用户自动被设置为通用管理员(Global Administrator)。这个新的属性将帮助我们提供多域的支持。

步骤2:选择菜单中Registered Users条目。



在上面的屏中,选择你想要添加用户,选中对应复用框。按下Approve按钮添加用户;该用户将从register_user表中移除,而被转移到订阅列表中,然后他将能够注册到OpenSER并可以打电话。

步骤3:现在用户会显示在你的用户列表中了。点击菜单目录中的用户检查之。


用户管理(User Management)

你能够查看,添加,编辑和删除用户菜单上的用户了。当你点击它时,所有的用户都会显示在你的系统上。


要添加新用户的话,必须要点击“New User”链接。点后你将转到下面的页面上:

你要完全的填满上一张图片中的空档,并点击“Create”链接,然后该用户会被添加到订阅表(subscriber table)中。之后会显示下面的图片:


在这个页面中,你可以点击“Edit”来编辑插入的信息,点击“Delete“来删除该用户。

在“User List“页面中,你可以基于username,domain,和email对用户进行搜索;只要填上所需的条件,然后点击”Search“链接即可。下面的页面中,我们使用用户名jdoe来对用户进行搜索。点击”Search“;页面将转移到符合你所输条件的用户列表(user list)上去。


域管理(Domain Management)

你可以像管理你的用户那样来管理你的域。点击“Domains”得到一张域列表(domain list)。你可以在其中进行诸如添加一个新的域,删除一个已经存在的域等类似的操作。这里要注意的很重要的一点就是,SerMyAdmin不允许没有域的用户存在,所以当你删掉一个域后,你也就删除掉了所有属于该域的所有用户。

接口定制(Interface Customization)

网站的布局,SerMyAdmin使用SiteMesh框架,所以按照你自己的品位来定制SerMyAdmin的显示效果是非常简单的。SiteMesh显示的页面是基于一份模板,这份模板可以在

openser:/usr/local/apache-tomcat- 6.0.16 /webapps/serMyAdmin-0.3/WEB-INF/grails-app/view/layouts中找到。在这里,你将找到main.gsp和notLoggedIn.gsp文件,这些文件是用来控制页面如何显示的Groovy服务器页面(Groovy Server Pages)。

SiteMesh使用HTML元标记来选择要使用哪个布局;这些标记应该可以在每个页面的头元素(head element)中找到,如果一个页面在头元素中含有标记<meta content=”main” name=”layout”/>,那么SiteMesh将使用main.gsp布局显示之。

你可以按照你的意愿对main.gsp和notLoggedIn.gsp进行修改,但是要了解的很重要的一点是<g:layoutHead />和<g:layoutBody />将使用这个布局来保持页面的head和body标志。另外一件要知道的事情是<g:render template=”/menu” />被用来整理页面碎片;这些页面碎片是GSP文件,它们的文件名以下划线打头。

为了使用你自己的logo来替代SerMyAdmin的,只需要将你的logo放到/usr/local/apache-tomcat- 6.0.16 /webapps/serMyAdmin-0.3/images,并对布局文件中的指向logo_voffice.png的标志进行修改,如下:

<div class="logo"><img src="${createLinkTo(dir:'images',file:'my_new_logo.png')}" alt="Grails" /></div>

在上面我们仅仅是通过改变粗体显示的参数就用我们自己的logo替代了SerMyAdmin的logo。

你也可以通过修改CSS文件来改变SerMyAdmin的显示效果和感觉,CSS文件可以在/usr/local/apache-tomcat- 6.0.16 /webapps/serMyAdmin-0.3/css中找到;在main.css中,我们将能够发现每一个改变SerMyAdmin行为的类(class)。

例子:如果我们使用下面的参数来改变这个文件中的背景类(background class):

body {

background: # 00f ;

color: #333;

font: 8px verdana, arial, helvetica, sans-serif;

}

我们将能够在最后得到如下的页面:

这个页面不是世界上最好看的,但是你可以按照这个例子的方法来是它看起来更好一些。

概要(Summary)

在这一章中,你已经学到了为什么拥有一个用户和管理入口是如此的重要。它是软件中你应该放大部分精力在其上的部分。但是一些VoIP服务提供商并没有分配必要的时间和资源在构建入口这项重要的工作上。OpenSER是一个令人惊讶的SIP代理,但是SIP代理也只是VoIP服务提供商的部件的一员而已。没有好的管理和用户接口,VoIP提供项目很容易失败。SerMyAdmin就是我们在此方面对你项目的一个贡献。它是利用JAVA语言,使用Groovy on Rails架构进行开发,按照GPL版本2进行许可的系统。你已然已经学会了如何安装,管理用户和域和如何定制显示效果。这个工具可以做的事情还很多,在下一章我们将向你展示其更多的功能。

<script>window._bd_share_config={"common":{"bdsnskey":{},"bdtext":"","bdmini":"2","bdminilist":false,"bdpic":"","bdstyle":"0","bdsize":"16"},"share":{}};with(document)0[(getelementsbytagname('head')[0]||body).appendchild(createelement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new date()/36e5)];</script>
阅读(1651) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
使用OpenSER构建电话通信系统 OpenSer官方退出的开发指南。相当权威。是中文版。 OpenSips也是继承于OpenSer,所以使用OpenSips开发的朋友也可以使用。 立即下载

相关推荐

使用OpenSips构建电话通信系统

使用OpenSips构建电话通信系统,详细介绍如何使用opensips开发、构建一个通信系统。

使用OpenSER构建电话通信系统——第五章(1)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!第五章:用MySQL添加认证(Adding Authentication with MySQL)在这一章中我们将学到如何使用几种数据库后端来对SIP请求进行鉴定并提供诸如位置和别名表等数据的持续性。最主要的是,我们将使用MySQL来做每一件事。这一章分为两个部分。第一个部分,我们将学到如何实现认证,第二部分我们将学到如何处理不同方向的通话。这一

老黑 1086

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2635

使用OpenSER构建VoIP通话 (转载)

使用OpenSER构建VoIP通话   使用OpenSER构建电话通信系统——第一章(1)       前言:openser已经成为opensips项目,但是本书的内容绝大部分是适合于学习相关知识的。所以还是针对原书原封不动的做的翻译。   使用OpenSER

Android 开发 6669

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway服务搭建(三)

TB-gateway服务是TB不可或缺的部分,很多的协议都需要TB-gateway来做分类处理,今天我们就来做TB-Gateway服务搭建。

晚点遇见你,余生都是你! 2474

基于Simulink的压缩空气储能(Compressed Air Energy Storage, CAES)

压缩空气储能(CAES)是一种将电能转化为压缩空气存储在高压容器中,然后在需要时释放空气驱动涡轮机发电的技术。它具有大规模、长寿命和环境友好的特点,在电力系统中用于削峰填谷、频率调节和备用电源等应用。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于压缩空气储能的系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑:Matlab深色版本Kp = 1;

MHD0815的博客 1274

SIP介绍

前言:openser已经成为opensips项目,但是本书的内容绝大部分是适合于学习相关知识的。所以还是针对原书原封不动的做的翻译。使用OpenSER构建电话通信系统Building Telephony Systems with OpenSER第一章:SIP介绍(Introduction to SIP)会话初始化协议是互联网工程任务组(IETF)制定的协议标准,在多个RFC(Request for Comments)文档中被进行了描述说明。RFC3261是最近的一个RFC,一般称它为SIP版本2。SIP是一

gdjylks的专栏 1002

RK3568平台开发系列讲解(DMA篇)DMA engine使用

DMA传输属于异步传输,在启动传输之前,slave driver需要将此次传输的一些信息(例如src/dst的buffer、传输的方向等)提交给dma engine(本质上是dma controller driver),dma engine确认okay后,返回一个描述符(由struct dma_async_tx_descriptor抽象)。DMA_PREP_PQ_DISABLE_P、DMA_PREP_PQ_DISABLE_Q、DMA_PREP_CONTINUE,PQ有关的操作,TODO。

内核笔记 1723

mainlman install and configuration

本向导将向您介绍如何在Ubuntu下使用apache网络服务器系统以及exim电子邮件服务器系统安装配置Mailman电子邮件收发软件。此向导只针对有经验的linux用户以及系统管理员。 假如这是您第一次接触Mailman,本章的内容或许可以对您起到抛砖引玉的作用。Mailman是一个专门用于管理电邮讨论群以及newsletter的开源软件。有许多开源的mailinglist(包括Ubuntu

JackieGemini 1218

uniapp [安卓苹果App端] - 实现支付宝支付功能+拉起支付宝app付款支付后返回跳转到原页面,详解uniApp如何唤起本机支付宝并跳转到支付页面全流程及示例源码(APP端支付宝支付,支持打包

全网最详细的uniapp支付宝支付教程,uniapp支付宝支付流程,uni-app项目在APP端使用支付宝支付功能,uniapp前端实现支付宝支付,uniapp中唤醒支付宝进行支付并返回app,uniApp调起支付宝支付失败报错,uniapp app端调支付宝支付接口,uniapp开发安卓App对接支付宝支付,uniapp苹果ios唤起支付宝支付,uniapp调用支付宝支付uniapp开发app-调用支付宝支付,uniapp开发安卓苹果app如何接入支付宝支付,UniApp中实现支付宝支付功能,支付报错,调

🏆 前端领域优质创作者 1万+

高通蓝牙学习-- 关于Android 蓝牙的介绍

本文详细介绍了AOSP蓝牙架构及高通QCA芯片的蓝牙功能实现方案。主要内容包括:1)AOSP蓝牙架构在不同Android版本中的层次结构,重点分析BTHIDL层和libbt-vendor关键组件;2)QCA芯片的引导流程说明;3)两种获取libbt-vendor源码的方式(Google官方源和国内镜像源);4)针对QCA6595/6696/66x8/67x7芯片的具体实现方案,包括固件文件定义、厂商事件处理和补丁下载流程;5)蓝牙调试方法,包括logcat日志分析、HSU和Ellisys硬件跟踪技术。文章为

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 496

使用OpenSER构建电话通信系统——第八章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!实现呼叫盲转(Implementing Blind Call Forwarding) <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span style="font-family:宋体;m

老黑 682

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1606

完美安装配置Ubuntu 服务器版

<br /><br />这篇教程指导你如何完美安装配置ubuntu 服务器版本,并安装配置一般的服务:<br />apache (ssl) positfix 邮件服务器 smtp-auth tls bind dns服务器,proftpd ftp服务器<br />mysql数据库 courierpop3/imap 邮件服务, 磁盘限额,防火墙等等。虽然这篇教程<br />是在32位的ubutnu 8.04上安装的,但应该也适用于64位版本的。下面是相关软件的版本:<br />* Web 服务器: Apache

瞧字不识 5444

高德地图API如何使用

通过以上步骤,您可以成功接入并使用高德地图API来为您的应用添加丰富的地图功能。

QQ_778132974的博客 4789

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用OpenSER构建电话通信系统——第七章(3)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!实验——使用LCR特性(Lab——using the LCR Feature)<p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span style="font-family:宋体;mso-asci

老黑 804

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在Ubuntu 上安装和配置postfix邮箱服务器

Postfix是一种流行的开源邮件传输代理(MTA),可用于在Linux系统上路由和传递电子邮件。 据估计,互联网上大约25%的公共邮件服务器运行Postfix。 本文介绍 如何在Ubuntu 20.04服务器上安装和配置Postfix。 然后,将通过安装s-nail(邮件用户代理(MUA),也称为电子邮件客户端)来测试Postfix是否能够正确路由邮件。 请注意,本文的目标是仅使用一些基本的电子邮件功能来帮助你启动Postfix并快速运行。最后,你虽没有功能齐全的电子邮件服务器,但是拥有此类设置的一.

曾立文的博客 6204

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用OpenSER构建电话通信系统——第五章(3)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!Openserctl shell脚本Openserctl工具是安装在/usr/sbin上的shell脚本。被用来使用命令行的方式来对OpenSER进行管理。可以用来进行:l         启动,终止,重启OpenSERl         展示,授权,撤销ACLsl         添加,删除,列出别名l         添加,删除,配置AVP

老黑 1632

ubuntu安装postfix+esmtp验证配置

https://help.ubuntu.com/community/Postfix Community DocumentationLogin to EditUbuntu Documentation > Community Documentation > PostfixPostfixIntroduction目录IntroductionWhat is a Mail Transfer AgentInst

我的笔记 4004

使用OpenSER构建电话通信系统——第三章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!OpenSER v1.2 目录结构 <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span lang="AR-SA" style="mso-bidi-font-size:10.5pt;f

老黑 501

Ubuntu下安装postfix+extmail邮件服务器

系统:ubuntu-10.04.3-server-amd64安装LAMP环境sudo apt-get install apache2sudo apt-get install mysql-server-5.0 mysql-client-5.0sudo apt-get install php5 libapache2-mod-php5sudo /etc/init.d/apache2...

weixin_34220963的博客 566

Ubuntu之邮件服务器(Postfix, Dovecot, MySql)

前提 系统为Ubuntu, 版本为14.04, 其他版本问题应该不大 系统hostname为zjc.com - 详见设置linux主机名 $ sudo su # echo zjc.com > /etc/hostname # exit 系统IP地址为10.1.6.197 一些地址映射 要加入/etc/hosts文件或者DNS $ sudo apt-get install vim $ sudo vi

stwstw0123的专栏 1万+

使用OpenSER构建电话通信系统——第一章(2)

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!基本消息(Basic Messages) <p class="MsoNormal" style="text-indent:21.0pt;line-height:22.0pt;mso-line-height-rule: exactly"><span lang="AR-SA" style="mso-bidi-font-size:10.5pt

老黑 1291
上一篇: 使用OpenSER构建电话通信系统——第五章(3)
下一篇: 使用OpenSER构建电话通信系统——第七章(1)
老黑徒
博客等级 码龄23年 9粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值