Hello all,
I'm using Kamailio as a registrar and i have an endpoint that sometimes
sends a REGISTER method with a To-Tag when refreshing its regist. My code
on this proxy shares many similarities with the default kamailio.cfg
configuration file.
On that occasion Kamailio answers with a 404 - Not Here since it treats it
as a in-dialog request which fails the loose_route check.
Why would a CPE send a REGISTER with a To-Tag? Why is a REGISTER with a
To-Tag rejected by Kamailio when it could otherwise be a
successful REGISTER? Is this behaviour noncompliant with the SIP protocol?
I thought about making an exception in the code and having this register
following the same path as a register without to-tag, but i don't know if
that is unsafe and/or noncompliant with the protocol.
Best Regards,
In case of topology:
A - P1 - P2 - P1 - B
is the idea to use in P1 context "in" when initial request comes to P1
from A or B and context "out" when initial request comes to P1 from P2?
Does context need to be set in replies too? If so, is reply context the
same as the corresponding request context?
And finally, does context need to be set for in-dialog requests/replies
the same way as for initial requests?
-- Juha
In config file I have:
debug=2
mem_summary=0
Still I get 3400+ memory related syslog message when Kamailio terminates
due to sqlops not been able to connect to mysql server.
According to core cookbook, memdbg and memlog should not be active when
their values are greater than debug value (they default to 3) and
mem_summary=0 should disable printing of memory debugging info.
What is it that I'm still missing?
-- Juha
Hello fellow VoIPers and RTCers,
on GitHub there is an early release of sipnagios, opensource.
check it out: https://github.com/gmaruzz/sipnagios
sipnagios is a Nagios Plugin to check Call Quality in SIP VoIP (compatible
with checkmk, etc)
sipnagios implements the Nagios plugin API for monitoring and performance
data.sipnagios.c is a modification of the original siprtp.c sample in
pjproject distribution. Supposedly, it works on Linux, Windows, and
anywhere you can compile pjproject on.It makes a call, checks all the
various resulting values (mos, rtt, pdd, tta, jitter, packet loss, bytes
and packets transferred, and so on). It verifies these values are included
into acceptable, warning, or critical ranges.If the call has gone well,
sipnagios print performance data for Nagios graphs, and returns 0.If the
call fails, or if its measured values are not inside acceptable ranges, it
exits with Nagios conventional WARNING or CRITICAL values.
mos calculation is scraped from Julien Chavanton work (VoIP Patrol, on
GitHub too) I can't even understand :) (merci Julien!)
Enjoy!
-giovanni
--
Sincerely,
Giovanni Maruzzelli
OpenTelecom.IT
cell: +39 347 266 56 18
Hello,
the branch 5.5 has been created, to be used for releasing v5.5.x series.
To check out this branch, the following commands can be used:
git clone https://github.com/kamailio/kamailio kamailio-5.5
cd kamailio-5.5
git checkout -b 5.5 origin/5.5
Pushing commits in this branch:
git push origin 5.5:5.5
Note that 5.5 is an official stable branch, so only bug fixes, missing
kemi exports (discuss on sr-dev if not sure) or improvements to
documentation or helper tools can be pushed to this branch.
As usual, if there is a bug fixed, commit and push first to master
branch and then cherry pick to 5.5 branch:
git cherry-pick -x COMMITID
In few weeks, the first release from branch 5.5 will be out,
respectively Kamailio v5.5.0.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hello,
the branch 5.5 was created, therefore the master branch is open for
adding new features, to be part of future release series v5.6.x (or
whatever version is decided for next series).
Any bug fix committed to master that applies to 5.5.x or older stable
branches should be backported as usual with "git cherry-pick -x ..." to
appropriate branches like 5.5 or 5.4.
Expect that v5.5.0 will be released in a few weeks from now.
Based on the workflow used during the past years, the next future
release v5.6.0 should be out after another 6-10 months of development,
plus 1-2 months of testing, so sometime by end of 2021 or in the first
part of 2022.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hi ,
I have a server test with
Debian Buster 10.9
kamailio 5.4.5
kamcli 2.0.0 (similar result with 3.0.0)
I'm not able to use kamcli
with sqlite : insert and select doesn't work
with pgsql : insert works , select of empty table works , select table
with entry doesn't work
TEST WITH SQLITE
root@kamailio-BT:~# kamcli -c /etc/kamcli/kamcli.ini.sqlite subscriber add
test password
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 1706, in _execute_context
cursor, statement, parameters, context
File
"/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/default.py", line
716, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: near "%": syntax error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/kamcli", line 11, in <module>
load_entry_point('kamcli==2.0.0', 'console_scripts', 'kamcli')()
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 829, in
__call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 782, in
main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259,
in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259,
in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1066,
in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in
invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/decorators.py", line
73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in
invoke
return callback(*args, **kwargs)
File "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
line 43, in subscriber_add
e.execute('insert into subscriber (username, domain, password, ha1,
ha1b) values (%s, %s, %s, %s, %s)', udata['username'], udata['domain'],
password, ha1, ha1b)
File "<string>", line 2, in execute
File
"/usr/local/lib/python3.7/dist-packages/sqlalchemy/util/deprecations.py",
line 390, in warned
return fn(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 3037, in execute
return connection.execute(statement, *multiparams, **params)
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 1190, in execute
future=False,
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 1491, in _exec_driver_sql
distilled_parameters,
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 1749, in _execute_context
e, statement, parameters, cursor, context
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 1930, in _handle_dbapi_exception
sqlalchemy_exception, with_traceback=exc_info[2], from_=e
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/util/compat.py",
line 211, in raise_
raise exception
File "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
line 1706, in _execute_context
cursor, statement, parameters, context
File
"/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/default.py", line
716, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "%":
syntax error
[SQL: insert into subscriber (username, domain, password, ha1, ha1b) values
(%s, %s, %s, %s, %s)]
[parameters: ('test', 'sip.test.dev', 'password',
'4380ea9069e888b5fc92996495a0f481', '3a36aeb0df7f4504cc5d9b97dab540e5')]
(Background on this error at: http://sqlalche.me/e/14/e3q8)
root@kamailio-BT:~# kamctl add test password
-e sqlite_query: /usr/bin/sqlite3 /etc/kamailio/kamailio.db insert into
subscriber (username, domain,ha1,ha1b,password) values ('test','sip.test.dev
','4380ea9069e888b5fc92996495a0f481','3a36aeb0df7f4504cc5d9b97dab540e5','password');
-e new user 'test' added
root@kamailio-BT:~# kamcli -c /etc/kamcli/kamcli.ini.sqlite subscriber show
Traceback (most recent call last):
File "/usr/bin/kamcli", line 11, in <module>
load_entry_point('kamcli==2.0.0', 'console_scripts', 'kamcli')()
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 829, in
__call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 782, in
main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259,
in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259,
in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1066,
in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in
invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/decorators.py", line
73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in
invoke
return callback(*args, **kwargs)
File "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
line 118, in subscriber_show
ioutils_dbres_print(ctx, oformat, ostyle, res)
File "/usr/lib/python3/dist-packages/kamcli/ioutils.py", line 45, in
ioutils_dbres_print
gstring = tabulate(allrows, headers=res.keys(), tablefmt=ostyle)
File "/usr/local/lib/python3.7/dist-packages/tabulate.py", line 1529, in
tabulate
tabular_data, headers, showindex=showindex
File "/usr/local/lib/python3.7/dist-packages/tabulate.py", line 1162, in
_normalize_tabular_data
"headers for a list of dicts is not a dict or a keyword"
ValueError: headers for a list of dicts is not a dict or a keyword
TEST WITH PGSQL
root@kamailio-BT:~# kamcli -c /etc/kamcli/kamcli.ini.pgsql subscriber show
+------+------------+----------+------------+-------+--------+
| id | username | domain | password | ha1 | ha1b |
+======+============+==========+============+=======+========+
+------+------------+----------+------------+-------+--------+
root@kamailio-BT:~# kamcli -c /etc/kamcli/kamcli.ini.pgsql subscriber add
test password
root@kamailio-BT:~# kamcli -c /etc/kamcli/kamcli.ini.pgsql subscriber show
Traceback (most recent call last):
File "/usr/bin/kamcli", line 11, in <module>
load_entry_point('kamcli==2.0.0', 'console_scripts', 'kamcli')()
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 829, in
__call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 782, in
main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259,
in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259,
in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1066,
in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in
invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/decorators.py", line
73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in
invoke
return callback(*args, **kwargs)
File "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
line 118, in subscriber_show
ioutils_dbres_print(ctx, oformat, ostyle, res)
File "/usr/lib/python3/dist-packages/kamcli/ioutils.py", line 45, in
ioutils_dbres_print
gstring = tabulate(allrows, headers=res.keys(), tablefmt=ostyle)
File "/usr/local/lib/python3.7/dist-packages/tabulate.py", line 1529, in
tabulate
tabular_data, headers, showindex=showindex
File "/usr/local/lib/python3.7/dist-packages/tabulate.py", line 1162, in
_normalize_tabular_data
"headers for a list of dicts is not a dict or a keyword"
ValueError: headers for a list of dicts is not a dict or a keyword
root@kamailio-BT:~# kamctl show test
1|test|sip.test.dev
|password|4380ea9069e888b5fc92996495a0f481|3a36aeb0df7f4504cc5d9b97dab540e5
Regards
Luca
A lot of emails are still sent directly to me after a discussion started
on public mailing lists (subject with mailing lists prefix, but the sender
header is not the mailing list daemon), I would like to remind that, at
least in my case, writing emails directly without cc-ing the mailing list
is highly not recommended and there is practically 0 chance to get an
answer from myself. The rule is also suggested in the mailing lists
presentation page:
- https://www.kamailio.org/w/mailing-lists/
Unless I asked explicitly for a private email with some specific
details, the message will not be noticed in decent time and therefore
not replied. I use this email address for many public mailing lists and
it is intended only for that usage, I am reacting based on the filters I
created, unmatched messages getting the lowest priority.
Therefore if you wrote me and expect a response, re-send the message to
the appropriate public mailing list. Checking and answering the messages
on Kamailio mailing lists are among the top of priorities on my daily
activity, so it is high chance you get the response faster when you
write there. Note that you can always mask sensitive data (e.g., replace
passwords, IP addresses) before sending logs or config file.
There are several common sense as well as technical reasons for keeping
the discussion on public mailing lists. Here are some along with other
suggestions to improve the likeliness of getting an answer:
- we are not answering questions on mailing lists to help only one
person, but also other people that may have similar issues in the future
-- they can find the answers in the archive with a search engine. Also,
other people subscribed to the list can learn from conversation or
contribute to the discussion, resulting in better outcome
- the amount of unexpected messages is very high -- it is practically a
zero chance to get to the folder with messages that didn't match any
filter (thus your message is not going to be replied)
- whenever I find time, the first emails I answer are those coming on
mailing lists. There might be many unanswered as well, people are
travelling or
having other personal or business projects, so sometime is good to send
a reminder if a question does not get an answer
- starting with negative approach or no technical content, like you are
going to use something else if you don't get a reply instantly, or this
application not good or is missing what so ever tutorial giving exactly
the solution you need, or simply asking for full config of complex
requirements, is not helping at all, but actually making people to ignore
your messages. Start with what you tried and where you got stuck.
Everything you get is for free, have appropriate expectation and behavior.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hello,
since freezing the development for 5.5 series, I did quite a lot of code
analyzing with a bunch of tools as well as run various tests, no major
issue being in my list at this moment, therefore I think we can plan
branching 5.5 on git repo in the near future.
If there is no other suggestion or argument against it, I propose to
create the branch 5.5 on Thursday next week (April 22, 2021).
After that, master branch will be open for new features (to become part
of 5.6 or what ever version will be decided to be next), testing will
continue for branch 5.5 for another 1-2 weeks, then we will release
5.5.0 as first stable version in the 5.5.x series.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/