Module: sip-router
Branch: master
Commit: e973bbe5e7310861f77b17ce0afaf1cca35fe48a
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=e973bbe…
Author: Juha Heinanen <jh(a)tutpro.com>
Committer: Juha Heinanen <jh(a)tutpro.com>
Date: Fri May 28 15:38:41 2010 +0300
modules/tm: new implementation of load_contacts()/next_contacts()
- Simpler implementation of load_contacts()/next_contacts() functions
based on recent changes related to Request-URI handling.
- Function next_contacts() does not anymore set any timers. Check
contact_avp and call t_set_fr() before calling t_relay() instead.
- Removed fr_timer_next module parameter, because it is not needed
anymore.
---
modules/tm/README | 255 ++++++++++++++------------------------
modules/tm/doc/functions.xml | 51 +++-----
modules/tm/doc/params.xml | 73 -----------
modules/tm/doc/tm.xml | 15 +--
modules/tm/t_serial.c | 279 ++++++++++++------------------------------
modules/tm/tm.c | 1 -
6 files changed, 190 insertions(+), 484 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=e97…
Hi Henning,
because of the fact, that the problem only appears, if the
pua_dialoginfo module is enabled, I think the problem is located
somewhere in the code tm hooks, dialog hooks or pua/pua_dialoginfo
itself...
I have attached the debug output of pua_dialoginfo which shows only, if
the module is enabled... may it is useful in any way...
Regards
Jasmin
> On Friday 04 June 2010, Jasmin Schnatterbeck wrote:
> > onreply_avp_mode does not seem to be available in kamailio 3.0.2 (at
> > least not in the module doc)
> > I think this parameter is for avps in reply_route? or does it work for
> > branch_route also?
>
> Hi Jasmin,
>
> ah, sorry. Its not available or necessary anymore in 3.0. In 1.5 it also
> affected the branch_route, i think, but for the newer version this behaviour
> is now the default. Then in your case its probably another problem..
>
> Cheers,
>
> Henning
Hello list,
under special circumstances I have a problem with the DIALOG module of SIP-Router/Kamailio version 3.0.2. The dialog module is used in combination with presence, presence_xml, pua, pua_usrloc and pua_dialoginfo modules + db_mysql modules. The db_mode is set to "write_through", because of redundancy requirements.
>From my point of view this problem has something to do with timing in general. E.g. a so called "data call" has a duration of about 50 ms only; INVITE....BYE). That problem occurs on this short calls only. Because of the problems in the dialog state machine, NOTIFY messages are incorrect. Even when the call is already finished, the NOTIFY message includes the state "confirmed" and causes a wrong status indication....
The detailed error message can be seen here:
"Jun 9 16:00:39 debian /usr/sbin/kamailio[14992]: CRITICAL: dialog [dlg_hash.c:591]: bogus event 6 in state 2 for dlg [dialog-ID] with clid [Call-ID] and tags '1299370188-28358304-1276092068837' ''"
I found in old mails of the developer list another error that looked nearly the same, but it differed in the event and state of the dialog state machine (the thread can be found under the link http://www.mail-archive.com/devel@lists.kamailio.org/msg03234.html). That bug should - according the information that I've found in the list - be solved. Therefore I will ask you: is the error as displayed above another well known error / bug, which (maybe) should already be solved? Is it a new bug?
Thanks for any information.
regards,
Klaus Feichtinger
--
GMX DSL: Internet-, Telefon- und Handy-Flat ab 19,99 EUR/mtl.
Bis zu 150 EUR Startguthaben inklusive! http://portal.gmx.net/de/go/dsl
Hello all,
I have been working on the seas module to make it work on sip-router. I have
my own git branch locally, but I'd like to share it on the sip-router public
git so that others can take a look and finally push it to the master branch.
it needs some transaction-module changes, so it needs good review from other
more tm-knowledgable coders before it can be finally merged.
where do I need to send my public ssh key to get commit access to the
sip-router git ?
thanks
Elias
Hello,
Currently I have big troubles in the combination of PRESENCE /
PRESENCE_XML (/ PUA / PUA_USRLOC) with POSTGRESQL database. During last
days I've analyzed the output of Kamailio 3.0.2 and PostgreSQL (8.3)
database, running on Debian Lenny OS. Following items were found:
1) The default settings of 4 PGSQL tables after initializing the
database with "kamdbctl init" are not useful; the tables "PRESENTITY",
"PUA", "ACC" and "MISSED_CALLS" have wrong settings for "Not NULL"
characteristics of some columns. In detail following columns had to be
adapted manually in the database:
"acc" and "missed_calls" table : column "id" must allow "NULL" (remove
"Not Null" setting)
"presentity" table: the column "sender" must allow "NULL" (remove "Not
Null" setting)
"pua" table: the columns "extra_headers", "version", "remote_contact",
"contact" and "desired_expires" must allow "NULL" (remove "Not Null"
setting)
E.g.
883:4451: 0(7123) ERROR: db_postgres [km_dbase.c:428]: driver error:
PGRES_FATAL_ERROR, ERROR: null value in column "sender" violates
not-null constraint
1008:5057: 1(7134) ERROR: db_postgres [km_dbase.c:428]: driver error:
PGRES_FATAL_ERROR, ERROR: null value in column "extra_headers" violates
not-null constraint
1025:5078: 1(7134) ERROR: db_postgres [km_dbase.c:428]: driver error:
PGRES_FATAL_ERROR, ERROR: null value in column "version" violates
not-null constraint
I recommend adapting the script "utils/kamctl/postgres/presence-create.sql"!
2) I do not know if this has a direct influence on the problems I
have with presence, but the column "sender" in the table "presentity"
seems to be used only "half". When the pua_usrloc module is inserting an
entry into the table it does NOT insert a value for the column "sender".
However, when a query is sent for selecting information from this table,
the column "sender" is explicitly requested......
e.g.
INSERTION (no "sender" value is inserted):
Jun 18 20:15:01 TestKam /usr/sbin/kamailio[3151]: DEBUG: db_postgres
[km_dbase.c:149]: 0x826ba68 PQsendQuery(insert into presentity
(domain,username,event,etag,expires,body,received_time ) values
('192.168.150.11','116333','presence','a.1276884785.3151.1.0',1276885262,'<?xml
version="1.0"?>\\012<presence xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid"
xmlns:c="urn:ietf:params:xml:ns:pidf:cipid"
entity="116333(a)192.168.150.11">\\012 <tuple id="0x828d7d8">\\012
<status>\\012 <basic>open</basic>\\012 </status>\\012
</tuple>\\012</presence>\\012',1276884901)
<file:///%5C%5C012%3c%5Cpresence%3e%5C012%27,1276884901%29>)
SELECTION (a "sender" value is explicitly queried):
Jun 18 20:15:08 TestKam /usr/sbin/kamailio[3151]: DEBUG: db_postgres
[km_dbase.c:149]: 0x826ba68 PQsendQuery(select body,sender from
presentity where domain='192.168.150.11' AND username='116333' AND
event='presence' AND etag='a.1276884785.3151.1.0')
What does the column "sender" represent? In the presence description on
the Kamailio homepage (version 1.5) this column still is not included.
3) The next problem I have is, that the PIDF-body, which is stored
in the PGSQL database, seems to cause an error in the presence_xml
module and therefore no body is attached to the NOTIFY message. The
NOTIFY message contains a SIP header "Content-Type:
application/pidf+xml", but no PIDF-body is sent in this message. As
result of this SIP request the SIP user agent (= subscriber) is a little
bit confused..... I think that problem in general has something to do
with the "error" described in the new task from Friday June 18^th
(http://lists.sip-router.org/pipermail/sr-dev/2010-June/007865.html).
First I wondered, why this problem only occurred in case that a
(subscribed) user agent de-registers from Kamailio registrar server. But
I guess the NOTIFY message after registration of the user agent is
created without dependency on a PGSQL query (= generated with
information from memory). Another behaviour of the server was, that
(after emptying all related tables) the first registration /
de-registration flow didn't cause any error (both NOTIFY messages were
readable and contained a PIDF-body); only beginning at the second flow
the body could not be parsed. This was tested with SIPp sending
register/de-register messages in a period of 3 seconds.
The Kamailio error message looks like:
Jun 18 13:08:16 TestKam /usr/sbin/kamailio[3167]: ERROR: presence_xml
[notify_body.c:515]: while parsing xml body message
Jun 18 13:08:16 TestKam /usr/sbin/kamailio[3167]: ERROR: presence_xml
[notify_body.c:84]: while aggregating body
4) I don't know if the parser might be influenced by a WARNING that
is generated by the postgresql daemon whenever an entry into the
presentity table is done (including XML body). From Kamailio log output
I saw that the special characters "#011" and "#012" are included in the
XML body. I guess that is the octal notation of \t (horizontal tab) and
\n (newline).
However, postgresql generates an error message that looks like following:
/WARNING: nonstandard use of \\ in a string literal at character 162/
HINT: Use the escape string syntax for backslashes, e.g., E'\\'.
Maybe this has some influence on the parser problem, too. Because in
this version of Postgresql the parameter "standard_conforming_strings"
is implicitly on -- just for previous versions it could be set to off.
That means, that any backslash symbol (\) is interpreted as standard
character (no escape). Therefore the queried result of the database does
no longer include \n and \t.
As interim "solution" of this problem I changed to the MySQL database
instead of PostgreSQL. The "Not NULL" violation is the same, but MySQL
seems to ignore this violation. Also the XML body is stored in MySQL "as
wished" -- that means: all special characters are stored and the queried
body still contains it.
The modules "pua" and "pua_usrloc" are used for testing purposes only,
because the user agents send publish messages themselves. Therefore it
is not necessary using this module. But for some regression tests I used
a command line base user agent that does not support publish messages.
But the problem is the same -- independent from the user agent and where
the publish messages is generated.
Additionally I have attached a ZIP file that contains traces of the SIP
traffic to/from Kamailio and Kamailio internally (Publish) and two
excerpts of Kamailio syslog. The syslog excerpts are from two register /
de-register sequences, where the first sequence was okay and the second
one generated the parsing error. I haven't found any essential
difference that would clarify the different behaviour of Kamailio.
Please give me some comments to these problems ;-) I know, PostgreSQL is
only "second quality" for Kamailio, but it has some advantages against
MySQL, too.
Thanks in advance and regards,
Klaus Feichtinger
Hello list,
for a few weeks now I am thinking about the idea of something like
"delayed branches".
For example if one INVITE lookup results in 2 contacts/branches, then
the first branch should be executed directly but the second should
experience a delay of some seconds, until the INVITE is being sent out
to the 2nd contact.
Such a feature would be really useful for users, if they would like to
configure their delayed redirects server-side and not client-side
(devices).
I have some doubts, whether it's reasonable in general, if a sip proxy
behaves like this (delays requests...) - what do you think?
Best Regards
Jasmin
i noticed that msilo generated messages include a Contact header such
as:
Contact: <sip:jh@test.fi>;msilo=yes
according to rfc3428.txt this is wrong:
MESSAGE requests do not initiate dialogs. User Agents MUST NOT
insert Contact header fields into MESSAGE requests.
if no one objects, i'll fix msilo module accordingly, i.e., remove
contact header from msilo generated messages.
-- juha
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#58 - error message does not include cfg file line number
User who did this - Daniel-Constantin Mierla (miconda)
----------
This is runtime and the t_set_fr() is not printing further error message, so only the core function evaluating the parameter writes a message.
In other cases, it is the module function that give more indications.
To be able to print the line, the generic param structure has to be extended to hold the line number, but this will solve the cases when such type of parameter is used.
Maybe the next module interface will pass to function a structure holding more details of running environment, such as cfg file name and line where the function in invoked.
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=58#comment91
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
The following task has a new comment added:
FS#78 - function for evaluating string value
User who did this - Daniel-Constantin Mierla (miconda)
----------
That might not be that easy right now in cfg -- if I got right what you want it is not even in other languages -- i.e., evaluating C code from a char* variable.
However, #!subst or #!define preprocessor directives should help to some extent.
Example:
#!define MYID "$(ru{uri.user})"
myfunction(MYID);
----------
More information can be found at the following URL:
http://sip-router.org/tracker/index.php?do=details&task_id=78#comment90
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.