Commit Graph

875 Commits (mr12.2)

Author SHA1 Message Date
Richard Fuchs c0f8196a25 implement detection of duplicate packets to catch and avoid forwarding loops
12 years ago
Richard Fuchs 65812fa2b2 limit the number of times the receive loop can run without breaking
12 years ago
Richard Fuchs fe6567161a simple port randomizer
12 years ago
Richard Fuchs 16b42fbd62 Switch around internal fromtag/totag/endpoint representation
12 years ago
Richard Fuchs 5e129dd8f6 brevity
12 years ago
Richard Fuchs 1f4f0d6137 implement delayed call/branch deletion
12 years ago
Richard Fuchs 58940b5018 change stun log levels
12 years ago
Richard Fuchs ec21806c95 use default TOS if not using NG protocol
12 years ago
Richard Fuchs 9d001e3452 fix segfault if NG protocol is not used
12 years ago
Camille Oudot 6005d14e1a XMLRPC notifications: more formats
12 years ago
Richard Fuchs 681b2c1a24 version reporting: use git branch and commit if available
12 years ago
Richard Fuchs 964b644ecd don't skip setting stream to actpass when not using sdes
12 years ago
Richard Fuchs e883f57929 better support protocol switching within a call
12 years ago
Richard Fuchs e7aa743fce change default a=crypto: tag from zero to one
12 years ago
Richard Fuchs 759ea60b3b adding some debug messages
12 years ago
Richard Fuchs 9ecb7daf8d allow for protocol renegotiation
12 years ago
Richard Fuchs b0c7efb241 duplicate x509 in mem for delayed verification
12 years ago
Richard Fuchs 9cbe157f4f properly support the udptl protocol
12 years ago
Richard Fuchs d37d385806 properly handle unknown transport protocols
12 years ago
Richard Fuchs bd770cbab6 Merge branch 'rfuchs/configurable-tos'
12 years ago
Richard Fuchs 69dec02648 fix inappropriate locking sequenece
12 years ago
Richard Fuchs e381e107ec configurable per-call TOS value
12 years ago
Richard Fuchs 2e9ae75fb0 remove needless assertion
12 years ago
Richard Fuchs a7784f5ca3 try to fix null c= address issue
12 years ago
Richard Fuchs ba1bd04841 silence warning for kernelizing rtcp
12 years ago
Richard Fuchs e9ff918b8f make call_destroy() global
12 years ago
Richard Fuchs 3030324c0a sink must also be unlocked when peer address changes
12 years ago
Richard Fuchs 4ded03de91 implement media-handover and strict-source logic
12 years ago
Richard Fuchs b8a39bed7e avoid log message redundancy
12 years ago
Richard Fuchs eb59af9520 more verbose timeout log message
12 years ago
Richard Fuchs bb84ea5035 implement explicit warning when kernel support is missing
12 years ago
Richard Fuchs 940030d670 support kernel forward of non-rtp packets
12 years ago
Richard Fuchs 0a42f4aa26 fix timeout handling for silenced streams
12 years ago
Richard Fuchs 011a42650d restore query/stats output
12 years ago
Richard Fuchs 92cab838b3 remove unused variable
12 years ago
Richard Fuchs 88dfeee622 fix compiler warning
12 years ago
Richard Fuchs 838917b226 compile fixes for older gcc versions
12 years ago
Richard Fuchs 9f1696d2c1 use srtp<>srtp transcode if either side uses dtls
12 years ago
Richard Fuchs aa5bae9777 implement experimental passthrough relay mode
12 years ago
Richard Fuchs 5d490223f6 set media SDES flag when appropriate
12 years ago
Richard Fuchs e19ca0a66e introduce log level flags (LOG_FLAG_RESTORE)
12 years ago
Richard Fuchs 7c0cc4cec0 updates for redis support
12 years ago
Richard Fuchs f638f36bb0 replace implicit bit fields with explicit ones
12 years ago
Richard Fuchs 4c0ca278fa rename mediaproxy-ng to rtpengine
12 years ago
Richard Fuchs f8f741b584 Update to upcoming 3.0 release (2.9.9 for now)
12 years ago
Richard Fuchs bcc020eefb fix IPv4 TOS if IPv6 is enabled
12 years ago
Richard Fuchs 0597817816 update desired address family (based on "direction") when branching
12 years ago
Richard Fuchs 5c616c27af fix erroneous double lookup detection
12 years ago
Richard Fuchs b14908e59e additional debug for double lookup case
12 years ago
Richard Fuchs bda8c543b8 re-learn peer addresses after each signalling
12 years ago
Richard Fuchs 9f51161c61 fix possible segfault on incorrect sp/SP flag usage
12 years ago
Richard Fuchs b18d14eda5 Implement non-fatal warnings in NG replies and use them in "delete"
12 years ago
Richard Fuchs 7e6f1b5bfa enforce stream correlation against same-numbered old streams
13 years ago
Richard Fuchs 1a83499916 fix incorrect source address of STUN binding responses
13 years ago
Richard Fuchs bbc53398f8 implement and document ng "media address"
13 years ago
Richard Fuchs 13ad0428e6 rename some keys in the ng protocol (replace dash with space) but retain compatibility
13 years ago
Richard Fuchs bd5959140d kernelize confirmed streams after restore
13 years ago
Richard Fuchs 29789c12cb more frequent redis updates for srtp calls
13 years ago
Richard Fuchs f75bc44685 get rid of the useless ROC and keep variable naming consistent
13 years ago
Richard Fuchs a780cf7891 redis updates
13 years ago
Richard Fuchs 42efaaecec drop support for hosts without ipv6 stack
13 years ago
Richard Fuchs d9b2397712 add a compile switch to drop support for ipv4-only sockets.
13 years ago
Richard Fuchs 08e60ae2ac copy rtcp-mux state when stealing peer
13 years ago
Richard Fuchs 43764b46d4 implement support for RFC 5761
13 years ago
Richard Fuchs de5b172f32 srtp re-invite fixes
13 years ago
Richard Fuchs e3cf5d521e reverse crypto context in/out as they were backwards
13 years ago
Richard Fuchs 3c93daa015 fix some regressions and bugs
13 years ago
Richard Fuchs f6d91122af un-initialized key contexts after copying struct
13 years ago
Richard Fuchs 0a4418cd4b consistent use of existing macros
13 years ago
Richard Fuchs 09dd548e01 coredump bugfix
13 years ago
Richard Fuchs 372b81886b dont error on unsupported ciphers
13 years ago
Richard Fuchs c49ea7b403 copy back s_l number from kernel to daemon
13 years ago
Richard Fuchs 97f9c3d398 SRTP daemon<>kernel tie-in
13 years ago
Richard Fuchs f38fe3f1e0 create a dedicated session key context to save some cpu
13 years ago
Richard Fuchs d632fae1f3 copy crypto context when stealing peer
13 years ago
Richard Fuchs 3c9daae60d adding rtp/savpf transforms and tests
13 years ago
Richard Fuchs 43e9696fa9 restructure in-memory crypto contexts
13 years ago
Richard Fuchs 93092e850f must use the outgoing's side crypto context for out packets, also add some logging
13 years ago
Richard Fuchs e4d050062f bugfix for borken rtp
13 years ago
Richard Fuchs db72130792 implement srtcp encryption, decryption and authentication
13 years ago
Richard Fuchs 2b61b12c71 implement srtp decryption
13 years ago
Richard Fuchs 212df63857 implementing srtp encryption and authentication
13 years ago
Richard Fuchs 7877b7ce14 implement srtp session key generation algorithm
13 years ago
Richard Fuchs e63edeb875 parsing of the sdp crypto attribute
13 years ago
Richard Fuchs d8bc7d92a2 experimental support for RTP/AVP<>AVPF bridging
13 years ago
Richard Fuchs 589c271d52 fix the silly thing about bencoded lists being backwards
13 years ago
Richard Fuchs 48018e48d0 remove obsolete comment
13 years ago
Richard Fuchs 86240e12fd rename variables in stream_packet() -- getting confusing!
13 years ago
Richard Fuchs bfb88bd7e5 fix improper use of "other" pointer
13 years ago
Richard Fuchs 3c4dd73365 update steal_peer with new flags
13 years ago
Richard Fuchs 68a97be379 keep track of transport protocols and rtcp streams
13 years ago
Richard Fuchs b355bd350a simplify a common task by keeping more pointers
13 years ago
Richard Fuchs 0427b4baf4 handle "use-candidate" properly
13 years ago
Richard Fuchs eb05c8169a support the trust-address flag
13 years ago
Richard Fuchs 009a2029b9 remove some code duplication
13 years ago
Richard Fuchs 0be4fa311e support dual-stack ICE offers
13 years ago
Richard Fuchs 1c830108ad misinterpreted the meaning of the "trust address" flag
13 years ago
Richard Fuchs 1758e586ce generate stun errors
13 years ago
Richard Fuchs 2784cb41a3 hack to prevent stale children
13 years ago
Richard Fuchs a37bd78355 rename ARRAY_SIZE to ARRAYSIZE to avoid naming conflict
13 years ago
Richard Fuchs 7787ad3b28 reorder headers and fix resulting errors
13 years ago
Richard Fuchs 8c06d3254a start work on stun support
13 years ago
Richard Fuchs f107ab461a adding rudimentary insertion of ICE attributes
13 years ago
Richard Fuchs 30669f2cd3 support removal of ICE attributes
13 years ago
Richard Fuchs fc246e64d3 cant guarantee that the call struct is still valid when the response is sent, to copy strings
13 years ago
Richard Fuchs 0230985e91 get rid of another useless variable
13 years ago
Richard Fuchs 55380807f8 tags can be NULL
13 years ago
Richard Fuchs bf4df4dff9 remove more code duplication
13 years ago
Richard Fuchs 504995e47c return call stats in NG delete message reply
13 years ago
Richard Fuchs feb3b6bde1 adding some const for good measure
13 years ago
Richard Fuchs 3c764bed52 split NG stats collection into ng_call_stats()
13 years ago
Richard Fuchs f7da33b4a7 adding a UINT64F format macro
13 years ago
Richard Fuchs b2ad672086 make call_query_udp use the new call stats function
13 years ago
Richard Fuchs 495d4cf2bd keep track of "newest" timestamp
13 years ago
Richard Fuchs 267252542b create a struct for stats collection
13 years ago
Richard Fuchs 1adef8fe7b split stream traversal for stats query into separate function
13 years ago
Richard Fuchs 8c9fa012bd lets have a totals packet/bytes counter for each call
13 years ago
Richard Fuchs e9bf80768d add more bencode convenience functions
13 years ago
Richard Fuchs 1ef1c87545 add a prelim NG query command
13 years ago
Richard Fuchs aaa3f4d116 simplify call_query_udp a bit
13 years ago
Richard Fuchs f369c9f799 more redis support functions
13 years ago
Richard Fuchs 8d3b8e310a redis support functions
13 years ago
Richard Fuchs 20f33e56ff treat zero ip/port as wildcard when matching up old streams
13 years ago
Richard Fuchs 5cebf5adbd use peer_advertised where appropriate
13 years ago
Richard Fuchs fc6fe69075 replace IN6_IS_ADDR_UNSPECIFIED because it doesnt work for mapped addresses
13 years ago
Richard Fuchs 5d726fdf84 fix some ipv6 related bugs
13 years ago
Richard Fuchs 6adda7c301 keep track of sdp stream endpoints and use them as index when rewriting
13 years ago
Richard Fuchs bac4f31489 get rid of num parameter to sdp_replace
13 years ago
Richard Fuchs 7ca74b399e use iovec based sdp rewriting
13 years ago
Richard Fuchs df1b169cba handle consecutive ports in SDP
13 years ago
Richard Fuchs a67f03d1d3 introduce struct udp_fd
13 years ago
Richard Fuchs 4c14016f9f code cosmetics
13 years ago
Richard Fuchs 7137b784e9 implement a "relays cache"
13 years ago
Richard Fuchs 061507585c variable renaming - getting confusing
13 years ago
Richard Fuchs a45a7379ed obsolete get_port_pair()
13 years ago
Richard Fuchs ce2df6d90f exclude our own listening ports from RTP
13 years ago
Richard Fuchs 9ae844040a reimplement get_port_pair() to support multiple consecutive ports
13 years ago
Richard Fuchs e22b6a04fb support trust-address flag
13 years ago
Richard Fuchs ab3a47ae41 finish renaming control.[ch] to control_tcp.[ch]
13 years ago
Richard Fuchs efdc8efeb8 rename some command implementation functions for consistency
13 years ago
Richard Fuchs 9f78c2f17a implement call_delete_ng()
13 years ago
Richard Fuchs 3069720052 fix copy-pasto
13 years ago
Richard Fuchs 2872d18f43 implement call_answer
13 years ago
Richard Fuchs 5d1c2aabed support some flags passed from rtpproxy-ng module
13 years ago
Richard Fuchs 5accfd0751 dont return ipv6 address by default
13 years ago
Richard Fuchs 011e0e7e4e unify call_update_udp and call_lookup_udp
13 years ago
Richard Fuchs e5d7341bdc unify call_request and call_lookup
13 years ago
Richard Fuchs 6fd39168f1 obsolete infohash
13 years ago
Richard Fuchs ecc37e4b2a fix segfault related to null log_info
13 years ago
Richard Fuchs b66809bb8c use new struct stream_input where appropriate
13 years ago
Richard Fuchs 8fe26b2d3b obsolete the "mediatype" element
13 years ago
Richard Fuchs 9589a73b42 obsolete call{ed,ing}_agent element
13 years ago
Richard Fuchs 337167faf7 use enum stream_address_format
13 years ago
Richard Fuchs 923a7bdf5a correctly mark ip6 address
13 years ago
Richard Fuchs c75394d3cd first take on SDP rewriting
13 years ago
Richard Fuchs 2b60a82e36 more mass deployment of the new "str" object - does this thing still work? now really?
13 years ago
Richard Fuchs 60da1bc445 mass deployment of the new "str" object - does this thing still work?
13 years ago
Richard Fuchs 8db7ab6c94 introduce kamailio-style "str" data type/struct
13 years ago
Richard Fuchs ccfa304354 sdp_streams() initial implementation
13 years ago
Richard Fuchs f6a336ce89 prefer objects on stack instead of heap when possible
13 years ago
Richard Fuchs a2ac8075a9 WIP on SDP parser
13 years ago
Richard Fuchs be4a6c7d58 make my life easier with a smart_ntop_port() function
13 years ago
Richard Fuchs 5ea5dcddfa call_offer()/answer stubs
13 years ago
Richard Fuchs bca25d7700 make call_lookup_udp() remember viabranches like call_update_udp()
13 years ago
Richard Fuchs ef521030ab make viabranch in udp lookup optional
13 years ago
Richard Fuchs ed7f8dda04 remove obsolete code; add more locking
13 years ago
Richard Fuchs 644e5ba9df calculate proper "TTL"
13 years ago
Richard Fuchs bbb8327750 implement udp Q command
13 years ago
Richard Fuchs a99ada4e41 add more logging to xmlrpc call mechanism
13 years ago
Richard Fuchs eda487e579 un-shoot myself in the foot, gna
14 years ago
Richard Fuchs 8092a56761 another locking fix
14 years ago
Richard Fuchs bb054ec00b fix more locking problems
14 years ago
Richard Fuchs 3a26e9fceb fix possible race condition
14 years ago
Richard Fuchs 39207a0859 dont fail on zero port in tcp controller
14 years ago
Richard Fuchs 37013fd148 IPv6 socket requires IPv4 PKTINFO for setting source address correctly
14 years ago
Richard Fuchs 59c5ffd0da fix reference count leak
14 years ago
Richard Fuchs 08d40d8ac5 add debian buildflags and address generated warnings
14 years ago
Richard Fuchs 594297a3ea use string chunk for all the little call-related strings
14 years ago
Richard Fuchs afb1f5de95 need to lock the call a bit earlier
14 years ago
Richard Fuchs d8ef1885cc split callstream_init into callstream_new for redis module
14 years ago
Richard Fuchs c291d1220b fix logging inconsistency
14 years ago
Richard Fuchs 72840c8d1d reorder calls to redis for proper locking
14 years ago
Richard Fuchs d20d747a63 since xmlrpc is still segfaulting even in its own process, disable core dumps in the child and retry the xmlrpc call up to 3 times if the child terminates abnormally. jumping through hoops ftw!
14 years ago
Richard Fuchs 2ad1d6f65e xmlrpc still segfaulting. leaves no choice but to fork out a new process, ugh.
14 years ago
Richard Fuchs f4833f6b74 xmlrpc calls still causing segfaults, lets try with a dedicated client object per call... i'm starting to dislike this library
14 years ago
Richard Fuchs fabcb53a3b the curl xmlrpc transport isnt playing nicely - revert to default
14 years ago
Richard Fuchs 08c764c748 cant decref null references
14 years ago
Richard Fuchs 0f6d898171 add proper locking to callstream setup procedure
14 years ago
Richard Fuchs 94f2f320a6 actually the call struct needs neither linked flag nor shutdown flag due to the sequence of events and locking
14 years ago
Richard Fuchs d8776907f8 need to lock the callstream a bit earlier
14 years ago
Richard Fuchs ab3b8c60f0 fix a silly, threading-unrelated, statistics-skewing bug
14 years ago
Richard Fuchs 45f34b9784 turns out you actually have to free/destroy mutexes. who woulda thunk?
14 years ago
Richard Fuchs 54353022ff om nom nom memory leak... well, reference count leak
14 years ago
Richard Fuchs b7a68659b1 analoguous to the last race, call_destroy() must not assume that it's getting the last reference to the call
14 years ago
Richard Fuchs ddffe5eeec global xmlrpc init must be done prior to any threading
14 years ago
Richard Fuchs d1fbf9bef9 alarms arent usable in a threaded environment, so use curl internal timeout instead
14 years ago
Richard Fuchs feeeee2fab must extract needed tags for xmlrpc call teardown prior to destroying the calls
14 years ago
Richard Fuchs 973d92d9c7 moving call teardown due to timeout to a separate thread
14 years ago
Richard Fuchs 2dd6cfe68c keeping the lock hold time to a minimum in lengthy calls_status operation
14 years ago
Richard Fuchs 8c2c69f5e6 make the stats collection thread-safe
14 years ago
Richard Fuchs d9e09f33bc lets try with a lot of large, nested, naive locks
14 years ago
Richard Fuchs ae5a36f5ce getting rid of call->log_info and introducing call->lock
14 years ago
Richard Fuchs 900f76a17e make the callmaster struct private - also requires update to redis module
14 years ago
Richard Fuchs aeb5398b0d granular lock for "ports used" bit field
14 years ago
Richard Fuchs a8680cc2d9 TOS for ipv6 needs an int to work
14 years ago
Richard Fuchs 0b0b41e67f gonna need more than one lock in callmaster, so rename the one we have
14 years ago
Richard Fuchs 4588e13a76 getting rid of more global variables
14 years ago
Richard Fuchs e033d1da1c EINTR requires special handling
14 years ago
Richard Fuchs db15692f21 using thread-local-storage for eliminating constant calls to time()
14 years ago
Richard Fuchs 5f5e158d76 private structs make for safer threading
14 years ago
Richard Fuchs ebd2893e96 missing a streambuf lock here
14 years ago
Richard Fuchs 7dc00bd258 making timers thread-safe
14 years ago
Richard Fuchs de33b8da40 add basic locking to callmaster struct
14 years ago
Richard Fuchs 8e5ad59558 make the obj_ primitives more liberal to make for easier calling
14 years ago
Richard Fuchs 145bbd1f7c Prepare for multi-threaded operation
14 years ago
Richard Fuchs 2594da3b45 dont poll kernel list when table couldnt be opened
14 years ago
Richard Fuchs 8d50923508 good bye poll(), hello epoll_*()
14 years ago
Richard Fuchs 2a8c07df0e take rtcp ports into account when checking for timeouts
14 years ago
Richard Fuchs 70ac6a274c take 0-byte packets into consideration when updating peer info for NAT'd streams
14 years ago
Richard Fuchs 24cf5a0ca0 dump packet stats upon call teardown
14 years ago
Richard Fuchs b6650a9d78 increase max udp packet len to 8192 and add warning message if the limit is hit
14 years ago
Richard Fuchs e4575cf31f who knew that zero-length udp packets are valid?
14 years ago
Richard Fuchs 33b7872115 be a bit more clear in the read error message
14 years ago
Richard Fuchs 35404af428 log error code upon RTP socket error
14 years ago
Richard Fuchs dc7517121d remove uuid helper code
14 years ago