在我的上一篇文章中已经介绍怎样通过SIP软电话直接通话,可是假设须要支持很多其它用户互相通话,同一时候基于安全考虑,须要对用户帐户登录进行验证控制,这些情况下就须要建立SIPserver。



SIPserver的作用:

       呼叫控制和处理功能、业务提供/支持功能、用户管理功能、协议处理功能、路由处理、接入认证、计费信息採集、操作维护/网管功能、互通功能、安全功能(可选)、黑白名单功能、拥塞控制功能(可选)。



建立SIPserver的条件:

       * 一台计算机,作为server;

       * server通常须要拥有固定的IP地址;

       * server上不能再执行client(也就是说,client、server不能同一时候启动,否则会冲突)。



      上一篇文章中已经介绍了怎样使用Yate2client,本次仍然使用Yate2搭建SIPserver。因为Yate2同一时候包括client及server端,所以不须要再单独安装server端。

说明,本次測试须要用到三台电脑,详细例如以下:

电脑A,Yate2client,账户名:test,IP:192.168.1.102

电脑B,Yate2server,IP:192.168.1.106

电脑C,Yate2client,账户名:cheney,IP:192.168.1.103

另外,不建议在Windows7上安装Yate2server,会有非常多问题,导致server无法使用,建议使用Windows XP。

用Yate2搭建SIPserver的步骤:

1. 安装Yate2server(省略);

2. 打开Yate2安装文件夹的conf.d子文件夹;

3. 将regfile.conf.sample复制一份,改名为regfile.conf,打开作下列改动:

   * 找到;auth=100、;register=100、;route=100三行,分别去掉前面的分号;

   * 对须要建立的每个用户,在文件末尾添加�两行:

   [username]

   password=密码

   比如:

   [cheney]

   password=521

[test]

   password=521

   这样,Yate2server就有了身份认证功能。      

4. 開始-管理工具-服务,又一次启动Yet Another Telephony Engine服务,假设没有错误提示,则服务启动成功。



验证server是否可用

1. 在电脑A启动Yate2client;

2. 选择Settings-〉Accounts-〉New,打开新建帐户对话框,填写各项目,例如以下图所看到的:

   * Use provider,选择none  

   * Protocol=sip

   * Username=username

   * Password=password

   * Server=server的IP地址

点击OK后,Status应该会显示“online”,例如以下图所看到的。这表明注冊成功,您已经正确建立了最简单的Yate2 SIPserver。

 



       下图为注冊过程中的在电脑B中的通信抓包数据。

通过Yate2server打电话

1. 在电脑C启动Yate2client,新建帐户并登陆;

2. 在电脑A的Yate2client的拨号栏里面输入对方帐户名,点击“Call”就可以拨打电话,例如以下图所看到的。

下图为通话过程中的在电脑B中的通信抓包数据。

到此,建立起SIPserver并进行通话測试的工作结束。网友有兴趣的能够分析抓包数据,从而对SIP的通信流程有一个具体的了解。

SIP入门(二):建立SIPserver的更多相关文章

  1. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  2. 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

    前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...

  3. 微服务(入门二):netcore通过consul注册服务

    基础准备 1.创建asp.net core Web 应用程序选择Api 2.appsettings.json 配置consul服务器地址,以及本机ip和端口号信息 { "Logging&qu ...

  4. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

  5. 脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式的网络编程知识学习 ^_^. 套接字socket是大多数程序员都非常熟悉的概念,它是计算机 ...

  6. [转帖]脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?     http://www.52im.net/thread-1732-1-1.html   1.引言 本文接上篇<脑残式网 ...

  7. C#中的特性 (Attribute) 入门 (二)

    C#中的特性 (Attribute) 入门 (二) 接下来我们要自己定义我们自己的特性,通过我们自己定义的特性来描述我们的代码. 自定义特性 所有的自定义特性都应该继承或者间接的继承自Attribut ...

  8. Netty入门二:开发第一个Netty应用程序

    Netty入门二:开发第一个Netty应用程序 时间 2014-05-07 18:25:43  CSDN博客 原文  http://blog.csdn.net/suifeng3051/article/ ...

  9. ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

    ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET 5 理解和入门 使用自定义配置文件 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以 ...

随机推荐

  1. window.top.location.href 和 window.location.href 的区别

    "window.location.href"."location.href"是本页面跳转. "parent.location.href" 是 ...

  2. Android 录音器

    Android自带的mediarecoder录音器不含pause暂停功能,解决方法:录制多个音频片段,最后合成一个文件. 参照 : http://blog.csdn.net/a601445984/ar ...

  3. PHP发送电子邮件

    1.导入文件,如本案例把Stmp.class.php放到Common\Common目录下,代码很多,直接复制就行! <?php namespace Common\Common; class Sm ...

  4. spring配置的相关文章

    1.maven项目中自动下载jar包的pom.xml配置 http://blog.sina.com.cn/s/blog_643634b80101hd3i.html 2.参考配置1:http://www ...

  5. ubuntu访问 windows文件

    在unbunt下,想打开windows的文件,出现这个报错 安装ntfs-3g: sudo apt-get install ntfs-3g 看下自己要挂载的分区叫啥名 sudo fdisk -l 我的 ...

  6. RSA

    https://en.wikipedia.org/wiki/RSA_(cryptosystem)

  7. c# listView中列宽随列中的内容自动调整

    1.创建一个类 ListViewAutoChange  作用:自动调整ListView的列宽 代码如下:(内容很容易理解,没加注释) using System; using System.Collec ...

  8. Linux环境下NodeJS的安装配置(HelloWorld)

    Linux环境下NodeJS的安装配置(HelloWorld) 最简单的环境安装,测试helloworld.给初学者!! 安装脚本,请仔细阅读逐行执行: #!/bin/bash #检查是否已经安装 r ...

  9. python第三方库

    autopy autopy是一个自动化操作的python库,可以模拟一些鼠标.键盘事件,还能对屏幕进行访问 pywin32 win32api的python封装 PIL python的图形图像处理框架

  10. 为什么有时候在Windbg中下断点下不了呢??

    1.今天我发现我下断点的地方是我声明的变量,变量还仅仅是声明,没有赋值.因此不能下断点. 2.当不能下断点时,如何解决呢? (1)重启Vmware虚拟机.(2)在虚拟机中恢复“快照”.