发布网友 发布时间:2022-04-28 22:33
共1个回答
热心网友 时间:2022-06-24 06:50
颇有些说明书控的感觉,一切准备好了,开始进行了使用SIPp测试ReSIProcate的Proxy的实践,没想到颇为不顺,于是有了这篇博文,记录一下个人经验,以供后人借鉴。一开始按照说明Run sipp with embedded server (uas) scenario: ./sipp -sn uas -p 5064 On the same host, run sipp with embedded client (uac) scenario ./sipp -sn uac 127.0.0.1 -p 5062 在uac端提示错误 Last Error: Unable to send UDP message: Bad address. sip群里询问了一下,有说是IP设置有问题的,有说可能是端口冲突的。端口冲突我一开始就已经考虑到了,指定了端口号避免了冲突。我指定了一下 IP ,添加了以下参数(localIP指本地IP地址,这儿假设您的本地IP地址为192.168.1.66) -i localIP 没有了这个错误,我用netstat -an命令行参数比较了一下异同,发现引起错误的原因在于端口所处的IP段不同。 OK~接下来在我上一篇博文ReSIProcate之编译、安装、配置、运行、测试proxy的基础上开始配置ReSIProcate配合SIPp测试。 由于SIPp的uac与uas场景没有注册,于是我们需要在ReSIProcate中添加uac和uas的后门帐号。 在入口函数main的 InMemoryRegistrationDatabase regData; 下面添加如下代码 //!sld! 2009-11-6 为了sipp添加后门,这里假设您的localIP为192.168.1.66 ContactInstanceRecord rec; rec.mContact = NameAddr(Uri("sip:service@192.168.1.66:5064")); rec.mRegExpires = -1; regData.updateContact(Uri("sip:service@192.168.1.66:5060"),rec); rec.mContact = NameAddr(Uri("sip:sipp@192.168.1.66:5062")); regData.updateContact(Uri("sip:sipp@192.168.1.66:5060"),rec); 第二件事很显然我们需要配置proxy的运行参数。 char* recordRouteUri = "sip:192.168.1.66:5060"; char* interfaces = "sip:192.168.1.66:5060;timer-C=2;transport=udp"; 以上第一个参数是设置了record route,以便uac uas建立了连接之后包仍然通过proxy转发,下面一个参数是使proxy监听localIP段5060 udp端口。接下来一切OK~ Have fun!!!