Hello,
I am considering to release a new maintenance version from latest stable
branch - to be v4.2.4 - next week, most likely on Thursday, April 2. If
there is anything important to get in and not discussed yet, bring the
topic on development mailing list.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com
If Kamailio is globally configured to send offline notification replies using `modparam("msilo", "from_address", "sip:$rU@example.com")`, there is currently no way to disable the offline notification reply during script processing.
For example, a scenario where you might want to store the original MESSAGE but not send the offline notification reply is when you are also using the IMC module. When `user(a)example.com` is part of an IMC chat, but goes offline for some reason, the MSILO module will store original MESSAGE, then generate the offline notification reply back to the IMC chat, which generates another MESSAGE with `user(a)example.com` as a recipient... This instantly leads to thousands of MESSAGE generations.
I am thinking that it's a nice feature to have offline notification replies enabled when `modparam("msilo", "from_address", "sip:$rU@example.com")` is defined, but that the MSILO module could check the existence (nor non-existence) of a flag to determine whether or not it would generate an offline notification reply, so the logic would be something like:
```
#!define FLT_MSILO_DISABLE_OFFLINE_REPLY 13
modparam("msilo", "from_address", "sip:$rU@example.com")
modparam("msilo", "disable_offline_reply_flag", FLT_MSILO_DISABLE_OFFLINE_REPLY)
```
Then m_store() checks that `from_address` is valid and that `disable_offline_reply_flag` is not set.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/61
Trying to load my server in the background, the main process core dumps at init of db_sqlite
Git head, os/x
(gdb) bt full
#0 0x00007fff8610c66a in _dispatch_barrier_async_f_slow ()
No symbol table info available.
#1 0x00007fff8acd13bd in sqlite3_initialize ()
No symbol table info available.
#2 0x0000000104b75ba3 in sqlite_mod_init () at db_sqlite.c:69
No locals.
#3 0x00000001033bc93c in init_mod (m=0x103809b80) at sr_module.c:943
No locals.
#4 0x00000001033bc414 in init_mod (m=0x103809e58) at sr_module.c:940
No locals.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/43
My websocket TLS server is full of these kinds of messages:
Jan 18 18:10:26 ws0 /usr/sbin/kamailio[19701]: NOTICE: <script>:
http:217.120.x.x:55386: WS connection closed
...
Jan 18 18:10:26 ws0 /usr/sbin/kamailio[19689]: WARNING: <core>
[msg_translator.c:2506]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
Jan 18 18:10:26 ws0 /usr/sbin/kamailio[19689]: ERROR: <core>
[msg_translator.c:1722]: build_req_buf_from_sip_req(): could not create Via header
Jan 18 18:10:26 ws0 /usr/sbin/kamailio[19689]: ERROR: tm
[t_fwd.c:527]: prepare_new_uac(): could not build request
Jan 18 18:10:26 ws0 /usr/sbin/kamailio[19689]: ERROR: tm
[t_fwd.c:1773]: t_forward_nonack(): ERROR: t_forward_nonack: failure to add branches
Jan 18 18:10:26 ws0 /usr/sbin/kamailio[19689]: ERROR: sl
[sl_funcs.c:387]: sl_reply_error(): ERROR: sl_reply_error used: No error (2/SL)
(repeat these last errors for a bunch of attempted NOTIFY forwards)
The route block does basically something like this:
# add_contact_alias(); # only for requests from the outside
loose_route();
if (!t_relay()) {
sl_reply_error();
}
The problem arises here:
}else if (send_info->proto==PROTO_WS){
...
con = tcpconn_get(send_info->id, &ip, port, from, 0)
...
if (con == NULL) {
LM_WARN("TCP/TLS connection (id: %d) for WebSocket could not be found\n", send_info->id);
The NULL failure status gets returned up to `prepare_new_uac` in `t_fwd.c`:
shbuf=build_req_buf_from_sip_req( i_req, &len, dst, BUILD_IN_SHM);
if (!shbuf) {
LM_ERR("could not build request\n");
ret=E_OUT_OF_MEM;
goto error01;
}
At this point, ser_error will become `E_OUT_OF_MEM` while it should be something like `E_SEND`.
And `E_OUT_OF_MEM` gets translated to `500 No Error` because we're not running in DEBUG mode.
What causes the connection to drop in the first place, you ask?
18:10:18.690738 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [S], seq 1323983240, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
18:10:18.690863 IP 195.35.x.x.443 > 217.120.x.x.55386: Flags [S.], seq 4077761781, ack 1323983241, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 3], length 0
18:10:18.710846 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [.], ack 1, win 256, length 0
18:10:18.808751 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [P.], seq 1:246, ack 1, win 256, length 245
...
18:10:19.233415 IP 195.35.x.x.443 > 217.120.x.x.55386: Flags [.], ack 31348, win 5126, length 0
18:10:26.489764 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [P.], seq 31348:32473, ack 34578, win 255, length 1125
...
18:10:26.501409 IP 195.35.x.x.443 > 217.120.x.x.55386: Flags [P.], seq 42255:42916, ack 46010, win 5046, length 661
18:10:26.527755 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [.], ack 36993, win 252, length 0
18:10:26.527860 IP 195.35.x.x.443 > 217.120.x.x.55386: Flags [.], seq 42916:47296, ack 46010, win 5278, length 4380
18:10:26.527888 IP 195.35.x.x.443 > 217.120.x.x.55386: Flags [FP.], seq 47296:48663, ack 46010, win 5278, length 1367
18:10:26.529179 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [.], ack 40501, win 254, length 0
18:10:26.529200 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [.], ack 42916, win 251, length 0
18:10:26.547276 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [.], ack 48664, win 251, length 0
18:10:26.549712 IP 217.120.x.x.55386 > 195.35.x.x.443: Flags [F.], seq 46010, ack 48664, win 251, length 0
18:10:26.549750 IP 195.35.x.x.443 > 217.120.x.x.55386: Flags [.], ack 46011, win 5278, length 0
Where you see that the FIN is initiated by `195.35.x.x` which is the Kamailio websocket server.
The cause (probably) is the WS client closing the connection. In this case after re-subscribing with Expires:0. The presence server attempts to reply with a bunch of NOTIFYs with `Subscription-State: terminated;reason=timeout` but they bounce on the broken connection. If Kamailio would return a nice "477 Unfortunately error on sending to next hop occurred" it'd be prettier.
Getting less "error" messages (a total of 6 *per* expired/unsubscribed subscription) after this error --which is apparently very common -- would be beneficial too.
As for fixing:
- We could change the `via_builder` to set `ser_error` (and check that in `build_req_buf_from_sip_req`), or
- add error-code-out-parameters to all calls from `build_req_buf_from_sip_req` and down.
I'm not sure if either is the best way.
As for the excessive error reporting, would looking at `ser_error` before printing (another) error be an acceptable fix?
Cheers,
Walter Doekes
OSSO B.V.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/47
- URL: https://github.com/kamailio/kamailio/commit/362cb1d7eaf359dd57937a43e2fca3d…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:14:05+02:00
utils: cleanup CURL handle when the POST value can't be fetched from the PVAR
- patch provided by mikomarrache on GH #88
(cherry picked from commit b88e165214296d1d7491cf389295800b499a5d34)
- URL: https://github.com/kamailio/kamailio/commit/f3128e163d13eb78002e9aa0a7e4d1c…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:14:36+02:00
xhttp: use proper function to set the ip addres of the fake via
- for ipv6 it has to be enclosed in between [ ]
- reported by Sergey Okhapkin
(cherry picked from commit 5c1a9df4fc8bd72f44066bcef13f381f01cd9d07)
- URL: https://github.com/kamailio/kamailio/commit/ad6320e754971b6f872967e225729b5…
Author: Juha Heinanen <jh(a)tutpro.com>
Date: 2015-04-01T12:15:52+02:00
modules/siptrace: small README clarification
(cherry picked from commit 6a97c65c122400e46a4103b756c6973f7bea134e)
- URL: https://github.com/kamailio/kamailio/commit/21311a110cb0d70a53224d12ced0997…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:19:49+02:00
uac: skip only the invalid record when loading remote registration records
- fixes loading only the good records before the wrong record, thus
working with partial valid data afterwards, even more valid records
were in the db
(cherry picked from commit 634db00a82f36c6c60d272ccada4a1d5338d1cbc)
- URL: https://github.com/kamailio/kamailio/commit/7993d34c292aea01cf32bea3bb300ae…
Author: Luis Azedo <luis(a)2600hz.com>
Date: 2015-04-01T12:20:19+02:00
usrloc - fix db_delete_ucontact_ruid
when the contact is deleted using db_delete_ucontact_ruid (default)
the uldb_attrs_delete is not called leaving the location_attrs with unwanted records
created uldb_attrs_delete_ruid to be called by db_delete_ucontact_ruid
redirected uldb_attrs_delete to uldb_attrs_delete_ruid when ul_db_ops_ruid == 1
(cherry picked from commit 09c51685af36071aad6054d84571c260be2ba9e2)
(cherry picked from commit f5a7b12ce5f73749e9ae3d7a31e2a3616539421c)
- URL: https://github.com/kamailio/kamailio/commit/745f951d08acdf65ff0de878fcbe3a9…
Author: Sebastian Thörn <sebastian.thorn(a)loxytel.se>
Date: 2015-04-01T12:20:55+02:00
Fixed path ss -> ssl
(cherry picked from commit a5245d5c44cd49a699caa94f844dfb128a8d9764)
- URL: https://github.com/kamailio/kamailio/commit/6697d2ecfd254f2269317785654a588…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:21:15+02:00
enum: updated the docs in regards to max len for enum number
- synced with the code, following on a report from Alex Balashov
(cherry picked from commit 910be93e5caebea5cef33335d0c48de636169ff5)
- URL: https://github.com/kamailio/kamailio/commit/4ab41baecf0f9912c2a3ed859d53ffe…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:21:51+02:00
registrar: use proper iterator to get to the index of the $ulc() contact
- part of a patch by Luis Azedo
(cherry picked from commit f39b92acb2be15e03aa117bdf171087ea7a77050)
- URL: https://github.com/kamailio/kamailio/commit/b2084ee2e828a94dfc0e565ef713d61…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:22:17+02:00
core: set the global sock_uid/gid based on the user/group values
- they were left with initial value, more or less being unused
(cherry picked from commit d7a10e6a5ea8852681b57586eb9b4d73b75f05bf)
- URL: https://github.com/kamailio/kamailio/commit/e1d18d0234bb43b39aed72108c04087…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:22:26+02:00
ctl: use uid/gid from the core if not set for the module
- otherwise it cannot do clean created files at shut down
(cherry picked from commit 3b5633de56c2367d19122f0f3c01698af34a21e9)
- URL: https://github.com/kamailio/kamailio/commit/aa458695a1f7272ff1c898ed728dd97…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:24:16+02:00
tm: propagate the on_failure value in to the branch for t_suspend()
- likely lost when on_failure was added to each branch structure
- reported by Mickael Marrache
(cherry picked from commit 6484b199fb48acc2c55f318812f2c968b845ca80)
- URL: https://github.com/kamailio/kamailio/commit/b06ab1be65b96cc064f5e036bd42d01…
Author: Giacomo Vacca <giacomo.vacca(a)gmail.com>
Date: 2015-04-01T12:24:37+02:00
textops: minor typos in doc
(cherry picked from commit 6c866c1296a34e0733bf33a1feac57ca8bfc64d7)
- URL: https://github.com/kamailio/kamailio/commit/9a71a7e09f9a764e0c7d0e846474608…
Author: Giacomo Vacca <giacomo.vacca(a)gmail.com>
Date: 2015-04-01T12:24:45+02:00
textops: minor typos in README
(cherry picked from commit 5681e9c6e9850eedd15e53219ce2bc55fd38dd90)
- URL: https://github.com/kamailio/kamailio/commit/28ea4c042b51152f0968ce10b0b71a4…
Author: jaybeepee <jason.penton(a)gmail.com>
Date: 2015-04-01T12:25:05+02:00
modules/tm: restore code to set blind uac branch last_reply > 200
(cherry picked from commit 0ee3dc5e3edc49cf62f97ddd87a40b12c59b73ff)
- URL: https://github.com/kamailio/kamailio/commit/f7300652f8c7e252165a5b04090e35f…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:25:17+02:00
tm: formated the comment without + chars
(cherry picked from commit e6cdb91037abc5a7668e7919281072b15e758739)
- URL: https://github.com/kamailio/kamailio/commit/cc1dcba334dffc965802e8eaeb156c7…
Author: Richard Fuchs <rfuchs(a)sipwise.com>
Date: 2015-04-01T12:25:27+02:00
tmrec: update licensing and copyright info
(cherry picked from commit e172b7a1b66edfb302da8d498eada7da9f21643e)
- URL: https://github.com/kamailio/kamailio/commit/74e136f0b3ab07f7bd55a6aa1e0522d…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:25:53+02:00
presence: use name of received_time column from associated variable
(cherry picked from commit 8729aa8cde19f39eebce7ef9be7e31ea121b9a99)
- URL: https://github.com/kamailio/kamailio/commit/e79c347fbcc9db52ee8b3ab1a733fdf…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:26:01+02:00
presence: more use of variable for received_time column instead of static value
(cherry picked from commit beba4579778f8af0bc0d88c13a6f433dd9ffa8a0)
- URL: https://github.com/kamailio/kamailio/commit/9a00a53deb90ab16f0e73a7f63390f2…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:26:44+02:00
tm: reply_lock per transaction made re-entrant
- on a report by Jason Penton
- re-ordered some includes to get rid of cross dependencies in defines
(cherry picked from commit 3957db5fb51e23535a89b15c8f05463e5702424d)
- URL: https://github.com/kamailio/kamailio/commit/5f508193ba3abf4fbb76defc1c0f333…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:26:53+02:00
tm: clone path vector back to pkg for faked message
- it is cloned and can be changed, resulting in attempt to free a shm
pointer via pkg operation
- reported by Jose Seabra
(cherry picked from commit 8a7c70a5b831542cde77e7945e97d51901b95310)
- URL: https://github.com/kamailio/kamailio/commit/9b1991a53283e2a16b5a20f88e83e4a…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2015-04-01T12:27:23+02:00
presence: query_str filled with value of the corresponding column
- static value was used that made setting of parameter for column names
not being considered
(cherry picked from commit 845bdb8884743f5e126a53eb6aeb34f1f6afb1ea)