Commit Graph

929 Commits (ad1e051cb301cf7f49b80f67c01dcad34a303aa2)

Author SHA1 Message Date
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
12 years ago
Richard Fuchs 1a83499916 fix incorrect source address of STUN binding responses
12 years ago
Richard Fuchs bbc53398f8 implement and document ng "media address"
12 years ago
Richard Fuchs 13ad0428e6 rename some keys in the ng protocol (replace dash with space) but retain compatibility
12 years ago
Richard Fuchs bd5959140d kernelize confirmed streams after restore
12 years ago
Richard Fuchs 29789c12cb more frequent redis updates for srtp calls
12 years ago
Richard Fuchs f75bc44685 get rid of the useless ROC and keep variable naming consistent
12 years ago
Richard Fuchs a780cf7891 redis updates
12 years ago
Richard Fuchs 42efaaecec drop support for hosts without ipv6 stack
12 years ago
Richard Fuchs d9b2397712 add a compile switch to drop support for ipv4-only sockets.
12 years ago
Richard Fuchs 08e60ae2ac copy rtcp-mux state when stealing peer
12 years ago
Richard Fuchs 43764b46d4 implement support for RFC 5761
12 years ago
Richard Fuchs de5b172f32 srtp re-invite fixes
12 years ago
Richard Fuchs e3cf5d521e reverse crypto context in/out as they were backwards
12 years ago
Richard Fuchs 3c93daa015 fix some regressions and bugs
12 years ago
Richard Fuchs f6d91122af un-initialized key contexts after copying struct
12 years ago
Richard Fuchs 0a4418cd4b consistent use of existing macros
12 years ago
Richard Fuchs 09dd548e01 coredump bugfix
12 years ago
Richard Fuchs 372b81886b dont error on unsupported ciphers
12 years ago
Richard Fuchs c49ea7b403 copy back s_l number from kernel to daemon
12 years ago
Richard Fuchs 97f9c3d398 SRTP daemon<>kernel tie-in
12 years ago
Richard Fuchs f38fe3f1e0 create a dedicated session key context to save some cpu
12 years ago
Richard Fuchs d632fae1f3 copy crypto context when stealing peer
12 years ago
Richard Fuchs 3c9daae60d adding rtp/savpf transforms and tests
12 years ago
Richard Fuchs 43e9696fa9 restructure in-memory crypto contexts
12 years ago
Richard Fuchs 93092e850f must use the outgoing's side crypto context for out packets, also add some logging
12 years ago
Richard Fuchs e4d050062f bugfix for borken rtp
12 years ago
Richard Fuchs db72130792 implement srtcp encryption, decryption and authentication
12 years ago
Richard Fuchs 2b61b12c71 implement srtp decryption
12 years ago
Richard Fuchs 212df63857 implementing srtp encryption and authentication
12 years ago
Richard Fuchs 7877b7ce14 implement srtp session key generation algorithm
12 years ago
Richard Fuchs e63edeb875 parsing of the sdp crypto attribute
12 years ago
Richard Fuchs d8bc7d92a2 experimental support for RTP/AVP<>AVPF bridging
12 years ago
Richard Fuchs 589c271d52 fix the silly thing about bencoded lists being backwards
12 years ago
Richard Fuchs 48018e48d0 remove obsolete comment
12 years ago
Richard Fuchs 86240e12fd rename variables in stream_packet() -- getting confusing!
12 years ago
Richard Fuchs bfb88bd7e5 fix improper use of "other" pointer
12 years ago
Richard Fuchs 3c4dd73365 update steal_peer with new flags
12 years ago
Richard Fuchs 68a97be379 keep track of transport protocols and rtcp streams
12 years ago
Richard Fuchs b355bd350a simplify a common task by keeping more pointers
12 years ago
Richard Fuchs 0427b4baf4 handle "use-candidate" properly
12 years ago
Richard Fuchs eb05c8169a support the trust-address flag
12 years ago
Richard Fuchs 009a2029b9 remove some code duplication
12 years ago
Richard Fuchs 0be4fa311e support dual-stack ICE offers
12 years ago
Richard Fuchs 1c830108ad misinterpreted the meaning of the "trust address" flag
12 years ago
Richard Fuchs 1758e586ce generate stun errors
12 years ago
Richard Fuchs 2784cb41a3 hack to prevent stale children
12 years ago
Richard Fuchs a37bd78355 rename ARRAY_SIZE to ARRAYSIZE to avoid naming conflict
12 years ago
Richard Fuchs 7787ad3b28 reorder headers and fix resulting errors
12 years ago
Richard Fuchs 8c06d3254a start work on stun support
12 years ago
Richard Fuchs f107ab461a adding rudimentary insertion of ICE attributes
12 years ago
Richard Fuchs 30669f2cd3 support removal of ICE attributes
12 years ago
Richard Fuchs fc246e64d3 cant guarantee that the call struct is still valid when the response is sent, to copy strings
12 years ago
Richard Fuchs 0230985e91 get rid of another useless variable
12 years ago
Richard Fuchs 55380807f8 tags can be NULL
12 years ago
Richard Fuchs bf4df4dff9 remove more code duplication
12 years ago
Richard Fuchs 504995e47c return call stats in NG delete message reply
12 years ago
Richard Fuchs feb3b6bde1 adding some const for good measure
12 years ago
Richard Fuchs 3c764bed52 split NG stats collection into ng_call_stats()
12 years ago
Richard Fuchs f7da33b4a7 adding a UINT64F format macro
12 years ago
Richard Fuchs b2ad672086 make call_query_udp use the new call stats function
12 years ago
Richard Fuchs 495d4cf2bd keep track of "newest" timestamp
12 years ago
Richard Fuchs 267252542b create a struct for stats collection
12 years ago
Richard Fuchs 1adef8fe7b split stream traversal for stats query into separate function
12 years ago
Richard Fuchs 8c9fa012bd lets have a totals packet/bytes counter for each call
12 years ago
Richard Fuchs e9bf80768d add more bencode convenience functions
12 years ago
Richard Fuchs 1ef1c87545 add a prelim NG query command
12 years ago
Richard Fuchs aaa3f4d116 simplify call_query_udp a bit
12 years ago
Richard Fuchs f369c9f799 more redis support functions
12 years ago
Richard Fuchs 8d3b8e310a redis support functions
12 years ago
Richard Fuchs 20f33e56ff treat zero ip/port as wildcard when matching up old streams
12 years ago
Richard Fuchs 5cebf5adbd use peer_advertised where appropriate
12 years ago
Richard Fuchs fc6fe69075 replace IN6_IS_ADDR_UNSPECIFIED because it doesnt work for mapped addresses
12 years ago
Richard Fuchs 5d726fdf84 fix some ipv6 related bugs
12 years ago
Richard Fuchs 6adda7c301 keep track of sdp stream endpoints and use them as index when rewriting
12 years ago
Richard Fuchs bac4f31489 get rid of num parameter to sdp_replace
12 years ago
Richard Fuchs 7ca74b399e use iovec based sdp rewriting
12 years ago
Richard Fuchs df1b169cba handle consecutive ports in SDP
12 years ago
Richard Fuchs a67f03d1d3 introduce struct udp_fd
12 years ago
Richard Fuchs 4c14016f9f code cosmetics
12 years ago
Richard Fuchs 7137b784e9 implement a "relays cache"
12 years ago
Richard Fuchs 061507585c variable renaming - getting confusing
12 years ago
Richard Fuchs a45a7379ed obsolete get_port_pair()
12 years ago
Richard Fuchs ce2df6d90f exclude our own listening ports from RTP
12 years ago
Richard Fuchs 9ae844040a reimplement get_port_pair() to support multiple consecutive ports
12 years ago
Richard Fuchs e22b6a04fb support trust-address flag
12 years ago
Richard Fuchs ab3a47ae41 finish renaming control.[ch] to control_tcp.[ch]
12 years ago
Richard Fuchs efdc8efeb8 rename some command implementation functions for consistency
12 years ago
Richard Fuchs 9f78c2f17a implement call_delete_ng()
12 years ago
Richard Fuchs 3069720052 fix copy-pasto
12 years ago
Richard Fuchs 2872d18f43 implement call_answer
12 years ago
Richard Fuchs 5d1c2aabed support some flags passed from rtpproxy-ng module
12 years ago
Richard Fuchs 5accfd0751 dont return ipv6 address by default
12 years ago
Richard Fuchs 011e0e7e4e unify call_update_udp and call_lookup_udp
12 years ago
Richard Fuchs e5d7341bdc unify call_request and call_lookup
12 years ago
Richard Fuchs 6fd39168f1 obsolete infohash
12 years ago
Richard Fuchs ecc37e4b2a fix segfault related to null log_info
12 years ago
Richard Fuchs b66809bb8c use new struct stream_input where appropriate
12 years ago
Richard Fuchs 8fe26b2d3b obsolete the "mediatype" element
12 years ago
Richard Fuchs 9589a73b42 obsolete call{ed,ing}_agent element
12 years ago
Richard Fuchs 337167faf7 use enum stream_address_format
12 years ago
Richard Fuchs 923a7bdf5a correctly mark ip6 address
12 years ago
Richard Fuchs c75394d3cd first take on SDP rewriting
12 years ago
Richard Fuchs 2b60a82e36 more mass deployment of the new "str" object - does this thing still work? now really?
12 years ago
Richard Fuchs 60da1bc445 mass deployment of the new "str" object - does this thing still work?
12 years ago
Richard Fuchs 8db7ab6c94 introduce kamailio-style "str" data type/struct
12 years ago
Richard Fuchs ccfa304354 sdp_streams() initial implementation
12 years ago
Richard Fuchs f6a336ce89 prefer objects on stack instead of heap when possible
12 years ago
Richard Fuchs a2ac8075a9 WIP on SDP parser
12 years ago
Richard Fuchs be4a6c7d58 make my life easier with a smart_ntop_port() function
12 years ago
Richard Fuchs 5ea5dcddfa call_offer()/answer stubs
12 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
13 years ago
Richard Fuchs 8092a56761 another locking fix
13 years ago
Richard Fuchs bb054ec00b fix more locking problems
13 years ago
Richard Fuchs 3a26e9fceb fix possible race condition
13 years ago
Richard Fuchs 39207a0859 dont fail on zero port in tcp controller
13 years ago
Richard Fuchs 37013fd148 IPv6 socket requires IPv4 PKTINFO for setting source address correctly
13 years ago
Richard Fuchs 59c5ffd0da fix reference count leak
13 years ago
Richard Fuchs 08d40d8ac5 add debian buildflags and address generated warnings
13 years ago
Richard Fuchs 594297a3ea use string chunk for all the little call-related strings
13 years ago
Richard Fuchs afb1f5de95 need to lock the call a bit earlier
13 years ago
Richard Fuchs d8ef1885cc split callstream_init into callstream_new for redis module
13 years ago
Richard Fuchs c291d1220b fix logging inconsistency
13 years ago
Richard Fuchs 72840c8d1d reorder calls to redis for proper locking
13 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!
13 years ago
Richard Fuchs 2ad1d6f65e xmlrpc still segfaulting. leaves no choice but to fork out a new process, ugh.
13 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
13 years ago
Richard Fuchs fabcb53a3b the curl xmlrpc transport isnt playing nicely - revert to default
13 years ago
Richard Fuchs 08c764c748 cant decref null references
13 years ago
Richard Fuchs 0f6d898171 add proper locking to callstream setup procedure
13 years ago
Richard Fuchs 94f2f320a6 actually the call struct needs neither linked flag nor shutdown flag due to the sequence of events and locking
13 years ago
Richard Fuchs d8776907f8 need to lock the callstream a bit earlier
13 years ago
Richard Fuchs ab3b8c60f0 fix a silly, threading-unrelated, statistics-skewing bug
13 years ago
Richard Fuchs 45f34b9784 turns out you actually have to free/destroy mutexes. who woulda thunk?
13 years ago
Richard Fuchs 54353022ff om nom nom memory leak... well, reference count leak
13 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
13 years ago
Richard Fuchs ddffe5eeec global xmlrpc init must be done prior to any threading
13 years ago
Richard Fuchs d1fbf9bef9 alarms arent usable in a threaded environment, so use curl internal timeout instead
13 years ago
Richard Fuchs feeeee2fab must extract needed tags for xmlrpc call teardown prior to destroying the calls
13 years ago
Richard Fuchs 973d92d9c7 moving call teardown due to timeout to a separate thread
13 years ago
Richard Fuchs 2dd6cfe68c keeping the lock hold time to a minimum in lengthy calls_status operation
13 years ago
Richard Fuchs 8c2c69f5e6 make the stats collection thread-safe
13 years ago
Richard Fuchs d9e09f33bc lets try with a lot of large, nested, naive locks
13 years ago
Richard Fuchs ae5a36f5ce getting rid of call->log_info and introducing call->lock
13 years ago
Richard Fuchs 900f76a17e make the callmaster struct private - also requires update to redis module
13 years ago
Richard Fuchs aeb5398b0d granular lock for "ports used" bit field
13 years ago
Richard Fuchs a8680cc2d9 TOS for ipv6 needs an int to work
13 years ago
Richard Fuchs 0b0b41e67f gonna need more than one lock in callmaster, so rename the one we have
13 years ago
Richard Fuchs 4588e13a76 getting rid of more global variables
13 years ago
Richard Fuchs e033d1da1c EINTR requires special handling
13 years ago
Richard Fuchs db15692f21 using thread-local-storage for eliminating constant calls to time()
13 years ago
Richard Fuchs 5f5e158d76 private structs make for safer threading
13 years ago
Richard Fuchs ebd2893e96 missing a streambuf lock here
13 years ago
Richard Fuchs 7dc00bd258 making timers thread-safe
13 years ago
Richard Fuchs de33b8da40 add basic locking to callmaster struct
13 years ago
Richard Fuchs 8e5ad59558 make the obj_ primitives more liberal to make for easier calling
13 years ago
Richard Fuchs 145bbd1f7c Prepare for multi-threaded operation
13 years ago
Richard Fuchs 2594da3b45 dont poll kernel list when table couldnt be opened
13 years ago
Richard Fuchs 8d50923508 good bye poll(), hello epoll_*()
13 years ago
Richard Fuchs 2a8c07df0e take rtcp ports into account when checking for timeouts
13 years ago
Richard Fuchs 70ac6a274c take 0-byte packets into consideration when updating peer info for NAT'd streams
13 years ago
Richard Fuchs 24cf5a0ca0 dump packet stats upon call teardown
13 years ago
Richard Fuchs b6650a9d78 increase max udp packet len to 8192 and add warning message if the limit is hit
13 years ago
Richard Fuchs e4575cf31f who knew that zero-length udp packets are valid?
13 years ago
Richard Fuchs 33b7872115 be a bit more clear in the read error message
13 years ago
Richard Fuchs 35404af428 log error code upon RTP socket error
13 years ago
Richard Fuchs dc7517121d remove uuid helper code
13 years ago