Hi Guys,
I am running a simple REGISTER load test on:
1) Kamailio sever with 2 cores - mem 5G
2) Kamailio server with 4 cores - mem 16G
Both are EC2 instances.
At -r = 500 i.e. 500 reg/sec sipP test works fine with very few re-trans.
But when i increase it to 800 reg/sec it starts retransmissions in bulk.
I don't see server's CPU, load-avg or memory shooting. Running everything
by default, even using kamctl to start the instance. So I have not tuned
any params yet.
My main concern is how can I make server choke and get its actual capacity,
and avoid these retransmissions as apparently kamailio is not even
utilizing 2 cores and CPU usage is under 10 always.
Results of both server is same i.e. 500 reg/sec max so I am sure there is
some problem that needs a fix, but need some hints here.
Also used multiple SIPp's to rule out if it is SIPp issue, but after 500 I
see same problem.
Regards,
JSZ
hello all
we have experienced a crash and tracing the logs and the core, seems it
was because a sip response from an endpoint.
a UDP receiver (26248) crashed and the last message we see on it is a
487 quite bad formed
Mar 24 01:58:02
mia-proxy-inout-1-stby /usr/local/kamailio/sbin/kamailio[26248]: ERROR:
tm [t_lookup.c:1055]: t_check_msg(): ERROR: reply doesn't have a via,
cseq or call-id header
Mar 24 01:58:17
mia-proxy-inout-1-stby /usr/local/kamailio/sbin/kamailio[26230]: ALERT:
<core> [main.c:739]: handle_sigs(): child process 26248 exited by a
signal 11
the backtrace of the core
(gdb) backtrace
#0 0x0000000000457ab9 in get_hash1_case_raw (s=0x0, len=0) at
hashes.h:210
#1 0x000000000045b472 in _dns_hash_find (name=0x7f6906943188, type=1,
h=0x7fff120793cc, err=0x7fff120793ac) at dns_cache.c:535
#2 0x0000000000461285 in dns_hash_get (name=0x7f6906943188, type=1,
h=0x7fff120793cc, err=0x7fff120793ac) at dns_cache.c:762
#3 0x0000000000467194 in dns_get_entry (name=0x7f6906943188, type=1) at
dns_cache.c:2102
#4 0x0000000000468a05 in dns_a_get_he (name=0x7f6906943188) at
dns_cache.c:2432
#5 0x0000000000468bb9 in dns_get_he (name=0x7f6906943188, flags=1) at
dns_cache.c:2505
#6 0x00000000004696c4 in dns_srv_sip_resolvehost (name=0x7f6906943188,
port=0x7fff120795e2, proto=0x7fff120795e1 "\001\330\023") at
dns_cache.c:2679
#7 0x000000000046aa37 in dns_sip_resolvehost (name=0x7f6906943188,
port=0x7fff120795e2, proto=0x7fff120795e1 "\001\330\023") at
dns_cache.c:2849
#8 0x000000000049519e in update_sock_struct_from_via
(to=0x7fff12079708, msg=0x7f69069a1dd8, via=0x7f69068f82a8) at
forward.c:704
#9 0x0000000000495ee5 in do_forward_reply (msg=0x7f69069a1dd8, mode=0)
at forward.c:766
#10 0x00000000004970af in forward_reply (msg=0x7f69069a1dd8) at
forward.c:849
#11 0x00000000005197ef in receive_msg (
buf=0xab0d80 "SIP/2.0 487 Request Terminated\r\nFrom: \"8888888888
\"<sip:8888888888@7.7.7.7;user=phone>;tag=B7jgc8jQ4m5pB\r\nTo:
<sip:555555555@8.8.8.8:5060>;tag=e0d50be-13c4-58d47cba-a2ed9808-36fa\r
\nl\337K\016"..., len=367, rcv_info=0x7fff12079a10) at receive.c:299
#12 0x0000000000627b43 in udp_rcv_loop () at udp_server.c:495
#13 0x00000000004b107a in main_loop () at main.c:1600
#14 0x00000000004b842f in main (argc=13, argv=0x7fff12079fb8) at
main.c:2616
i have tried to duplicate the issue, but i dont know how to translate l
\337K\016 to a xml notation
i guess this is some weird that cannot be processed for kamailio
could you please take a look and let me know if you know how to
duplicate and fix this crash?
thanks a lot and regards
david
Hi all,
I would like to implement destinations keepalive in drouting module (as it is done in dispatcher).
But instead of duplicating what's implemented in dispatcher, I think it would be more clever to create a new module
dedicated to pinging destinations, and to plug drouting, dispatcher and other modules to this new one
What's you opinion about that ?
Cheers,
Guillaume
Hi
I am struggling to figure out how to build and test an integrated presence server with Resource-List (rls.so) and XCAP (xcap_server.so).
I am confused about what is meant to happen and how to debug it. Not sure if I am suffering from incompatibilities, configuration errors, or bugs…
I have not found an up to date guide on configuring an integrated presence, rls, xcap server so I have used old tutorials, module documentation and some course code review … but I’m pretty confused now!
I am using Snom phones and Jitsi (on Mac) to test.
I have a kamailio Registrar which proxies all presence messages to the separate kamailio 4.2 Presence server.
REQUIREMENT : Contact Presence
=============================
I would like to get a SUBSCRIBE from the Snom phone to subscribe to a contact-list resource list, and to receive a NOTIFY with all of the presence states for those contacts.
Relevant snom settings?
Contact List URI: this generates a SUBSCRIBE with event:presence
I believe that:
==========
presence module should be managing the individual user presence and dialog states
xcap module should allow me to use HTTP / curl to edit the resource lists
rls module should be managing the mapping from a resource list subscription to the individual presence states and generating the aggregated NOTIFY messages.
each device should then be able to SUBSCRIBE to a resource list uri and then receive an aggregated NOTIFY for all of the watched entities.
Current status:
===========
SUBSCRIBE sip:org1a-contacts@*****.co.uk SIP/2.0
v: SIP/2.0/UDP 192.168.1.15:59594;branch=z9hG4bK-qllzlgs3xf43;rport
f: <sip:org1a@*****.co.uk>;tag=wwasqc6lmb
t: <sip:org1a-contacts@****.co.uk>
i: 313439303236383530323234313530-x3hlb3j6b5ef
CSeq: 1 SUBSCRIBE
Max-Forwards: 70
User-Agent: snomD375/8.9.3.46
m: <sip:org1a@192.168.1.15:59594>;reg-id=1
Event: presence
Accept: application/pidf+xml, application/rlmi+xml, multipart/related
Supported: eventlist
Expires: 3600
l: 0
… auth handshake
SIP/2.0 202 OK
Record-Route: <sip:10.210.160.13;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes>
Record-Route: <sip:**pubip**;r2=on;lr=on;ftag=wwasqc6lmb;nat=yes>
v: SIP/2.0/UDP 192.168.1.15:59594;received=**recvip**;branch=z9hG4bK-8wufiv1ua3ne;rport=60554
f: <sip:org1a@****.co.uk>;tag=wwasqc6lmb
t: <sip:org1a-contacts@*****.co.uk>;tag=a6a1c5f60faecf035a1ae5b6e96e979a-d30e
i: 313439303236383530323234313530-x3hlb3j6b5ef
CSeq: 2 SUBSCRIBE
Expires: 3600
Contact: <sip:10.210.160.16:5060;transport=udp>
Server: kamailio (4.2.0 (x86_64/linux))
Content-Length: 0
… and then the snom receives an empty NOTIFY.
NOTIFY sip:org1a@192.168.1.15:58325 SIP/2.0
Via: SIP/2.0/UDP 109.104.108.18;branch=z9hG4bKc54a.20db45097fb44595ccd5a30827ca2a62.0
Via: SIP/2.0/UDP 10.210.160.16;rport=5060;branch=z9hG4bKc54a.40150886000000000000000000000000.0
To: <sip:org1a@****.co.uk>;tag=sx4ne9jpcl
From: <sip:org1a-contacts@*****.co.uk>;tag=a6a1c5f60faecf035a1ae5b6e96e979a-ed89
CSeq: 2 NOTIFY
Call-ID: 313439303237323938323235353133-2du221e6okvf
Content-Length: 0
User-Agent: kamailio (4.2.0 (x86_64/linux))
Max-Forwards: 69
Event: presence
Contact: <sip:10.210.160.16:5060;transport=udp;alias=10.210.160.16~5060~1>
Subscription-State: active;expires=3600
The Subscription is showing up in the watchers table, not the rls_watchers table, so I believe it is being rejected by the rls_handle_subscribe() and then parsed by the presence module. Is that correct?
There is noting in rls_watchers or rls_presentity tables. Should there be?
I have a rows in the XCAP table for the Resource-List
curl -d @/tmp/contacts-resource-list.xml -vvv -X PUT http://109.104.108.23:5060/xcap-root/resource-lists/users/sip:org1a-contact…
relevant row in xcap table:
| 3 | org1a-contacts | *****.co.uk | <?xml version="1.0" encoding="UTF-8" standalone="no"?><resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"><list name="team"><entry uri="sip:1002@****.co.uk"/><entry uri="sip:1001@****.co.uk"><display-name>bob</display-name></entry><entry uri="sip:1003@****.co.uk"><display-name>test1</display-name></entry><entry uri="sip:1006@****co.uk"><display-name>test1006</display-name></entry><entry uri="sip:1007@****co.uk"><display-name>test1007</display-name></entry><entry uri="sip:1008@h****.co.uk"><display-name>test1008</display-name></entry><entry uri="sip:1009@****.co.uk"><display-name>test1009</display-name></entry> <entry uri="sip:1005@****.co.uk"><display-name>testing1005</display-name></entry> <entry uri=“sip:org1a@****.co.uk"><display-name>testingorg1a</display-name></entry> <entry uri=“sip:org1c@****.co.uk"><display-name>testingorg1c</display-name></entry></list></resource-lists> | 4 | sr-1490270411-10965-2 | 0 | /xcap-root/resource-lists/users/sip:org1a-contacts@****co.uk/index | 0 |
I have rows in the presence table for the entities that I want to track e.g.
| |
| 2889 | org1c | ****.co.uk | presence | a.1490270411.10942.42.1083 | 1490277099 | 1490273499 | <?xml version="1.0
" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:im="urn:ietf:params:xml:ns:pidf:im"
entity=“pres:org1c@*****.co.uk">
<tuple id="snom370-000413260935">
<status><basic>open</basic>
<im:im>Available</im:im>
</status>
<contact priority="1.00">sip:org1c@****.co.uk</contact>
<note xml:lang="en">Available</note>
</tuple></presence>
I am running kamaiio 4.2
Question : Should I have an resource-services row too? Or does rls.so infer the relationship using the URI? When I use jitsi to manipulate its contact list it only inserts 2 rows into the xcap table and I cannot get a SIP Subscribe to connect to that resource list either.
Question : What should the curl PUT commands and XML docs look like to build a valid RLS service (is there a good example anywhere)?
Question : Is there an example config or doc anywhere showing how to build integrated presence, rls, xcap?
Question : Has anyone got this working with Snom and or other handsets… the standards and implementations seem vague / inconsistent?
Note: There is another Snom setting (Extension Monitoring Call Pickup List URI:) which produces a SUBSCRIBE with Event:dialog but which should allow a button/lamp/callpickup/BLF for the buddy contact. I’d like to get that working too, but recognise that rls.so does not handle dialog messages by default, so I’m starting with Presence...
Paul
Hi,
I'm continue my job to 'migrate' my 3.3.1 kamailio.cfg script on a RHEL 6.2 server to the 5.0.x kamailio version on a RHEL 7.1 server, and I encounter a major problem with the '== $null' test in the script.
My original script (3.3.1) contains this sequence :
$var(i:rangeInx)=0;
$var(i:maxRangeInx) = $sht(mbxrangeHash=>"maxrange");
xlog(" imbxRangeInx value before test : '$var(i:maxRangeInx)' ");
if ($var(i:maxRangeInx)==$null) {
$var(i:maxRangeInx)=99;
}
xlog(" imbxRangeInx after test : '$var(i:maxRangeInx)' ");
==> The results are :
imbxRangeInx value before test : '0'
imbxRangeInx value after test : '99'
I run the same script on my new server and I get '0' before and after the test.
I attempted another kind of test to try to figure out where the problem is. So I write the simple test (with kamailio 5.0.x) :
$var(i:rangeInx)=0;
$var(i:maxRangeInx) = $sht(mbxrangeHash=>"maxrange");
$var(toto) = $null;
if ($var(toto) == $null)
xlog ("toto true");
else
xlog ("toto false");
The result I got is always 'toto false'.
So it appears to me that the test '== $null' doens' that gives a good result with kamailio 3.3.1, doesn't return the same with kamailio 5.0.x.
That is a major issue for me and it let me confused about the possibility to move to kamailio 5.0.x.
Have people an idea / explanation, why this issue ?
Cordialement
Patrick GINHOUX
This is only happening for one particular block of IP's. I can download
from other blocks.
I suspect it is being done on the download.opensuse.org end for some
reason. It appears to be the entire xx.xx block of which I only use a
few addresses from.
I will probably have to try contact them about it. What I would like to
ask is why Kamailio does not have any mirrors? If there were then this
would not be a problem. It would just failover.
hi all
wondering if any of you has the experience of TLS decrypting,
SIP client has problem while calling each other, but we are using TLS for communication protocol.....facing problem debugging it.....
Best Regards,
Rex Lin
Hi,
I discovered some strange behavior from the regex module yesterday (kamailio version 4.4.5).
For example we have the phone number 0033755500381 that we try to match with the following kamailio code:
#!define REGEX_FF_NEG_INTERNATIONAL "6"
...
if (pcre_match_group("$rU", REGEX_FF_NEG_INTERNATIONAL))
{
# Do something
}
When the content of our regex groups file is like this:
[6]
^(\+|00)3(0690|0693|0694|0695|0697|0698|0699|36|37|4160|46|47|51160|511691|511693|511696|511891|511893|511896|513|516091|5160921|516093|516096|516391|516392|516393|516396|516591|516592|516593|516596|516691|5166921|516693|516696|5191|5192|5193|5196|538|54388|543 89|546|5475|5477|548|567117|5672|5677|5679|5692|5694|5696|5698|5699|5795|5796|5797|5799|58299|584|5850|5948|5987|5988|5989|59988|59989|620|630|631|670|706|712|725|728|774|776|8591|8592|8595|8597|8598|8599|8620|8621|8630|8631|8640|8641|8643|8649|8650|8651|8660| 8661|8664|8670|8671|869814|906698|93)
The above if statment is not matching, although it should match according to any regex validator (for example https://regex101.com/ )
But when I split the above regex in smaller parts, like this:
[6]
^(\+|00)306(90|93|94|95|97|98|99)
^(\+|00)336
^(\+|00)337
^(\+|00)34160
^(\+|00)346
^(\+|00)347
^(\+|00)351(160|1691|1693|1696|1891|1893|1896|3|6091|60921|6093|6096|6391|6392|6393|6396|6591|6592|6593|6596|6691|66921|6693|6696|91|92|93|96)
^(\+|00)3538
^(\+|00)354(388|389|6|75|77|8)
^(\+|00)356(7117|72|77|79|92|94|96|98|99)
^(\+|00)357(95|96|97|99)
^(\+|00)358(299|4|50)
^(\+|00)359(48|87|88|89|988|989)
^(\+|00)3620
^(\+|00)363(0|1)
^(\+|00)3670
^(\+|00)3706
^(\+|00)3712
^(\+|00)372(5|8)
^(\+|00)377(4|6)
^(\+|00)385(91|92|95|97|98|99)
^(\+|00)386(20|21|30|31|40|41|43|49|50|51|60|61|64|70|71|9814)
^(\+|00)3906698
^(\+|00)393
Then the exact same regex module call as before does result in a match as expected.
So to me it looks like the regex module is having trouble with large regex expressions, I did check the logs but there is nothing strange there, that means also the large expression is correctly loaded according to the logs while in fact it is not working. Checked the regex module documentation but there I cannot find any limits regarding to the size of invididual expressions.
Is it me missing something or did I discover a bug in de regex module?
Best Regards,
Tim Balmer
Edutel BV
No, you don't. The debugger module, among other things, allows to set the
debug level per module.
Regards,
Federico
On 23 Mar 2017 6:31 pm, "Ginhoux, Patrick" <patrick.ginhoux(a)fr.unisys.com>
wrote:
Hi,
Thanks you so much; it works fine as expected.
Now have I to keep the ‘debugger’ module lines in my config ?
Cordialement
Patrick GINHOUX
*De :* sr-users [mailto:sr-users-bounces@lists.sip-router.org] *De la part
de* Federico Cabiddu
*Envoyé :* jeudi 23 mars 2017 17:38
*À :* Kamailio (SER) - Users Mailing List <sr-users(a)lists.sip-router.org>
*Objet :* Re: [SR-Users] Question on the debug change level command with
5.0.x
Hi,
you have to load the cfg_rpc module (http://www.kamailio.org/docs/
modules/5.0.x/modules/cfg_rpc.html). Then you can run
kamcmd cfg.set_now_int core debug <LEVEL>.
Regards,
Federico
On Thu, Mar 23, 2017 at 5:24 PM, Ginhoux, Patrick <
patrick.ginhoux(a)fr.unisys.com> wrote:
Hi,
Previously, in my kamailio.cfg 3.3.1, the debug level is set using the
‘debug’ option.
Then with the MI_FIFO module it was simple to change debug level on the
flight using the simple command ‘kamctl fifo debug <new value>’.
Moving to kamailio 5.0.x, there is no more MI_FIFO module. In the
kamailio.cfg, I still have the ‘debug’ option set; so I’m looking for the
command to use to change the debug level.
I look at the debugger module that seems the solution. So I add the
following lines in y script:
debug=4
loadmodule "debugger.so"
modparam("debugger", "log_level", 1)
modparam("debugger", "mod_hash_size", 5)
modparam("debugger", "mod_level_mode", 1)
Then I try to use the following commands :
This one retrieves the debug level set by the debug=4) :
[root@vm-vse02-siprouter1 kamailio]# kamcmd dbg.get_mod_level core
4
This one changed the debug level for the core module
[root@vm-vse02-siprouter1 kamailio]# kamcmd dbg.set_mod_level core 2
200 ok
Same commands can be used for each of the module loaded:
[root@vm-vse02-siprouter1 kamailio]# kamcmd dbg.get_mod_level tm
4
[root@vm-vse02-siprouter1 kamailio]# kamcmd dbg.set_mod_level tm 2
200 ok
[root@vm-vse02-siprouter1 kamailio]# kamcmd dbg.get_mod_level dispatcher
4
[root@vm-vse02-siprouter1 kamailio]# kamcmd dbg.set_mod_level dispatcher 2
200 ok
Each command only applies to a specific module.
I don’t find a ‘global’ command that I could use in the same manner as the
old ‘kamctl fifo debug’ command.
Is there something I missed in my config ?
Cordialement
Patrick GINHOUX
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users