Richard Fuchs
e923616f4e
TT#14008 fix segfault using legacy UDP protocol
...
closes #1437
Change-Id: I23fd44db91ce8a1d1934e2be0c1434eee35cefc1
3 years ago
Richard Fuchs
3c1f4b1f1e
TT#14008 remember last used local socket for reporting purposes
...
Change-Id: I4d52df89c58bb1544dab5a6c5a87aec7975607aa
3 years ago
Richard Fuchs
c42af688d4
TT#14008 always unkernelize before closing sockets
...
Change-Id: Ic0267e64d16ce838f4a1028dd8376b024b69697a
3 years ago
Richard Fuchs
cfaa029b00
TT#14008 don't use internal function when not necessary
...
Change-Id: Ia18b90094d7f52628c72f4cc3d0247a2eb06541a
3 years ago
Richard Fuchs
88c65686aa
TT#14008 Fix use-after-free
...
Change-Id: I8d5164d44c944c43a6e30595720245b00f759399
Warned-by: coverity
3 years ago
Richard Fuchs
2d2d7665b1
TT#156900 support single/odd ports for RTCP-mux
...
Change-Id: Ie000cbf4f9287e570da246c629a2b9cbd7c4fb54
3 years ago
Richard Fuchs
6f8ad8f936
TT#156900 close sockets on branch deletion
...
Change-Id: I5aeabde1755d3144e3e74e5fb040e0c2b793e305
3 years ago
Richard Fuchs
d199199b84
TT#156900 eliminate helper hash table in timer iterator
...
Change-Id: I002fea88b8a8867732eade49ed51895e224c4075
3 years ago
Richard Fuchs
45a9ce32a7
TT#156900 track local media sockets in hash table
...
Change-Id: I6a732b670ca46165675ebced4514eb8a86b7047e
3 years ago
Richard Fuchs
5fc658e33b
Squashed commit of the following:
...
commit a2e5cfb8e5
Author: Razvan Crainea <razvan@opensips.org>
Date: Thu Jan 13 16:16:19 2022 +0200
Add tests for subscribe requests on paused media
commit fa58596a9f
Author: Razvan Crainea <razvan@opensips.org>
Date: Wed Jan 12 22:01:27 2022 +0200
Swap media direction check for `subscribe request`
as @rfuchs mentioned in his review, the SEND/RECV media flags are set
according to rtpengine's perspective, not the media flow's one.
commit e1e9a157c0
Author: Razvan Crainea <razvan@opensips.org>
Date: Wed Jan 12 19:27:42 2022 +0200
Fix `subscribe request` SDP media direction
When building the SDP for a `subscribe request` command, take into
consideration the media direction of the source stream - if stream is
`recvonly`, then we do not have anything to send, thus the direction
should be advertised as `inactive`, rather than `sendonly`.
Change-Id: I2d78bbec8ad584774f3c90f0ce5cca42f57f7b0f
3 years ago
Richard Fuchs
cf34ecc24c
TT#156900 rename functions to avoid namespace conflict
...
Change-Id: I676e35319518b468ed72da2dd58db7ec3ca33ea1
3 years ago
Richard Fuchs
a684025f07
TT#14008 avoid pointless open/close of kernel list
...
If there's no calls active then there's no point in checking the kernel
status.
Change-Id: I84418b38f8976c9f4e29ea725e9cd1eab7306298
3 years ago
Richard Fuchs
1ef4eeba80
TT#136957 split up DTMF event queue into in and out
...
Change-Id: I2e0619071d43df8537736187104ca12bb2f86f64
3 years ago
Richard Fuchs
c794c00efa
TT#136957 refactor DTMF event tracking into a list
...
Change-Id: I09aec46cad4cbb92aab67b7e9158d4d1598df186
3 years ago
Richard Fuchs
f5a148f268
TT#14008 change local ICE ufrag/pwd after ICE restart
...
Implements RFC 5245 9.2.1.1
Also reset ICE role after a restart
closes #786
Change-Id: Idc7ec9f409b70598e2840fb7d0a31a12f9db3c21
3 years ago
Richard Fuchs
31e41d1282
TT#14008 fix poller-per-thread behaviour
...
Change-Id: Ie75e9ebb315801157e432b2d0ce6a07c61cdd0d0
3 years ago
Richard Fuchs
cf7dcb31be
TT#14008 add fallback if codec list is empty
...
reported in #1374 and #1380
Change-Id: Ie12453a0526ed202c298d06d18b6782105c9fade
3 years ago
Richard Fuchs
9be9ceb8f9
TT#156052 set `destroyed` TS also for delayed deletes
...
Change-Id: Ib55a9a63c2bdf0bdcc71717ac73af917c933950e
3 years ago
Richard Fuchs
45cb995b19
TT#156052 add call->destroyed timestamp
...
Change-Id: I76e973faee5797c00b1f5a1e01a73df903874ccb
3 years ago
Richard Fuchs
f613cf6fb2
TT#156052 rename total_calls_duration to _intv
...
These stats are per-Graphite-interval stats. The name should reflect
that.
Change-Id: I53844b8b1e61000873bc839f0ab713b7fc5ac1d6
3 years ago
Richard Fuchs
f1d37e9c93
TT#147451 add support for SIPREC style SDPs
...
Change-Id: I6a0bba30e8e356a44156571b7dc3b094176ef26e
3 years ago
Richard Fuchs
a7e22ba698
TT#147451 add support for multi-ml subscriptions
...
Change-Id: I1ff9861840bc743068eac2cd18d81990d44acdc9
3 years ago
Richard Fuchs
77be8a00b0
TT#136952 add convenience function to reset all codec handlers
...
Change-Id: I690b1a6c3388c47ba97fadb2b8740eff8706884f
3 years ago
Richard Fuchs
4cbeb15c07
TT#147451 obsolete necessity for `from-tag` in unsub/sub ans
...
Change-Id: I409dbfb032265d0da39bff4cb63bf6dd5388cde4
3 years ago
Richard Fuchs
730cc646a8
TT#14008 eliminate duplicate DTMF reports when forking media
...
With multiple media subscriptions, codec handlers are called
consecutively, once for each forwarding chain, leading to DTMF events
reported multiple times. The DTMF trigger must therefore keep track of
the state in the upper media object, not in the codec handlers.
Change-Id: I9ceaf406e093f25b7c037a325a0f2a7a91954922
3 years ago
John Burke
fab19ed8bb
Add support for endpoint-learning on a per call basis
3 years ago
Richard Fuchs
2dd5d7125f
TT#14008 don't directly use __obj_* calls
...
Change-Id: I578482e8dd32c36c14e85fc5d5ef34b99a5600a8
4 years ago
Richard Fuchs
fc56744553
TT#14008 remove calls from iterators during shutdown
...
... for easier mem leak debugging
Change-Id: I23fc86a9ac242d37c04debf6c1f7fb18cadb8ee9
4 years ago
Richard Fuchs
44e53a2767
TT#147451 add missing cleanup of subs lists
...
Change-Id: I54d1545d3b302d3d73168c3c64b15af3e327a494
4 years ago
Richard Fuchs
24f607752c
TT#145450 add support for tracking multiple SSRCs per stream
...
Change-Id: I885fbf7973133af8d7c9184eb0e75f5401309c8e
4 years ago
Richard Fuchs
785ed90bba
TT#14008 eliminate duplicate packets_lost counters
...
This solves inconsistent stat output
Change-Id: Ic4c010fbceb83d1f8d5fffecacb3c65a436bfeae
4 years ago
Richard Fuchs
41966c9648
TT#14008 associate interface with call_monologue
...
This makes it possible to add new streams without specifying the
direction/interface again.
Reported in #1366
Change-Id: I8f320ecbe72f123d755ba80370de9c40960eb0f0
4 years ago
Richard Fuchs
0fa3a105af
TT#131402 add stats for user/kernel streams
...
Change-Id: I78800a3bbef9fdd92369c2ed14efd39c7799178f
4 years ago
Richard Fuchs
c5dc3484ae
TT#131402 split up relay stats between kernel and userspace
...
Change-Id: I9e5a82e5817829d8a1b17e6828bb0594fbc8df08
4 years ago
Richard Fuchs
06006df6fb
TT#101150 obsolete 'totalstats'
...
Change-Id: I744222b313f50fcf08d421309c329256f78869aa
4 years ago
Richard Fuchs
2ae5cc79ba
TT#101150 obsolete more fields from struct totalstats
...
total_managed_sess, total_average_call_dur, total_average_lock,
managed_sess_max, managed_sess_min, managed_sess_lock
Change-Id: Ibe3f619ec6d2f21270fc81901dde55b5242b0daa
4 years ago
Richard Fuchs
d4102280b2
TT#101150 obsolete struct request_time stats
...
Change-Id: Icf3e0648a0ba821bc66c6dd0e8f5ebc30576fb70
4 years ago
Richard Fuchs
f5f29e1c59
TT#101150 add min/max/avg tracking for gauge stats
...
Change-Id: I6a682f2bb98673361a8454f419f8a0fb7d37ef75
4 years ago
Richard Fuchs
b4295684a5
TT#101150 convert stats gauge handling to macros
...
Change-Id: I583bb1a09196d055710ee5e1d379541f23c54117
4 years ago
Richard Fuchs
8b5f0e997e
TT#101150 copy out per-interface counter stats
...
Change-Id: I44174b1975b1ccfe30e6e9050bed00d57c7b8157
4 years ago
Richard Fuchs
7337f4a231
TT#101150 obsolete offers/answers/deletes_ps
...
Change-Id: I92e1a3617e2c47deeacc0186a930da0f6247f273
4 years ago
Richard Fuchs
3608d9b070
TT#101150 obsolete total_relayed_* fields
...
Change-Id: I2340daba8f8088af81b3ed6b5dfc6f5fb8621a9a
4 years ago
Richard Fuchs
d197a27b40
TT#101150 add graphite-specific global_stats_ax
...
Change-Id: I01ad26b1c6029d02c0a41216ba238c1f2c3a2f2d
4 years ago
Richard Fuchs
f8c3f93f57
TT#101150 add support for local copy-out of stats
...
Change-Id: I1752fa8fe94799eedbac7f3fb674a61a0b6de162
4 years ago
Richard Fuchs
181dfe6b1c
TT#101150 update runtime averaging to microseconds
...
Change-Id: I2c83dfb5ca128331662058a045daf8d59397777b
4 years ago
Richard Fuchs
01263d644c
TT#101150 refactor counter stats into macro list
...
Change-Id: Ic23fd457bfd5a9cae08f2d48b6ab8054480cd070
4 years ago
Richard Fuchs
ad64f4fa00
TT#101150 introduce proper struct for "counter" style stats
...
Change-Id: Ifd06c54b25126426fe21723b8fb7a21d9bd03cba
4 years ago
Richard Fuchs
7dcc4473f5
TT#101150 split out "gauge" style stats
...
Change-Id: I52617a083bbbd41342b6413d8cacc5235cec51d9
4 years ago
Richard Fuchs
a1f3530292
TT#101150 separate out `struct stream_stats`
...
Change-Id: I709060d9e805175bd99173df03e581b593506e15
4 years ago
Richard Fuchs
9c3e5e1fd7
TT#101150 properly name RTPE_STATS_INC/ADD
...
Change-Id: Iba35ea5a453d1a45b575ee98c4aeb2e0aef39473
4 years ago
Richard Fuchs
406f2dc36d
TT#101150 remove in_tos_tclass from struct stats
...
Change-Id: I000f19f3eade23085952c86f6f730ab954f81b95
4 years ago
Richard Fuchs
1fac2b08b9
TT#101150 use rtpe_now for timer start time
...
makes testing it easier
Change-Id: I47205dac1aaac752f1fa7a3cdf892f1fd0c45970
4 years ago
Richard Fuchs
30d91ecc63
TT#101150 add test script for stats output
...
Change-Id: I13cc172b082e78c3d52032bd72e0a2f5158c71ed
4 years ago
Richard Fuchs
3f69a48f07
TT#14008 add NAT-wait flag
...
Change-Id: Icfbacc3094ee20955eb50ad9f9c487e9b9a239b9
4 years ago
Richard Fuchs
b28ea21f41
TT#14008 add extra debug logging for kernel streams
...
Change-Id: I7a17e74dea7ce11e5923f82436efbfe3160d8ed8
4 years ago
Richard Fuchs
758badb46a
TT#14008 output list of subscriptions in final log stats
...
Change-Id: I14d6b7bd195496cda2122e64d34d942ae4f650e9
4 years ago
Richard Fuchs
af79ec6a91
TT#14008 rework offer/answer subscriptions
...
While doing the A/B reassociation during an offer/answer exchange, we
don't (necessarily) want to remove all existing subscriptions. Instead
we cant to unsubscribe all subscribers so we don't do media forking, but
leaving existing subscriptions alone to make early media reception
possible. This mirros the old behaviour.
Change-Id: Ib9e6671ca2d23d1eb4509d7cf939015c816cc622
4 years ago
Richard Fuchs
2a39277f0c
TT#14008 add hash table for subscriptions for quick lookups
...
Change-Id: Id1585cc7edb8c72bc571006f20228706d00e6955
4 years ago
Richard Fuchs
6443cfcb8e
TT#14008 skip stray warning message for trickle ICE updates
...
Change-Id: I2c9c9745df1ac6dbdea5873f8f54709e69dc1f82
4 years ago
Stefan Mititelu
db53dd683a
TT#14008 Fix graphite deadlock
...
closes #1346
closes #1345
Change-Id: I47e65ca2c9bd0ba23ef740edfa46b65f3aeda62c
4 years ago
Richard Fuchs
8a60d17574
TT#131651 support reverse re-invite to new to-tag
...
Change-Id: Iaea12033d3a142b4675cc22ed0e3270af654e7de
(cherry picked from commit d11432ec814fa4e504be02f3bdee2cc6cf9fa704)
4 years ago
Richard Fuchs
2130e2f62b
TT#89352 support Janus control protocol
...
Change-Id: I0a6d5fc93c5fa505390408043feeca3f5cf61181
4 years ago
Richard Fuchs
70665e3aef
TT#89352 add shortcut for "accept any"
...
Change-Id: I49cb88c7097cd51ef5641a6f4b3bf622bb4dc276
4 years ago
Richard Fuchs
05e9b5f131
TT#91151 avoid possible null pointer
...
Warned-by: coverity
Change-Id: Ic841c9926e6f07817a0ec17528db2faaadc2f0c9
4 years ago
Richard Fuchs
fbcddaca49
TT#91151 negotiate DTLS role and SDES for publish
...
Change-Id: I246415c416a5d4f8126511d6a867109048810bf6
4 years ago
Richard Fuchs
5fc71c0357
TT#14008 support %l format even if recording is started mid call
...
Change-Id: I3efe6de99ad78f8167b18de50e5c52760b12fead
4 years ago
Richard Fuchs
f04332915b
TT#91151 add publish/subscribe commands
...
Change-Id: I1842b89efea7fa3af0bd4d045e49da31285cd0e1
4 years ago
Richard Fuchs
c2b78aa9cd
TT#132251 refactor kernel payload type tracking
...
Change-Id: Ibdf58347a130f1c07cefca55162c841c71092201
4 years ago
Richard Fuchs
99fbff408e
TT#14008 fix call iterator dead lock
...
... almost there ...
Change-Id: I3261ec91ac7481bb275bbb4f9841747938706e61
4 years ago
Richard Fuchs
9952647d19
TT#14008 fix call iterator dead lock
...
... should acually be working one of these days...
Change-Id: I8025aafd0eccb10df5ac2630e0e39b7fe978e25e
4 years ago
Richard Fuchs
0266886487
TT#37394 support SO_INCOMING_CPU
...
Change-Id: I8017929519cc3b721272cc122bee4fdc36c7317a
4 years ago
Richard Fuchs
124d89ade0
TT#14008 ignore "received from" address when ICE is in use
...
Also add a safeguard against filling the remote peer address with an
address from the wrong family
closes #1305
Change-Id: Iac18212b4d526a2f7d49a06ddcd724aa89b06060
4 years ago
Richard Fuchs
cda67ac5ac
TT#14008 fix call iterator race condition
...
The contents of the ->next element cannot be accessed completely lock
free as they're zeroed out during call removal. Instead grab a reference
to the linked next call before releasing the lock, and also lock the
next element before moving on. This requires a more granular locking as
not to interfere with call removal: One lock to protect the contained
call and the ->next, and another to protect the ->prev
Change-Id: I5474ea3f88e3276f93ba62a952b3be13c0c182e9
4 years ago
Richard Fuchs
de85d4b674
TT#128050 parse and document `reuse codecs` flag
...
Change-Id: I335ed8f699722c568566076190d1a255a6e57211
4 years ago
Daniel Hauptmann
4481c773ac
TT#128050 Squashed commit of the following:
...
commit b0c722da69ad088a2eddced12b37c0546a514890
Author: Daniel Hauptmann <dhauptmann@sipwise.com>
Date: Mon Jul 26 15:35:51 2021 +0200
changed flag bit length
in call_interfaces.h changed bit length of reuse_codec from 0 to 1
commit 0313a747532d5987f25fa9edb202aa460bf98dd1
Author: Daniel Hauptmann <dhauptmann@sipwise.com>
Date: Mon Jul 26 15:29:20 2021 +0200
inversed reuse_codec logic
in test-transcode.c and call.c, reuse_codec = 0 (default) will now result in using codec_store_populate instead of codec_store_populate_reuse
commit b876bd686bd30df21a5962aca16fc1c85574f554
Author: Daniel Hauptmann <dhauptmann@sipwise.com>
Date: Mon Jul 26 15:18:19 2021 +0200
adding option to minimalize changes in the codec_store_population
added function codec_store_populate_reuse in codec.c which replaces codec_store_populate but makes fewer changes to the GLists with the old and new codecs
added flag to enable this feature (disabled by default)
commit 6fd0b701c9589b2fae00300801e02a9b5cc397ab
Author: Daniel Hauptmann <dhauptmann@sipwise.com>
Date: Mon Jul 26 14:44:42 2021 +0200
Added Option to minimize change in the codecs
In codec.c added function to populate codec store with the fewest changes between the old and new GList which contains the codecs.
Added new testroutine in test-transcode.c line 1500
Added flag to call_interfaces.h to optionally enable this feature
Change-Id: If58d9a07d114b05dfb75553a87eb4372ae949fbb
commit 3bf554a8fbae7e948343699f40d935693618b764
Author: Daniel Hauptmann <dhauptmann@sipwise.com>
Date: Fri Jul 23 13:58:02 2021 +0200
changing codec-exchange behaviour
in codec.c line 3288 function codec_store_populate now doesnt empty dst and copy new codec from src to it, instead codecs from src will be appended to dst and codec from dst, which are not
being contained by src are being removed
Change-Id: Id6b7ee65595f9cc5c71ef557c7bac5ee38f97cbe
4 years ago
Richard Fuchs
08fee992d1
TT#89352 add support for trickle ICE offer
...
Change-Id: I772e2ee44e5c206cccdd133d426545822e22850d
4 years ago
Richard Fuchs
5c519ec2db
TT#89352 allow create-only mode for call_get_*
...
Change-Id: I4dd760b14ef1c91d463a2390ff3c52d71acedf4a
4 years ago
Richard Fuchs
765b1e3bca
TT#89352 use bool type for foreign call functions
...
Change-Id: If8d5e28db534e6aeaaffb885e732e2bdd7338831
4 years ago
Richard Fuchs
7b59f55457
TT#14008 fix handling of possible NULL rtcp_sibling
...
closes #1302
Change-Id: I000337734400cf3a5b63fc5d51e9fd220be06c68
4 years ago
Richard Fuchs
94a5feea7d
TT#111150 fix coverity warnings
...
Change-Id: I330d5137d38017641bdda71e8bd014c358c432fb
4 years ago
Richard Fuchs
0c731ae302
TT#14008 fix stream stats not being updated from kernel
...
Change-Id: I6bc643b194b78a052ca1fc993055053aefd96941
4 years ago
Richard Fuchs
77b5e0b6bd
TT#91151 fix erroneous variable re-use
...
Change-Id: I381f7ba1db7b108f03343454e1e7cc8f0abee08f
4 years ago
Richard Fuchs
ffaed806c3
TT#91151 save raw protocol string
...
Change-Id: I21bee5b28522ef01fa5902c0b1fc69e2cade8434
4 years ago
Richard Fuchs
d0c6919923
TT#91151 save last input SDP w/ parsed
...
Change-Id: I561371fe83b1aea65e3ae3f8b60ceb9250923a23
4 years ago
Richard Fuchs
92fb330a46
TT#91151 implement one-to-many forwarding
...
Change-Id: I80fd35da680d4ad1f4d3d21f14f11363106b9917
4 years ago
Richard Fuchs
01a10c0379
TT#91151 split input from output legs in kernel module
...
Change-Id: Ic8269f5a506c560d4460f562fb545efe0ea6a809
4 years ago
Richard Fuchs
3b3979586f
TT#91151 move `num_ports` into stream_params
...
Change-Id: I8f20f07f092204a70917c3d180adc13fb7b44da1
4 years ago
Richard Fuchs
1d387b98ef
TT#112700 rework codec offer/answer routine
...
Complete overhaul of the codec handling code:
*) obsolete flags `asymmetric codecs`, `symmetric codecs`, `reorder
codecs`
*) support proper codec offer/answer
*) split codec manipulation (strip/offer/accept/etc) into separate
functions for clarity and better code maintenance
*) fully update codec handlers in both directions after an answer
*) explicit allocation and handling of codecs and payload types in a
codec_store object
*) improve codec matchup logic during answer
*) more explicit handling of supplemental codecs (CN/DTMF)
*) remove now obsolete hacks for handling certain use cases
Change-Id: I996705ba8fe339524c2f70e6bb0fd854f9a1f4fb
4 years ago
Richard Fuchs
a057fffe50
TT#14008 flag Coverity lock-order false positive
...
The order is indeed reversed, which is why "trylock" is used so the
process doesn't deadlock.
Change-Id: I9142ad3851d1b3917820c88fe2ea316be63745ad
4 years ago
Richard Fuchs
256b9917ec
TT#121752 associate SSRC hash to monologue instead of entire call
...
This solves problems when the same SSRC is looped through the same call
multiple times in different mono/dialogues, with different parameters.
Change-Id: I1d033cb1f012574d82b5bcbfffe11eb5f983cfd8
4 years ago
Richard Fuchs
aeb0b7bcee
TT#14008 fix MQTT global stats
...
The JSON context is already in an object, therefore skip the surrounding
{} enclosure.
Also don't run the global MQTT timer when MQTT is disabled.
closes #1290
Change-Id: I63c622bd339545e625ee18def33f21de2533f949
4 years ago
Richard Fuchs
dd58a1a42d
TT#14008 reset SRTP index on endpoint change
...
closes #1277
Change-Id: If951bc8abdfb1cec88abf5fc6e36d48aff575e98
4 years ago
Richard Fuchs
369e64f9a7
TT#14008 add mqtt support
...
Change-Id: Ica4a3e4ef58eadf3feca44ea63f2308103b3146f
4 years ago
Richard Fuchs
e32d128bd8
TT#14008 add cumulative global stats counters
...
Change-Id: I884a47c6d3e52fcb5572187fbd71fd11ec08cb8e
4 years ago
Richard Fuchs
95a30674ac
TT#14008 implement lock-light global call iterators
...
Change-Id: Ie01eb06262267a1aa0b69f632a515d5271bafb52
4 years ago
Richard Fuchs
5c50ec2bbe
TT#14008 convert RTCP timer and DTX to regular timer
...
Change-Id: I7f9e1e586e237d6b40ee250ed149cb21eae87f95
4 years ago
Richard Fuchs
017dbbd330
TT#14800 update last_packet during signalling events
...
closes #1283
Change-Id: I640ff269643eb6ecf9d6fd2a21601aeb39acac58
4 years ago
Richard Fuchs
0e2bddb6c8
TT#14008 add `pierce-NAT` flag
...
Change-Id: I1ec9b0ba152939cb6dc079e0047040da862945dc
4 years ago
Richard Fuchs
a009f76456
TT#14008 support media echo and blackhole
...
Change-Id: I9df4680188709867db2b61d97cc5f1e30c59e0d7
4 years ago
Guillem Jover
07695d2abb
TT#111150 Use modern <stdint.h> uint<bits>_t types
...
The u_int<bits>_t are BSD legacy types, while the new ones are specified
by C99 and SUSv3.
Change-Id: Ia748cabc33a7e5adc2c7a6049ad1e55be0c788a8
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
87e5efc7d4
TT#111150 fix mem leaks in test-transcode
...
Change-Id: I3a796184e64b1fc1f760b53fe7d1855997ab8b72
4 years ago
Richard Fuchs
a8d5076065
TT#119502 correctly restore calls from both Redis instances
...
Change-Id: I713d7e8ba0a7d14f5ef9016d33619df91ce6ec32
4 years ago
Richard Fuchs
89666c8021
TT#14008 fix ICE if ICE completes before SDP comes in
...
Change-Id: I3085e67a81fb8adeeb4334db2e0e894716107937
4 years ago
Richard Fuchs
44809a30c8
TT#111150 refactor xmlrpc_helper to avoid GStringChunk
...
Change-Id: If3cb8b5c1fcaed0cb9b1b22d752ec5e9099d2d39
4 years ago
Richard Fuchs
ac71e81e54
TT#118350 add SDES=static option
...
Change-Id: Id34d4fe31e58acfae31d8e5d30abec1837c4f808
4 years ago
Richard Fuchs
bf40d2a841
Merge branch 'master' of https://github.com/smititelu/rtpengine
...
Change-Id: I9e45a35e98ff55a0bd6c7d8a438f3e87d08b9773
4 years ago
Julien Chavanton
49786d049f
adding cumulative number of packets lost
4 years ago
Stefan Mititelu
482e2d0d2b
Add stats for ipv4/ipv6/mixed media calls
...
Also Send stats for ipv4/ipv6/mixed media calls to graphite
4 years ago
Julien Chavanton
3d5e586c69
mos average fix when missing RTT
4 years ago
Richard Fuchs
8029a4d1cd
TT#113750 don't auto switch from an already selected fingerprint
...
If we receive an SDP with a DTLS fingerprint, by default we adopt the
hash function used for that fingerprint in subsequent communication with
that peer. However, if the SDP is an answer, and we previously used a
different hash function in the offer towards that peer, then a later
re-invite offer would be sent with a different fingerprint, causing an
unexpected DTLS restart. Instead, make sure we don't change fingerprints
if one was already sent.
Change-Id: I603bb86ce2d7121556c161749ed08128dd0b63b2
4 years ago
Richard Fuchs
def813cfde
TT#101201 fix ICE-lite mode switch
...
Change-Id: I10689bc07b86984880bfd420d6be4fbb057c41d1
4 years ago
Richard Fuchs
083ae4c37f
TT#14008 convert rtcp-fb handling to list
...
closes #1196
Change-Id: I08ec4bf783d2a6bc0e83498e61cf964718a03de4
4 years ago
Richard Fuchs
eb1157d386
TT#112250 don't change ports when endpoint is talking ICE
...
Change-Id: I0e60534d6d3cb62d25b8d865da02c3472cf0994e
4 years ago
Richard Fuchs
a8013ffe70
TT#111051 set thread specific process names
...
Change-Id: I6a5bb14c070d93b865510786f5107220b93faef1
4 years ago
Richard Fuchs
1785f70637
TT#91151 add new replace-zero-address option
...
closes #1185
Change-Id: I8cf6f4ff043649255dafa93b28fcb2127ce4d2bb
4 years ago
Richard Fuchs
772db96c36
TT#91151 fix check for trickle ICE and zero address
...
Avoid using an explicit test for the trickle ICE endpoint address and
instead use the TRICKLE_ICE flag.
Change-Id: I821ced7e77c798004c9d88ec072848b7f6e24a85
4 years ago
Richard Fuchs
76d5828c82
TT#91151 explicitly keep track of zero endpoint addresses
...
Change-Id: I6044cddc7d997848715df6701fd8a61a1e0bf289
4 years ago
Richard Fuchs
36273e1f5d
TT#107565 add option to track SDP version
...
Change-Id: Ifb3ca589742a4ad0cc83982d6e42bf692a2c98db
4 years ago
Richard Fuchs
8abc6b1ca4
TT#91151 convert RTP PT hash tables to direct hashes
...
Change-Id: Id1f464794089f4de4ffce4914703b588ef0045a3
4 years ago
balajeesv
ffc9e34e14
TT#14008 Squashed commit of the following:
...
closes #1134
commit 1cdf8d50844baa27513c51a552504a8406ca17a4
Merge: 2fc54462
cc4d049f
Author: Richard Fuchs <rfuchs@sipwise.com>
Date: Mon Feb 1 11:19:43 2021 -0500
Merge branch 'jb_disable' of https://github.com/balajeesv/rtpengine into balajeesv-jb_disable
Change-Id: Ic01bbeb776d8ac0f3ebb46ae0a263243828443bb
commit cc4d049fab
Merge: 2f935206
9deedea1
Author: balajeesv <balajee.sv@gmail.com>
Date: Fri Dec 11 23:15:48 2020 +0530
Merge branch 'jb_disable' of https://github.com/balajeesv/rtpengine into jb_disable
commit 2f935206de
Merge: f553a9e5
7c3d2e01
Author: Balajee SV <41125423+balajeesv@users.noreply.github.com>
Date: Fri Dec 11 23:12:27 2020 +0530
Merge branch 'master' into jb_disable
commit 9deedea1c4
Merge: f553a9e5
7c3d2e01
Author: Balajee SV <41125423+balajeesv@users.noreply.github.com>
Date: Fri Dec 11 23:12:27 2020 +0530
Merge branch 'master' into jb_disable
commit f553a9e582
Author: balajeesv <balajee.sv@gmail.com>
Date: Fri Dec 11 22:47:46 2020 +0530
rtpengine: Disable jitter-buffer per call in offer
Change-Id: Ib4443a0d66c78749e24f3d2cb48c991e408e21fd
4 years ago
Richard Fuchs
ae82034dfe
TT#99621 add option to disable RTCP generation
...
Change-Id: Ifed6d255dd9d3ec5bc38a79a8f71da59d98243ea
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
97a1c218fa
TT#106101 handle out-of-order ICE fragments
...
Change-Id: I6b16474d505a40055b06d215e4cc6c5391214613
4 years ago
Richard Fuchs
0bab726e5d
TT#92250 reset opposite side supp handlers
...
If a supplemental codec was removed by the codec tracker, we must reset
any codec handlers on the opposite side that were using this output
codec.
Change-Id: I7fb9d0ec7a061682fe3b28d9ead14ac263aff7c3
4 years ago
Richard Fuchs
30733ec5cd
TT#97301 support granular log levels
...
Change-Id: Ife458bd2449f61113a3e6db1708821570d92dc23
4 years ago
Richard Fuchs
5dbd797651
TT#94201 fix ICE=default to the intended behaviour
...
closes #1147
Change-Id: I545b37d1cdb5848ad437da150ef23e5df4045833
4 years ago
Richard Fuchs
a4d0a35430
TT#101653 eliminate superfluous log messages
...
Change-Id: I1fdeaac3b301e4b6bd70b4ae207505bca1d3c0a3
4 years ago
Richard Fuchs
ba66e5fa3a
TT#99621 support RTCP generation
...
Change-Id: Iff832eaa4148cce4d87d24d4dc3b908dfa361770
4 years ago
Richard Fuchs
260a170524
TT#81212 add trigger to set all calls to own or foreign
...
Change-Id: I9ee69680bccd79bae19332189a8531eaa2f6950b
4 years ago
Richard Fuchs
c9140f9f66
TT#81212 add function to change call state (own/foreign)
...
Change-Id: Ia9010c270839832abbb0d7b7742a4bf8cda1d538
4 years ago
Richard Fuchs
1d34c40276
TT#101201 support optional ICE-lite mode
...
closes #1106
Change-Id: I4a83ed2630889d8b17a0c40d971ec7946c1ed3a2
5 years ago
Richard Fuchs
8d7badcf02
TT#101201 rename ICE_LITE flag
...
Change-Id: Icc5a74b53572f1eb26689a23b31d37ee2891ecef
5 years ago
Richard Fuchs
bae79d3fef
TT#98901 handle AMR SID DTX
...
Change-Id: I418c43e0cef2a70143010235988523f195a3bf5a
5 years ago
Richard Fuchs
cd3652e81a
TT#97302 fix some DTLS negotiation issues
...
add explicit flag for fingerprint length instead of using the hash
function
restart DTLS after a shutdown due to a reset
clear fingerprint buffer when running the hash
suppress stray log message when no fingerprint was seen yet
add option to test script
closes #1095
Change-Id: Ic58ea6c5aa48a215743d6a3c1b371fc4a5ea77ce
5 years ago
Richard Fuchs
65cf46bc0a
TT#94201 convert ICE= options internally to enum
...
Change-Id: I3d7a6049cd7ab8e95da56820ccd3f2981ef03bc5
5 years ago
Richard Fuchs
95b814553b
TT#94201 add ICE=default option
...
Change-Id: If10e0aa284cc7cc5c1e69855733835bd5b52da31
5 years ago
Richard Fuchs
e67eb7b57f
TT#94201 add explicit passthrough flags
...
Change-Id: Ib5015011320490c0bf63b3c8bed9e6caadfa8953
5 years ago
Richard Fuchs
3893069fae
TT#92250 allocate strings for hash table storage
...
closes #1091
Change-Id: Ia3384fc3eb640bb6c728ebde6e7bde09968eeb9a
5 years ago
Richard Fuchs
68ccc52b2b
TT#92250 postpone codec_tracker to final stage
...
Change-Id: I222f705e53fc95f56da40cf927197afcb2ee5107
5 years ago
Richard Fuchs
5ad4a59ea7
TT#97302 add new flag to select DTLS fingerprint algo
...
Change-Id: I48d9bf7184a860ca6f8f488076fe2859db6018f2
5 years ago
Richard Fuchs
92ea2685ae
TT#96200 fix SRTP multi-protocol re-offer
...
Do not perform protocol negotiations in an offer
closes #1086
Change-Id: I5fb7638aa71e80c08abcda2d8c341ae72725bace
5 years ago
Semen Darienko
c741d45cba
fix segfault upon got reINVITE and BYE at the same time
5 years ago
Richard Fuchs
12ac8846de
TT#90101 don't blindly accept a protocol switch in an answer
...
An endpoint switching protocols is normally passed through to the peer,
but in an answer that is usually not desirable. Change the default
behaviour to stick to the original protocol that was offered even if the
answerer changes protocols.
Change-Id: Ib288549f4b1c9ab57a6333c6b7dd511537af96f7
5 years ago
Richard Fuchs
5001a02d44
TT#88750 fix SRTP not working after Redis restart
...
Change-Id: I40a20b2cd2668480d4b85de7a19c39f606b2eada
5 years ago
Richard Fuchs
ec061bba6f
TT#84804 add new DTLS-reverse flag
...
closes #1038
Change-Id: Ic58b3e3c3d1fec75a2c6ea9ddb260141d9a2831f
5 years ago
Richard Fuchs
87521ead34
TT#85701 fix regression from 8e22c9a41
...
Make sure we delete all branched B side monologues when deleting the A
side monologue.
Change-Id: If7214443a9d3e76a05c0b1f526eb2d9091aee822
5 years ago
Richard Fuchs
8e22c9a414
TT#85701 improve branch handling with delete-delay=0
...
Initially created branches don't have a tag associated with them, so
they don't appear in `other_tags`. We need to keep track of which
branches were created from a single from-tag through their via-branch
values so we know when all branches have been deleted.
closes #1037
Change-Id: I4c6ce602b99a9104de98098cd06ca399eb28e1b2
5 years ago
Richard Fuchs
54a39db40f
TT#84804 start DTLS as soon as ICE can communicate
...
closes #1035
Change-Id: I5cce8ab986f7d75d7ad88c53b4cc3b48f99a206a
5 years ago
Richard Fuchs
6b49c88527
don't always reset crypto when DTLS is in use
...
closes #1019
Change-Id: I4fc1b015f70994176118f523e4d38b311ac78acb
5 years ago
Richard Fuchs
e01b3b421c
TT#28300 add cleanup of calls structs
...
Change-Id: I9e95fc9075645a7364bf62a9ca6f193dc6952ce1
5 years ago
Richard Fuchs
a1fb92353a
TT#28300 eliminate free_buf in favour of free_gbuf
...
Change-Id: I128265ff2783c94b897de8ea58b99811fbbe3607
5 years ago
Richard Fuchs
5f3f203fb8
TT#82203 add stats for transcoded sessions
...
Change-Id: Ie9bef31f62d489fccf52b02a8935f9c9dc2575b5
5 years ago
Richard Fuchs
89175c8564
TT#81850 fix SRTP re-offer and RTP to SRTP switch
...
1) In an SRTP re-invite offer, fixes not a full set of crypto suites
being present
2) In a re-invite offer that switches from RTP to SRTP, fixes SRTP not
being initialised at all
Change-Id: I911442d2cba17ecf6af482cfe922d4e9db2eda8d
5 years ago
Richard Fuchs
cca6ba70c7
allow protocol=RTP/AVP plus OSRTP-offer
...
closes #976
Change-Id: Id409d08a5a89b0ca9dbaf8cc457cc8ea89a433f1
5 years ago
Richard Fuchs
a168a3c024
TT#78307 generate RTCP for media players
...
Change-Id: Ic6dd65211ca253491a7ef3acd35499155b60fe4c
5 years ago
Richard Fuchs
92bcedc08a
TT#78307 keep track of RTP stats also when forwarding
...
Change-Id: Iea6214104b7032687608af71f6270a375fed2702
5 years ago
Richard Fuchs
34baba9d22
TT#78307 don't update RTP stats for non-forwarding ports
...
Change-Id: I2dc40d7f9a511588c676fe487a23074e0d8129e2
5 years ago
Richard Fuchs
5fc326c64b
TT#78001 support OSRTP
...
closes #951
Change-Id: I8cd21d60b16e357a57d0d505649b74f38f4ca0b3
5 years ago
Richard Fuchs
cc7a9a5de8
TT#78307 clean up debug/log messages
...
Change-Id: I8e10be7f297480c01a213c89f06ee93a2215767f
5 years ago
Richard Fuchs
1d514a063c
TT#78307 add helper functions for SSRC contexts
...
Change-Id: I32470c03c19c8bb889900ca277b73713ee66c485
5 years ago
Richard Fuchs
d872802ba2
TT#76711 T.38 <> audio gateway
...
Change-Id: I4552e07eee632fa730745410b08c3bf70ab67ab2
5 years ago
Richard Fuchs
6792cde8b6
TT#76711 add custom SDP attributes capability
...
Change-Id: Iaf924938af1ef32a5a7eb961951c0debe7351ee5
5 years ago
Richard Fuchs
641fd160ca
TT#77358 create helper function to determine RTP protocols
...
Change-Id: I6ee4a2c48c896fa9f3f00c9f90c0ae65c1ae3bae
5 years ago
Richard Fuchs
a68a59fbf5
TT#76711 keep track of the raw SDP format string
...
Change-Id: I7f20dbff3237e39cea700c984a4f41016a2264fc
5 years ago
Richard Fuchs
2d78c36338
TT#76711 allow update of media type
...
Change-Id: I3e860fe8683be2d7b0cd3cc70d4f7e4b39a0e147
5 years ago
Richard Fuchs
6513bfd5bd
TT#76711 split out function to handle media protocols
...
Change-Id: I51066ddd4c9d926ec77b9495fb5ca494290bff95
5 years ago
Richard Fuchs
ad4ea21ef4
fix for d09071a
...
Change-Id: I9d24df2b88f5de12ddee73eceaab060f277e2004
5 years ago
Richard Fuchs
d09071a16b
TT#74850 avoid duplicate dlg.terminate_dlg with reversed tags
...
closes #914
Change-Id: Ibb01c4566ceddd83bf3308541420d227ccd655f3
5 years ago
Richard Fuchs
01002b07da
TT#74850 clean up indentation by reversing logic
...
Change-Id: I15140be111ad5e69d4c081f41db0b8ef81bb260b
5 years ago
Richard Fuchs
3d83b46505
TT#76206 fix call teardown for half established dialogues
...
In case of an offer with a via-branch followed by a delete without a
via-branch (cancelled call), the call erroneously remains open after
deleting one half of the call. The reason is that un-answered branches
do not appear in the `other_tags` list and so are left out from being
checked.
Change-Id: Ib008f32ef5ee06a7ca997c900c9a3adc85b0f10d
5 years ago
Balajee SV
220c96aea4
Merge branch 'jb_new' of https://github.com/balajeesv/rtpengine into jb_new
5 years ago
Balajee SV
b45dbbdc24
Merge branch 'jb_new' of https://github.com/balajeesv/rtpengine into jb_new
5 years ago
Balajee SV
e3a5d45433
jb_new
5 years ago
Balajee SV
c0b28c3d65
jb_new
5 years ago
Richard Fuchs
ef0d6a3a80
TT#74301 merge jitter buffer PR #834
...
refactored
closes #834
Change-Id: I174cc6e365af54fb66d2dd78be02c601c5d5d645
5 years ago
Richard Fuchs
c70b3f6369
TT#74651 fix several mem/resource leaks
...
fix cleanup being skipped on redis slaves
fixes an SDES related Redis mem leak
adds a hash for the ports free list to avoid duplicate entries
fixes #898
Change-Id: I34aad67290ff5ef8824142682aac03cb600d0ecb
5 years ago
Richard Fuchs
bc3d4f71b7
compile fix for glib versions < 2.30
...
closes #879
Change-Id: I01e176a1e3479350ba389b35a49f057292f6ad3d
6 years ago
Richard Fuchs
e0dd6747ea
TT#71050 fix branch deletion from via-branch
...
Untagged branches (only known by via-branch) don't appear in the `tags`
hash and don't have any `other_tags`. The logic to determine whether the
call is completely finished therefore must take these into account
separately.
We take care to remove destroyed monologues from the `viabranches` hash
to keep the count up to date, and determine whether a call is terminated
when there is no more than 1 tagged monologue left and no untagged
monologues.
Closes #875
Change-Id: I6b9618d598f4a95970cd2a452f06574423932b09
6 years ago
Richard Fuchs
ab77ed50af
TT#64601 refuse overriding crypto params from SDES when DTLS is in use
...
Change-Id: I10f2fe3fdd0955fa39b5edcb31196042cdb0b731
6 years ago
Richard Fuchs
7b60ca8e35
ignore untagged/wildcard/unknown MLs in delete with via-branch
...
fixes #840
Change-Id: Ifddf6c4c5ae58556dc9a746f657c7aebc4beee67
6 years ago
Richard Fuchs
22ea251157
don't skip address family selection when zero port is present
...
closes #837
Change-Id: Ife85f3a383981ccf3efcc95cb71c82d6e89117d9
6 years ago
Richard Fuchs
3466700149
TT#65800 fix SDES negotiation bug
...
If B accepts a crypto suite that was not listed as the first, in order
to support SRTP passthrough, we correctly answer to A with only that one
crypto suite. But we must also remove all other crypto suites from our
list of supported crypto suites internally, because we use the first one
to init our crypto contexts.
fixes #829
Change-Id: Id07343d7b24648208e3a4b4e0b246949dce0385e
6 years ago
Richard Fuchs
3fb5befad4
TT#64301 log xmlrpc children to stderr
...
Change-Id: I103c062bc797c609983a995d835a84a00267aa86
6 years ago
Richard Fuchs
23977237c0
TT#61050 detect to-tag changes via via-branch
...
Change-Id: I1cf0f7e516ae52a2f40a9ef84a207fe1456ea1e5
6 years ago
Richard Fuchs
988d077b5c
TT#60301 fix rtcp-mux logic with branched calls
...
Move the RTCP_MUX_OVERRIDE flag to the opposite side of the dialogue to
preserve options given during a branched call.
closes #793
Change-Id: I0bd7621ba22fbfe4f41d115ec2e5dab65283ae01
6 years ago
Richard Fuchs
910c03fa62
TT#58660 PCM to RFC DTMF transcoding
...
Change-Id: Iea6a11c0caad1f5e7dcca966101e2969d3516b6f
6 years ago
Richard Fuchs
db507468de
TT#59100 support case insensitive codec names
...
closes #775
Change-Id: Id54309bf0920e731ad42fb09b078580090f6f82e
6 years ago
Richard Fuchs
2298de76b1
honour a=rtcp-fb in SDP even if transport is advertised as RTP/(S)AVP
...
closes #467
Change-Id: Ib8ea1d6c7b4c9277279399c4319c5efef6834372
6 years ago
Richard Fuchs
573cd3ff22
TT#58050 fix refcount bug
...
Every packet_stream gets a send_timer allocated, but the teardown
routine skips the refcount decrease for fallback RTCP streams (when
rtcp-mux is in use), resulting in mem leak
fixes #753
Change-Id: Ib3a4ef8a81135918f08e28e127e4bb557b8ea05d
6 years ago
Richard Fuchs
26b725d024
TT#45617 add new options to support log markers for sensitive data
...
Change-Id: I2ffa4da4be3a05f043e7991612bbb37d8102d91a
6 years ago
Richard Fuchs
357474df6f
TT#50652 add label= option to match call participants
...
Change-Id: Ifc6cf8f630e9e5eb8cfb9b284e671a5ce4470963
6 years ago
Richard Fuchs
fb76ef74f8
TT#54800 fix ptime overrides
...
Adds a new option ptime-reverse to complement setting of ptime towards
the offerer. This and ptime setting are now ignored in answers.
Change-Id: Icbc04f191cbc194b75b72a97832fcaba58feb10e
6 years ago
Richard Fuchs
40dc49f8e2
TT#50652 stop media playback on call delete
...
Change-Id: I008c6403ad8f3529806d5649bee0928fb50e9754
6 years ago
Richard Fuchs
d449861d96
TT#50652 separate out and move crypt handler routines
...
Change-Id: Ia30aa8912f02ca2ea427b3c659a4b8696dc4a2a0
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
4266f8e542
move SDES-no handling into __sdes_accept
...
This fixes SDES-no being honoured also for SRTP>RTP transcoding cases
additional fix for #661
Change-Id: I229f89c8b3c6a8e485190d67162e95eee387e307
6 years ago
Richard Fuchs
0c559f5860
Add missing SDES accept routine
...
When we receive an incoming SDES parameter, we must match them against the
previously sent outgoing SDES parameters, choose the one that matches
what we just received and eliminate all others. This is a no-op if none
were sent previously (original offer).
Issue only appears in a re-invite when the first offered crypto suite is
accepted.
fixes #631
Change-Id: I4991d0aaf0b29c1ba66045ed0e5281fc18c8af2e
6 years ago
Richard Fuchs
b593d57e21
TT#37400 do not answer with ICE attributes if no ICE was offered
...
fixes #561
Change-Id: Ia660f19109404f8edc1dd5c143e797a82d25276d
6 years ago
Richard Fuchs
0e129eda08
TT#49600 fix offered crypto suite not being dropped via SDES-no
...
fixes #678
Change-Id: I80ca6c268b7397e7901017a4a7000dd2b2b66bd6
6 years ago
Richard Fuchs
c80f55b85a
TT#49600 add debug log output for SDES negotiations
...
Change-Id: Ifb49d202bfa691cba63f86192e5730f1446ba1b9
6 years ago
Richard Fuchs
881e0dc2dc
TT#48800 add option to disable individual SDES crypto suites
...
closes #661
Change-Id: I3556977246d6e15bf134755e1d699e9165735886
6 years ago
Richard Fuchs
3dc7d1b3ed
TT#45472 support updating media ID strings
...
Change-Id: I8c8f42419d81fb3e08ecbbf09999d2be4f2ac93f
7 years ago
Richard Fuchs
77e2862a02
TT#45472 suppress media updates for SDP fragments
...
Change-Id: Iceae3fb44f77448311767d649d2f22e1153f27e9
7 years ago
Richard Fuchs
c546b6b89f
TT#45472 check a=mid values in answers and warn on mismatches
...
Change-Id: I49b359db40b984abb8a46407145d5adeb7e19cfa
7 years ago
Richard Fuchs
e1fbe25b89
TT#45472 keep track of media IDs in a hash table
...
Change-Id: I66d2a5aff29447a60f4f3961165bfb6c0392a38e
7 years ago
Richard Fuchs
a1efdf6b20
TT#45472 support generating a=mid lines if not present
...
closes #641
Change-Id: I849f0c73c5fdd575417a37a41d6701ea4454374b
7 years ago
Richard Fuchs
3c50130c7b
TT#45472 process and retain media ID strings (a=mid)
...
Change-Id: Icf7219f407ed660c009ffde838c942e13aad40ce
7 years ago
Richard Fuchs
13c21b1400
fix segfault when using legacy control protocol
...
fixes #652
Change-Id: Id60351e41411ae5a309bf7b1da98b1ec34c37d66
7 years ago
Richard Fuchs
04a83027a0
TT#43557 implement media blocking
...
Change-Id: I336cf7203c1236b3e596310690a89ce1c3fd8bf4
7 years ago
Richard Fuchs
89084da8d8
TT#43855 support XMLRPC callback to Kamailio
...
Change-Id: I35f9abb5e98ff17f4fed28ca0e045e7d5d734b1d
7 years ago
Richard Fuchs
b82cf56ec0
clean up code artefacts from cab9d895
...
Change-Id: I8aa475ee5338d5a0bdc57c082991624f8af809e2
7 years ago
Richard Fuchs
cab9d895b2
TT#42500 fix only one crypto suite being offered.
...
We should offer all crypto suites that we support. If passing through
SDES, we should amend the list of crypto suites with all additional ones
that we support that weren't included in the received offer.
closes #577
Change-Id: I9b6c16e8eadecf01cdbc8043bd8361e0f683e456
7 years ago
Richard Fuchs
f1b81b649e
simplify parameters passed to codec_rtp_payload_types()
...
Change-Id: I8a9147bb527b3084ed9f4acfa82868fc26b0d8c2
7 years ago
Richard Fuchs
2f5d792aae
TT#36301 add `always-transcode` flag
...
closes #527
Change-Id: I0d8192cf93c49823f35a6307ccd8c77842fb51dd
7 years ago
Richard Fuchs
fa5c265045
TT#36302 support scheduling settings
...
Change-Id: I490fde10a5ae44d25b95e4368af70003716040b7
7 years ago
Richard Fuchs
6da7494a08
TT#36180 calculate per-second stats based on timer runtime
...
Change-Id: I6b3665b2219becb0fb25f4849b11745f809ab8c7
7 years ago
Richard Fuchs
9943a3d868
TT#36180 scale timer interval according to runtimes
...
Also slow down XMLRPC callbacks to avoid excessive CPU usage
Change-Id: Ie318997bacfacc6d9806d72ff42310cfd19f49b2
7 years ago
Richard Fuchs
3b3e964c83
short lock duration for faster calls iteration in the timer
...
Change-Id: I1d2d40e1a5fcdaaf8384eeb841d3e99690185d7f
7 years ago
Richard Fuchs
539e063992
don't retry XMLRPC callback if endpoint says the ID was not found
...
Change-Id: I943f8738e1c92345fc983a3a8ab7d61d00b924ad
7 years ago
Richard Fuchs
b4f65bdd96
TT#35634 add `xmlrpc-address` option for callback address
...
Change-Id: I9c040fc00242469dadbfef485f33e41e698164d1
7 years ago
Richard Fuchs
e0cdf74ac5
fix SRTP ROC syncing between kernel and userspace
...
also fixes spurious unkernelized rtcp-mux streams
fixes #495
Change-Id: I9ec86ec5ecfffeede367a9aab9168ac32b7a95f3
7 years ago
Richard Fuchs
6fa712d0d8
implement offer-timeout option
...
closes #526
Change-Id: I819e1ad567c93f922461caf15482c2c55a0143d1
7 years ago
Richard Fuchs
16024d2e7a
create explicit per-stream DTLS context for ICE
...
fixes #500
Change-Id: Iee3d9ab1c19a6992ae043896eb500b3961de3edc
7 years ago
Richard Fuchs
14100b0b8a
use reference counting on SSRC objects
...
possibly fixes #488 and #482
Change-Id: Ib68e456b9322836b153c9fd0e59c3556378557ae
7 years ago
Richard Fuchs
5b0bb90afa
fix recording setup_media reversed direction
...
fixes #462
Change-Id: Id8efec9261ce9edb246f7a838619a93157e049b3
7 years ago
Richard Fuchs
14262f56fa
fix segfault regression from e84fd86
...
closes #470
Change-Id: I3ce83e4fdc5fe8113932bb51ec3375c6144814ae
7 years ago
Richard Fuchs
e84fd8612b
fix incorrect DTLS context being used with ICE
...
fixes #451
Change-Id: I4db956bd9e8234862a7dd3ee492a6ed2778150d3
7 years ago
Richard Fuchs
bc30929192
TT#32210 add codec masking option
...
Change-Id: I05f2bde978f628d398dd8046815fcfc3d5b42de2
7 years ago
Richard Fuchs
9147d5e438
TT#32983 support transcoding options in redis (re)store
...
Change-Id: I8552743a5ec48b6d4464e8a2c4acd1c9bf11f02a
7 years ago
Richard Fuchs
a4a0e34ded
TT#31408 distinguish between codec types
...
Change-Id: I8c7331908fe4a105d9f9139a5f9867b6ae43a646
7 years ago
Richard Fuchs
266a1fbc8b
TT#31404 support custom ptime and repacketization for sampled codecs
...
Change-Id: I4db83cb8faa9b0234dd655f4bdc116a3ddb59f39
7 years ago
Richard Fuchs
ad4a5d10ef
TT#31198 add resampling support
...
Change-Id: Ib691e62d9ff6fc5663cea275663efc9134d78188
7 years ago
Richard Fuchs
a4e73c90e8
TT#30404 accept and reject codecs according to transcoding preference
...
Change-Id: I7e4d1d834289433ae4a42d78b92cbc745884d5d1
7 years ago
Richard Fuchs
b9206a49bc
TT#28163 abstractize SSRC hash
...
Change-Id: I2f28854070ad5a7567870ef7585e67729154b0e3
7 years ago
Richard Fuchs
d510f5efe8
TT#30404 initial support for adding codecs for transcoding
...
Change-Id: I58474ac2daee213d9f11157f61c2a3df90818fbe
7 years ago
Richard Fuchs
8715d40242
TT#30405 codec matchup and handler functions
...
Change-Id: I506c0e8bfa4b6e64689f6debeb33fe69fce1722c
7 years ago
Claudiu Boriga
b7b40cc5a9
Use proper data type for requests statistics
7 years ago
Claudiu Boriga
3850e99fd3
Use atomic64_get_set for requests statistics
7 years ago
Claudiu Boriga
f7ece0452b
Merge remote-tracking branch 'sipwise/master' into add-requests-ps-stats
7 years ago
Claudiu Boriga
8cc4b7874e
Add statistics for requests per second
7 years ago
Richard Fuchs
ca78747c8c
TT#30405 rename media->rtp_payload_types to ->codecs for brevity
...
Change-Id: If89d774a6ab62855118eec74d21123ba61b48e9e
7 years ago
Richard Fuchs
2540c5d501
TT#30403 support codec-offer
...
only codecs from the original list for now
Change-Id: I884775a5b337ed3533972f4361ecb50e329b126e
7 years ago
Richard Fuchs
d31fb36f6e
TT#30403 parse and retain a=fmtp infos
...
Change-Id: I81b2afdfac7f65833fa5260add823fcf7680c879
7 years ago
Richard Fuchs
d7dd7421e6
TT#30403 implement codec stripping
...
Change-Id: I384aa353b43986656145c443e40a2b96f04c489f
7 years ago
Richard Fuchs
46d853972b
move lib/ config options into struct
...
Change-Id: I563b38cd64daea5f9137debff2fc7881a3cdaa9d
7 years ago
Richard Fuchs
75056a8dd1
eliminate the callmaster struct
...
Change-Id: I9151dbe8f47b3bb9ab67d6fea2fc3783bdc558da
7 years ago
Richard Fuchs
f2b93f9ef8
move config options into global struct rtpengine_config
...
Change-Id: Ie566efb6a1b8bedbe33f768bc4cd979b2d2b46cc
7 years ago
Richard Fuchs
d65a6bbbdc
move latest_graphite_interval_start to global scope
...
Change-Id: I1eb5ea8d6faafe40383d3bb92517307e47ceca9a
7 years ago
Richard Fuchs
741140341f
move "totalstats" out of callmaster into global scope
...
Change-Id: Ia5b95e788c1d486a86b6f916dcff5b88022f5897
7 years ago
Richard Fuchs
c969ea1e57
move stats and statsps into global scope
...
Change-Id: I02d16e31f8980bd0ef3ff3a190b23dc61c087018
7 years ago
Richard Fuchs
cf3a8f9e16
move 'poller' member of callmaster into global scope
...
Change-Id: Ide88caff59529278e45ceef4f9664bfc07f67b3d
7 years ago
Richard Fuchs
dffbddb2d6
don't use g_ prefix for global variables
...
Change-Id: Ifd843b01d7fccf294f97fdf48308c71268e1b8ae
7 years ago
Richard Fuchs
e87b2710c8
move matching regexps out of callmaster into global
...
Change-Id: I42779b3a1b9aef8b98ddecce6fa4093589ab6d62
7 years ago
Richard Fuchs
790e596c58
move cngs out of callmaster into global scope
...
Change-Id: I138ca8756dfc576451bc7c3fca1db89d6616fb1e
7 years ago
Richard Fuchs
399e15b39a
make the callhash global
...
Change-Id: Ifa1fbb5d1b1f623dbc6a1bfac556342735b40161
7 years ago
Richard Fuchs
1aa9944fe4
TT#27550 implement interface round-robin selection
...
Change-Id: Id5cf290cc9d044716b5f55cf416dc40b87f23f24
7 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
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
00cc28dff4
TT#22660 don't zero out SDP origin on zero connection address
...
Change-Id: Idc68132a7ae23a6273464927ecf27237cdc9d6cf
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
Richard Fuchs
2a03c008ac
clean up code artifacts
...
closes #314
Change-Id: Ie6762654adc67a2cc2fd34c0bdda7a514928d389
8 years ago
Richard Fuchs
ab0dba7d14
TT#12800 support custom monologue labels
...
Change-Id: I55b2db88307088c4d5e0161eae6e3aa0b5d1b053
8 years ago
Richard Fuchs
9108b14b80
TT#12800 records stats average not just for MOS but all values
...
Change-Id: I1c641a654623022df617da98c4a53ed34decb211
8 years ago
Richard Fuchs
11dac7b28f
TT#12800 add MOS statistics to final log output
...
also converts call->created to a timeval
Change-Id: Idb71ada22a2d04637670b7515e54f2994f8d4c93
8 years ago
Richard Fuchs
868c3b64fe
TT#12800 add ssrc handling into packet_stream struct
...
Change-Id: I7da97a6435854a846d2782448b32c69327756ccf
8 years ago
Richard Fuchs
223c7f17dd
TT#12800 abstractize rtcp parsing and logging functions
...
Change-Id: I26e02a6851a51ea0720ac8ce1fc4a9e27d2ffec4
8 years ago
Richard Fuchs
b3583633e3
TT#12800 canonicalize ssrc handling
...
Change-Id: I481dd4062f044f9f7add65b4b82d276629f47ce8
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
Frederic-Philippe Metz
95d942005d
Adds missing log output
8 years ago
Frederic-Philippe Metz
8f01e780a8
First attempt to seperate more stats and cdr away from the core running code
8 years ago
Frederic-Philippe Metz
14b37ebfe5
Removes multikey stuff
8 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.
8 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
30dcadab15
TT#5566 rudimentary support for multiple audio codecs
...
Change-Id: I7e473f5d17874641253b4b16c3470851743818e1
9 years ago
Richard Fuchs
411c3b3373
TT#5566 checkin of external call recording daemon
...
Change-Id: I8102144ab1508fe815be84d727f6fa3234fd0994
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
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
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)
9 years ago
Lucian Balaceanu
5732121794
Beautifying previous code
9 years ago
Lucian Balaceanu
512cc24f9a
Print relay IP information
...
Add relay IP info in MDR, `rtpengine-ctl list sessions <Call-ID>`, call_destroy()
9 years ago
Richard Fuchs
a3c703b302
remove superfluous initialization
...
Change-Id: Ib826154cbb23340d1463158f45b557be0f86485c
9 years ago
Pawel Kuzak
e212c775e2
Merge remote-tracking branch 'upstream/master'
9 years ago
Pawel Kuzak
70a1085712
Do not print statistics of foreign calls
9 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.
9 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.
9 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.
9 years ago
Dylan Mikus
74999abb76
Free the call->recording struct when the call is destroyed.
9 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.
9 years ago
Dylan Mikus
8f6d7c0a16
Logging cleanup and added recording filesystem logging messages.
...
We log errors when filesystem operations fail, among other things.
9 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".
9 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.
9 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.
9 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.
9 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.
9 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.
9 years ago