Hi,
The following sentence in section 1.4.8. t_flush_flags() of tm module
documentation(version 1.2.X) has several spelling mistakes.
Incorrect
Flush the flags from current request into the already created
transaction. It make sens only in routing block if the trnasaction was
created via t_newtran() and the flags have been altered since.
Correct
Flush the flags from current request into the already created
transaction. It make sense only in routing block if the transaction was
created via t_newtran() and the flags have been altered since.
Thanks,
Ruchir
I am doing what I thought was a simple volume test that OpenSER should be
able to handle, but the results I am getting so far show it is not handling
the load I'm sending it.
Here is my configuration:
- OpenSER 1.3.1
- Simple script that uses OpenSER as a proxy to forward requests to
a carrier. All it does is rewrite the host and port of the R-URI and relays
to the carrier.
- children=16
- shared memory set to 1 G. (-m 1000)
- using transaction module to handle the requests.
- Sending 10 INVITE requests per second to OpenSER using Asterisk.
When I do a "tcpdump" trace of the network traffic to/from OpenSER, it is
clear that a large percentage of the INVITE requests sent to OpenSER were
not handled. Asterisk needed to resend the INVITE requests several times
before OpenSER would handle them, and in about 20% of the cases Asterisk
terminated the INVITES because it reached the timeout of 30 seconds without
any response.
If I go directly from asterisk to the carrier, this test works without any
issues. I'm not sure what the limitations are of OpenSER, but this seems
like something it should be able to handle.
Any help or information on how to configure OpenSER so it will work would be
appreciated.
Thanks,
Brian.
also i did some performance tests on openser trunk in order to clear
doubt that has been expressed recently.
with only 4 child processes and several radius/mysql queries per invite,
i was able to achieve 50 new calls per second using sipp including
radius accounting to database of each call. this was on my two years
old laptop and everything was running on the same host. i didn't try
yet how many calls i could have achieved before retransmissions.
i'm satisfied with the result and don't think that there are any
performance issues with openser trunk.
-- juha
Hi,
I've noticed some mistakes in documentation of rr module in version
1.2.X.
1.5.6. is_direction(dir):
Incorrect sentence:
As for checking it's used the "ftag" Route header parameter, the
append_fromtag (see Section 1.4.2 module parameter must be enables. Also
this must be call only after loose_route() (see Section 1.5.1).
Correct sentence:
As for checking it's used the "ftag" Route header parameter, the
append_fromtag (see Section 1.4.2 module parameter must be enabled. Also
this must be called only after loose_route() (see Section 1.5.1).
Thanks,
Ruchir Brahmbhatt
Director
Ecosmob Technologies Pvt. Ltd.
Hi,
If I want to walk through a resultset of numbers, how can I do that?
I have tried:
$var(index) = 1
while (is_avp_set($var(i:$index) )
$var(index) = $var(index) +1;
However $var(i:$index) won't work. I am wondering if someone can tell me
how I can correct it.
The other question I have is about psuedo-variable. Is there any
psuedo-variable can give me the IP of the Openser server?
Thanks,
Mark
Hi. I read in "t_relay" doc:
--------
0x02 - do not internally send a negative reply in case of failure. It applies
only when the transaction is created. By default one is sent. Useful if you
want to implement a serial forking in case of failure.
--------
Could you please explain it a little more? I use failure_route with
append_branch and before it OpenSer doesn't send back a negative reply to
caller (in fct it would end the transaction). What the purpose of this bit
option?
Thanks a lot.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
Hi,
I am using the same UA and Openser to do two tests. For the first case, UA
is pointing to the external IP of openser.; the other test points the UA to
openser's local ip. Registering is ok for both cases, but when I try to do
an INVITE, the UA pointing to the local IP works whereas the one pointing to
the external IP fails during proxy_authorize.
88.251.45.4 -> external ip of the entire network
192.168.1.104 -> openser's local ip
192.168.1.100 -> UA's local ip
Here is the INVITE with authentication digest from the UA pointing to the
external IP address of openser:
U 88.251.45.4:59864 -> 192.168.1.104:5060
INVITE sip:1005@88.251.45.4 <sip%3A1005(a)88.251.45.4> SIP/2.0.
Via: SIP/2.0/UDP 192.168.1.100:17480
;branch=z9hG4bK-d87543-ea31ca6af52bd14c-1--d87543-;rport.
Max-Forwards: 70.
Contact: <sip:1006@88.251.45.4:59864>.
To: "1005"<sip:1005@88.251.45.4 <sip%3A1005(a)88.251.45.4>>.
From: "1006"<sip:1006@88.251.45.4 <sip%3A1006(a)88.251.45.4>>;tag=d21e4745.
Call-ID: NGFlOTRmNTg3ZDFlYzJlYzdhNTlhNzZmMDRlOTJmOGY..
CSeq: 2 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE,
INFO.
Content-Type: application/sdp.
Proxy-Authorization: Digest username="1006",realm="88.251.45.4
",nonce="483edcaf82beda80a0c91fc75f486b8fd3f7bbc3",uri="sip:1005@88.251.45.4<sip%3A1005(a)88.251.45.4>
",response="4423a99e44bb7266912de3a4af752b3f",cnonce="ece582bf4b1708b67bd1e86952313a63",nc=00000001,qop=auth,algorithm=MD5.
User-Agent: X-Lite release 1011s stamp 41150.
Content-Length: 423.
.
v=0.
o=- 1 2 IN IP4 192.168.1.100.
s=CounterPath X-Lite 3.0.
c=IN IP4 192.168.1.100.
t=0 0.
m=audio 34842 RTP/AVP 107 119 100 106 0 105 98 8 101.
a=alt:1 1 : bIn/n4cp vm9zXwFh 192.168.1.100 34842.
a=fmtp:101 0-15.
a=rtpmap:107 BV32/16000.
a=rtpmap:119 BV32-FEC/16000.
a=rtpmap:100 SPEEX/16000.
a=rtpmap:106 SPEEX-FEC/16000.
a=rtpmap:105 SPEEX-FEC/8000.
a=rtpmap:98 iLBC/8000.
a=rtpmap:101 telephone-event/8000.
a=sendrecv.
Here is the INVITE resend from the UA pointing to openser's local IP:
U 192.168.1.100:50314 -> 192.168.1.104:5060
INVITE sip:1005@192.168.1.104 <sip%3A1005(a)192.168.1.104> SIP/2.0.
Via: SIP/2.0/UDP 192.168.1.100:50314
;branch=z9hG4bK-d87543-c34be44e3704d673-1--d87543-;rport.
Max-Forwards: 70.
Contact: <sip:1006@192.168.1.100:50314>.
To: "1005"<sip:1005@192.168.1.104 <sip%3A1005(a)192.168.1.104>>.
From: "1006"<sip:1006@192.168.1.104 <sip%3A1006(a)192.168.1.104>
>;tag=d4048226.
Call-ID: YTc4OTE2NmIyMWRkMjk3ZGNmYmY4OTg3NTQ5NWRhZDI..
CSeq: 2 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE,
INFO.
Content-Type: application/sdp.
Proxy-Authorization: Digest username="1006",realm="192.168.1.104
",nonce="483ede954fef336afd24141e99d516b0b7d9091a",uri="
sip:1005@192.168.1.104 <sip%3A1005(a)192.168.1.104>
",response="1b77bf191fef631049bd6d6b7dcc9094",cnonce="e96a7e7d9677c4c41952bce7ac2a36e2",nc=00000001,qop=auth,algorithm=MD5.
User-Agent: X-Lite release 1011s stamp 41150.
Content-Length: 423.
.
v=0.
o=- 7 2 IN IP4 192.168.1.100.
s=CounterPath X-Lite 3.0.
c=IN IP4 192.168.1.100.
t=0 0.
m=audio 14816 RTP/AVP 107 119 100 106 0 105 98 8 101.
a=alt:1 1 : SP8QJ5e9 96jlnBkg 192.168.1.100 14816.
a=fmtp:101 0-15.
a=rtpmap:107 BV32/16000.
a=rtpmap:119 BV32-FEC/16000.
a=rtpmap:100 SPEEX/16000.
a=rtpmap:106 SPEEX-FEC/16000.
a=rtpmap:105 SPEEX-FEC/8000.
a=rtpmap:98 iLBC/8000.
a=rtpmap:101 telephone-event/8000.
a=sendrecv.
The openser script associated wit proxy_authorize is :
if (!proxy_authorize("","subscriber")) {
xlog("not authorize need to do proxy challenge\n");
proxy_challenge("","1");
exit;
}
What could be wrong with my setup?
Thanks in advance for your help.
Thanks,
Mark
Hi,
I am having a situation where the client sends each RE-REGISTER with a
new Call-ID, causing it to create a new entry in the location table.
The problem is that this client sends the Re-REGISTER in a Expires/2
time, and as the RFC says, the 200ok is sent with the 2 contacts, with
each expire, then the client receive this 2 contacts with 2 expires and
"thinks" that it should renew the REGISTER for the old contact and sends
a new REGISTER, with a new Call-ID, and adds another entry in the
location table, which causes the response returns 3 contacts with 3
expires, and so on...
There is some way to handle this issue?
Thanks
Lucio
Hi,
I am wondering if someone could help me to understand a bit more about the
internal mechanism of proxy_challenge?
If the UA is connecting to the server using the external ip, proxy_challenge
fails, but if the UA is connecting to the server using the lan ip,
proxy_challenge succeeds.
What is the reason why this is happening? How does proxy_challenge work
exactly?
Thanks in advance for your help.
Regards,
Mark