sip-router
3 years agocore: updates to kemi callbacks for core routing blocks
Daniel-Constantin Mierla [Mon, 14 Nov 2016 09:30:41 +0000 (10:30 +0100)]
core: updates to kemi callbacks for core routing blocks

3 years agocore: kemi engine callback function extended to accept routing parameter
Daniel-Constantin Mierla [Mon, 14 Nov 2016 09:26:31 +0000 (10:26 +0100)]
core: kemi engine callback function extended to accept routing parameter

3 years agocore: kemi - release lock if indexed callback is found
Daniel-Constantin Mierla [Mon, 14 Nov 2016 08:04:26 +0000 (09:04 +0100)]
core: kemi - release lock if indexed callback is found

3 years agoetc: kamailio.cfg polishing
Daniel-Constantin Mierla [Sun, 13 Nov 2016 12:36:34 +0000 (13:36 +0100)]
etc: kamailio.cfg polishing

- version in comments updated to 5.0
- use block comment style for descriptions of gobal and module
  parameters (was mixed) - now description is in between /* */ and
  commented code starts with #
- removed #!ifdef WITH_SRCPATH and commented the mpath - let it be the
  default one in the code, because it is set at compile time and can be
  OS specific. Loading the modules from source tree can be done by
  providing to kamailio in command line: -L modules/
- added option to block 401/407 from downstream. Kamailio is the one
  authenticating local users.

3 years agomodules: readme files regenerated - http_async_client ...
Kamailio Dev [Sun, 13 Nov 2016 12:16:20 +0000 (13:16 +0100)]
modules: readme files regenerated - http_async_client ...

3 years agokamctl: regenerated db creation scripts for subscriber table
Daniel-Constantin Mierla [Sun, 13 Nov 2016 12:11:11 +0000 (13:11 +0100)]
kamctl: regenerated db creation scripts for subscriber table

3 years agolib/srdb1 - schema: allow null for email_address in subscriber table
Daniel-Constantin Mierla [Sun, 13 Nov 2016 12:10:06 +0000 (13:10 +0100)]
lib/srdb1 - schema: allow null for email_address in subscriber table

3 years agoutils: added remarks section with note about libcurl leak on centos 6
Daniel-Constantin Mierla [Sun, 13 Nov 2016 12:06:04 +0000 (13:06 +0100)]
utils: added remarks section with note about libcurl leak on centos 6

- based on GH #853

3 years agohttp_async_client: add remarks section with a note about libcurl leak in centos 6
Daniel-Constantin Mierla [Sun, 13 Nov 2016 12:03:15 +0000 (13:03 +0100)]
http_async_client: add remarks section with a note about libcurl leak in centos 6

- based on GH #853

3 years agoMerge pull request #857 from armenb/memcached_delete_on_null
Daniel-Constantin Mierla [Sun, 13 Nov 2016 11:58:46 +0000 (12:58 +0100)]
Merge pull request #857 from armenb/memcached_delete_on_null

memcached: fix deletion bug

3 years agoauth_db dbtext Making email address optional so kamctl can support dbtext
Olle E. Johansson [Sun, 13 Nov 2016 11:15:08 +0000 (12:15 +0100)]
auth_db dbtext Making email address optional so kamctl can support dbtext

Reported by Alberto Sagredo

3 years agomemcached: fix deletion bug 857/head
Armen Babikyan [Sun, 13 Nov 2016 06:57:41 +0000 (22:57 -0800)]
memcached: fix deletion bug

3 years agoss7ops: removed internal libs that are not needed from makefile
Daniel-Constantin Mierla [Sat, 12 Nov 2016 13:24:36 +0000 (14:24 +0100)]
ss7ops: removed internal libs that are not needed from makefile

3 years agoMakefile.groups: added ss7ops module to group extra
Daniel-Constantin Mierla [Sat, 12 Nov 2016 11:03:59 +0000 (12:03 +0100)]
Makefile.groups: added ss7ops module to group extra

3 years agoss7ops: renamed the main file of the module to match recommended pattern
Daniel-Constantin Mierla [Sat, 12 Nov 2016 11:02:11 +0000 (12:02 +0100)]
ss7ops: renamed the main file of the module to match recommended pattern

3 years agoss7ops: fix compile warnings
Daniel-Constantin Mierla [Sat, 12 Nov 2016 11:01:13 +0000 (12:01 +0100)]
ss7ops: fix compile warnings

3 years agoss7ops: index 52 was initialized two times - expected to be 53 by the order
Daniel-Constantin Mierla [Sat, 12 Nov 2016 10:57:32 +0000 (11:57 +0100)]
ss7ops: index 52 was initialized two times - expected to be 53 by the order

3 years agocore: fix compilation on platforms without struct ip_mreqn
Mikko Lehto [Fri, 11 Nov 2016 11:11:43 +0000 (13:11 +0200)]
core: fix compilation on platforms without struct ip_mreqn

- collateral by new mcast feature (commit 8b39cb6a3aa37d26da1ccf8f55f25aaba8fc4613)

3 years agoMakefile.defs: define HAVE_IP_MREQN on platforms with struct ip_mreqn
Mikko Lehto [Fri, 11 Nov 2016 11:10:38 +0000 (13:10 +0200)]
Makefile.defs: define HAVE_IP_MREQN on platforms with struct ip_mreqn

3 years agoss7ops: reordered sections for parameters and functions in docs
Daniel-Constantin Mierla [Sat, 12 Nov 2016 10:53:35 +0000 (11:53 +0100)]
ss7ops: reordered sections for parameters and functions in docs

3 years agoss7ops: Introduce the beginning of a ss7ops module
Holger Hans Peter Freyther [Thu, 27 Oct 2016 09:09:05 +0000 (11:09 +0200)]
ss7ops: Introduce the beginning of a ss7ops module

This can be used with sipcapture and begings with M2UA and ISUP
support. More SIGTRAN (M3UA, SUA) support is planned and maybe
TCAP/MAP in the future.

The ISUP message format depends on the specific message so I have
exported a Smalltalk ITU ISUP model to C to avoid manual errors.

3 years agomodules: readme files regenerated - jsonrpc-s ...
Kamailio Dev [Fri, 11 Nov 2016 13:46:13 +0000 (14:46 +0100)]
modules: readme files regenerated - jsonrpc-s ...

3 years agojsonrpc-s: added section to show examples with rpc commands over jsonrpc
Daniel-Constantin Mierla [Fri, 11 Nov 2016 13:32:31 +0000 (14:32 +0100)]
jsonrpc-s: added section to show examples with rpc commands over jsonrpc

3 years agomodules: readme files regenerated - dispatcher ...
Kamailio Dev [Fri, 11 Nov 2016 11:31:40 +0000 (12:31 +0100)]
modules: readme files regenerated - dispatcher ...

3 years agodispatcher: docs - removed extra spaces and rephrased sample config text
Daniel-Constantin Mierla [Fri, 11 Nov 2016 11:21:46 +0000 (12:21 +0100)]
dispatcher: docs - removed extra spaces and rephrased sample config text

3 years agodispatcher: updates to sameple config file
Daniel-Constantin Mierla [Fri, 11 Nov 2016 11:15:59 +0000 (12:15 +0100)]
dispatcher: updates to sameple config file

3 years agomodules: readme files regenerated - http_client ...
Kamailio Dev [Thu, 10 Nov 2016 11:16:13 +0000 (12:16 +0100)]
modules: readme files regenerated - http_client ...

3 years agohttp_client: added note about libcurl version with leaks in CentOS 6
Daniel-Constantin Mierla [Thu, 10 Nov 2016 11:05:43 +0000 (12:05 +0100)]
http_client: added note about libcurl version with leaks in CentOS 6

- based on PR #853 by Jurijs Ivolga

3 years agopresence: removed unnecessary global variable for implementation of startup mode
Daniel-Constantin Mierla [Thu, 10 Nov 2016 10:46:12 +0000 (11:46 +0100)]
presence: removed unnecessary global variable for implementation of startup mode

3 years agomodules: readme files regenerated - presence ...
Kamailio Dev [Thu, 10 Nov 2016 10:46:14 +0000 (11:46 +0100)]
modules: readme files regenerated - presence ...

3 years agoMerge pull request #854 from kamailio/Presence-add-parameter
Daniel-Constantin Mierla [Thu, 10 Nov 2016 10:40:17 +0000 (11:40 +0100)]
Merge pull request #854 from kamailio/Presence-add-parameter

presence: add parameter `startup_mode` to disable 1dceaa24ded727aba5870f28fb63e26ed98464f3

3 years agoasync: updated to the name of functions for timers instead of macros
Daniel-Constantin Mierla [Thu, 10 Nov 2016 08:45:02 +0000 (09:45 +0100)]
async: updated to the name of functions for timers instead of macros

3 years agopresence: add parameter startup_mode Presence-add-parameter Presence-add-parameter-24d71219 854/head
Emmanuel Schmidbauer [Wed, 9 Nov 2016 13:30:37 +0000 (08:30 -0500)]
presence: add parameter startup_mode

3 years agotm: coherent indentation and white spacing
Daniel-Constantin Mierla [Wed, 9 Nov 2016 13:24:58 +0000 (14:24 +0100)]
tm: coherent indentation and white spacing

3 years agocore: debug - aliased macro LM_BUG to BUG
Daniel-Constantin Mierla [Wed, 9 Nov 2016 13:10:15 +0000 (14:10 +0100)]
core: debug - aliased macro LM_BUG to BUG

3 years agotm: lookup - updated logs not to include module and function details
Daniel-Constantin Mierla [Wed, 9 Nov 2016 13:09:27 +0000 (14:09 +0100)]
tm: lookup - updated logs not to include module and function details

3 years agopresence: cleanup whitespace in notify.c
Emmanuel Schmidbauer [Tue, 8 Nov 2016 15:19:03 +0000 (10:19 -0500)]
presence: cleanup whitespace in notify.c

3 years agodispatcher: do recursive avl search for ds_is_from_list()
Daniel-Constantin Mierla [Tue, 8 Nov 2016 11:19:59 +0000 (12:19 +0100)]
dispatcher: do recursive avl search for ds_is_from_list()

- search all ds set nodes when no group id is provided
- reported by GH #848

3 years agodispatcher: compacted code and declare variables at beginning of functions
Daniel-Constantin Mierla [Tue, 8 Nov 2016 11:15:00 +0000 (12:15 +0100)]
dispatcher: compacted code and declare variables at beginning of functions

3 years agotextops: handle return code for parse_headers()
Daniel-Constantin Mierla [Mon, 7 Nov 2016 16:22:27 +0000 (17:22 +0100)]
textops: handle return code for parse_headers()

3 years agomodules: readme files regenerated - siputils ...
Kamailio Dev [Mon, 7 Nov 2016 13:16:17 +0000 (14:16 +0100)]
modules: readme files regenerated - siputils ...

3 years agoMerge pull request #852 from mslehto/pcv
Victor Seva [Mon, 7 Nov 2016 13:07:17 +0000 (14:07 +0100)]
Merge pull request #852 from mslehto/pcv

modules/siputils: fix docbook syntax

3 years agomodules/siputils: fix docbook syntax 852/head
Mikko Lehto [Mon, 7 Nov 2016 12:48:27 +0000 (14:48 +0200)]
modules/siputils: fix docbook syntax

3 years agomodules/ims_icscf: If a route block is defined for lir_user_unknown, run it instead...
jaybeepee [Mon, 7 Nov 2016 11:28:47 +0000 (13:28 +0200)]
modules/ims_icscf: If a route block is defined for lir_user_unknown, run it instead of default

3 years agomodules: readme files regenerated - siputils ...
Kamailio Dev [Mon, 7 Nov 2016 09:16:16 +0000 (10:16 +0100)]
modules: readme files regenerated - siputils ...

3 years agoMerge pull request #847 from tverlaan/nathelper_force_socket
Daniel-Constantin Mierla [Mon, 7 Nov 2016 09:01:45 +0000 (10:01 +0100)]
Merge pull request #847 from tverlaan/nathelper_force_socket

nathelper: force socket if set

3 years agoMerge pull request #850 from mslehto/pcv
Daniel-Constantin Mierla [Mon, 7 Nov 2016 09:01:20 +0000 (10:01 +0100)]
Merge pull request #850 from mslehto/pcv

P-Charging-Vector related updates

3 years agomodules/siputils: document P-Charging-Vector related pseudo variables 850/head
Mikko Lehto [Sun, 6 Nov 2016 23:43:45 +0000 (01:43 +0200)]
modules/siputils: document P-Charging-Vector related pseudo variables

3 years agomodules/siputils: add P-Charging-Vector related pseudo variables
Mikko Lehto [Sun, 6 Nov 2016 23:38:04 +0000 (01:38 +0200)]
modules/siputils: add P-Charging-Vector related pseudo variables

pcv(orig) - orig-ioi field
pcv(term) - term-ioi field

3 years agomodules/siputils: populate $pcv(all) after succesful parse
Mikko Lehto [Sun, 6 Nov 2016 22:04:24 +0000 (00:04 +0200)]
modules/siputils: populate $pcv(all) after succesful parse

3 years agomodules/siputils: do not let $pcv(value) to contain invalid value
Mikko Lehto [Sun, 6 Nov 2016 21:59:07 +0000 (23:59 +0200)]
modules/siputils: do not let $pcv(value) to contain invalid value

3 years agomodules/siputils: fix $pcv(genaddr) length issue
Mikko Lehto [Sun, 6 Nov 2016 20:45:47 +0000 (22:45 +0200)]
modules/siputils: fix $pcv(genaddr) length issue

$pcv(genaddr) was truncated when field "icid-value" was shorter
than field "icid-generated-at"

3 years agomodules/siputils: do not log every P -header, shortcut loop instead
Mikko Lehto [Sun, 6 Nov 2016 20:42:09 +0000 (22:42 +0200)]
modules/siputils: do not log every P -header, shortcut loop instead

3 years agomodules/siputils: do not log CRLF
Mikko Lehto [Sun, 6 Nov 2016 20:34:04 +0000 (22:34 +0200)]
modules/siputils: do not log CRLF

3 years agomodules/siputils: fix variable typo
Mikko Lehto [Sun, 6 Nov 2016 20:25:16 +0000 (22:25 +0200)]
modules/siputils: fix variable typo

3 years agomodules/siputils: adjust logging to be more accurate and less verbose
Mikko Lehto [Sun, 6 Nov 2016 20:21:43 +0000 (22:21 +0200)]
modules/siputils: adjust logging to be more accurate and less verbose

3 years agomodules/siputils: whitespace cleanup
Mikko Lehto [Sun, 6 Nov 2016 16:07:22 +0000 (18:07 +0200)]
modules/siputils: whitespace cleanup

3 years agopv: return false if pv_unset() fails
Daniel-Constantin Mierla [Sun, 6 Nov 2016 21:55:11 +0000 (22:55 +0100)]
pv: return false if pv_unset() fails

3 years agopv: pv_var_to_xavp() - proper test for type int of script var
Daniel-Constantin Mierla [Sun, 6 Nov 2016 21:49:53 +0000 (22:49 +0100)]
pv: pv_var_to_xavp() - proper test for type int of script var

3 years agopv: added missing breaks when parsing $mag() inner name
Daniel-Constantin Mierla [Sun, 6 Nov 2016 21:45:29 +0000 (22:45 +0100)]
pv: added missing breaks when parsing $mag() inner name

3 years agocorex: handle return code for ftell
Daniel-Constantin Mierla [Sun, 6 Nov 2016 21:40:42 +0000 (22:40 +0100)]
corex: handle return code for ftell

3 years agopermissions: safety check of src len before copying to dst buffer
Daniel-Constantin Mierla [Sun, 6 Nov 2016 16:08:00 +0000 (17:08 +0100)]
permissions: safety check of src len before copying to dst buffer

3 years agodmq_usrloc: init vars earlier to avoid invalid value cleanup on error handling
Daniel-Constantin Mierla [Sat, 5 Nov 2016 12:32:34 +0000 (13:32 +0100)]
dmq_usrloc: init vars earlier to avoid invalid value cleanup on error handling

3 years agousrloc: handle return code when registering the timer routine
Daniel-Constantin Mierla [Sat, 5 Nov 2016 12:32:05 +0000 (13:32 +0100)]
usrloc: handle return code when registering the timer routine

3 years agoMerge pull request #849 from winem/master
Daniel-Constantin Mierla [Fri, 4 Nov 2016 16:50:16 +0000 (17:50 +0100)]
Merge pull request #849 from winem/master

Updated the specs file for CentOS 7

3 years agospecs file to build rpm packages for centos 7 849/head
Marcel Weinberg [Fri, 4 Nov 2016 16:25:53 +0000 (17:25 +0100)]
specs file to build rpm packages for centos 7

3 years agotm: updated log format from old style with function names in message
Daniel-Constantin Mierla [Fri, 4 Nov 2016 11:31:01 +0000 (12:31 +0100)]
tm: updated log format from old style with function names in message

3 years agotm: coherent indentation and whitespacing for t_fwd
Daniel-Constantin Mierla [Fri, 4 Nov 2016 11:11:39 +0000 (12:11 +0100)]
tm: coherent indentation and whitespacing for t_fwd

3 years agotmx: warning message if updates to destination attributes fail
Daniel-Constantin Mierla [Fri, 4 Nov 2016 10:58:20 +0000 (11:58 +0100)]
tmx: warning message if updates to destination attributes fail

3 years agotm: print warn messages when failing to update r-uri and path
Daniel-Constantin Mierla [Fri, 4 Nov 2016 10:57:55 +0000 (11:57 +0100)]
tm: print warn messages when failing to update r-uri and path

3 years agodmq_usrloc: coherent indentations
Daniel-Constantin Mierla [Fri, 4 Nov 2016 09:17:30 +0000 (10:17 +0100)]
dmq_usrloc: coherent indentations

3 years agonathelper: force socket if set 847/head
Timmo Verlaan [Fri, 4 Nov 2016 09:01:41 +0000 (10:01 +0100)]
nathelper: force socket if set

This fixes force socket in that it will always be forced and not
only when there is no socket.

3 years agoapp_lua: safety check of returned anchor before using it
Daniel-Constantin Mierla [Fri, 4 Nov 2016 08:49:50 +0000 (09:49 +0100)]
app_lua: safety check of returned anchor before using it

3 years agoalias_db: remove inline to function provided as parameter to another one
Daniel-Constantin Mierla [Thu, 3 Nov 2016 15:45:16 +0000 (16:45 +0100)]
alias_db: remove inline to function provided as parameter to another one

3 years agodispatcher: replaced some fields init with memset to 0
Daniel-Constantin Mierla [Thu, 3 Nov 2016 13:31:16 +0000 (14:31 +0100)]
dispatcher: replaced some fields init with memset to 0

- safer when adding new fields in structures

3 years agodispatcher: coherent indentation
Daniel-Constantin Mierla [Thu, 3 Nov 2016 13:14:23 +0000 (14:14 +0100)]
dispatcher: coherent indentation

3 years agoauth_ephemeral: re-ordered code so access to sip msg is done after NULL check
Daniel-Constantin Mierla [Thu, 3 Nov 2016 11:55:31 +0000 (12:55 +0100)]
auth_ephemeral: re-ordered code so access to sip msg is done after NULL check

3 years agodialog: safety check of return pointer to dmq vars field
Daniel-Constantin Mierla [Thu, 3 Nov 2016 10:17:38 +0000 (11:17 +0100)]
dialog: safety check of return pointer to dmq vars field

3 years agolib/binrpc: memset addr variable to avoind uninitialized fields
Daniel-Constantin Mierla [Thu, 3 Nov 2016 07:50:13 +0000 (08:50 +0100)]
lib/binrpc: memset addr variable to avoind uninitialized fields

3 years agortpengine: init all struct to get rid of compile warnings
Daniel-Constantin Mierla [Thu, 3 Nov 2016 07:47:01 +0000 (08:47 +0100)]
rtpengine: init all struct to get rid of compile warnings

3 years agomi_rpc: init structures to avoid access to invalid content in case of errors
Daniel-Constantin Mierla [Wed, 2 Nov 2016 22:37:43 +0000 (23:37 +0100)]
mi_rpc: init structures to avoid access to invalid content in case of errors

3 years agomi_fifo: close fifo stream in case of errors
Daniel-Constantin Mierla [Wed, 2 Nov 2016 22:23:20 +0000 (23:23 +0100)]
mi_fifo: close fifo stream in case of errors

3 years agoctl: proper trim for long error messages to avoid out of bounds access
Daniel-Constantin Mierla [Wed, 2 Nov 2016 22:18:00 +0000 (23:18 +0100)]
ctl: proper trim for long error messages to avoid out of bounds access

3 years agodebugger: re-order loop condition to avoid out of bounds access
Daniel-Constantin Mierla [Wed, 2 Nov 2016 15:33:03 +0000 (16:33 +0100)]
debugger: re-order loop condition to avoid out of bounds access

3 years agojanssonrpc-c: fix double free introduced by
Emmanuel Schmidbauer [Wed, 2 Nov 2016 17:18:15 +0000 (13:18 -0400)]
janssonrpc-c: fix double free introduced by
cf8d6066afc102d5904dddec0275079885f0ead1

3 years agoMerge pull request #843 from kamailio/jannsonrpc-c-shm-memleak
Daniel-Constantin Mierla [Wed, 2 Nov 2016 14:49:52 +0000 (15:49 +0100)]
Merge pull request #843 from kamailio/jannsonrpc-c-shm-memleak

janssonrpc-c: fix shared memory leak on notification requests

3 years agoratelimit: close file pointer in case of scan error
Daniel-Constantin Mierla [Wed, 2 Nov 2016 14:42:55 +0000 (15:42 +0100)]
ratelimit: close file pointer in case of scan error

3 years agomi_fifo: close reply stream in case of continuing due to no response
Daniel-Constantin Mierla [Wed, 2 Nov 2016 14:37:50 +0000 (15:37 +0100)]
mi_fifo: close reply stream in case of continuing due to no response

3 years agocore: init structure to 0 for pass fd operations
Daniel-Constantin Mierla [Wed, 2 Nov 2016 14:26:53 +0000 (15:26 +0100)]
core: init structure to 0 for pass fd operations

3 years agoapp_python: dname is always allocated in system memory
Daniel-Constantin Mierla [Wed, 2 Nov 2016 14:21:28 +0000 (15:21 +0100)]
app_python: dname is always allocated in system memory

- pointing it to static string will crash the free at shutdown

3 years agojanssonrpc-c: fix shared memory leak on notification requests jannsonrpc-c-shm-memleak jannsonrpc-c-shm-memleak-cf8d6066 843/head
Emmanuel Schmidbauer [Wed, 2 Nov 2016 14:15:49 +0000 (10:15 -0400)]
janssonrpc-c: fix shared memory leak on notification requests

3 years agodialog: secure space in case \r\n needs to be added after extra headers
Daniel-Constantin Mierla [Wed, 2 Nov 2016 14:08:42 +0000 (15:08 +0100)]
dialog: secure space in case \r\n needs to be added after extra headers

3 years agortpengine: free addrinfo in case of unknown address family
Daniel-Constantin Mierla [Wed, 2 Nov 2016 13:07:36 +0000 (14:07 +0100)]
rtpengine: free addrinfo in case of unknown address family

3 years agostatsd: one more increase for milliseconds buffer
Daniel-Constantin Mierla [Wed, 2 Nov 2016 13:04:39 +0000 (14:04 +0100)]
statsd: one more increase for milliseconds buffer

3 years agostatsd: free srv variable in error handling
Daniel-Constantin Mierla [Wed, 2 Nov 2016 13:01:52 +0000 (14:01 +0100)]
statsd: free srv variable in error handling

3 years agostatsd: increase buffer for miliseconds printing as function uses 21 size
Daniel-Constantin Mierla [Wed, 2 Nov 2016 12:58:07 +0000 (13:58 +0100)]
statsd: increase buffer for miliseconds printing as function uses 21 size

3 years agoauth_identity: safer condition not to overflow building date header
Daniel-Constantin Mierla [Wed, 2 Nov 2016 12:54:39 +0000 (13:54 +0100)]
auth_identity: safer condition not to overflow building date header

3 years agopresence: free cloned dialog_id in case of errors
Daniel-Constantin Mierla [Wed, 2 Nov 2016 12:50:42 +0000 (13:50 +0100)]
presence: free cloned dialog_id in case of errors

3 years agojansson: init structure to avoid compile warnings
Daniel-Constantin Mierla [Wed, 2 Nov 2016 12:39:44 +0000 (13:39 +0100)]
jansson: init structure to avoid compile warnings

(cherry picked from commit 852a82c330d5c73b6c402e519e3d6ec8ac610665)

3 years agoxmpp: shift head of connection list when first is closed
Daniel-Constantin Mierla [Wed, 2 Nov 2016 12:36:36 +0000 (13:36 +0100)]
xmpp: shift head of connection list when first is closed

(cherry picked from commit ca4083f37326188cc5c64a148854b239234515df)