Commit Graph

128 Commits

Author SHA1 Message Date
Andrew Bettison
c35af0617a Fix header files for Xcode iOS build
- make "debug.h" a private header so that the DEBUG() macro does not
  interfere with Xcode Debug builds, which set DEBUG=1
- move all #include "debug.h" from headers into .c files
- move 'struct idebug' into a new public header "idebug.h" so that
  "log.h" can be public
- move HTTPD port number defs from "httpd.h" to "constants.h", so that
  "httpd.h" can be private and "conf.h" can be public
- add missing nested includes so each header compiles stand-alone
  without error
- #include "sodium.h" instead of <sodium.h>
- #include "sqlite3.h" instead of <sqlite3.h>
- add header guard to "fifo.h"
- fix header guard in "sync_keys.h"
2018-03-06 15:29:29 +10:30
Jeremy Lakeman
0382e7990e Enable a more graceful shutdown of the server in most cases 2017-09-12 15:37:52 +09:30
Jeremy Lakeman
bd47a8eb60 Use libsodium for retrieving random bytes 2016-05-09 10:32:04 +09:30
Jeremy Lakeman
231ab257e4 Define internal port bindings with section linking tricks 2016-03-07 15:50:34 +10:30
Andrew Bettison
a060642fdb Add strbuf_local_buf() macro 2015-11-02 10:11:41 +10:30
Andrew Bettison
3ab7e04497 Add buf_strncpy_nul(), use in place of strlcpy() 2015-11-02 10:11:41 +10:30
Andrew Bettison
7d9a5faa4e Move if(config.debug.xxx) tests into DEBUGF()
Original DEBUG() and DEBUGF() macros renamed to _DEBUG() and _DEBUGF()
New DEBUG() and DEBUGF() macros, first argument is flagname
New DEBUGF2(foo, bar, ...) macro does if(config.debug.foo||config.debug.bar) test
Replace almost all config.debug.xxx references to IF_DEBUG(xxx)
2015-07-13 16:00:05 +09:30
Jeremy Lakeman
e97f7c4e29 Fix vomp stun tests
- Don't trust stun responses about 3rd parties
- Only ack neighbour links via 1hop destinations (not multi-hop routes)
- Don't override network destinations that were manually supplied
2015-06-22 14:50:28 +09:30
Jeremy Lakeman
e0557be6e9 Send ANSWERED message even if we never see RINGING 2014-10-01 15:53:19 +09:30
Jeremy Lakeman
cfa2b0e4cd Fix codec and local extension parsing 2014-10-01 15:53:19 +09:30
Jeremy Lakeman
d2015a44b9 Fix documentation of monitor state for vomp calls 2014-08-04 17:04:11 +09:30
Andrew Bettison
07dfc42f8f Fixes #42 - VoMP session ID allocation 2014-07-10 13:04:56 +09:30
Jeremy Lakeman
6d4ad0e150 Rework scheduler to allow for lazy but important alarms 2014-06-04 17:13:08 +09:30
Jeremy Lakeman
23cb4600e2 Improve VOMP testing 2014-04-10 11:14:46 +09:30
Jeremy Lakeman
f78a4d69a2 Don't shuffle monitor client connections on close 2014-02-25 13:55:49 +10:30
Jeremy Lakeman
7ed6be3690 Introduce basic vomp console test 2014-02-19 16:39:05 +10:30
Jeremy Lakeman
32ab923dcc Refactor rhizome mdp and vomp packet sending 2014-02-19 16:38:26 +10:30
Jeremy Lakeman
44512280c1 Migrate VoMP & mdp trace 2014-02-19 16:37:09 +10:30
Andrew Bettison
dea46d0d8b Fix -Wsign-compare warnings in VoMP code 2013-12-10 17:09:19 +10:30
Andrew Bettison
5d741361ea Fix -Wsign-compare warnings: make loop counters unsigned 2013-12-10 16:21:23 +10:30
Jeremy Lakeman
0d5d878521 Refactor socket name and address length handling 2013-11-27 13:08:37 +10:30
Andrew Bettison
a95ef79139 Use sid_t everywhere
Remove stowSid() at last

Change API of tohex() and strbuf_tohex(), to pass string length instead of
binary byte count.  This allows odd numbers of hex digits to be produced.

Remove alloca_tohex_sid(); replace with alloca_tohex_sid_t()

New alloca_tohex_sid_t_trunc() macro
2013-10-09 18:54:21 +10:30
Jeremy Lakeman
e5856225cf Add packet retransmissions due to missed ack's 2013-05-29 11:58:05 +09:30
Jeremy Lakeman
5fc9264c49 Make sure audio clock doesn't jump back due to out of order packets 2013-05-27 14:24:33 +09:30
gardners
2252fdcaa7 created tool for automatically finding IN()s without matching
OUT()s or where return() is used instead of RETURN().
Added OUT() to end of all functions using IN() that lacked it to
make it easier to statically analyse this invariant.
Fixed several return instead of RETURNs detected through use of
this tool. #49
2013-02-20 16:18:56 +10:30
Jeremy Lakeman
1b1af90924 Improve vomp quality under ideal & low bandwidth use 2012-12-19 10:40:48 +10:30
Jeremy Lakeman
82db15db5b Use any packet as a self-announce
Stop sending OF_TYPE_SELFANNOUNCE
Deprecate OF_TYPE_DATA_VOICE
Tweak payload priorities
Don't allow client applications to send high priority payloads
2012-12-16 10:09:29 +10:30
Jeremy Lakeman
e5f5256aaa Send up to 10 stun requests, once per second 2012-12-12 10:01:07 +10:30
Andrew Bettison
5985df751d Overhaul debug flags
Replace debugflags_t and DEBUG_XXX bit masks with config schema "debug.xxx"
entries.

No more support for "debug.all".
2012-12-11 15:59:46 +10:30
Jeremy Lakeman
b7d4fa478e Attempt stun lookup when dialing vomp call 2012-12-10 14:05:57 +10:30
Jeremy Lakeman
3a4f052470 Modify vomp call state to use subscriber structures 2012-12-10 14:05:56 +10:30
Jeremy Lakeman
e956998d94 Clamp maximum jitter delay 2012-12-06 11:53:38 +10:30
Jeremy Lakeman
f6f12f8de7 Add text codec to console operation 2012-12-05 15:38:05 +10:30
Jeremy Lakeman
a4eaf37bbd Shrink vomp headers, reduce servald's knowledge of codec details 2012-12-05 15:38:04 +10:30
Andrew Bettison
4450116472 Refactor string functions, add str_fromprint()
Move lots of non-Serval-specific string functions from "serval.h"/dataformats.c
to "str.h"/str.c.

Add str_fromprint() function that reverses the effect of toprint(): interprets
escape sequences in the source string "\n\t\r\0\xHH\\" and replaces them with a
single char in the destination string.
2012-11-07 16:42:45 +10:30
Jeremy Lakeman
760bd04189 Estimate required jitter buffering 2012-10-22 14:05:15 +10:30
Jeremy Lakeman
fa7719fbe8 Write simple vomp console client 2012-09-28 15:23:50 +09:30
Jeremy Lakeman
66e0711d6b Only send one audio block per packet, but request that it be sent multiple times
If we receive a large buffer of audio, we want to stuff the packet with multiple frames and send them together.
And we want to send redundant copies of the audio to help recover from packet loss.
But if all our redundant copies end up in the same packet, we're screwed anyway.

This is a temporary hack until the network layer implements NACK / retry for resilient multi-hop delivery
2012-09-28 15:23:49 +09:30
Jeremy Lakeman
ac3864ff20 Reuse command line parsing framework with monitor interface 2012-09-25 13:31:34 +09:30
Jeremy Lakeman
456bf3fdca Tidy up source port checking 2012-09-14 17:04:35 +09:30
Jeremy Lakeman
48c899df39 Pass remote sequence number through monitor interface 2012-08-21 13:32:55 +09:30
Jeremy Lakeman
00b1609deb Fix audio rotor buffer 2012-08-21 13:32:55 +09:30
Daniel O'Connor
d77e5b7c62 Add strlcpy as it appears some systems (Ubuntu and probably Debian) don't have it.
This is a public domain version from http://cantrip.org/strlcpy.c
2012-08-13 18:24:19 +09:30
Jeremy Lakeman
dcb2da45fa Allow for audio to arrive in variable sized blocks 2012-08-13 16:35:30 +09:30
Jeremy Lakeman
3ab79d8e5b Pass phone numbers in vomp call initiation 2012-08-13 14:01:57 +09:30
Daniel O'Connor
15013d7086 Fix bug in debug printing. 2012-08-10 10:45:01 +09:30
Jeremy Lakeman
6f9cf490dc Standardise session id format 2012-08-09 13:32:09 +09:30
Jeremy Lakeman
fb6090917a Tweak call failure timeouts 2012-08-09 13:32:08 +09:30
Jeremy Lakeman
f059546eb0 Improve monitor client interface and vomp for asterisk channel driver 2012-08-09 13:32:08 +09:30
Jeremy Lakeman
736a8f43c0 Refactor towards changing the vomp monitor interface 2012-08-09 13:32:08 +09:30