Hello,
in the perspective of moving main git repository to github (where the
commits will be done), with a real time mirror on kamailio.org, I am
pasting here the commit email notifications that are now available, to
decide on which one to use in the future -- see them at the end of the
email.
A) - this is what we get now from git.sip-router.org
B) - this is what github sends
C) - this is sent by kamailio.org when it gets the trigger (on a push to
gihub) to mirror. It is done by a php script I wrote over the weekend,
which does also the mirroring. The script that can be improved, I am
going to push it on github these days, after a bit of polishing, so
everyone can contribute to it. Right now it tries to be as close as
possible to A), with:
- first part of commit id in subject (github does it, thought it can
be handy sometime)
- links to raw diff and patch
- it is missing the commit changes summary/statistics (probably can
be added in the future with a bit of php coding)
Given the flexibility and that it gives more details, pretty close to
A), I will go to C). But if there are people simply liking B), then we
can use it, being done by github, it's no overhead for us. Other opinions?
Cheers,
Daniel
A) Current commit email notification:
Subject: git:master: auth_db: added sections ids for functions
Body:
Module: sip-router
Branch: master
Commit: d17f162ee565b80ecd46b6f8f916a683748bf08b
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=d17f162…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Mon Dec 8 09:11:32 2014 +0100
auth_db: added sections ids for functions
- better reference for web indexing
---
modules/auth_db/doc/auth_db_admin.xml | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/modules/auth_db/doc/auth_db_admin.xml b/modules/auth_db/doc/auth_db_admin.xml
index a6f667e..74d6d00 100644
--- a/modules/auth_db/doc/auth_db_admin.xml
+++ b/modules/auth_db/doc/auth_db_admin.xml
@@ -304,7 +304,7 @@ modparam("auth_db", "version_table", 0)
<section>
<title>Functions</title>
- <section>
+ <section id="auth_db.f.www_authenticate">
<title>
<function moreinfo="none">www_authenticate(realm, table [, method])</function>
</title>
@@ -395,7 +395,7 @@ if (!www_authorize("kamailio.org", "subscriber")) {
</example>
</section>
- <section>
+ <section id="auth_db.f.www_authorize">
<title>
<function moreinfo="none">www_authorize(realm, table)</function>
</title>
@@ -406,7 +406,7 @@ if (!www_authorize("kamailio.org", "subscriber")) {
</para>
</section>
- <section>
+ <section id="auth_db.f.proxy_authenticate">
<title>
<function moreinfo="none">proxy_authenticate(realm, table)</function>
</title>
@@ -469,7 +469,7 @@ if (!proxy_authorize("$fd", "subscriber)) {
</example>
</section>
- <section>
+ <section id="auth_db.f.proxy_authorize">
<title>
<function moreinfo="none">proxy_authorize(realm, table)</function>
</title>
@@ -480,7 +480,7 @@ if (!proxy_authorize("$fd", "subscriber)) {
</para>
</section>
- <section>
+ <section id="auth_db.f.auth_check">
<title>
<function moreinfo="none">auth_check(realm, table, flags)</function>
</title>
@@ -557,9 +557,8 @@ if (!auth_check("$fd", "subscriber", "1")) {
</example>
</section>
-
<section>
- <title>
+ <title id="auth_db.f.is_subscriber">
<function moreinfo="none">is_subscriber(uri, dbtable, flags)</function>
</title>
<para>The function checks if there is a subscriber corresponding to
B) Github commit email notification:
Subject: [kamailio/kamailio] d17f16: auth_db: added sections ids for
functions
Body:
Branch: refs/heads/master
Home: https://github.com/kamailio/kamailio
Commit: d17f162ee565b80ecd46b6f8f916a683748bf08b
https://github.com/kamailio/kamailio/commit/d17f162ee565b80ecd46b6f8f916a68…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2014-12-08 (Mon, 08 Dec 2014)
Changed paths:
M modules/auth_db/doc/auth_db_admin.xml
Log Message:
-----------
auth_db: added sections ids for functions
- better reference for web indexing
C) Custom commit email notification from kamailio.org
Subject: git:master:d17f162e: auth_db: added sections ids for functions
Body:
Module: kamailio
Branch: master
Commit: d17f162ee565b80ecd46b6f8f916a683748bf08b
URL: https://github.com/kamailio/kamailio/commit/d17f162ee565b80ecd46b6f8f916a68…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2014-12-08T09:11:32+01:00
auth_db: added sections ids for functions
- better reference for web indexing
---
Modified: modules/auth_db/doc/auth_db_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/d17f162ee565b80ecd46b6f8f916a68…
Patch: https://github.com/kamailio/kamailio/commit/d17f162ee565b80ecd46b6f8f916a68…
---
diff --git a/modules/auth_db/doc/auth_db_admin.xml b/modules/auth_db/doc/auth_db_admin.xml
index a6f667e..74d6d00 100644
--- a/modules/auth_db/doc/auth_db_admin.xml
+++ b/modules/auth_db/doc/auth_db_admin.xml
@@ -304,7 +304,7 @@ modparam("auth_db", "version_table", 0)
<section>
<title>Functions</title>
- <section>
+ <section id="auth_db.f.www_authenticate">
<title>
<function moreinfo="none">www_authenticate(realm, table [, method])</function>
</title>
@@ -395,7 +395,7 @@ if (!www_authorize("kamailio.org", "subscriber")) {
</example>
</section>
- <section>
+ <section id="auth_db.f.www_authorize">
<title>
<function moreinfo="none">www_authorize(realm, table)</function>
</title>
@@ -406,7 +406,7 @@ if (!www_authorize("kamailio.org", "subscriber")) {
</para>
</section>
- <section>
+ <section id="auth_db.f.proxy_authenticate">
<title>
<function moreinfo="none">proxy_authenticate(realm, table)</function>
</title>
@@ -469,7 +469,7 @@ if (!proxy_authorize("$fd", "subscriber)) {
</example>
</section>
- <section>
+ <section id="auth_db.f.proxy_authorize">
<title>
<function moreinfo="none">proxy_authorize(realm, table)</function>
</title>
@@ -480,7 +480,7 @@ if (!proxy_authorize("$fd", "subscriber)) {
</para>
</section>
- <section>
+ <section id="auth_db.f.auth_check">
<title>
<function moreinfo="none">auth_check(realm, table, flags)</function>
</title>
@@ -557,9 +557,8 @@ if (!auth_check("$fd", "subscriber", "1")) {
</example>
</section>
-
<section>
- <title>
+ <title id="auth_db.f.is_subscriber">
<function moreinfo="none">is_subscriber(uri, dbtable, flags)</function>
</title>
<para>The function checks if there is a subscriber corresponding to
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
what has been the motivation that rtpengine control protocol is using
udp instead of tcp or ssl?
we have noticed that reply to delete containing stats is too large for a
single udp packet over ethernet and causes udp fragmentation and
fragmentation needed requests.
-- juha
When I try to sign into Siremis 4.1 using admin and the default password it
gives me a pop-up saying that Openbiz has encountered an error:
[{"target":"ERROR","content":"
\n[2014-11-17 11:51:15 (GMT)] An exception occurred while executing this
script:
\nError message: #8192, Non-static method BizSystem::dbConnection() should
not be called statically, assuming $this from incompatible context<\/font>
\nScript name and line number of error:
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/data\/BizDataObj_Abstract.php:423<\/font>
\n
*function:<\/b> errorHandler ( 8192, \"Non-static method
BizSystem::dbConnection() should not be called...\",
\"\/var\/www\/siremis-4.1.0\/openbiz\/bin\/data\/BizDataObj_Abstract.php\",
423, Array(0) ) @ \/var\/www\/siremis-4.1.0\/openbiz\/bin\/sysheader.inc
117\nfunction:<\/b> userErrorHandler ( 8192, \"Non-static method
BizSystem::dbConnection() should not be called...\",
\"\/var\/www\/siremis-4.1.0\/openbiz\/bin\/data\/BizDataObj_Abstract.php\",
423, Array(0) ) @
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/data\/BizDataObj_Abstract.php
423\nfunction:<\/b> getDBConnection ( ) @
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/data\/BizDataObj_Lite.php
406\nfunction:<\/b> _run_search ( Array(2) ) @
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/data\/BizDataObj_Lite.php
345\nfunction:<\/b> fetchRecords ( \"[username]='admin' and status='1'\",
Array(0), 1 ) @
\/var\/www\/siremis-4.1.0\/siremis\/modules\/service\/authService.php
98\nfunction:<\/b> authDBUser ( \"admin\", \"admin\" ) @
\/var\/www\/siremis-4.1.0\/siremis\/modules\/service\/authService.php
66\nfunction:<\/b> authenticateUser ( \"admin\", \"admin\" ) @
\/var\/www\/siremis-4.1.0\/siremis\/modules\/user\/form\/LoginForm.php
92\nfunction:<\/b> Login ( ) @
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/BizController.php
310\nfunction:<\/b> invoke ( ) @
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/BizController.php
110\nfunction:<\/b> dispatchRequest ( ) @
\/var\/www\/siremis-4.1.0\/openbiz\/bin\/BizController.php
32\nfunction:<\/b> include_once (
\"\/var\/www\/siremis-4.1.0\/openbiz\/bin\/BizController.php\" ) @
\/var\/www\/siremis-4.1.0\/siremis\/bin\/controller.php
6<\/div>\n------------------------------Please ask system administrator for
help...<\/div>\n"}]*
My web server is configured to use apache and I've checked the ownership on
the files and folder. I did a chmod 775 starting at the siremis-4.1.0/
directory. I did a search and found that the openbiz folder needs to be
right under the siremis-4.1.0/ folder which it is. I have tried
reinstalling only to get the same result. I'm currently running CentOS 7,
Kernel 3.10.0-123.9.3, php 5.6.2-3, mariadb 10.0.14-1, & httpd 2.4.6-18.
Dan
--
Daniel Shoemaker
501 Claire Street
Hagerstown, MD 21740
(240) 527-7054
dancoe77(a)gmail.com
http://www.google.com/
I'm facing a problem which I believe may be a bug in the registrar module's
lookup. When a registration comes with multiple Path headers, these are
recorded in the location table as comma separated. When the lookup is
performed and these are used to construct the Route header(s) on an INVITE,
this comma-separated list is not split into multiple Route headers, but
instead included verbatim in a single header.
Here comes my theory for how this breaks my scenario:
When the INVITE then reaches the first hop (first Path header, also
Kamailio), relay() sees that the Route header is itself and/or sees that
there is only one Route header.
The observed result is that the first hop then sends the INVITE directly to
the Contact, instead of via the second hop.
An example of the situation I'm facing is shown in
https://gist.github.com/benlangfeld/b374a0ce0bdb6bdc35e7.
Is there a particular reason the combined path is not split on lookup? Is
this a bug / oversight? Am I crazy?
Thanks!
Ben
I am not sure if its the issue on my client end as CSIPSImple is not sendin
the PRACK that is expected by the server or the rtp ports are not opened.
I guess the ports are opened as I can hear two way voice.
But the following issues remain:
1. I cannot receive a call on the SIP number
2. I dont get an indication on the caller (thru CSIPSimple) that a call has
started as in it doesnt start the call timer
3. The call disconnects with an error after some time ..INternal Server
Error.
Regards,
Rizwan Khan
On Mon, Dec 1, 2014 at 11:00 AM, Rizwan Khan <rizkhan(a)gmail.com> wrote:
> Thanks for the help guys.
>
> I used a stateless proxy and was able to register. Now I am able to make
> calls as well but there is an issue.
>
> I receive multiple ringing but not receiving 200 ok after that. I keep on
> receiving the ringing messages. Although the call gets connected and I hear
> two way voice as well.
>
> Also I am call through the sip number, but its not receiving any calls.
>
> Any ideas?
>
> Rizwan Khan
>
>
>
> On Thu, Nov 27, 2014 at 9:04 PM, Daniel Tryba <daniel(a)pocos.nl> wrote:
>
>> On Thursday 27 November 2014 08:29:51 Rizwan Khan wrote:
>> > We want to use Kamailio as the pass-thru proxy in front of the SBC just
>> to
>> > receive the request on a random port, and then forward the request to
>> the
>> > SBC internally being on the same private network.
>> >
>> > What would be the best way to do it?
>>
>> If it is the best is up to the experts, but a way to do is to check
>> wheter the
>> source is the SBC or not. If the message is from the SBC just handle it
>> statefully (t_relay), if it isn't from the SBC set the requested domain
>> to the
>> ipaddr of the SBC (10.1.2.3) and process stateful. You could use the
>> received
>> port instead if external clients only communicate on the special port
>> ($Rp!=6334)
>>
>> kamailio.cfg:
>>
>> #...
>> port=5060
>> port=6334
>> #...
>>
>> request_route {
>> #...
>>
>> if($si!="10.1.2.3")
>> {
>> $rd="10.1.2.3";
>> }
>>
>> route(RELAY);
>> }
>>
>>
>>
>> _______________________________________________
>> 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
>>
>
>
Hi Dears,
I'm trying to configure Kamailio as SBC in multi home mode for Asterisk by
authenticating the inbound SIP registration requests,i'm following this
tutorial
http://kb.asipto.com/asterisk:realtime:kamailio-4.0.x-asterisk-11.3.0-astdb
to achieve this goal. i have modified the necessary changes like the
Asterisk DB URL and the SIP table name and Username and password column and
verified the Mysql connection.
My topology like this Asterisk (192.168.100.10)
<----Internal:192.168.100.1---->Kamailio<---External:192.168.50.1-----> SIP
Phone (192.168.50.2)
But when trying to register a SIP phone Kamailio generates these error
messages
Nov 22 17:19:20 debian /usr/local/sbin/kamailio[6434]: ERROR: db_mysql
[km_dbase.c:122]: db_mysql_submit_query(): driver error on query: Unknown
column 'secret' in 'field list'
Nov 22 17:19:20 debian /usr/local/sbin/kamailio[6434]: ERROR: <core>
[db_query.c:132]: db_do_query_internal(): error while submitting query
Nov 22 17:19:20 debian /usr/local/sbin/kamailio[6434]: ERROR: auth_db
[authorize.c:175]: get_ha1(): failed to query database
The Auth_DB Params in the configuration file is as follows.
# ----- auth_db params -----
#!ifdef WITH_AUTH
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "load_credentials", "")
#!ifdef WITH_ASTERISK
modparam("auth_db", "user_column", "account")
modparam("auth_db", "password_column", "secret")
modparam("auth_db", "db_url", DBASTURL)
modparam("auth_db", "version_table", 0)
#!else
modparam("auth_db", "db_url", DBURL)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "use_domain", MULTIDOMAIN)
#!endif
I tried also to give the Auth_DB module all the paramaters like this but
still receiving the same error ! So any ideas about the cause of the
problem and how to solve it please ?
# ----- auth_db params -----
#!ifdef WITH_AUTH
modparam("auth_db", "user_column", "account")
modparam("auth_db", "password_column", "secret")
modparam("auth_db", "db_url", "mysql://
sipuser:sippassword@192.168.100.10/asterisk")
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "load_credentials", "")
#!ifdef WITH_ASTERISK
modparam("auth_db", "user_column", "account")
modparam("auth_db", "password_column", "secret")
modparam("auth_db", "db_url", "mysql://
sipuser:sippassword@192.168.100.10/asterisk")
modparam("auth_db", "version_table", 0)
#!else
modparam("auth_db", "db_url", "db_url","mysql://
sipuser:sippassword@192.168.100.10/asterisk")
modparam("auth_db", "password_column", "secret")
modparam("auth_db", "user_column", "account")
modparam("auth_db", "use_domain", MULTIDOMAIN)
#!endif
Thanks Daniel,
This was exactly what I was looking for.
I have also reviewed again your "Asynchronous Processing in Kamailio
Configuration File" presentation from Kamailio World 2014 and it
provided me an incredible amount of digested information regarding async
processing(especially the part with push notification). Will follow that
approach, and yes, it is a brilliant idea to pass the transaction
indentifiers to CGR and process them in evapi reply route, so no more
dependency on htable needed.
Cheers,
DanB
Hello,
I was considering to discuss the state of Kamailio project logo for a
while. The current state is ambiguous, to say at least - various logos
in different places. When OpenSER was renamed in Kamailio we were trying
to get something new, but due to the 'forks and dark waters' at that
time, this process was never completing, meanwhile using an adaptation
of old openser logo. However, there are no high resolution or other
variants suitable for using in particular conditions (e.g., black and
white, big posters).
First, a question that we should decide on: shall we aim for a new logo
or try to get someone to make proper graphics from the current shape?
(for reference, the logo from
http://www.kamailio.org/wp-images/kamailio-rock-logo.jpg).
I would prefer to go for a new logo, but I admit that this process can
become complex, a mater of tastes, not something we can decide on
technical aspects. Therefore, if it ends up in something that doesn't
seem to have the acceptance of major contributors (with coding,
advertising/promoting, ...) to the project, then we stick with current
for a while.
My preference is based on the fact that Kamailio evolved over the time,
has its own identity, so a fresh look of the logo would reflect that better.
I am listing here the options, that people can express preference on:
A) New logo
A1) variant based on Kamailio World logo (used by twitter
kamailioproject account and on some materials at various events). It was
a backup variant so far as we had high resolution graphics that could be
adapted to get a good image for big posters. Can be seen at:
-
http://www.kamailio.org/pub/kamailio-logos/variants/kamailio-from-world-log…
- http://www.fredposner.com/1471/kamailio-at-astricon-2013/
A2) use a professional service for that. Kamailio World logo was made
with 99designs.com service, which is quite good considering there will
be many submissions to choose between, options can be visible by
everyone. There might be other similar services, this is one I have
experience with and worked fine in the past -- anyhow, it has to be
something that all management and solution can be done online. Asipto
can sponsor at least the bronze package if 99designs is going to be
used, maybe others want to participate with extra funds to get a better
package.
A3) leverage on community, in case some companies have internal
designers or some of you have such skills or friends. Perhaps this has
the highest risk on escalating, given that is going to be some direct
involvement in proposals and selection.
B) Old logo
B1) get someone to produce high resolution graphics from existing logo
No matter what variant, who will do the work or financial contribution,
will get credits via our web site. However, all the rights of the
resulting logo will belong to the Kamailio project.
To conclude, the order of my preferences: A2, A1, A3, B1
Looking forward to feedback from many of you!
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Hey Guys,
We are in the process of implementing prepaid control using CGRateS
engine and for that we will be using evapi module (thanks Daniel again
for that).
I was wondering if you can advice us whether the path we are taking is
the correct one.
On INVITE, we will initiate a MaxCallTimeout (sort of call auth) to
CGRateS via evapi. Once request sent, we should "park" the request
somehow (right now we are considering sleep in the process via usleep
and recheck for the answer every 5-10 milliseconds). Answer should be
shared via htable. Could you recommend us a better approach?
On reply, the answer processed in event route evapi:message-received
should set in htable a key of combination callid:fromtag with the
maximum call duration or auth reject if not enough balance. This key
should be processed by the sleeping process on wakeup.
What do u think, is there a better way to approach the 2 ways communication?
Thanks in advance for any kind of tip!
DanB
Hi All,
I am testing SIP messages through the proxy from one client to another and
the sender specifies TCP as the transport but Kamailio seems to overwrite
this and chooses UDP (TCP is specified in the contact header).
The receivers are manually registered using kamctl ul add so i am not sure
if this is forcing UDP or something else - I have redirected the messages
to wireshark and attached an example of Kamailio adding its VIA headers but
specifying UDP (taken from destination).
Basically I am getting TCP to Proxy the UDP from Proxy to Dest?
Thanks
Andrew
[image: Inline images 1]