resiprocate使用入门:内网搭建基于repro的sipproxy测试环境

测试环境

sipproxy:repro + centos 
客户端:windows电脑客户端使用X-Lite,手机andriod客户端使用linphone

repro配置和启动

log的配置

如果使用默认的log配置,则log级别是INFO,且所有log都打印到标准输出。如果要输出到文件,则做如下类似配置:

########################################################
# Log settings
########################################################
LoggingType = file
LogLevel = STACK
#指定log文件路径
LogFilename = ../log/repro.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

web地址设置

如果要通过网页操作repro的相关配置,则需要将HTTP的地址改成repro所在机器的ip。端口默认配置是5080。我的repro机器ip是172.16.12.29,则配置如下:

HttpBindAddress = 172.16.12.29, ::1
  • 1
  • 2

启动repro

./repro

创建domain、user以及route

浏览器登陆repro的控制页面:

172.16.12.9:5080
  • 1

提示输入用户名和密码,默认都是admin,登陆成功后点击login,界面如下: 

创建domain

任何user都必须要属于某个domain,repro会根据domain去路由下一跳。创建domain界面如下,端口可以不填,域名随便输入。 创建domain后,会显示在下面的列表中。 



特别注意的是: 
(1)创建domain后,需要重启repro。 
(2)域名可以是字符串,也可以直接使用repro 的ip地址。如果是字符串,就需要配置DNS规则。比如我创建 test.sipproxy.cn,则需要将这个域名DNS到proxy上。最简单的就是配置到/etc/hosts上。否则会出现480 NO DNS错误。

创建user

输入用户名,选择domain,输入密码,add即可。 

创建route

这一步不是必要的,但是我们拨打的时候,习惯输入数字号码,而不是用户名。所以通过创建route来实现数字号码到用户名的映射。按照提示正确输入URI和Destination。 

客户端登陆

经过以上步骤,就有用户了: 



比如我有两个用户:test3@test.sipproxy.cn和test4@test.sipproxy.cn 
对应的号码分别是33333和44444

电脑上X-lite登陆:

手机上linphone登陆:

登陆成功后,repro控制页面上可以看到相关登陆注册的信息: 

测试结果

在test3上拨打号码44444,拨打成功。抓包,flow图如下: 

遇到的问题

(1)域名一定要配置DNS

(2)如果域名用的是repro的ip,则不要改动repro的默认端口5060。我的测试中一开始由于5060被其他应用占用,将repro的端口改成5066,配置ip域名打不通。因为repro代码中从域名中解析不到端口,就会使用默认的端口5060,这个是硬编码写死的。也就是说会将主叫的invite路由到5060端口去,导致通话失败。非要用ip当域名且改变端口,可以在域名上加上端口,如172.16.12.29:5066。

(3)在repro端口上抓包,通话结束时,竟然没有抓到bye包。 
这个的原因是ack和bye包,主叫和被叫直接发送了,没有经过repro。因为bye是不同的事务,bye的路径依赖于RecordRoute,所以这个是repro没有将自己插入到RecordRoute导致的。这个在配置中将ForceRecordRouting配成true,且RecordRouteUri配上就可以了。

时间: 2024-10-03 04:32:08

resiprocate使用入门:内网搭建基于repro的sipproxy测试环境的相关文章

服务器-本地服务和内网搭建服务公用一个SQL的时候取值错误。

问题描述 本地服务和内网搭建服务公用一个SQL的时候取值错误. 一个游戏,两个服务器.一个本地服务器,一个公司内网公用服务器.公用一个SQL,做了一个竞技场的功能.同一个号在内网进行竞技排名挑战功能.挑战完后转到本地服务器继续挑战竞技场排名.有概率出现排名错误,或者是排名数据错误

搭建基于Docker的PHP开发环境的详细教程

  这篇文章主要介绍了搭建基于Docker的PHP开发环境的详细教程,Docker是当下虚拟机技术的最佳选择,需要的朋友可以参考下 现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源).在容器技术.Docker和更多类Docker技术出现后,解决这个问题就变得简单了. 免责声明 由于boot2docker的工作方式,本文所述的方法在你的环境中可能无法正常运行.如果需要在非Linux环境下共享文件夹到Docker容器

请教个比较初级的问题 :内网搭建的web页怎么访问不了

问题描述 RT,同一个路由器搭建的内网,Tomcat装好后,本机访问如http://192.168.1.101:8080没有问题,但是另一个笔记本也连的同一个路由器,访问http://192.168.1.101:8080就说连不上但是可以ping通说哪里需要设置么 解决方案 本帖最后由 mianlaoshu 于 2015-01-04 21:28:06 编辑解决方案二:吧防火墙关了试试..解决方案三:Soga..解决方案四:防火墙关了没?解决方案五:防火墙各种杀毒拦截软件解决方案六:把8080端口

搭建基于Docker的PHP开发环境的详细教程_php技巧

现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源).在容器技术.Docker和更多类Docker技术出现后,解决这个问题就变得简单了.免责声明 由于boot2docker的工作方式,本文所述的方法在你的环境中可能无法正常运行.如果需要在非Linux环境下共享文件夹到Docker容器,还需要注意更多额外的细节.后续我会写篇文章专门来介绍实际遇到的问题.怎样才算是好的开发环境 首先,我们得知道什么才是好的开发环境,

如何搭建大型网站的压力测试环境

很多朋友都想做压力测试,其实并不是特别难.现在各类工具都比较多.我介 绍两个微软的工具吧 1. WAS: Web Application Strees Tool(免费的) 应用WAS对web进行压力测试实例详解 http://servers.pconline.com.cn/skills/0709/1119109.html 官方的文档(很详细,建议看英文版) http://support.microsoft.com/kb/313559/en-us 以前做过的一个测试结果报告

Git内网服务搭建全过程

看到一篇搭建git服务器的文章,主要是公司内网搭建的,讲得非常详细,比廖雪峰的要完整,必须赞! http://developer.51cto.com/art/201507/483448.htm

当内网安全遇上云安全

云安全体系的主要特性被展开来,我们看一下,会发现其与内网安全诉求有着惊人的镜面效应.从核心模式上来说,云安全有能力构建不同种类终端到安全云的统一防御体系,这是而体系性正是目前内网安全解决方案最亟待提高的方面.从防病毒这个最传统也是最为人熟知的安全防护领域 来看,云安全体系的应用虽然起步时日尚短但仍以极快的速度进入成熟期.由此获得的成功经验即是对其它内网安全领域的启示,同时也是一种莫大的鼓舞.也许用不了太长时间,就能够看到有其它的产品开始通过云安全来提升自己的防护能力,又或者为自己造势.不得不令人

asp实现检查ip地址是否为内网或者私有ip地址的代码分享_应用技巧

asp检查ip地址是否为私有/内网ip地址源代码. 内网/私有IP地址网段如下,还有127开头的回环地址: 10.0.0.0-10.255.255.255 172.16.0.0-172.31.255.255 192.168.0.0-192.168.255.255 实现代码: <% function IpToNumber(ip)'IP地址转为数字 arr=split(ip,".") IpToNumber=256*256*256*clng(arr(0))+256*256*clng(a

如何应用OSS的内网地址

一.各网络环境下如何应用OSS的内网地址只有同区域的ECS才能内网链接OSS,跨账户的ECS与OSS也能内网互连.而ECS分为经典网络ECS及VPC网络ECS,经典网络ECS要内网链接OSS得调用OSS经典网络内网地址:bucketname. 内网Endpoint,内网endpoint格式一般为: region-internal.aliyuncs.com:VPC网络ECS要内网连接OSS得调用OSSVPC内网地址:bucketname. VPC网络Endpoint ,VPC网络endpoint格