Richard Fuchs
c969ea1e57
move stats and statsps into global scope
...
Change-Id: I02d16e31f8980bd0ef3ff3a190b23dc61c087018
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
399e15b39a
make the callhash global
...
Change-Id: Ifa1fbb5d1b1f623dbc6a1bfac556342735b40161
8 years ago
Richard Fuchs
acba2751f8
suppress log message on "comprehension option" STUN attributes
...
closes #436
Change-Id: I3b5583a83500b7cbfaf1317cae18d5f186554672
8 years ago
Richard Fuchs
018e35cba8
TT#27200 add option to omit a=rtcp attribute
...
closes #428
Change-Id: Ie186291b7b0107d67488facbfea42cd4915556b4
8 years ago
Richard Fuchs
c17f4fe53d
avoid side effects in assert()
...
closes #434
Change-Id: I6aad7ccb556453650d80cf588ae80daf98d3369d
8 years ago
Richard Fuchs
1aa9944fe4
TT#27550 implement interface round-robin selection
...
Change-Id: Id5cf290cc9d044716b5f55cf416dc40b87f23f24
8 years ago
Richard Fuchs
61d828a48f
change str_chr_str() semantics
...
Change-Id: I0fb541215a1bb1a248693a6258e953827258b7ec
8 years ago
Richard Fuchs
b7aeff9a1c
TT#24550 implement CLI get/set log level
...
Change-Id: Ifedc8561f08fe75af210346f5032e8d893f2e0d5
8 years ago
Richard Fuchs
e1ce74985f
TT#28354 consolidate CLI string handling
...
Change-Id: Icb0734f94d5910427a57c85e31e85782a62b22fe
8 years ago
Richard Fuchs
2eb01695bb
TT#26756 clean up CLI code using streambuf
...
Change-Id: I0e6c264d5cbd569fb35fab3ad2b0a4f6413949b0
8 years ago
Richard Fuchs
d10952a029
TT#26757 add tcp_listener framework
...
Change-Id: I402d36637235ba0cc03e77d426f4dd9cbc4722a9
8 years ago
Guillem Jover
fd3c1d2519
TT#26513 Delete the kernel forwarding table on startup
...
If we are creating the kernel forwarding table, we have to make sure it
has been deleted already, otherwise we can get into collisions with the
already setup forwardings, and the subsequent add will fail anyway.
Change-Id: I2601c602543ff3e3493bae296d263dde545ff352
8 years ago
Guillem Jover
1b8f5e4a55
TT#26513 Preserve errno on error returns
...
We should preserve the errno value so that the caller can report
accurate error information, as the close() call could fail too.
Change-Id: I1a36ace8f47ad3ea550aa3e2e272922633abfdca
8 years ago
Richard Fuchs
77de3d06ea
Merge branch 'add-ToS-to-control-ng' of https://github.com/1and1/rtpengine
...
Change-Id: I217e772f79a1e1147ceced418020513fe277055f
8 years ago
Claudiu Boriga
3472821ccc
Add option to set TOS for control-ng interface
8 years ago
Dmitry Poroh
cc09f4d3de
Crash stream_packet in case of out_srtp is NULL is fixed
8 years ago
Richard Fuchs
031921c322
purge old entries from SSRC hash table if it gets too full
...
fixes #417
Change-Id: I4da50858d3c4959687b341b7c0856a868c87ffa7
8 years ago
Pawel Kuzak
8941c827d3
Fix control statistics headlines
...
StopRec was missing
8 years ago
Richard Fuchs
d6bc658c36
Merge branch 'reduce-offer-time' of https://github.com/1and1/rtpengine
8 years ago
Claudiu Boriga
ab0cb0c7a7
don't use g_hash_table_foreach for call_timer_iterator
...
this keeps the callmaster->hashlock for a long time
so copy the list of calls instead and update call refs
8 years ago
Claudiu Boriga
2250ab11fd
make METADATA section appear in the metafile at
...
intialization when recording using the proc method
add new METADATA sections only if they differ from
the previous ones
8 years ago
Richard Fuchs
4cab964b42
Merge branch 'fix_redis_recording_crash' of https://github.com/1and1/rtpengine
8 years ago
Claudiu Boriga
d5fea12937
check call.recording structure before using it
...
if call recording is not configured but the redis db contains
calls with recording flag, then call.recording can be NULL
8 years ago
Richard Fuchs
cc056c148f
add rtcp-mux-require option to force rtcp-mux usage for WebRTC
...
fixes #404
Change-Id: I4a5dbf30a7c02058216ea7e8c8782cf83e214623
8 years ago
Richard Fuchs
0c6b2cfc22
Merge branch 'fix-TOS-for-redis' of https://github.com/1and1/rtpengine
8 years ago
Claudiu Boriga
ca622b40ef
set TOS for redis streams
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
Richard Fuchs
00cc28dff4
TT#22660 don't zero out SDP origin on zero connection address
...
Change-Id: Idc68132a7ae23a6273464927ecf27237cdc9d6cf
8 years ago
Richard Fuchs
6abe388621
fix compile warning
...
Change-Id: I6d93986eca7b50a8ae5ddf075c37123f8ebcdcde
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
523228b981
Merge branch 'stop-recording' of https://github.com/1and1/rtpengine
8 years ago
Claudiu Boriga
cf15275f30
add stop recording comand to ng interface
8 years ago
Richard Fuchs
e7d75bd275
TT#19350 add option to manage iptables rules directly
...
Change-Id: I8e2b47bf34206ed5cc369649bf8ef875ac271169
8 years ago
Richard Fuchs
dd338975f6
drop log level for messages about unknown RTP/RTCP packets
...
closes #395
Change-Id: I8a3c9c1d06ce04a4bb2280e16e2d170cd27ac65b
9 years ago
Richard Fuchs
c8d60aed61
Merge branch 'fix_cdr_logs' of https://github.com/1and1/rtpengine
9 years ago
Claudiu Boriga
b317acdbde
don't log corrupted cdr for foreign calls
9 years ago
Richard Fuchs
1206e26f76
add missing lock for SSRC hash dump
...
Change-Id: I165ceae3f6d5bada4ec0390c440f84bcde542952
9 years ago
Richard Fuchs
3dbc1469b0
Merge branch 'fix_1way_statistics' of https://github.com/1and1/rtpengine
9 years ago
Richard Fuchs
43c3e7ded7
Merge branch 'fix_redis_null_access' of https://github.com/1and1/rtpengine
9 years ago
Claudiu Boriga
b3ce08a1ea
Count multipexed packets in statistics. Don't count errounously when no stream is found
...
fixes #387
9 years ago
Claudiu Boriga
67de59ada4
check that redisContext is not NULL before using it
9 years ago
Lucian Balaceanu
63bdd61565
on startup, also accept hostname:port params for endpoints
9 years ago
Richard Fuchs
bb50729806
fix parsing of IPv6 address in legacy UDP protocol
...
Change-Id: Ida602ceddac51b8045b0beee59015facd7b1ee5d
9 years ago
Richard Fuchs
de129b78c7
Merge branch 'fix_graphite_crash' of https://github.com/1and1/rtpengine
9 years ago
Claudiu Boriga
9f2286d7bb
fix bug that makes rtpengine crash when graphite server is down
...
replaced select with poll because when a large number of file
descriptors are open segfaults might happen
9 years ago
Richard Fuchs
983c4afb01
fix correct use of CFLAGS over LDFLAGS
...
Change-Id: Ibea683fea6f16cc3a944c99de4db44051571fcba
9 years ago
Richard Fuchs
4310e067a4
support pkg-config for xmlrpc-c
...
fixes #373
Change-Id: I063c3f6f4f1ea4ee08fa668f006931f951dd3f95
9 years ago
Richard Fuchs
a9d55c6fe7
always decrypt RTCP for SRTP<>SRTP session for stats purposes
...
fixes #366
Change-Id: Ie99766a3561d3adfcb06d75c465a9aa02c16b2ab
9 years ago
Richard Fuchs
f979159d0e
fix segfault when no SSRC pointer is present
...
fixes #370
Change-Id: If1e89b21a183acd79a6c84aee6e470849022e37c
9 years ago
Changli Gao
6824865c10
DTLS: Fix potential double BIO_free
...
We should set init to 1 after calling SSL_set_bio(), otherwise if
we fail to call EC_KEY_new_by_curve_name(), we will free r_bio and
w_bio twice: one with BIO_free(), and the other with SSL_free().
9 years ago
Richard Fuchs
3f12517510
report last error when port could not be opened
...
Change-Id: I397101dc64c4e2f706fd604e524b27c86e51a6a5
9 years ago
Richard Fuchs
8f55dd17f1
fix pushing wrong SSRC to kernel module
...
fixes #360
Change-Id: I6051bc3e81b06e89e6b8d74dbff94363716369fe
9 years ago
Richard Fuchs
2a03c008ac
clean up code artifacts
...
closes #314
Change-Id: Ie6762654adc67a2cc2fd34c0bdda7a514928d389
9 years ago
Richard Fuchs
23bc99ed81
TT#12800 consider RTCP XR reports for MOS calculations and stats
...
Change-Id: I18f6ff92bab432caf446c59395ab253a305378f4
9 years ago
Richard Fuchs
ab0dba7d14
TT#12800 support custom monologue labels
...
Change-Id: I55b2db88307088c4d5e0161eae6e3aa0b5d1b053
9 years ago
Richard Fuchs
2cf93904df
TT#12800 restore SSRC table from redis
...
Change-Id: I9c6a5a33ae14e803e5badade8307d4f53f7a04a2
9 years ago
Richard Fuchs
9108b14b80
TT#12800 records stats average not just for MOS but all values
...
Change-Id: I1c641a654623022df617da98c4a53ed34decb211
9 years ago
Richard Fuchs
4ad693a063
TT#12800 report MOS stats back to proxy via NG protocol
...
Change-Id: Ib0cc5b39a5f50d68a8013b738ac7d87b32069928
9 years ago
Richard Fuchs
5c84a6f61c
TT#12800 limit size of SSRC hash table
...
Change-Id: I51ba759d1f328f08b03e14a2f8545453f6a8ade8
9 years ago
Richard Fuchs
11dac7b28f
TT#12800 add MOS statistics to final log output
...
also converts call->created to a timeval
Change-Id: Idb71ada22a2d04637670b7515e54f2994f8d4c93
9 years ago
Richard Fuchs
868c3b64fe
TT#12800 add ssrc handling into packet_stream struct
...
Change-Id: I7da97a6435854a846d2782448b32c69327756ccf
9 years ago
Richard Fuchs
84e76e7cba
TT#12800 calculate MOS values from RTCP RR
...
Change-Id: Ie4ba70ae8290f497a4a5d756a369911b96205299
9 years ago
Richard Fuchs
0f285899e0
TT#12800 avoid creating empty log messages
...
Change-Id: Ica806fbc4cbe723cffdc16a7206fd4890af9fe53
9 years ago
Richard Fuchs
90693a1969
TT#12800 refactor RCTP XR processing
...
Change-Id: Ieb6279d866cae3e4f6b13c2755518c2bbb7e428c
9 years ago
Richard Fuchs
70b7112617
TT#12800 store and process RTCP SR and RR for statistics
...
Change-Id: Ia78c37ae9d24df6783b664da6d395263f9f39e91
9 years ago
Richard Fuchs
c1711ea948
TT#12800 consolidate and combine RTCP parsing and logging
...
Change-Id: I8690b5d180b3eaf1c1b0b4295734609c5125a453
9 years ago
Richard Fuchs
223c7f17dd
TT#12800 abstractize rtcp parsing and logging functions
...
Change-Id: I26e02a6851a51ea0720ac8ce1fc4a9e27d2ffec4
9 years ago
Richard Fuchs
b3583633e3
TT#12800 canonicalize ssrc handling
...
Change-Id: I481dd4062f044f9f7add65b4b82d276629f47ce8
9 years ago
Richard Fuchs
5e3ce30272
TT#14008 add missing DTLS locks
...
fixes possible segfaults due to race conditions
fixes #283
Change-Id: I7efba57d914163986c294b8fb1dd9531d5ef7a89
9 years ago
Richard Fuchs
37a9521901
don't treat media socket write errors as fatal
...
closes #351
Change-Id: I36add0e8aca8856e053b10abdfffbfa63e134daa
9 years ago
Richard Fuchs
531febbbb0
migrate log-stderr and log-facility options to lib for recording daemon
...
Change-Id: I3322eccf01c606f29024fc786b257c45d6b92b54
9 years ago
Richard Fuchs
c5a202ebcd
write both types of media indexes to recording metafile
...
Change-Id: Ib6d5b43aa8a94ad62f73d644e5a2009d804cf17d
9 years ago
Victor Seva
f7aa5fa6b6
TT#14571 PEP8 for YouCompleteMe config
...
Change-Id: I8fdc9b3d3ceb2cfa7333cb8520228629f1c521f1
9 years ago
Richard Fuchs
d269f6a320
eliminate orphaned redis code fragments
...
Change-Id: Id2c394f61387d3cc1f89a62b880c4ecc1c9d060e
9 years ago
Guillem Jover
0b1bdbb339
TT#14400 Do not NULL-dereference pointer
...
When debugging mode is enabled, and the socket variable is NULL, we will
try to dereference it to print the debug message. Split the checks to
avoid that.
Change-Id: I0e0643900d3d8463937b7fd47b21cd91cf49b73c
9 years ago
Guillem Jover
bd833c2586
TT#14400 Use a boolean instead of a bitwise operator
...
Using the bitwise operator seems confusing here, and the boolean
operator will in addition short-circuit which should not be very
significant performance-wise, but still nice.
Change-Id: Icda38d7799aa264d9a6cc1f4a71587e60189b18e
9 years ago
Victor Seva
3c813acacc
support wheezy build reported at #343
...
(cherry picked from commit db7537b1f0499ca35bc58f61522e2eb3be91a7aa)
9 years ago
Anthony Alba
b1e259c109
Document libsrtp AES-256 SRTCP bug for interop
9 years ago
Richard Fuchs
0f07e46d62
fix 32-bit compilation errosr
...
Change-Id: I237a077c4e2d1064af963b3f2a2e51bb2a8388f6
9 years ago
Richard Fuchs
6b6b8ea54a
don't use anonymous unions to make old compilers happy
...
fixes #347
Change-Id: I32ef9efa674e74c3a1263c0fd786a16562ea7838
9 years ago
Claudiu Boriga
edac4f2cd7
make cli_incoming accept multiple connections
...
fixes #280
9 years ago
Richard Fuchs
5dcd533a7f
ensure positive random numbers
...
Change-Id: I993a2b90b8ae56ac263597c5a107be9c1f92d001
9 years ago
Richard Fuchs
7182e751a1
abandon usage of random()
...
Change-Id: I870fd7963dc9148b496361892a2bfe2cc0f88690
9 years ago
Richard Fuchs
6594b2b884
fixes for coverity
...
Change-Id: I92eebf9a44fed8d826e0c2a207c05cd02c5ade0c
9 years ago
Richard Fuchs
e85759a3b8
fix some errors caught by coverity
...
Change-Id: I3f5bfc2df00ab9b031eef5a1c71b6ff3ba25e60c
9 years ago
Anthony Alba
87aaf82111
Document RFC 3711 errata id 3712 that SRTCP_R_LENGTH == 6 is canonical
9 years ago
Richard Fuchs
5c0dc629c1
consolidate AES crypto suites for different key lengths
...
Change-Id: I2d031ed7dd6b9154203b79f2a6dba2b246d2063b
9 years ago
Richard Fuchs
3930f7748e
Merge branch 'aes256' of https://github.com/aalba6675/rtpengine
9 years ago
Richard Fuchs
7088e1586a
remove obsolete redis restore function arguments
...
Change-Id: Ia45cf4316ffa7a3d4fd813c74a1c76ee5dc38058
9 years ago
Frederic-Philippe Metz
d88587512a
Cleanup according to pull req #335
9 years ago
Frederic-Philippe Metz
27679b188e
Moved the json reader locally and removed it from call struct
9 years ago
Frederic-Philippe Metz
95d942005d
Adds missing log output
9 years ago
Frederic-Philippe Metz
8f01e780a8
First attempt to seperate more stats and cdr away from the core running code
9 years ago
Anthony Alba
d5cecc500f
Add AES-192, AES-256 CM to kernel SRTP
9 years ago
Anthony Alba
357bb1d50f
Refactor to add explicit session key init functions
9 years ago
Changli Gao
a3f27f8751
STUN: The most significant 2 bits is 0xc0 in hex
9 years ago
Anthony Alba
b8a2f015ad
Initial support for AES-192, AES-256 in userspace
9 years ago
Richard Fuchs
d513c6dd2b
add missing lock for failed call restores
...
Change-Id: Ibeff1501483038c528f9ba92fe461ec866e73bff
9 years ago
Richard Fuchs
d8cc8caf9c
combine two mallocs into one for redis restore
...
Change-Id: I6a5c26b6e0c856b1930273c37b35020dd48c6505
9 years ago
Richard Fuchs
0cd3b9f650
Merge branch 'redis-onekey-concept-improvements' of https://github.com/1and1/rtpengine
9 years ago
Frederic-Philippe Metz
267b57c33f
Implemented comments from Richard from pull req #323
9 years ago
Anthony Alba
3e2e0242c3
Determine base64 padding from enc_salt_key_len
9 years ago
Anthony Alba
1fc77bc3ac
base64: flush base64 decoding, and skip base64 padding in crypto line
9 years ago
Frederic-Philippe Metz
d904fb2fe5
Removes 'json-' prefix from redis key (callid)
9 years ago
Frederic-Philippe Metz
279e5fa36e
Removes commented code
9 years ago
Frederic-Philippe Metz
d08dd6a5f3
Fixes SRTP restore in onekey concept
9 years ago
Frederic-Philippe Metz
6985784cea
Fixes redis recording flag in onekey concept
9 years ago
Frederic-Philippe Metz
14b37ebfe5
Removes multikey stuff
9 years ago
Frederic-Philippe Metz
f3364d9e7d
Omits redisreply in redis restore and eliminates 'multikey' feature
9 years ago
Richard Fuchs
f77726caa8
update redis one-key concept
...
Change-Id: Ifc164f5737decefef2463af57d75f717b97e169b
9 years ago
Frederic-Philippe Metz
ea9512c520
Adds URI encoding for json strings in redis.
9 years ago
Frederic-Philippe Metz
ed760fb566
Fix more issues from richards comments
9 years ago
Frederic-Philippe Metz
88b89ea2e6
Fixes STR_FMT comment my @rfuchs or pull request #316
9 years ago
Frederic-Philippe Metz
9ebd06f40f
Some fixes for pull request #316
9 years ago
Frederic-Philippe Metz
749a7da7b0
Implements redis onekey concept
...
The redis onekey concepts is introduced to reduce traffic to redis
and redis notification traffic.
It modifies the current structure for one call in redis, which are
multiple keys with pre- and postfixes and the callid in between to
one key with the structure "json-<callid>". The value is a json
formatted string with the previous multi-key identifiers in it.
9 years ago
Richard Fuchs
1d5668d793
compile fixes for openssl >= 1.1.0
...
Change-Id: I815c89dde5b6e85b9887dcaf04c25f0a45dcfd5c
9 years ago
Richard Fuchs
9036d30ed8
fix call struct being accessed after obj_put
...
Change-Id: I33dea4d637c531bdf33c54485da5627b5eeb5a32
9 years ago
Pawel Kuzak
d2314ea247
Reduced complexity in onRedisNotification()
...
If a call already exists and a Redis notification for that call is received, don't change the call (ignore notification).
9 years ago
Richard Fuchs
97183b10df
make sure call_destroy unrefs the correct call object
...
avoids a possible race condition with rapid create/delete/create of the
same call
Change-Id: I293c7064ea0c491b4040eb41300c56384c325719
9 years ago
Richard Fuchs
df869fff0f
automate lib symlink creation in makefiles
...
Change-Id: I5bedecfbe6e7c61bd505c075c4b2cd444cc4cc41
9 years ago
Richard Fuchs
fb783f0080
TT#5566 configurable recording daemon
...
share more code between the two daemons
Change-Id: I77af5146cf3cef6ab8c145274b3fd8b031fba3e4
9 years ago
Richard Fuchs
28b80181f2
TT#5566 add support for config file handling
...
closes #252
Change-Id: I92dd61c100319469c6ff4764c90bba5c3ab367a2
9 years ago
Richard Fuchs
ea72733ac0
support daemonizing in recording daemon
...
Change-Id: I9c76d63efe72d6598087a97f8bf93e0958b81fad
9 years ago
Richard Fuchs
1de1706152
don't engage logging system if log level is too low
...
Change-Id: I3d54da1b587637119f3e4de92e50d029274204a7
9 years ago
Richard Fuchs
f958b2a197
split logging mechanism into separate common files
...
Change-Id: I92dd843db2d1b5719e7809ce7d151d08c53938f2
9 years ago
Richard Fuchs
30dcadab15
TT#5566 rudimentary support for multiple audio codecs
...
Change-Id: I7e473f5d17874641253b4b16c3470851743818e1
9 years ago
Richard Fuchs
7395f8bef1
TT#5566 recognize and ignore (for now) RTCP packets
...
Change-Id: Ife95c9506a652b5410380963dbc1cf98f4ace611
9 years ago
Richard Fuchs
7a17b29158
Merge branch 'no_redis_update_flag' of https://github.com/1and1/rtpengine
9 years ago
Richard Fuchs
eefb085528
abstractize recording format and fix ipv6 header
...
closes #293 #290
Change-Id: I85db7068067da803898c64491dca90cfc737c677
9 years ago
Kristian Høgh
57d6e01292
Support IPv4/IPv6 for fake ethernet frames
9 years ago
Kristian Høgh
0edfb2dfcc
Make pcap file format an option
...
Valid options are raw and eth. Default is raw as it was before last commit.
fixes #290
9 years ago
Kristian Høgh
29488f9e49
Change pcap format to ethernet
9 years ago
Richard Fuchs
d7fa0689f9
TT#5566 rudimentary wav file output
...
Change-Id: Icdc97a9dc849bba6ba6add12d0bdd17f8b7712cd
9 years ago
Pawel Kuzak
65e80f620d
Added flag 'no-redis-update'
...
This flag can be used by the signaling proxy in order to tell rtpengine not to persist the call into Redis upon receiving offer/answer() control commands
9 years ago
Richard Fuchs
5395db3cd7
fix segfault when source endpoint address isn't filled
...
fixes #292
Change-Id: I853c5ae328e173fd173df7878ddec174f30c4230
9 years ago
Richard Fuchs
411c3b3373
TT#5566 checkin of external call recording daemon
...
Change-Id: I8102144ab1508fe815be84d727f6fa3234fd0994
9 years ago
Richard Fuchs
e3a7248b01
resolve segfault when recording is disabled
...
fixes #288
Change-Id: I628643914cd1f41081ffef0018628b1b38348719
9 years ago
Richard Fuchs
984585a32c
TT#5003 implement kernel-side call recording
...
Squashed commit of the following:
commit 1af3efd464d9c86eb428aa29ca084ead67ba4cdc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Nov 7 11:10:22 2016 -0500
save and restore call recording status to/from redis
closes #254
Change-Id: If3cd34fcfd64fa8164521a86eb1d1aa0eb327f3b
commit 460053a2316ac77ebf2609af4e5bf73beac57643
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Nov 4 14:09:08 2016 -0400
restore libcurl build dependency
Change-Id: Ia853f928caf9e443bb69c4015cbba805e6d24153
commit 5f5fd88fde67ffcd5a83f1a18e9134702f995686
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Nov 4 11:22:27 2016 -0400
ensure we are always decrypting SRTP when recording
Change-Id: I2b75afefcadc55ebf1bf6a19a983134c87c41602
commit 69b4e9fa886c673bed6168c2092864fdff2619aa
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Nov 4 09:56:47 2016 -0400
remove redundant ng result=ok logic
Change-Id: I84d7245f52dc12a4002b4dd2b736afea9ae733fa
commit 411213dd3d17c1e54eeb6813cb0473a706a10cee
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 16:04:54 2016 -0400
support the `start recording` command message
Change-Id: I316e90fd3fe34f01b20826936ef620bcff785397
commit ae1910c68d90d0c1f913bd09f9ecdee5579f53f4
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 15:01:57 2016 -0400
move logic for `record call` flag to where it belongs
Change-Id: I65a3b5d62f4360df4251faea1339b5a6355c0e6d
commit 217008d572d103ab4146cdcfb9c292610c869643
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 12:49:48 2016 -0400
support combining streams into one pcap in reference scripts
Change-Id: Id82936ae7ef1b406acf3b4d3429ecc1cb6e2356e
commit 3fcafd92750d20e07b9c522cd15df0f1745bd412
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Nov 3 11:40:00 2016 -0400
output additional details to metafiles
Change-Id: I0539a0617aff51c9c499bbd9586d61c7e7ca7e7c
commit e81f413f3ba228f548931a234a1c18c13c62b135
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 16:18:28 2016 -0400
globalize kernel access variables
Change-Id: Ie07e0ebb8705189c8b1e49f596080ff8bcaef64f
commit 5e74609c7c3e5237fbd9995b90b29b2c456d2c04
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 12:20:55 2016 -0400
duplicate error messages to stderr when in foreground
Change-Id: Iaf9d8d1392946046846cb6f2c0fb928a96893911
commit 032077bed4a4b3610e88deab905f6a41616393e6
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 11:38:22 2016 -0400
eliminate dummy virtual function
Change-Id: I7cc2596f31350bf0d39253b3bd7e9fe1cec2b92d
commit 9177effc4e56b0fc26f44da525fe88d8aa3a6f05
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 11:30:58 2016 -0400
clean up recording code related to ng interface
Change-Id: I69c6d953f8467e5154f000979c94f2dc3a79918a
commit ac0ec6a5e7b4927af5294a6e86a129a8ffc90e7a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Nov 2 10:57:15 2016 -0400
output before/after sdp to metafiles
Change-Id: I1d3177e40591d6b4c4789eb6e18132743a9eda45
commit 68b27fa964455eef4c4acaf9540d19013b3df3e7
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 15:40:20 2016 -0400
fix header length problems
Change-Id: I896453f72df3ba146251f5d82ca1d02dd0ad08e9
commit ebbd942ad00b3a4eb74fbfcd915e82a263243d02
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 14:14:08 2016 -0400
support writing pcap files in reference intercept script
Change-Id: I53502ba416426e9012a68c35cdf4b457d7c3eb69
commit fe82efa40a5b0fee4bed2601bab7c1afa09b0ce1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 13:35:47 2016 -0400
ensure we never make any calls that might sleep when holding locks
Change-Id: I1ce6aeced1f61715374b80f6fb1fbeafc987ae7f
commit be5316e804368fad28c2a0012ac2d60cb476b740
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 13:08:19 2016 -0400
fix math in auto_array_find_free_index
Change-Id: I39c786b03dbafe59b88a1945ac27964c3852c9eb
commit 183d4939ca8e1fc0f39271713435b016c055bfff
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Nov 1 11:41:47 2016 -0400
adding rudimentary lock debugging
Change-Id: Iff541c58e5ea4c3fc2ec16e93396148f935bc4f3
commit 51a75c5022f96a23b8fff6738b5fa4ad7095a746
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 31 14:35:17 2016 -0400
handle read errors in reference intercept script
Change-Id: I047d763dbd498026a0d8db24c5532155c75fd6e6
commit 69a460de08c6dfe163f9d90dee478c72ea56a2fc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 31 14:34:54 2016 -0400
changed locking semantics to avoid proc_clear deadlock
Change-Id: I70dbc07aa8af7b9860beca86b4b82d8180d8a0ae
commit 62eae1459a8dc116a0f965d014dd2962d9f2ece2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 31 12:50:26 2016 -0400
additional debugging
Change-Id: I81c93c2dd9007ed6a0d6e0b147de0deb44b7b023
commit fd367947404c25f7122479dc805ca895346e3568
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Oct 28 12:07:25 2016 -0400
adding reference implementation using inotify
Change-Id: Ibec73bdc4c7a576e4beaf5e749567dd2508be4df
commit f8fde6cc7308faf9aea5016d1b325fe54ace4f73
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 15:55:10 2016 -0400
add stream info to metadata files
Change-Id: I200df14a3e35c2c0077866444b96692de4303761
commit 5a8b4dd156d014756681c644549f481af941b294
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 14:47:49 2016 -0400
pass intercepted packets to kernel and tie in kernel idx
Change-Id: I33ff297c4a66276b05d0e5d537b0281f27116243
commit 0c0b97ea3940a34843375c58255d40cf4280bd5c
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 12:29:02 2016 -0400
abstractize fake packet header and support ipv6
Change-Id: I6c1ad1cccad306f3d306fb3387efcb033a3574b2
commit e1b648b9baea609cbe9836c81a5a2cd41ef464cb
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Oct 27 09:32:40 2016 -0400
support creating kernel intercept streams
Change-Id: I1f9bdda61af52814f07f765a8b558a7491cfc0b9
commit b6737ec9635d2d7a8d0245bab7c51a077cd814d2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Oct 26 14:46:13 2016 -0400
get rid of call->record_call flag
Change-Id: I04dcba49b07fc669b0bb4bcea8ccc2b52cb76e02
commit 6ed362c120995d1e3fdff71f7e440e73737e7fcb
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Oct 26 12:53:04 2016 -0400
add recorded call to /proc
Change-Id: I1fe64b9fb8fe3604bb7d432899c43e3e37ea6a4f
commit 62d2508ecf69fbdf9ba1faf3e2433fa6f717740a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Oct 26 10:10:05 2016 -0400
simplify some code
Change-Id: I2a27400e91f58aa8ea20d3e610a7509d2e9a0dfc
commit 0c811a8e91ded41487bf045e6df55fb31cce7671
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 16:12:59 2016 -0400
create separate ../tmp recording dir and clean up duplicate code
Change-Id: I94e0c19a1e8fed5a30212b79930987333f5e6786
commit 16592a92300b856084ebd5769ecae35788f0ad63
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 11:26:54 2016 -0400
remove explicit libcurl dependency
finally properly fixes #251
Change-Id: I3feafe2d0086f6dd789175e6ec0079c54edd487a
commit c78ac5bbb7e65609175753933f7e75d54ea21c30
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 10:48:50 2016 -0400
abstractize recording cleanup routine
Change-Id: Ib9fc46542f273bab53f611a1456f02d67edfc966
commit d8358c9a2c6cbd66e17d4bb08dba96a3b2e2d41a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Oct 25 10:07:44 2016 -0400
use shorthand for function pointers
Change-Id: Idf43949e20281a10317e22a5b68a6d133e398bd4
commit 9417437c1092770e36bde22b508f9d71078d4a1b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 24 15:31:56 2016 -0400
abstractize individual recording functions
Change-Id: I0974696b6bb361fce39b24d6be91b5c052ee2b14
commit eb631cd876a0f941ed4fb6d47412a6892e019f1b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Oct 24 11:54:42 2016 -0400
abstractize call recording mechanism
Change-Id: If8672051227944544d9cf916d359c5db67235e3e
commit 70797ceb8f36c45593688652df98f19a5c1dd9f4
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 14 11:25:05 2016 -0400
combine two mallocs into one for user-generated packets
Change-Id: I585d129f10d379a5cb853382773f91a7cec9a98d
commit f62f71cee404893b3f5076489d6a3eb1ad6f69c0
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 13 14:22:18 2016 -0400
check for and avoid /proc file name collisions
Change-Id: Ie9eb9ceef8f32de8aba816f0121e768c57fa7402
commit ec6b3d22fcce8e7e2edd35704a559fe392406561
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 13 11:02:04 2016 -0400
implement free list
Change-Id: I3e7dc2325c937923d19ce6000f2cf1c011e51037
commit bd75a1cf254c484878d07ecceca7220cdbf1ddb3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 13 09:30:36 2016 -0400
make number of packets retained per stream configurable
Change-Id: If1c87f80dd7367cbc274d13c15f94836ef9c8cb1
commit de259c3d646526bd200f619371668798ddae86b2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 12 15:15:01 2016 -0400
facilitate passing packets from kernel module out to userspace
Change-Id: I2317a007084a1718e185ba04632c53a9ebe5f29d
commit 3aa88716fb86c62f96b6dfc7d0d9c9755fa1f389
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Jul 11 10:45:10 2016 -0400
restructure calls and streams to global arrays
Change-Id: Icfca615b21f2e51b1abda4422c4eeb8f4ac70a9b
commit 6cf9980f3e61f1f1d44b5ce883298ca2726af1b2
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jul 8 11:53:32 2016 -0400
implement poll/select mechanism
Change-Id: Ic10c017250f0991f691a887b078e80f694bba853
commit d95829e07b2bf4d3352806c70b3393ae3a8609fb
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jul 8 10:44:38 2016 -0400
discard new/old packets as required
Change-Id: If73ce77dcbc24addb6ce0931b90de0f5efae9f51
commit be1d769e4454f1d98f0b75cc8301c128a40e980c
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Fri Jul 8 10:25:38 2016 -0400
implement EOF for stream readers
Change-Id: I858dc1fdd7df3b65283e1d96457d87e7452840f5
commit ed2d98d55a87ce428cdc66d9336035f3dc0cb5ae
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 15:02:58 2016 -0400
blocking and nonblocking reads - incomplete
Change-Id: I7cbfb09507ad8726773d6a28ddb98d5981decd04
commit 246709c7f4741e669c4a78b48c382497bf57c6be
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 13:55:41 2016 -0400
rudimentary packet reading/dequeuing
Change-Id: I1a924e5cb2ef4e4f16aeff1f1dd90d0746f91da5
commit 427749394995d2e6fb8ad7ddc23c876b1c8e11f1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 12:40:31 2016 -0400
use kzalloc where appropriate
Change-Id: Icd6a109a69ab4f6dc9f7d35fd9e8fc9127f8e7e0
commit 5b07819217dfb47201a373e941aab185789484a9
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jul 7 09:07:54 2016 -0400
more module referencing
Change-Id: I2e34fe74f2edef9170a4558f6a24394240966d79
commit 1d8268f636c26ec21c3cfa2308bad91262e0768a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 14:56:42 2016 -0400
store delivered packets in queue
Change-Id: Id349b75e06f9dd77c884196b7726027ac5cab7ae
commit 23c6a53f94c46ead7093b5402486799fc631e432
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 14:21:27 2016 -0400
implement call for packet delivery
Change-Id: Ibeb815bf2fedfdd644d324c65b58a24871d47d4a
commit c8fd855f325128b78f4e276bfb26b479ef189b11
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 10:28:18 2016 -0400
automatic cleanup of objects upon free/delete
Change-Id: If244905e2d074f491229316f3305c9b0b1451792
commit 282ef603a83637c9a8e33ed31d09268fa45a6301
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jul 6 09:47:29 2016 -0400
unify read/write functions
Change-Id: I78b0dd05cd730e16655034994c74cbe23be23fce
commit e74c62cc6f0dce85fea6534d8d72e2f51e0947d6
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 5 15:36:00 2016 -0400
rename _push to _put and _hold to _get
Change-Id: I9b0ff5038b541bd3cfb961657c15a26f26ccdfb2
commit d71ce17529d1938ce2439b122fb6017e29dd079b
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 5 15:33:07 2016 -0400
support creation and deletion of streams
Change-Id: I7df05d232b5971c54ca50adce8144b5f1646fba0
commit 8be4e2c7c49dd7b893335f14ca98776a1f3fb12f
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Tue Jul 5 11:54:39 2016 -0400
create functions for redundant code
Change-Id: Id3772f12294ee9891d22d833274e5935814cae0b
commit 47ce4ca8f5d694e50c98f73147ed2eb81f14ea8a
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Thu Jun 30 12:12:19 2016 -0400
support creation and deletion of calls objects
Change-Id: Ie5f9aa978bac21fc30909f14d6a438494848dfd5
commit 8dab54209d3e52d41f78d8f54956a4ed3dc15da3
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jun 29 14:20:23 2016 -0400
create /proc/.../calls directory
Change-Id: I682a4bf23edbb72772d64963e3ba2cab2a521ff4
commit 1401ae8db5f9e2a973c670f3bf72e9019c451276
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jun 29 14:02:11 2016 -0400
rename kernel message enum
Change-Id: I45d7aeae43df1fe6ecd6b6965dbd6ba7e7b715d8
commit ce44ff0dbe67a6687d5fb1bea9d31e21c9464907
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Wed Jun 29 14:00:32 2016 -0400
convert kernel message data to union
Change-Id: I7cfd9fe81623efae0a828ba457aa0a4b1380ff03
Change-Id: I4bb0b7f6d29c1c7a2144e4735ed59f3dc0e37094
9 years ago
Lucian Balaceanu
e08f477413
Empty other_ml stops call creation
9 years ago
Lucian Balaceanu
877952ae8c
redis restore call fails when a sfd is null
9 years ago
Richard Fuchs
c5c0b70019
prevent segfault when no recording metadata is given
...
Change-Id: Ide96d7d1bd446f15c9b7b8e8bae2a944f1718c0f
9 years ago
Richard Fuchs
0a2a3cbf1e
fix candidates being inserted after a=end-of-candidates
...
fixes #271
Change-Id: I8a76f2d9c82154d4fac76edb9076c80be257c3c9
9 years ago
Richard Fuchs
9aa4aec91a
don't complain if no spool directory is configured
...
fixes #272
Change-Id: I035081d6f47a09c58fb9eaaaa37b38e726b378a5
9 years ago
Richard Fuchs
7f3ffa8c35
Merge branch 'master' of https://github.com/1and1/rtpengine
9 years ago
Richard Fuchs
94e3c8f9cb
TT#3881 re-enable selective packet loop check
...
instead of outright rejecting local endpoints advertised by remote
clients (to allow for deliberately daisy chaining packet streams), we
flag them for checking against actual packet loops as we did before
Change-Id: I5652e86e12f3c1c5053ea70b01e8d128ebf47751
9 years ago
Lucian Balaceanu
252ea8a943
Delete from redis_write when redis_restore_call() fails
10 years ago
Richard Fuchs
2e5e2ec1b9
detect and ignore when local endpoints are advertised by remote clients
...
fixes #65
this also obsoletes the old loop detection
Change-Id: I850d81500c45828af2c4d50d80278ec2d599c2a0
(cherry picked from commit 3254278cfd55167fb881cc665328744183773728)
10 years ago
Eric Green
234e92b47d
Merge branch 'build-el7' into build-el7-rebased
10 years ago
Lucian Balaceanu
8d089303bd
Fix log severity duplicate printing
10 years ago
Lucian Balaceanu
5732121794
Beautifying previous code
10 years ago
Lucian Balaceanu
e7f63dcf2a
Report own/foreign/total sessions to Graphite
10 years ago
Lucian Balaceanu
278561ba62
Printing severity level within every log message
10 years ago
Lucian Balaceanu
512cc24f9a
Print relay IP information
...
Add relay IP info in MDR, `rtpengine-ctl list sessions <Call-ID>`, call_destroy()
10 years ago
Lucian Balaceanu
bd376ab99b
Adding redis_expires parameter
...
Adding redis-expires documentation in README.md
10 years ago
Eric Green
ba93a08d24
Add libcurl dependency for recording
10 years ago
Richard Fuchs
dfcd8a3e21
Merge branch 'recording-metadata-threadsafe' of https://github.com/onsip/rtpengine
10 years ago
Dylan Mikus
44a153c05e
Made interactions to recording metadata threadsafe
...
Updating, freeing, and writing the recording metadata is now
threadsafe. This is in regards to the metadata that we receive from
the `rtpengine_offer` or `rtpengine_answer` commands, not the
`meta_fp` file.
We can simply use the `call->master_lock` variable for protecting
updates to the recording metadata. We had to move the metadata
handling code in call_interfaces.c up into the master_lock guarded
section. The code in "recording.c:meta_finish_file" is called with
master_lock protection already.
10 years ago
Richard Fuchs
62eae98d32
Merge branch 'handle_kamailioctl-touts' of https://github.com/1and1/rtpengine
10 years ago
Lucian Balaceanu
448fa9cef8
Redundant media setup: failover due to tout on offer response
...
Optimise call acquiring; fix reference leak.
10 years ago
Lucian Balaceanu
e04367036d
redundant media setup: failover due to tout on offer response
...
Handle the scenario by deleting old call and creating
an updated one on various rtpengines in the setup.
10 years ago
Richard Fuchs
a3c703b302
remove superfluous initialization
...
Change-Id: Ib826154cbb23340d1463158f45b557be0f86485c
10 years ago
Richard Fuchs
cac076fc84
clean up makefile for libpcap
...
Change-Id: I17e75709559c381b02865270b861397551a2a64f
10 years ago
Pawel Kuzak
e212c775e2
Merge remote-tracking branch 'upstream/master'
10 years ago
Richard Fuchs
8b9fd27f92
Merge branch 'call-recording-rebased' of https://github.com/onsip/rtpengine into onsip-call-recording-rebased
10 years ago
Pawel Kuzak
70a1085712
Do not print statistics of foreign calls
10 years ago
Eric Green
aea277dbbe
Add a mutex lock for recording to ensure thread safety when writing to pcap
10 years ago
Eric Green
9637e7bf74
Fix function header of rand_affixed_str to match header definition
10 years ago
Eric Green
865ce9a95a
Remove unused variables (from refactor) in the stream_fd struct
10 years ago
Eric Green
04b71dd2b5
Add back free that fixes memory leak introduced by rebase
10 years ago
Eric Green
c8bf1a7da2
call.h now include media_socket.h to reflect the move of the stream_fd struct
10 years ago
Eric Green
0e1892f532
recording.c fix my tabbing to use actual tabs
10 years ago
Eric Green
a8576eb2d2
Do not convert to network byte ordering before we are done using a variable
10 years ago
Dylan Mikus
fa8146f053
Fixes for recording packet counter
...
- The packet counter was accidentally a pointer, resulting in it
incrementing by 8 instead of 1. That is fixed.
- Use proper formatting macro for uint64_t printing.
- Start PCAP packet indexing at 1 since that is what Wireshark does.
10 years ago
Dylan Mikus
209cb7ab32
Modifications to recording metadata start/end time lines
...
In the call recording metadata file, start and end timestamps for the
call are now "key: value" formatted so you can tell what they are just
by reading the metadata file.
10 years ago
Dylan Mikus
5fe68b9097
Link recording metadata SDP to RTP packet numbers
...
We write out what RTP packet number the SDP came before. When we receive
an SDP offer or answer, we write out the RTP packet number that the SDP
preceeded. This will let us split the RTP recording PCAP around SDP
renegotiation for things like hold/unhold.
Also write out whether the SDP was an offer or an answer.
10 years ago
Dylan Mikus
526e9c251c
Get recording metadata call start from call struct
...
When we write out the start time of a call for the recording metadata,
we used to get the timestamp from the given `call_monologue.started`
member. This value changes after each SDP renegotiation. Now, we use the
`call.created` member.
10 years ago
Dylan Mikus
a109fa2d6d
Change metadata file permissions and fix some warnings
...
I changed metadata file permissions to 664.
I made some non-void functions properly return non-void values. This
does not change any functionality. Just quiets a few compiler warnings.
10 years ago
Dylan Mikus
d267a3bdd7
Tweaks to log verbosity for some messages
...
Changed some `ilog` messages to log to INFO or debug to limit the
verbosity of our log files.
10 years ago
Dylan Mikus
abd953812f
Fixes to match PCAP packets with SDP
...
We want to be able to match up the source and target <IP>:<PORT> with
the IP and port info sent in SDP. I adjusted the source and target
<IP>:<PORT> we write to the IP and UDP headers in the PCAP file.
I added the offer SDP (in addition to the already written answer SDP)
to the metadata file.
As a consequence of writing out the offer SDP, we will have empty PCAP
files and associated metadata files for calls that are never answered.
squash! Fixes to match PCAP packets with SDP
Added comments detailing the types of endpoint IP/port values we can
use.
10 years ago
Dylan Mikus
beab4d95b4
Write recording files in url-encoded format
...
We write the call-id out as part of the filename for pcap and metadata
files for recorded calls. We don't want troublesome characters to be in
the filename, so we urlencode the filenames.
10 years ago
Dylan Mikus
adb6193891
Minorly adjusted the recording metadata file format
...
In the recording metadata files, we now separate each logical section of
metadata by two blank lines. So, it goes:
1. the PCAP file URL
2. two blank lines
3. all answer SDP, each separated by one blank line
4. two blank lines
5. start timestamp
6. end timestamp (no blank line in between)
7. the rest of the file is unstructured metadata (any number of lines)
10 years ago
Dylan Mikus
d09f34a70b
Updates to description of metadata file format
...
Added the answer SDP lines to the file format description.
10 years ago
Dylan Mikus
0b33b4815a
Write out rewritten SDP from answer to metadata file
10 years ago
Dylan Mikus
466c52c18e
Refactored recording setup to streamline it
...
We had initialization code for recording scattered through
"call_interfaces.c", "call.c", and "recording.c". I moved more of the
actual code into functions within recording.c under the parent function
`detect_setup_recording`. We call this function from "call_interfaces.c".
I moved the disjointed bit of PCAP initialization to occur right below
where we toggle recording on or off.
10 years ago
Dylan Mikus
b35ca7ded2
Record answer SDP to recording metadata file
...
We record the answer SDP (not offer) to the metadata file, separeted by
newlines. It is after the PCAP file URL and before the timestamps. Maybe
we should be writing the rewritten SDP.
10 years ago
Dylan Mikus
c787ab9c4e
Refactored NG protocol handling of "record call" settings
...
I refactored the handling of the "record-call" flag in the
"rtpengine_offer" and "rtpengine_answer" handler. We now set the
recording data structures in a function called `set_record_call`.
We also only handle "record-call" flags on OP_ANSWER for SDP answers.
10 years ago
Dylan Mikus
d604ff6fd3
Set more permissive permissions in spool directory
...
In the rtpengine spool directory, when we create the "pcaps" and
"metadata" inner directories, we now give all users read and write
privileges to them, instead of just the owner and the group having those
permissions.
10 years ago
Dylan Mikus
1cec331d1c
Only turn on or off recording if explicitly specified
...
When we receive an offer or an answer, we will only turn recording on if
it contains the "record-call=yes" flag. Likewise, we only turn recording
off if it contains the "record-call=no" flag. If no flag is specified,
the call keeps its current recording status. It used to be the case that
not specifying "record-call=yes" would turn off call recording.
This fix is necessary to account for SDP renegotiation during
hold/unhold. If the call system sends over another offer during SDP
renegotiation to hold and then unhold, we don't want to change recording
behavior unless the call system specifically says so.
10 years ago
Dylan Mikus
b3d6073447
Prefix recording metadata and pcap files with call id
...
We want to be able to associate call files with a call without the
presence of identifying metadata within the metadata file. To accomplish
this, we prepend the call-id to the start of the pcap recording files
and the call metadata files.
Even though call-id is supposed to be unique, because of paranoia we
keep some of the random affix hex string, but we reduced it down to an
8-byte random value.
Also, some minor argument ordering and name refactoring for random
string generation functions.
10 years ago
Dylan Mikus
844abeec7d
Don't free the metadata before writing it to metadata file
...
We used to sometimes free the generic metadata (passed in through
rtpengine commands) before writing it to disk. Then we were writing
blank metadata to our metadata files. We fixed the ordering of
our `free` operations.
10 years ago
Dylan Mikus
74999abb76
Free the call->recording struct when the call is destroyed.
10 years ago
Dylan Mikus
1af73c665a
Fixed description of metadata file format to list just one pcap file.
...
Now that all RTP streams for a call go to the same PCAP file, we don't need a
list of multiple PCAP files. We still separate it from the timestamps by an
extra newline.
10 years ago
Dylan Mikus
7acc3239d2
Write out unique ip:port pairs for all streams.
...
We should do some more checking to make sure we're using the correct values
for source and destination ip:port pairs.
10 years ago
Dylan Mikus
f516684ade
All RTP packet data for a call goes to one PCAP file.
...
This involved moving all code from fs.(c|h) to recording.(c|h).
We still spoof packets, so the UDP will look like all monologues are coming
over the same port and will probably look like they are all one stream if
you look at the PCAP file.
10 years ago
Dylan Mikus
8f6d7c0a16
Logging cleanup and added recording filesystem logging messages.
...
We log errors when filesystem operations fail, among other things.
10 years ago
Dylan Mikus
2c1685b807
Added command line option for the spool directory for recordings.
...
Command line option is "--recording-dir".
Renamed inner recording spool "recordings" to "pcaps".
This is to avoid name sharing conflicts with the "--recording-dir" command
line option, which specifies the recordings spool directory, and the
"$RECORDING_DIR/recordings" inner directory. Changing the inner directory
name to "pcaps" removes this name collision.
In the process, I changed the function names in fs.h to be consistent with
other functions. The names are structure like "$OBJECT_$VERB".
10 years ago
Dylan Mikus
f36faef417
Code bug fixes and safety checks around error-possible code.
...
Fixes and changes:
- Only create the metadata file if the call is being recorded.
- Only write to the metadata file if we actually created it (NULL check).
- Make sure we have metadata before putting it on the call object
- Correctly overwrite recording metadata without leaking memory
- Set the no kernalization flag per call instead of for *every* packet.
- Logging cleanup.
10 years ago
Dylan Mikus
89690b4aea
Write out call start and end timestamps to recording metadata file.
10 years ago
Dylan Mikus
7c53e9f95b
Moved file system management and random string code to appropriate files.
...
File system code is now in fs.{h|c}. This includes:
- spool directory setup
- metadata file management
- pcap file creation and writing
Random hex string generation is now in str.h.
10 years ago
Dylan Mikus
692b12944c
Create metadata file and move it to spool directory when call finishes.
...
We create a metadata file for each call. The metadata files will all end up
in a spool directory for the rtpengine.
Each in-progress file has the format: "rtpengine-meta-$RANDHEX.tmp" and
goes in /tmp/. When a call finishes, it is moved to the spool directory
in sub-directory /var/spool/rtpengine/metadata/ and we change the file
extension to ".txt".
The metadata file contains references to all PCAP recording files associated
with a call, and it includes generic metadata at the tail of the file.
One absolute path for a PCAP file per line, followed by two blank lines,
followed by the metadata passed in to the rtpengine through an external
command.
RTP Engine checks for the spool directory "/var/spool/rtpengine" on startup.
If it's not there, it fails. If it's there, it sets up "metadata" and
"recordings" inner directories. This is where RTP Engine will write call
metadata files and PCAP files.
10 years ago
Dylan Mikus
c8af44a21a
Made random filename with affixes generic.
...
Creating a random filename with a prefix and a suffix is now done through a
generic function. We use this to create pcap recording files in the /tmp/
directory, and will soon use it to create metadata files.
10 years ago
Dylan Mikus
7cc801931a
Added metadata string to call struct.
...
This will follow the call around until we destroy the call, at which point the
metadata string will be freed.
10 years ago
Dylan Mikus
a714fbc462
Record RTP in PCAP files in the /tmp directory.
...
RTP Engine creates PCAP files for recorded calls on offer answer instead
of initial offer.
We make up bogus values for the nonessential parts of the PCAP, UDP, and
IP headers. We might be able to pull these from other parts of the RTP
Engine, but that information was unnecessary for recording calls so they
can be recorded to audio files.
If you change the packet headers, be really careful about byte order and
datatype size!
10 years ago
Eric Green
70eb6b9e81
Record raw RTP to recording files on the filesystem.
...
Pass in "record-call" flag over `rtpengine_offer` or `rtpengine_answer`
message. RTP Engine tracks files used to record pcaps and send them back
in the response message.
Pipes call audio (unencrypted from both ends) to recording files.
Sets up file descriptors for local files to dump RTP recordings.
A file and a file descriptor per monologue in a call.
Recorded streams will be running in user daemon mode, not in kernel mode.
This removes first 12 octets from packet to record just the rtp.
10 years ago
Richard Fuchs
cdcf2ff71d
Merge branch 'master' of https://github.com/1and1/rtpengine
10 years ago
Richard Fuchs
351bc106be
staticize function
...
Change-Id: Iadbf5cdf8269a0ef996e509837981ef88d065e24
10 years ago
Stefan Mititelu
11e94c40ea
Add >= idx check for redis_list_get_idx_ptr()
10 years ago
Stefan Mititelu
2024f9e37a
Remove unused code remnants
10 years ago
Pawel Kuzak
96cd5fcf01
Merge remote-tracking branch 'upstream/master'
10 years ago
Stefan Mititelu
1881fc5e58
Free call's main queues in __call_free()
...
Work directly on struct call's queues.
10 years ago
Stefan Mititelu
27ecb3631d
Free redis.c reply object memory leak
...
Call freeReplyObject() for every redis_get(); libhiredis
freeReplyObject() function does NULL check inside.
10 years ago
Richard Fuchs
ee960b7f67
dont do DTLS when in passthrough mode
...
Change-Id: I615042ed9121be3e2eb37718dbc642e8a46efcf5
10 years ago
Stefan Mititelu
bd7abe6409
Fix memory leak for notifications feature
...
Add log_info_clear() to cancel out log_info_call() from call_get*().
10 years ago
Richard Fuchs
a813ddfeae
fix compiler warnings due to conflicting int types
...
Change-Id: If61e59b8512357b3b3049387b2d37d67cdf5af3c
10 years ago
Stefan Mititelu
ee0216ed3f
Update obj_* debugging text
10 years ago
Stefan Mititelu
4fd69132a2
Merge remote-tracking branch 'upstream/master'
10 years ago
Richard Fuchs
0206f09b93
fix obj-debug stuff
...
required moving includes/headers around to avoid circular dependencies
Change-Id: Ia43e3254f252f94ec387be6b9c85fce4e727b251
10 years ago
Richard Fuchs
05f0317acf
fix the 'media address' parameter
...
address family string in SDP was not produced when used
Change-Id: I33f23a8f3d600ecdb9b469368ac5a8929e4b2fa1
10 years ago
Stefan Mititelu
b35a8dd9d9
Fix memory leak on redis notifications
...
Add obj_put() after call_destroy() because of call_get(), onRedisNotification.
10 years ago
Stefan Mititelu
ce3ae37a76
Fixes after second review
...
- read/write lock config_lock for keyspace operations
- read lock hashlock when iterating through the callhash
10 years ago
Stefan Mititelu
f392d9b768
Update notifications flag logic
...
-> is_backup_call becomes foreign_call (established via redis notifications)
-> remove active_foreign_call logic
Add only libevent-dev dependency.
10 years ago
Stefan Mititelu
1648757aa7
Fixes after first review
...
- don't alloc keyspaces integers
- refactor notifications event base logic
- add libevent_pthreads
10 years ago
Stefan Mititelu
9ec8ac6a47
Upgrade rtpengine-ctl tool
...
Add rtpengine-ctl terminate own/foreign.
Add rtpengine-ctl list sessions <callid>/all/own/foreign.
10 years ago
Stefan Mititelu
a3f0e30307
Merge remote-tracking branch 'upstream/master'
10 years ago
Richard Fuchs
29545e5434
MT#18599 use kernel socket receive timestamping
...
Change-Id: I6fde08be7942df7986eea39d2b233ce60d1fa862
10 years ago
Richard Fuchs
d45f928c98
MT#18599 limit Homer send queue size
...
Change-Id: I490b7552fbfc57c839b80e2574cb69e68758d743
10 years ago
Richard Fuchs
6187f5186e
MT#18599 support parsing of RTCP SDES fields
...
Change-Id: I9b56fae96bc7712d2de01d50d77afc34efcdacec
10 years ago
Richard Fuchs
b5e36c223c
MT#18599 simplify RTCP parsing
...
Change-Id: Ide82c1c882589f99e10cce28646b835ae3d8831c
10 years ago
Richard Fuchs
8267966569
MT#18599 use glib GString for RTCP logging
...
Change-Id: I32f2759c9a2aabae484715f1fec09616b66107da
10 years ago
Richard Fuchs
133e6304b3
MT#18599 support sending RTCP stats to Homer via HEP
...
Change-Id: Icaf28f28c910318726e446a1a2ad4c7ee5e79f85
10 years ago
Stefan Mititelu
d7a75a1256
Merge remote-tracking branch 'upstream/master'
10 years ago
Richard Fuchs
8f9580e9c1
Merge branch 'RTPENGINE-88-PULL' of https://github.com/1and1/rtpengine
10 years ago
smititelu
bac271b398
Add callmaster config lock
10 years ago
Richard Fuchs
c44247e211
Merge branch 'RTPENGINE-85-PULL' of https://github.com/1and1/rtpengine
10 years ago
Stefan Mititelu
a43996fe4a
Add 'unidirectional' attribute
...
In order to kernelize unidirectional streams.
10 years ago
Pawel Kuzak
3f4cfffdbb
Fixed inconsistency in rtpengine-ctl list totals
10 years ago
Stefan Mititelu
57aa56616d
Add offer/answer/delete processing statistics
...
Add graphite offer/answer/delete min/max/avg statistics.
Print new graphite statistics in rtpengine-cli list totals.
10 years ago
Stefan Mititelu
05302c265f
Update rtpengine-cli set maxsessions
10 years ago
Stefan Mititelu
4343ff02cb
Update rtpengine-cli set maxopenfiles
10 years ago
Stefan Mititelu
ef39aa35f1
Add rtpengine-ctl list/set timeout
...
Setters/getter of the TIMEOUT, SILENT_TIMEOUT and FINAL_TIMEOUT.
Updated rtpengine-ctl help with the new commands.
10 years ago
Stefan Mititelu
9be68a0c2f
Add FINAL_TIMEOUT parameter
...
The timer that will limit the duration of a call.
Add graphite statistics for calls ended this way.
10 years ago
Lucian Balaceanu
e2d78d9003
Fix overflow of graphite call_duration statistic
...
In totalstats_interval_call__duration_add(), adjust the considered
graphite_interval_start value in case it is inconsistent (bigger) than
call_stop.
10 years ago
Lucian Balaceanu
2a05b85049
Take end time of call monologue from terminated field
10 years ago
Lucian Balaceanu
859a5058e6
Fix (foreign|own)_session, call_duration stats: modify call_get_or_create to set stats and foreign call state
10 years ago
Lucian Balaceanu
8fb677bccb
Fix stats foreign_sessions if redis_restore fails
10 years ago
Stefan Mititelu
763502dcb8
Add sanity checks
10 years ago