Hi,
I am doing some basic benchmarks with Kamailio. I am using a VM with 1 CPU
i7 2,50 GHz and Kamailio with children=1.
This is what I measure for each request, inside the benchmark block:
- app_python processing (some euclidian distance based on a dlg_var input)
-> same for all requests
- uac_req_send() OPTIONS -> same for all requests
I am running SIPp tests for 1000 calls with 1,10,50,100,150,200 calls per
second.
What I see is that the Global average processing time per request decreases
with the increasing rate; I expected it to increase with the increasing
rate. Is there an explanation for this, or am I doing something wrong ?!
Thanks,
Stefan
Hello,
we are using the TM Module* t_suspend *function in our kamailio to suspend
transactions (mainly INVITE requests). We do this as we send some push
notification to the callee that will force it to re-REGISTER. Once we get
the REGISTER, we resume the transaction with a *t_continue()*.
If the callee never re-REGISTER, the FR Timer will terminate the INVITE
transaction.
This is working fine for us when the callee has a phone that can receive the
push notification.
Now, we want to be able to contact users having multiple devices: phone and
desktop VoIP clients. The problem with current implementation is that if we
wait for the re-REGISTER from the mobile phone, we may never send the INVITE
to the desktop VoIP client if the mobile phone is shutdown.
So, I'd like to now if it is possible to set a timer to the t_suspend
command which will automatically resume the suspended transaction (without
issuing an ERROR like the FR timer is doing)? I didn't see such possibility
in the TM module, but is there another way to implement this?
Hope I was clear enough
Regards
Giovanni
--
View this message in context: http://sip-router.1086192.n5.nabble.com/TM-Module-t-suspend-question-tp1493…
Sent from the Users mailing list archive at Nabble.com.
Hi!
To cope with your specific cases try connection-oriented transport
(tcp/tls). e.g. if app is closed - the connection is closed as well and the
usrloc record will be removed.
After this use standard approach (with late forking - tsilo module)
imho, it is not a good idea to suspend the call if there is records in
location.
Cheers!
--
View this message in context: http://sip-router.1086192.n5.nabble.com/Push-notification-question-tp149025…
Sent from the Users mailing list archive at Nabble.com.
Hello,
How should reINVITEs be handled in the kamailio script and also in combination with rtpengine?
I was reading the RR docs and loose_route function pretty much handles this if I'm correct.
We're currently receiving reINVITEs for checking if a session is still active, not for session modifications like SDP changes.
Does kamailio handle reINVITEs correctly out of the box or should extra logic be implemented?
Also, what happens when rtpengine_manage is called for a reINVITE inside WITHNDLG or in onreply_route for 200 OK? Is the module smart enough to ignore port (de-)allocations when the SDP is still the same as the initial INVITE or 200 OK?
Regards,
Grant
hello
i am using using kamailio + RTPengine in my setup and i want to forward
every single call to freeswitch(for recording purpose),
all three are running on the same machine (testing in the local network)
my requirement for media flow is:
UA1-->RTPproxy-->>freeswitch-->RTPproxy-->UA2
my user agents are using webrtc media profile so my rtp engine flags are :
rtpengine_manage("trust-address replace-origin replace-session-connection
RTP/SAVPF");
i've attached my configuration file
i've configured freeswitch for media_webrtc=true ,still
when i try calling the freeswitch send 488 without sending call to other
end
should media-address flag be used to forward media through, if yes how it
should be done ??
Hi there,
I'm having an issue in a SBC (ACME) -> KAMAILIO -> Asterisk scenario with an ACK that gets ignored in Kamailio because it does not match any transaction.
The INVITE coming from the SBC looks like this (only relevant headers and hidden numbers for simplicity - SBC has IP .12 , Kamailio .30 and Asterisk .34)
INVITE sip:mynumber@10.15.1.30:5060 SIP/2.0
Via: SIP/2.0/UDP 10.15.1.12:5060;branch=z9hG4bKdd1m7b00aom47rggc700.1
To: <sip: mynumber@10.15.1.30:5060>
From: <sip:a-number@10.15.1.12;user=phone>;tag=SDkbo9901-42090
P-Asserted-Identity: <sip: a-number @10.15.1.12>
Call-ID: SDkbo9901-71a1d17456b829b4c422af61de9eee7e-ao32g50
CSeq: 1 INVITE
Contact: <sip:41754112601@10.15.1.12:5060;transport=udp>
And its forwarded to Asterisk with the Record-Route header:
INVITE sip: mynumber @10.15.1.30:5060 SIP/2.0
*Record-Route: <sip:10.15.1.30;lr=on;ftag=SDkbo9901-42090>
*Via: SIP/2.0/UDP 10.15.1.30;branch=z9hG4bK1c02.7dc1b94be22d8780df5141f9ba3c5b7b.0
Via: SIP/2.0/UDP 10.15.1.12:5060;branch=z9hG4bKdd1m7b00aom47rggc700.1
To: <sip:mynumber@10.15.1.30:5060>
From: <sip:a-number@10.15.1.12;user=phone>;tag=SDkbo9901-42090
P-Asserted-Identity: <sip:a-number@10.15.1.12>
Call-ID: SDkbo9901-71a1d17456b829b4c422af61de9eee7e-ao32g50
CSeq: 1 INVITE
Contact: <sip:a-number@10.15.1.12:5060;transport=udp>
Then, 200 OK from Asterisk:
SIP/2.0 200 OK
*Via: SIP/2.0/UDP 10.15.1.30;rport=5060;received=10.15.1.30;branch=z9hG4bK1c02.7dc1b94be22d8780df5141f9ba3c5b7b.0
Via: SIP/2.0/UDP 10.15.1.12:5060;branch=z9hG4bKdd1m7b00aom47rggc700.1
*Record-Route: <sip:10.15.1.30;lr;ftag=SDkbo9901-42090>
Call-ID: SDkbo9901-71a1d17456b829b4c422af61de9eee7e-ao32g50
From: <sip:a-number@10.15.1.12;user=phone>;tag=SDkbo9901-42090
To: <sip:mynumber@10.15.1.30>;tag=2e3c2071-c895-4069-afc2-37a19b20637a
CSeq: 1 INVITE
Server: Asterisk PBX 13.8.0
Contact: <sip:10.15.1.34:5060>
Which is sent to the SBC like this:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.15.1.12:5060;branch=z9hG4bKdd1m7b00aom47rggc700.1
*Record-Route: <sip:10.15.1.30;lr;ftag=SDkbo9901-42090>
Call-ID: SDkbo9901-71a1d17456b829b4c422af61de9eee7e-ao32g50
From: <sip:a-number@10.15.1.12;user=phone>;tag=SDkbo9901-42090
To: <sip:mynumber@10.15.1.30>;tag=2e3c2071-c895-4069-afc2-37a19b20637a
CSeq: 1 INVITE
Server: Asterisk PBX 13.8.0
Contact: <sip:10.15.1.34:5060>
And finally the SBC sends the ACK:
ACK sip:10.15.1.30:5060 SIP/2.0
Via: SIP/2.0/UDP 10.15.1.12:5060;branch=z9hG4bKdt7p9k00dounet8ic600.1
To: <sip:mynumber@10.15.1.30>;tag=2e3c2071-c895-4069-afc2-37a19b20637a
From: <sip:a-number@10.15.1.12;user=phone>;tag=SDkbo9901-42090
Call-ID: SDkbo9901-71a1d17456b829b4c422af61de9eee7e-ao32g50
CSeq: 1 ACK
Contact: <sip:a-number@10.15.1.12:5060;transport=udp>
*Route: sip:10.15.1.30;lr;ftag=SDkbo9901-42090
The problem: this ACK gets not retransmitted to Asterisk
At first, I thought it was some sanity check but after disabling that I realized that it was in the WITHINDLG route.
For the incoming ACK I get in the logs:
Jun 8 11:56:47 tone-0866-fe-2-qa /usr/local/sbin/kamailio[53240]: ALERT: <script>: Inside LOOSE route for ACK proto=UDP trans=4194304 from=sip:00754112601@10.15.1.12;user=phone route=sip:10.15.1.30;lr;ftag=SDkbo9901-42090 src_ip=10.15.1.12
And once the ACK is ready to be sent to Asterisk, the Route header has been removed and no Record-Route has been added so it fails.
Jun 8 11:56:44 tone-0866-fe-2-qa /usr/local/sbin/kamailio[53238]: INFO: rr [rr_mod.c:402]: pv_get_route_uri_f(): No route header present.
Jun 8 11:56:44 tone-0866-fe-2-qa /usr/local/sbin/kamailio[53238]: ALERT: <script>: ACK does not match transaction!! proto=UDP trans=4194304 from=sip:00754112601@10.15.1.12;user=phone route= src_ip=10.15.1.30
My WITHINDLG route looks like this:
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
xlog("L_ALERT","Inside LOOSE route\n");
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
}
if ( is_method("ACK") ) {
xlog("L_ALERT","Inside LOOSE route for ACK proto=$rP trans=$mf from=$fu route=$route_uri src_ip=$si \n");
# ACK is forwarded statelessy
route(NATMANAGE);
}
route(RELAY);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
# in-dialog subscribe requests
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# no loose-route, but stateful ACK;
# must be an ACK after a 487
# or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching transaction ... ignore and discard
xlog("L_ALERT","ACK does not match transaction!! proto=$rP trans=$mf from=$fu route=$route_uri src_ip=$si \n");
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
}
Thanks for reading this :) Any idea about how to validate the transaction? t_check_trans is not being validated...
Cheers, Francisco.
Hi list
I have installed a newer version of rtpproxy (2.0) in our development
server , i was happy because it brings lot of performance improvements
However i have found an issue when clients use TLS+SRTP
In that scenario i do not want rtpproxy to decrypt/reencrypt the traffic as
my B2BUA does that or in some scenarios we do plan to add end to end
encryption. RTPProxy 1.X was doing that perfectly
Instead since i use rtpproxy 2.0 all SRTP and SRTCP traffic is decrypted by
rtpproxy and i receive it clear in the B2BUA
How can i disable this new feature and that rtpproxy just keeps sending the
received SRTP/SRTCP stream without decrypting it?
Hi team,
How to do the Configuration of Kamailio+RTP-Proxy for SER in IPv6,
Currently I can establish SIP Session,while rtp start call are not
audible.So Some configuration need to change,Am bit
confused on it,Please help to resolve the issue,For my proper
VoIP-Communication in IPv6 Surveillance.
Regards
Arnab
Dear list,
I have Kamailio 4.4.1 running with local mysql authentication (WITH_MYSQL/WITH_AUTH).
i have RADIUS and LDAP services running.
I would like to use all of them (MYSQL+RADIUS+LDAP) for Authentication.
How is the best "kamailio.cfg" approach to use all defined users on RADIUS and LDAP? so, when a user try to login, kamailio will try MYSQL, them LDAP, them RADIUS. If user/password are not define on any of those 3 system, authentication will fail.
Do i need modify my current LDAP tree? Im trying to using standart "userPassword" attribute.
This is my reference:
http://www.kamailio.org/wiki/tutorials/mini-howto-admin/ldap-user-auth
i would like to "add" route[LDAPAUTH], not to "replace" route [AUTH].
Kind Regards