Richard Fuchs
f2527c47bd
MT#55283 add "control-pmtu" option
...
Change-Id: I4c7319f69dc5242bd6a35ab13a9aa72f394b5d5c
2 years ago
Richard Fuchs
c9fa42c347
MT#56470 support egress call recording
...
Change-Id: I3924458867f684609fcfdbecd4757db642e5a71e
2 years ago
Richard Fuchs
ddab4a71e4
MT#56471 add audio_player
...
Similar to the existing media_player, but instead of simply producing
its own standalone output media stream, the audio_player takes over the
entire media stream flowing to the receiver, including media forwarded
from the opposite side of the call, as well as media produced by the
media_player.
Change-Id: Ic34ecf08fc73b04210cfffb1a7d795b462ece5ea
2 years ago
Richard Fuchs
595c9b31c8
MT#55283 add graphite_is_enabled()
...
Change-Id: Ia34064635f25d26c641b3306fc2376acfb1fa729
2 years ago
Richard Fuchs
64d7a12701
MT#55283 add new `summary` mqtt option
...
Change-Id: I7e4a2327f6aca2c73349b3ae02d4184460575e89
2 years ago
Richard Fuchs
cf12ffc264
MT#55283 support buffered media player
...
Change-Id: I9e935b8561bb8710933fa11de383458896c0a5d9
2 years ago
Richard Fuchs
0c4fc1c31d
MT#55524 use define for thread sleep time
...
Keep the maximum time for a thread to sleep in a central place
Change-Id: Id4445f40d34648a2efbcbf17d67f2921c7dedf46
3 years ago
Richard Fuchs
08a05e76ec
MT#55524 add thread cancel helper macros
...
Convenience macros to enable and disable thread cancellation
Change-Id: I1c588af83a4c6a45c60b60d941aa446b07e72978
3 years ago
Dup4
ad5d98e4d0
MT#55283 Squashed commit of the following:
...
closes #1560
closes #1559
commit e11f52c041
Author: Dup4 <lyuzhi.pan@gmail.com>
Date: Tue Nov 1 22:58:44 2022 +0800
fix: add comma
commit e0c2f47b49
Author: Dup4 <lyuzhi.pan@gmail.com>
Date: Tue Nov 1 22:01:26 2022 +0800
feat: add log-name option
Change-Id: I40a7b68120efb240faea86eb2d716d5e01a420c3
3 years ago
Andreas Granig
3a54a1f0a4
Squashed commit of the following:
...
commit 025f56212d
Author: Andreas Granig <andreas@granig.com>
Date: Tue Oct 4 14:23:01 2022 +0200
Document the mqtt-tls-alpn option
commit e6cc320d19
Author: Andreas Granig <andreas@granig.com>
Date: Mon Oct 3 21:41:14 2022 +0200
Add TLS ALPN option to be set when connecting MQTT
This is required to be set to "mqtt" for instance when connecting
to the AWS IoT Core data endpoint at port 443 to indicate we're
sending MQTT, because in that case websocket and mqtt shares the same
port for whatever reason.
Change-Id: I6a391e815411b178187ef42aa009e45853d1c388
3 years ago
Richard Fuchs
9eb7b640c2
TT#14008 add explicit lws_cancel_service at shutdown
...
Newer libwebsockets versions seem to use a longer internal timeout, so
an explicit "interrupt" is needed during shutdown to prevent a long wait
time.
Change-Id: I8f28ef658169178e35b40dd44520fbd7c812b590
3 years ago
Richard Fuchs
778ec46b81
TT#178400 support reporting out measured jitter
...
Change-Id: I798ec9b05f48f3e12630aa71e16a6bf5746f5319
3 years ago
Richard Fuchs
19c8d1e01a
TT#14008 change Redis restore order
...
To prevent a race condition that might miss updates about call info, set
up the Redis keyspace notifications first and then run loop to restore
calls from the existing data.
closes #1503
Change-Id: I6afa4c50fe0a34c602063fc2f45b2ee38133cf1e
3 years ago
Stefan Mititelu
3813821129
Add 'all' recording method
3 years ago
Richard Fuchs
cf076fc074
TT#172650 support EC keys for DTLS certificate
...
Change-Id: I695e9b334ce26c26de6a98a5d48fc930f6bebf41
3 years ago
Richard Fuchs
008c4c7dce
TT#172650 update dtls_signature field to enum
...
Change-Id: I83bb566131b4fc6d00a6323ccd9b105bb01fd53f
3 years ago
Richard Fuchs
f869c23c90
TT#14008 add new "reject-invalid-sdp" option
...
for #52
Change-Id: I75f69a4a4b546fed74e0838ba9ba167f957e8d17
3 years ago
Richard Fuchs
533d4b7d8c
TT#14008 remove obsolete config option
...
Change-Id: Ibda1c75b506646f91bb217f0eec3dcaac6ccf423
3 years ago
Richard Fuchs
cfaa029b00
TT#14008 don't use internal function when not necessary
...
Change-Id: Ia18b90094d7f52628c72f4cc3d0247a2eb06541a
3 years ago
Richard Fuchs
b1d17cdcef
TT#14008 use pthread_cancel semantics for shutdown
...
Instead of having each thread sleep only a little while and then
periodically check for the shutdown flag, make them sleep longer and use
pthread_cancel() to interrupt the sleep during a shutdown in the
designated break points.
Change-Id: I13f1872a0176697e064ceef4062db6ca6ccf7a0e
3 years ago
Richard Fuchs
2ca64340e1
TT#136957 support DTMF triggers for blocking
...
Change-Id: I32e0d02e739ceb5a34aaf187b1ea086482e6d73e
3 years ago
Richard Fuchs
ecf02ddcc1
Merge branch 'master' of https://github.com/smititelu/rtpengine
...
Change-Id: If22a490e36138e14fe46cbfad6b9d815a4fceeaa
3 years ago
Richard Fuchs
12f23b311c
TT#157801 shift handling of v4/v6 addresses
...
Handling of dual stack v4/v6 was previously done by the individual
listener objects for INADDR_ANY listening addresses. If listening on
INADDR_ANY was requested, then each listener would create two instances,
one for IPv4 and one for IPv6. This works fine for INADDR_ANY but fails
for listening on host names that resolve to multiple addresses, such as
`localhost`.
Solve this by relieving the listener objects from handling this and
instead handle it in the code setting up the listeners. If a host name
resolves to multiple addresses, then set up multiple listeners (up to
two supported currently). This allows us to listen on `localhost` by
default and have both 127.0.0.1 and ::1 active. INADDR_ANY is handled
specially by also setting up :: in that case.
Change-Id: I2a1e1d7090d7d23863c7a9bb1e89b85ad2ea44f4
3 years ago
Richard Fuchs
aad3fb3130
TT#157801 support "any" interface config
...
Allow usage of "any" as interface config option to configure any and all
locally present network address, except loopback. This allows us to ship
a working default config file.
Change-Id: Ic13efd5f668e3bb317948b226c5700331f95a708
3 years ago
Stefan Mititelu
528e108a1e
Add new graphite-timeout parameter
...
Needed to be able to set graphite socket timeout.
Useful when one wants rtpengine to force the graphite connection
to fail faster, in case graphite server gets filtered while
connection is ongoing.
3 years ago
Richard Fuchs
31e41d1282
TT#14008 fix poller-per-thread behaviour
...
Change-Id: Ie75e9ebb315801157e432b2d0ce6a07c61cdd0d0
3 years ago
Richard Fuchs
d3a3382ac9
TT#14008 convert threads_join_all arg to bool
...
Change-Id: Ie1ef9bbfe6faaf9fa7ed163d51475f6f353309df
4 years ago
Richard Fuchs
2130e2f62b
TT#89352 support Janus control protocol
...
Change-Id: I0a6d5fc93c5fa505390408043feeca3f5cf61181
4 years ago
Richard Fuchs
74d3fa2f28
TT#14008 fix indentation
...
Change-Id: Ib8fea31c49013cbb62056c5980ee5aa3655db6d6
4 years ago
Richard Fuchs
0266886487
TT#37394 support SO_INCOMING_CPU
...
Change-Id: I8017929519cc3b721272cc122bee4fdc36c7317a
4 years ago
Richard Fuchs
765b1e3bca
TT#89352 use bool type for foreign call functions
...
Change-Id: If8d5e28db534e6aeaaffb885e732e2bdd7338831
4 years ago
Richard Fuchs
fc0bbf1079
TT#91151 switch str_init_dup to g_malloc
...
This makes it possible to use buffers returned by GString
interchangably.
Change-Id: If15a5c0be2743dde7230b2f3d3ca6780d633622b
4 years ago
Richard Fuchs
ab836ae042
TT#14008 fix --mos= case comparison
...
Change-Id: Iab858cd6df96b26c143292019a78ef07defbb868
4 years ago
Richard Fuchs
3eae4b3af3
TT#14008 add MOS-LQ option
...
Change-Id: I2cacceda1f910fb2ed74ccd9f17cde1bf50031b0
4 years ago
Richard Fuchs
369e64f9a7
TT#14008 add mqtt support
...
Change-Id: Ica4a3e4ef58eadf3feca44ea63f2308103b3146f
4 years ago
Richard Fuchs
50834df3ca
TT#14008 call statistics_free after codecs_cleanup
...
Some codec handlers hold references to objects held within the
statistics hash table, therefore we must free the statistics after all
codec handlers have been released.
Change-Id: I3832dbeeaaf21d4a82be2dc2c842718415fd46f7
4 years ago
Richard Fuchs
64670ffb61
TT#122401 add option to bypass AMR SID
...
Change-Id: I0504d452737573f388941dcca507e3adfd5744c6
4 years ago
Richard Fuchs
ec68dfeb31
TT#122401 add configurable CN method
...
Change-Id: I2aa9901b2a9dcf64563a84d77fa40d23b6c25525
4 years ago
Richard Fuchs
1ec517c2f4
TT#14008 restore foreign calls from the appropriate DB
...
closes #1257
Change-Id: I299475a01470cc9d4910d9d304bdda9bbbee6e83
4 years ago
Richard Fuchs
be30d2cc33
TT#111150 free cn_payload string if present
...
Change-Id: Ibff3f9484c988f194436479a137baeb583522931
4 years ago
Tinotenda Chingosho
575435db73
Squashed commit of the following:
...
commit fd25c8e281
Author: Tinotenda Chingosho <tinochingosho@googlemail.com>
Date: Tue May 11 12:03:55 2021 +0100
Address review comments
- update typo
- document new parameter
commit e4e106f423
Author: Tinotenda Chingosho <tinochingosho@googlemail.com>
Date: Mon May 10 16:18:57 2021 +0100
Support Configurable MTU
- default to 1200
- minmimum value 576
Change-Id: I6cbc03eb7f8198a211d70844c115d162d954dea8
4 years ago
Clarence
320459873f
Fix redis connect failed when there are "@" in redis password.
4 years ago
Richard Fuchs
d5d0a3a994
TT#111150 convert str.len to size_t
...
This makes the type in line with string(3) functions and eliminates some
compiler warnings.
Also update the related bencode data type.
Change-Id: I7ef4024f4b5a0f737b3dbe03bcd078032395bce6
4 years ago
Richard Fuchs
a8d5076065
TT#119502 correctly restore calls from both Redis instances
...
Change-Id: I713d7e8ba0a7d14f5ef9016d33619df91ce6ec32
4 years ago
Richard Fuchs
ec42f83353
TT#14008 allow usage with just HTTP/WS
...
closes #1246
Change-Id: I5fc5ebd462589f0f585b8afce4908a6ac4a94bbb
4 years ago
Richard Fuchs
05ef61c0d7
TT#108003 fix errors reported by coverity
...
Change-Id: I6641da426f1e05f0d0e3924887baf7fb948fb0c9
4 years ago
Richard Fuchs
5802ff2379
TT#54762 add option to enable automatic active/active switchover
...
Change-Id: Icddeb28cab72974d9dad0a241775a0763a56b027
4 years ago
Richard Fuchs
7dc55e6378
TT#98901 convert from static DTX delay to dynamic buffer queue
...
Change-Id: Ib6bfdfb9d1967263dc8acb48a812d7e75f9c239b
4 years ago
Damir Nedžibović
f650f95111
TT#14008 Squashed commit of the following:
...
commit b3d2d70d4cfb449fb80af188eee89b6dc343830d
Merge: 1e62cbbb
eacd2634
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Mar 4 11:36:26 2021 -0500
Merge branch 'fix_packet_order' of https://github.com/enreached/rtpengine into enreached-fix_packet_order
Change-Id: I30690cf4955c04238c359e4aca2d0fea36ebfd36
commit eacd2634e8
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 16:56:07 2021 +0100
Update docs with --poller-per-thread option.
commit 7d02539673
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 16:47:55 2021 +0100
Prevent mem leak.
commit 3510a5d021
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 13:25:39 2021 +0100
Make poller per thread functionality configurable.
commit a2142b2a5e
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:57:18 2021 +0100
Use pthread_self() instead of syscall(SYS_gettid).
commit 2e471cae40
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:46:44 2021 +0100
Refactor the code a bit.
commit 91f72455c9
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:21:42 2021 +0100
Use usleep() instead.
commit 08d3bdb4ed
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Mar 4 11:03:39 2021 +0100
Use ssl_random() instead.
commit 2d9995a864
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Tue Mar 2 15:50:13 2021 +0100
Sleep for 20ms instead.
commit eded168a38
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Tue Mar 2 15:11:43 2021 +0100
Implement poller per thread in order to fix packet order.
Change-Id: If652c906be8b16115eb84e749f89a2729ba75120
4 years ago
Richard Fuchs
af6ef843da
TT#100200 suppress audio packets during a DTMF event
...
Change-Id: I9612d692c3c6945c93b3194760383e67e5bca0e0
4 years ago
Richard Fuchs
fdac938ecf
TT#91151 add a free-form software ID config option
...
closes #1141
Change-Id: I99bd0d7ecc414e2b4f6e7e3fea72aab5935f8939
4 years ago
Richard Fuchs
b0f185f409
TT#111357 refactor sysconf() call into shared code
...
Change-Id: Ifd8d1d774f55e7c58bf82c9a5f67787e02f53c3f
4 years ago
Richard Fuchs
a8013ffe70
TT#111051 set thread specific process names
...
Change-Id: I6a5bb14c070d93b865510786f5107220b93faef1
4 years ago
Damir Nedžibović
0ae0681b28
TT#14008 Squashed commit of the following:
...
closes #1183
commit a74cf4a7f9
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Tue Feb 2 11:06:50 2021 +0100
Add --dtmf-log-ng-tcp CLI option.
commit a428764d9b
Merge: 2bbfcb27
8abc6b1c
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Tue Feb 2 09:16:26 2021 +0100
Merge branch 'master' into dtmf_events_over_ng_tcp
commit 2bbfcb2750
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 14:28:07 2021 +0100
Replace hex values with chars.
commit dc1084d122
Merge: 2bce444b
2c7163ea
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:53:27 2021 +0100
Merge branch 'dtmf_events_over_ng_tcp' of github.com:enreached/rtpengine into dtmf_events_over_ng_tcp
commit 2bce444b26
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:28:06 2021 +0100
Prevent use after free.
commit 5a256fd3ae
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 13:30:31 2021 +0100
Add missing includes.
commit a14f4034b9
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 13:27:27 2021 +0100
Add support for sending DTMF events via protocol NG TCP.
commit b861fe3087
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit 7bfe08fb08
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit 2c7163eaf3
Merge: fd286813
9165bf1f
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:49:00 2021 +0100
Merge branch 'dtmf_events_over_ng_tcp' of github.com:enreached/rtpengine into dtmf_events_over_ng_tcp
commit fd28681350
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jan 29 10:20:02 2021 -0500
TT#14008 fix AEAD kernel API for < 4.2
Untested whether it actually works
closes #1176
Change-Id: If6398632ac62525a673b844cfb4ce842a8aa0346
commit 0626dcdd96
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jan 29 13:07:25 2021 -0500
TT#14008 improve log output for stray packets
Change-Id: Ic4b03928b279aade761de3ba1646b5c27318e6a3
commit 8fcccb77cc
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:28:06 2021 +0100
Prevent use after free.
commit f0d90d1831
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 13:30:31 2021 +0100
Add missing includes.
commit 37462b8e4d
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 13:27:27 2021 +0100
Add support for sending DTMF events via protocol NG TCP.
commit 9165bf1f75
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:28:06 2021 +0100
Prevent use after free.
commit d616f2941f
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 13:30:31 2021 +0100
Add missing includes.
commit bb063386c6
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 13:27:27 2021 +0100
Add support for sending DTMF events via protocol NG TCP.
commit b28ab07532
Merge: 813a4f1c
6e4373af
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:21:31 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 813a4f1caa
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit 0c87a19c55
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit 6e4373affb
Merge: fbf74bfe
7799f23a
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:19:46 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit fbf74bfe2d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jan 27 10:18:14 2021 -0500
TT#14008 fix possible segfault
closes #1172
Change-Id: I94bb52c290c2032073e54528283660f03e694033
commit 1a5bcc0905
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 14:49:43 2021 -0500
TT#109251 fix redis restore segfault
Change-Id: I501a47b065e7b8ff28a3ac157c0ce567f228557f
commit b38b49fd60
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:44:44 2021 -0500
TT#102450 added tests for Ia9fa96cf
Change-Id: Ic9728e12a012335c30c5640ac0b5c88e39ad24ed
commit f33877bfe3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:43:46 2021 -0500
TT#102450 fix some timestamping issues
Make sure G.722 rate multiplies is applied in the right places
Don't trust encoders to return proper timestamps, but instead track them
explicitly based on frame duration
Change-Id: Ia9fa96cf662da97159fa170c3a3f37516889e1bd
commit 39a25b954d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 14:07:53 2021 -0500
TT#106101 mem leak fix for 554034eb7e
Change-Id: I9c410211580d8513a203a29f898970a78175d08b
commit 11d11aed90
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:41:28 2021 -0500
TT#14008 clean up some tests
Looks like packet order can be an issue in some cases
Change-Id: Ib8fb8c553c9d0f2919b24dda1e15e5a23832c619
commit 7799f23aa5
Merge: ba7ee9d6
e191e16c
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:18:24 2021 +0100
Merge branch 'master' of https://github.com/sipwise/rtpengine into control_ng_tcp
commit ba7ee9d6b1
Merge: f805d881
ffe187f1
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:15:58 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit f805d881fa
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit c548a3ca4b
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit ffe187f116
Author: Damir Nedžibović <damir.nedzibovic@bad-team.net>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
Change-Id: I8383fa80bce59aa865009e34caff5263b97ab588
4 years ago
Damir Nedžibović
2fc54462de
TT#14008 Squashed commit of the following:
...
closes #1180
commit 023f6cbc9e0b595d1d02116d38d39358fbb9ee49
Merge: ae82034d
86e287d1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Feb 1 11:16:04 2021 -0500
Merge branch 'control_ng_tcp' of https://github.com/enreached/rtpengine into enreached-control_ng_tcp
Change-Id: I628dcfd30e901dbee97b00bee0b6bba0cb29826f
commit 86e287d117
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 16:38:53 2021 +0100
Update the readme file.
commit 35f5d9e151
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 16:20:09 2021 +0100
Update docs.
commit 336deb4c67
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 14:28:07 2021 +0100
Replace hex values with chars.
commit 37c86a8fa0
Merge: 17a10b96
5cd53ef1
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:51:06 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 17a10b96ad
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit adfddefae3
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit 5cd53ef1c9
Merge: 1bd3a8fc
b28ab075
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Mon Feb 1 13:49:50 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 1bd3a8fc6d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jan 29 10:20:02 2021 -0500
TT#14008 fix AEAD kernel API for < 4.2
Untested whether it actually works
closes #1176
Change-Id: If6398632ac62525a673b844cfb4ce842a8aa0346
commit 71a222d7a8
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jan 29 13:07:25 2021 -0500
TT#14008 improve log output for stray packets
Change-Id: Ic4b03928b279aade761de3ba1646b5c27318e6a3
commit b28ab07532
Merge: 813a4f1c
6e4373af
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:21:31 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit 813a4f1caa
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit 0c87a19c55
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit 6e4373affb
Merge: fbf74bfe
7799f23a
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:19:46 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit fbf74bfe2d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jan 27 10:18:14 2021 -0500
TT#14008 fix possible segfault
closes #1172
Change-Id: I94bb52c290c2032073e54528283660f03e694033
commit 1a5bcc0905
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 14:49:43 2021 -0500
TT#109251 fix redis restore segfault
Change-Id: I501a47b065e7b8ff28a3ac157c0ce567f228557f
commit b38b49fd60
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:44:44 2021 -0500
TT#102450 added tests for Ia9fa96cf
Change-Id: Ic9728e12a012335c30c5640ac0b5c88e39ad24ed
commit f33877bfe3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:43:46 2021 -0500
TT#102450 fix some timestamping issues
Make sure G.722 rate multiplies is applied in the right places
Don't trust encoders to return proper timestamps, but instead track them
explicitly based on frame duration
Change-Id: Ia9fa96cf662da97159fa170c3a3f37516889e1bd
commit 39a25b954d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 14:07:53 2021 -0500
TT#106101 mem leak fix for 554034eb7e
Change-Id: I9c410211580d8513a203a29f898970a78175d08b
commit 11d11aed90
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jan 28 13:41:28 2021 -0500
TT#14008 clean up some tests
Looks like packet order can be an issue in some cases
Change-Id: Ib8fb8c553c9d0f2919b24dda1e15e5a23832c619
commit 7799f23aa5
Merge: ba7ee9d6
e191e16c
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Fri Jan 29 09:18:24 2021 +0100
Merge branch 'master' of https://github.com/sipwise/rtpengine into control_ng_tcp
commit ba7ee9d6b1
Merge: f805d881
ffe187f1
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:15:58 2021 +0100
Merge branch 'control_ng_tcp' of github.com:enreached/rtpengine into control_ng_tcp
commit f805d881fa
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:09:10 2021 +0100
Add missing include.
commit c548a3ca4b
Author: Damir Nedžibović <damir.nedzibovic@enreach.com>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
commit ffe187f116
Author: Damir Nedžibović <damir.nedzibovic@bad-team.net>
Date: Thu Jan 28 18:05:44 2021 +0100
Implementation of control-ng via TCP.
Change-Id: I2acf208fcff1fa9aa790c31f1097ad9b4b7c3238
4 years ago
Stefan Mititelu
001abe5f1f
Add new config parameter: `save-interface-ports`
...
When set to `false`, no changes at all. (default)
When set to `true`, bind only one desired family local address.
Also add info in rtpengine.pod file.
Also add log for sfd with no call.
4 years ago
Richard Fuchs
604aa5a9a0
TT#92250 add new reorder-codecs flag
...
Change-Id: I93587b6675540438f81193896ae8d8966b3a12a6
4 years ago
Richard Fuchs
e9bdbb1ee6
TT#97301 fix removal of debug_srtp
...
closes #1162
Change-Id: I02b81a6f9d9fd6910ce6ed2995bfba16d59b027e
4 years ago
Richard Fuchs
30733ec5cd
TT#97301 support granular log levels
...
Change-Id: Ife458bd2449f61113a3e6db1708821570d92dc23
4 years ago
Richard Fuchs
73e4ef42eb
TT#101653 add silence detection option
...
Change-Id: I14940fcabdef475ed5dbe74d9af7ebc2af10311b
5 years ago
Richard Fuchs
b355e55fcb
make DTMF options dependent on transcoding option
...
closes #1109
Change-Id: I8f77ebfd4ffd960d59c9d20e2b1b62a3961525ca
5 years ago
Richard Fuchs
17e22ade36
TT#98901 add limit to length of DTX processing
...
Change-Id: I6fba28b985ff63de6185dccc2ca16f4264a0493d
5 years ago
Richard Fuchs
bae79d3fef
TT#98901 handle AMR SID DTX
...
Change-Id: I418c43e0cef2a70143010235988523f195a3bf5a
5 years ago
Richard Fuchs
fa64e2261e
TT#98901 add codec timers thread
...
Change-Id: If50d2d42ce918961588dfc79793a26ba15416991
5 years ago
Richard Fuchs
bbc6aa9dac
TT#14008 avoid double free on shutdown
...
Change-Id: I30ca16313ee8039b51797b60955265fb4a7545a1
5 years ago
Richard Fuchs
18a3b9df0f
clean up codec stats on shutdown
...
Change-Id: Iac082cda84c62be4a340448ef7c97c2f94e2992f
5 years ago
Richard Fuchs
4902b07ff9
Merge branch 'master' of https://github.com/smititelu/rtpengine into smititelu-master
...
Change-Id: I425a188c632e2a6ee3f9109380d9ae114409f62b
5 years ago
Richard Fuchs
32d43fed4d
TT#91150 move to a global NG cookie cache
...
Change-Id: I8aa5275ffb4d53bb959acd6a8329e5a31f099000
5 years ago
Richard Fuchs
aa36a1f619
TT#88951 add HTTP/Websocket listener
...
Change-Id: Ib2e7c87913abd4f89aa43075fe7cd9fb4d7cf1f7
5 years ago
Stefan Mititelu
2ebf5a1526
Add redis async delete
5 years ago
Richard Fuchs
c7904866b0
fix mem handling for Redis auth strings
...
Change-Id: I03e3368fe569716d3309cf012ba39bdb2cbe0b35
5 years ago
Richard Fuchs
e65b01d5ab
TT#86850 support DNS lookup for advertised address
...
closes #969
Change-Id: I3712a0977700719765bbd45985306e598067c0af
5 years ago
Richard Fuchs
9bcd50e9c2
TT#86850 support DNS name resolution for interfaces
...
Change-Id: Id48ca4c25fee57cafe1270e2ded22fc610b510d1
5 years ago
Richard Fuchs
29da888ad9
TT#86850 split out interface-name resolution
...
Change-Id: I670d3de35117047c285552879debc24df3a983a3
5 years ago
Stefan Mititelu
eb8169868d
Fix a few more "still reachable". End all redis unused threads.
5 years ago
Stefan Mititelu
8ba5d162dd
Fix Valgrind "still reachable" for a few others
...
log, ice, media_player, jitter_buffer,
statistics, codeclib, call_interfaces
5 years ago
Richard Fuchs
3c3729f81c
TT#28300 fix missing strdup for multi homed interfaces
...
Change-Id: Ifaac7f85a5ab3515d95e72b6ee640c9e865cf219
5 years ago
Stefan Mititelu
831bb88e24
Fix Valgrind "still reachable" for if name and q
5 years ago
Stefan Mititelu
a6d2f92962
Solve Valgrind "possibly lost" for redis and dtls
5 years ago
Richard Fuchs
1589c29e28
TT#28300 add cleanup of poller related data
...
Change-Id: I64a38869ce3120d066fc818e3c76941a1c8186b7
5 years ago
Richard Fuchs
e01b3b421c
TT#28300 add cleanup of calls structs
...
Change-Id: I9e95fc9075645a7364bf62a9ca6f193dc6952ce1
5 years ago
Richard Fuchs
2a4dbd8d37
TT#28300 add cleanup of global interface structs
...
Change-Id: I326d72c88505c532b19e98165666f10d4692fafc
5 years ago
Richard Fuchs
a4849f7ae6
TT#28300 eliminate need for if_a_global
...
Change-Id: I4b1c23d9a08b68bd722e14d7077198ddbaefc2e0
5 years ago
Stefan Mititelu
de28a65934
Solve Vlagrind "definitely lost" memory leaks
5 years ago
Richard Fuchs
abe7caf066
TT#75350 update cipher lists and make the configurable
...
closes #918
Change-Id: I949810a7c84679eac25f65784f97fdd2e9abb07d
5 years ago
Richard Fuchs
48c3af7f9d
TT#76711 add spandsp logging
...
Change-Id: I75dbf1e420818bf5c4033b0807b38824f96e2915
5 years ago
Richard Fuchs
0cd8883639
TT#78203 add SRTP debug options
...
closes #956
Change-Id: I751f6bc1ea9228b257f6258dbb1927276db10c99
5 years ago
Richard Fuchs
ef0d6a3a80
TT#74301 merge jitter buffer PR #834
...
refactored
closes #834
Change-Id: I174cc6e365af54fb66d2dd78be02c601c5d5d645
5 years ago
Richard Fuchs
61ac7e9656
TT#72000 add different endpoint detection algorithms
...
Change-Id: I791dba23450cab31bc5744a6156965afbb8a3b5c
6 years ago
Richard Fuchs
c36a44580d
fix incorrect parameter type used for homer-id=
...
reported in #807
Change-Id: I075660de6a654c42d0fec831ea9edc9bd88e7c05
6 years ago
Richard Fuchs
bfc9799c7e
TT#65100 don't start a redis notification context/thread when not in use
...
There's no point in starting the notification thread and another Redis
connection if there are no keyspaces to subscribe to
Change-Id: I2a9ef3b7764219b6ca08ebbe81461efd45b3e9de
6 years ago
Richard Fuchs
1653f3201b
don't free redis event base while being used
...
closes #804
Change-Id: Ic4bce6cf50441011d8eea0ba2da8861a783a33a9
6 years ago
Richard Fuchs
79fb320021
add missing header include
...
Change-Id: Ic0dba1de45fac7acc37f0a3ce86368f9625c4cc9
6 years ago
Richard Fuchs
fcb08df0ae
TT#59805 add dtmf-log-dest option
...
Change-Id: Id6f7ce7fa627b138e0b0ea3d410b8af53532b290
6 years ago
Richard Fuchs
5b0a0105ef
TT#50652 support playing back media files from database
...
Change-Id: Ib21b6605553f67d6892ec8e2c75a7b0fca40936e
6 years ago
Richard Fuchs
831946a8d4
TT#50652 fix compilation for with_transcode=no
...
Change-Id: Ie65827be7e27a6f77019a983a1ce131c11b694d3
6 years ago
Richard Fuchs
3bdad88063
TT#50652 create timer to gradually send packets without jitter
...
Change-Id: I5b28f7514f54c6df9f3ee607e3bca76274b431b3
6 years ago
Richard Fuchs
83965bdb1f
TT#50652 infrastructure to support reading/playing of media files
...
Change-Id: I8212f5c74bcb9557d41f80ef3a1595f53bafde8a
6 years ago
Richard Fuchs
e3ec97f858
TT#50652 add -Wstrict-prototypes everywhere
...
Change-Id: Ic5b5fcb892a8f70196478f8622d956bdea373422
6 years ago
Richard Fuchs
3b28460507
TT#52651 Squashed commit of the following:
...
commit 2029144368
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 21 13:12:50 2019 -0500
TT#52651 switch TCP to TLS
Change-Id: Iab6b05d3b5c88553cbd6f531f3189084d9e71995
commit b28e718ee4
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Feb 22 09:20:54 2019 -0500
TT#52651 generalise streambuf interface
Change-Id: I7d5ab8ffe13e52d4dbb1901531cc13fcc173d60d
commit cb2dbd2a92
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Feb 19 09:32:56 2019 -0500
TT#52651 add start/stop forwarding commands and party selection logic
Change-Id: I8ef7e288d3a3e485bd2fa14e1a2407a0c8d94bac
commit 442c48f627
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 14 15:43:23 2019 -0500
TT#52651 produce output for TCP forwarding feature
Change-Id: I18543921577faf655679829684f5af46c0af5054
commit 2ef8028eb2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Feb 14 10:18:21 2019 -0500
TT#52651 make recording to output files optional
Change-Id: I12c288b965641352658ce3b499c2ee90593e1322
commit 10a58cd7a0
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Feb 13 16:02:16 2019 -0500
TT#52651 strip streambuf into lib and include in recording daemon
Change-Id: I1f6638961e9e767063e0b4e6b5d55d88799366d3
commit 9d3bb5bffc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Feb 13 15:40:12 2019 -0500
TT#52651 extract/move unrelated old legacy decoder struct members
Change-Id: Iffd79b43180c30a9e128a460f7ba85ba49dedeaf
commit 1bc38e4201
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Feb 12 16:43:42 2019 -0500
TT#52651 config options for forwarding option
Change-Id: Ieaa2ee0e55a0c531158174bc6a534738a64dbee6
commit 06d61cd3dd
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Feb 12 16:29:52 2019 -0500
TT#52651 move socket.[ch] into lib/
includes necessary re-shuffling of additional code pieces
Change-Id: I74b314ab5936ac8a0eeaff94e084617b59b28d79
Change-Id: I025e8ec86b90ede79565542dff57ec1559d04200
6 years ago
Tor Petterson
f71f66f60b
Expanded Documentation of option log-srtp-keys
7 years ago
Richard Fuchs
0496c595b4
Change name of option from log-rtp-keys to log-srtp-keys
...
Co-Authored-By: TorPetterson <32388321+TorPetterson@users.noreply.github.com>
7 years ago
Tor Petterson
590b752bbd
Added option to write SRTP keys to log
7 years ago
Guillem Jover
5ba52952c0
TT#42906 Add systemd notify support
...
Change-Id: Iba046fa3e36654cedb73203eb06a9d768720a6b0
7 years ago
Richard Fuchs
89084da8d8
TT#43855 support XMLRPC callback to Kamailio
...
Change-Id: I35f9abb5e98ff17f4fed28ca0e045e7d5d734b1d
7 years ago
Richard Fuchs
7dd8ed0b8f
quote options value strings in error output
...
Change-Id: Iaa938c08627831f367a4898355250737350cba58
7 years ago
Richard Fuchs
a44b34a7a9
don't free event base before calling loopbreak()
...
Change-Id: I7f4283804b1c34a110e5f4ddad14bd1dd4122cc4
7 years ago
Richard Fuchs
a9ec666cb4
TT#38350 implement sending DTMF events to syslog
...
Change-Id: I82fbdc7da6cbe2505ef1c98dd3c45b63c4461994
7 years ago
Richard Fuchs
d66a2e5191
TT#38351 support specifying interfaces by name
...
closes #566
Change-Id: Ia9a5c6d9d702e27404a7e27503970ee9a8dac7b9
7 years ago
Richard Fuchs
09fed75e7e
Merge branch 'master' of https://github.com/hdikme/rtpengine
...
Change-Id: I97bf1782e259c17a3313ec4e6d670dae8592f12c
7 years ago
Richard Fuchs
fa5c265045
TT#36302 support scheduling settings
...
Change-Id: I490fde10a5ae44d25b95e4368af70003716040b7
7 years ago
Richard Fuchs
14ffd8feb0
TT#36303 support bandwidth usage resource limit
...
Also fixes logic for other resource limits
Change-Id: I263e097da5b5671826e0d92a28fb3a5c6f3ac193
7 years ago
Huseyin Dikme
ab58245096
-cli params diff command has been updated to serve only for the
...
possible modifiable configuration file parameters.
-Additionally, cli params revert command has been implemented.
7 years ago
Richard Fuchs
345836e90a
TT#35413 implement a CPU limit and a load limit
...
Change-Id: Ia0c605d17866c232353917f2980637fa7823dce4
7 years ago
Richard Fuchs
43f2971722
disallow zero interface addresses in config
...
closes #538
Change-Id: I27278125e0f15e4cd860380592606adbcfd0f6b7
7 years ago
Richard Fuchs
6fa712d0d8
implement offer-timeout option
...
closes #526
Change-Id: I819e1ad567c93f922461caf15482c2c55a0143d1
7 years ago
Richard Fuchs
126a69f29c
TT#28163 logging and documentation improvements
...
Change-Id: Ib82b80c9ddcf557cd5ab6f99e693a5234471b1ac
7 years ago
Richard Fuchs
f8aad04948
TT#30404 move portions required for decoding from recording-daemon to lib
...
Change-Id: I4170dd3c93ca3c87954d2c1db5fd84ae071247bd
7 years ago
Claudiu Boriga
80abad18cf
Merge remote-tracking branch 'sipwise/master' into extend-rtpengine-ctl
7 years ago
Claudiu Boriga
ff2a278ad7
Make 'rtpengine-ctl' configurable via rtpengine-ctl
7 years ago
Claudiu Boriga
0f9151e9ea
Make 'redis-allowed-errors', 'redis-disable-time', 'redis-cmd-timeout'
...
and 'redis-connect-timeout' configurable via rtpengine-ctl
7 years ago
Huseyin Dikme
968446c730
cli params command has been created for initial, current parameters
...
and their difference
7 years ago
Claudiu Boriga
ac1a957a05
Merge remote-tracking branch 'sipwise/master' into add_disable_tout
7 years ago
Richard Fuchs
74bae6a9a9
TT#30150 add option for different logging styles
...
closes #442
Change-Id: I338afc58e10b056718e086dbcd232f3324984bf0
7 years ago
Claudiu Boriga
485092383f
Make redis connection timeout configurable
7 years ago
Claudiu Boriga
562c5b40a6
Add parameter that sets a timeout for redis commands
8 years ago
Claudiu Boriga
c31ffa4639
Add paramaters to disable redis communication in case of multiple errors
8 years ago
Richard Fuchs
46d853972b
move lib/ config options into struct
...
Change-Id: I563b38cd64daea5f9137debff2fc7881a3cdaa9d
8 years ago
Richard Fuchs
0e3f5eb3c2
move all remaining config options into global config struct
...
Change-Id: Ib0d7cd3f98929b22ef3726b8712f34706a530456
8 years ago
Richard Fuchs
75056a8dd1
eliminate the callmaster struct
...
Change-Id: I9151dbe8f47b3bb9ab67d6fea2fc3783bdc558da
8 years ago
Richard Fuchs
f2b93f9ef8
move config options into global struct rtpengine_config
...
Change-Id: Ie566efb6a1b8bedbe33f768bc4cd979b2d2b46cc
8 years ago
Richard Fuchs
d65a6bbbdc
move latest_graphite_interval_start to global scope
...
Change-Id: I1eb5ea8d6faafe40383d3bb92517307e47ceca9a
8 years ago
Richard Fuchs
741140341f
move "totalstats" out of callmaster into global scope
...
Change-Id: Ia5b95e788c1d486a86b6f916dcff5b88022f5897
8 years ago
Richard Fuchs
cf3a8f9e16
move 'poller' member of callmaster into global scope
...
Change-Id: Ide88caff59529278e45ceef4f9664bfc07f67b3d
8 years ago
Richard Fuchs
dffbddb2d6
don't use g_ prefix for global variables
...
Change-Id: Ifd843b01d7fccf294f97fdf48308c71268e1b8ae
8 years ago
Richard Fuchs
e87b2710c8
move matching regexps out of callmaster into global
...
Change-Id: I42779b3a1b9aef8b98ddecce6fa4093589ab6d62
8 years ago
Richard Fuchs
790e596c58
move cngs out of callmaster into global scope
...
Change-Id: I138ca8756dfc576451bc7c3fca1db89d6616fb1e
8 years ago
Richard Fuchs
1aa9944fe4
TT#27550 implement interface round-robin selection
...
Change-Id: Id5cf290cc9d044716b5f55cf416dc40b87f23f24
8 years ago
Claudiu Boriga
3472821ccc
Add option to set TOS for control-ng interface
8 years ago
Richard Fuchs
13d51f0df0
add extra thread allowance for blocking CLI code
...
make sure not to run with a single thread if only one CPU core is
present
proper fix pending: convert CLI code to non-blocking, muxed, using
streambuf interface
closes #399
Change-Id: I09a6d758c668fe6a2bbe6735e3299d3c8cb1ba58
8 years ago
Michael Prokop
6932f22c66
TT#22411 Fix spelling mistakes/typos
...
s/paramter/parameter/
s/fowarding/forwarding/
s/readabilty/readability/
s/recieving/receiving/
s/genrated/generated/
s/parametes/parameters/
s/existance/existence/
s/shouldnt/shouldn't/
s/seperate/separate/
s/neccessary/necessary/
s/occurence/occurrence/
s/timout/timeout/
s/ouput/output/
Change-Id: I4403eb54130f3c114d7881054abfdfc8223b5bf2
8 years ago
Richard Fuchs
e7d75bd275
TT#19350 add option to manage iptables rules directly
...
Change-Id: I8e2b47bf34206ed5cc369649bf8ef875ac271169
8 years ago
Lucian Balaceanu
63bdd61565
on startup, also accept hostname:port params for endpoints
8 years ago
Richard Fuchs
223c7f17dd
TT#12800 abstractize rtcp parsing and logging functions
...
Change-Id: I26e02a6851a51ea0720ac8ce1fc4a9e27d2ffec4
8 years ago
Richard Fuchs
531febbbb0
migrate log-stderr and log-facility options to lib for recording daemon
...
Change-Id: I3322eccf01c606f29024fc786b257c45d6b92b54
8 years ago
Richard Fuchs
6594b2b884
fixes for coverity
...
Change-Id: I92eebf9a44fed8d826e0c2a207c05cd02c5ade0c
8 years ago
Richard Fuchs
e85759a3b8
fix some errors caught by coverity
...
Change-Id: I3f5bfc2df00ab9b031eef5a1c71b6ff3ba25e60c
8 years ago
Richard Fuchs
5c0dc629c1
consolidate AES crypto suites for different key lengths
...
Change-Id: I2d031ed7dd6b9154203b79f2a6dba2b246d2063b
8 years ago
Frederic-Philippe Metz
14b37ebfe5
Removes multikey stuff
8 years ago
Richard Fuchs
f77726caa8
update redis one-key concept
...
Change-Id: Ifc164f5737decefef2463af57d75f717b97e169b
8 years ago