sip服务器的搭建

我们都知道使用VOIP网络电话,需要连接上sip服务器,这样用户之间才可以通信。

在这里,我就简单介绍下如何搭建sip服务器。在windows系统下可搭建minisipserver,其官网为http://www.myvoipapp.com/,我们可以从中选取对应的版本,具体配置步骤见http://jingyan.baidu.com/article/03b2f78c744ab55ea237aef3.html。当然我们也可以下载Linux版本,安装和使用教程见http://www.myvoipapp.com/docs/mss_services/linux/index.html,我就不再赘述。

这里我着重讲解下如何在ubuntu下搭建OpensSIPS服务器,OpenSIPS是一个成熟的开源SIP服务器,除了提供基本的SIP代理及SIP路由功能外,还提供了一些应用级的功能。OpenSIPS的结构非常灵活,其核心路由功能完全通过脚本来实现,可灵活定制各种路由策略,可灵活应用于语音、视频通信、IM以及Presence等多种应用。同时OpenSIPS性能上是目前最快的SIP服务器之一,可用于电信级产品构建。凭借其可扩展、模块化的系统架构,OpenSIPS提供了一个高度灵活的、用户可配置的路由引擎,可以为voice、video、IM和 presence等服务提供强大高效的路由、鉴权、NAT、网关协议转化等功能。由于其稳定高效等特点,OpenSIPS已经被诸多电信运营商应用在自己的网络体系中。

一.前提条件:

(1)mysql已经配置好

1 sudo apt-get install mysql-server
2 sudo apt-get isntall mysql-client
3 sudo apt-get install libmysqlclient-dev

(2)如果找不到curses.h,安装sudo apt-get install libncurses5-dev

二.安装:

1. 下载 opensips

http://www.opensips.org/Resources/Downloads

我使用的是1.8版本,即可以git下来

 git clone https://github.com/OpenSIPS/opensips.git -b 1.8 opensips_1_8

2. 解压后,进入opensips目录

make all  ,如果出错,一般是缺少一些编译工具,直接sudo apt-get install xxx(相应的工具)

make install

可能设置到权限不足的问题,为了省事,我们不妨在root用户下进行操作

三.配置

1.opensips数据库

cd /usr/local/etc/opensips/查看发现有三个文件,分别是opensips.cfg opensipsctlrc osipsconsolerc,然后vim将其对应的ip地址修改成自己主机上的。

2.开启数据库

/usr/local/sbin/opensipsdbctl create

如果出现以下错误

“ERROR: could not load the script in /usr/local/lib/opensips/opensipsctl/opensipsdbctl.mysql for database engine MYSQL
     ERROR: database engine not loaded - tried ‘MYSQL‘”

1 cd /usr/local/lib64/opensips/opensipsctl/
2 cp $(你的opensips目录)/scrips/*.mysql  ./
3 mkdir mysql
4 cp  $(你的opensips目录)/scrips/mysql/*.sql ./mysql
5 cd /usr/local/share/opensips
6 cp $(你的opensips目录)/scrips/*.mysql  ./
7 mkdir mysql
8 cp  $(你的opensips目录)/scrips/mysql/*.sql ./mysql
如果ubuntu是32位的话,则为/usr/local/lib/opensips/opensipsctl

成功后,会有两个选项,全选y

3.察看设置是否正确

/usr/local/sbin/opensipsctl -c

四.使用

1.开启opensips服务

/usr/local/sbin/opensipsctl start

关闭stop 重启restart

这里我遇到了ERROR: PID file/var/run/opensips.pid does not exist -- OpenSIPS start failed. 的问题。在这里使用tail -n 20 /var/log/syslog,可以查看错误原因,我发现是权限的问题,因而要sudo /usr/local/sbin/opensipsctl start 。

2.添加sip用户

/usr/local/sbin/opensipsctl  add username password   如:/usr/local/sbin/opensipsctl add 100 100

可以使用/usr/local/sbin/opensipsctl  rm 100删除用户。

如果出现ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN,说明环境变量未配置,所以vim /etc/environment,在里面写入SIP_DOMAIN="你的IP Domain",而后再source下即可

默认的数据库用户为opensips,密码为opensipsrw,当然你也可以设置成对应的用户,直接在/usr/local/etc/opensips的配置文件修改对应的DBRWUSER,DBRWPW

3.查看sip用户

可以使用mysql -u root -p而后输入你的密码,就能够通过show databases;查看数据库,再使用use opensips;并且show tables;就可以查看opensips数据库里的表格,最后使用select * from subscriber;便能够查看添加的sip用户情况

4.可随意找一款网络电话进行测试,如sipdroid或linphone,设置用户信息,发现仍然连接不上,这到底是什么原因呢?我查了很久,才发现是由于对应默认的端口5060未打开,因而使用sudo ufw allow 5060。再次测试,总算连接成功,而后就可以愉快地进行通话喽!!!下面就是我测试成功的结果:

           

时间: 2024-10-10 22:09:17

sip服务器的搭建的相关文章

SIP协议&开源SIP服务器搭建和客户端安装

1. SIP SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话 SIP在建立和维持终止多媒体会话协议上,支持五个方面: 1)   用户定位: 检查终端用户的位置,用于通讯. 2)   用户有效性:检查用户参与会话的意愿程度. 3)   用户能力:检查媒体和媒体的参数. 4)   建立会话: “ringing”,建立会话参数在呼叫方和被叫方. 5)       会话管理:包括发送和终止会话,修改会话参数,激活服务等等. 1.1 SIP基本组成要素 用户

阿里云CentOS Linux服务器上搭建邮件服务器遇到的问题

参考文章: 阿里云CentOS Linux服务器上用postfix搭建邮件服务器 Linux系统下邮件服务器的搭建(Postfix+Dovecot) 本来想自己搭建邮件服务器,但是看到一篇资料表示阿里云为了禁止垃圾邮件,禁用了25端口. 可以使用阿里云的邮件推送服务. SMTP之PHP调用示例 email.class.php下载

智能NDS服务器的搭建——三大运营商线路分流解析DNS

在我们中国电信运营商不止一家,有电信.移动.网通,但我们在访问互联网资源时,有时候就会现跨网访问的情况,但有时间跨网访问速度是奇慢的.所以我们的网站运营商,也会在网站的服务器上同时配上三大电信运营商的线路,如此一来,电信用户访问的时候就走电信的出口,移动用户访问的时候就走移动的出口,网通通用户访问的就走网通的出口,这样也就很好的解决了跨网访问速度奇慢的问题的了.但这里其实就用到了,如何让DNS在解析地址的过程中智能的去判断哪个运营商的用户走哪条线路了.今天在这里给大家模拟实现一下,智能DNS如何

ubuntu 14.04 下FTP服务器的搭建--锁定用户目录,解决vsftpd: refusing to run with writable root inside chroot()

FTP服务器的搭建,我要实现的需求是: 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件, 需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但是我不想让他随意操作我的东西. 万一删除我的配置文件,我就惨了(吐槽一下韩剧:媳妇问我,你都没看过韩剧怎么知道它不好看呢,我说:我没吃过屎 但是知道它一定不好吃!) 另外,需要本机也能访问,因为我要做一些关于FTP的测试.  不单独建立FTP用户,FTP也使用ubuntu桌面的用户进行登录和操作,

RHEL5——DNS服务器的搭建

RHEL5--DNS服务器的搭建    DNS服务器的搭建  DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 配置步骤: 1)配置服务器的IP地址 # cat /etc/sysconfig/network-scripts/ifcfg-e

samba服务器的搭建

工作组为Tarena 将目录 /usr/src 共享给所有人 共享名设为 tools 允许所有人访问.无需密码验证 访问权限为只读 1.安装软件包 [[email protected] ~]# rpm-q samba-client samba samba-common    //查看软件是否安装 package samba-client is not installed package samba is not installed package samba-common is not inst

linux杂谈(十一):LDAP服务器的搭建

1.LDAP简介 今天我们来介绍LDAP服务器的搭建和客户端的访问,但是主要的问题在前者.首先我们要知道什么是LDAP. 在日常交谈中,你可能会听到有些人这么说:"我们要把那些东西存在LDAP中吗?",或者"从LDAP数据库中取出那些数据!",又或者"我们怎么把LDAP和关系型数据库集成在一起?".严格地说,LDAP根本不是数据库而是用来访问存储在信息目录(也就是LDAP目录)中的信息的协议.更为确切和正式的说法应该是象这样的:"通过使

多功能集成环境在windows服务器上搭建PHP网站案例,在服务器上搭建PHP网站

服务器版本:Windows Server 2008 R2 Enterprise 平时搭建PHP网站,可以在linux服务器上搭建,也可以在windows服务器上搭建,主要看你个人需求了,今天我们演示的是用PHPWAMP绿色集成环境在windows服务器上搭建php网站. 这款PHPWAMP绿色集成环境也属于WAMP套件,大家知道什么是WAMP吧? Windows下的Apache+Mysql+PHP,称为WAMP. WAMP套件其实有很多,就比如wampserver.apmserv.xampp等等

linux(centos7)下SVN服务器如何搭建

linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversio