https://github.com/baresip/baresip/compare/v0.6.6...235c021 From 549f0f2a736869db2d080defa0645e5b13bf41eb Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 17 Apr 2020 18:49:29 +0200 Subject: [PATCH 01/60] audio: move calculation to audio_jb_current_value - it is more efficient to calculate the value when it is needed. - this also fixes a helgrind warning about accessing data when no locks are held --- src/audio.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/audio.c b/src/audio.c index 6d057caa..90225d2f 100644 --- a/src/audio.c +++ b/src/audio.c @@ -162,7 +162,6 @@ struct aurx { size_t last_sampc; struct { - uint64_t aubuf_current_jb; uint64_t aubuf_overrun; uint64_t aubuf_underrun; uint64_t n_discard; @@ -202,10 +201,29 @@ static const char *uri_aulevel = "urn:ietf:params:rtp-hdrext:ssrc-audio-level"; */ uint64_t audio_jb_current_value(const struct audio *au) { + const struct aurx *rx; + if (!au) return 0; - return au->rx.stats.aubuf_current_jb; + rx = &au->rx; + + if (rx->aubuf) { + uint64_t b_p_ms; /* bytes per ms */ + + b_p_ms = aufmt_sample_size(rx->play_fmt) * + rx->auplay_prm.srate * rx->auplay_prm.ch / 1000; + + if (b_p_ms) { + uint64_t val; + + val = aubuf_cur_size(rx->aubuf) / b_p_ms; + + return val; + } + } + + return 0; } @@ -627,7 +645,6 @@ static void auplay_write_handler(void *sampv, size_t sampc, void *arg) { struct aurx *rx = arg; size_t num_bytes = sampc * aufmt_sample_size(rx->play_fmt); - uint64_t b_p_ms = 0; /* bytes per ms */ if (rx->aubuf_started && aubuf_cur_size(rx->aubuf) < num_bytes) { @@ -638,16 +655,6 @@ static void auplay_write_handler(void *sampv, size_t sampc, void *arg) rx->stats.aubuf_underrun); #endif } - b_p_ms = aufmt_sample_size(rx->play_fmt)* - rx->auplay_prm.srate *rx->auplay_prm.ch / 1000; - - if (b_p_ms) { - size_t val = aubuf_cur_size(rx->aubuf) / b_p_ms; - - if (rx->stats.aubuf_current_jb != val) { - rx->stats.aubuf_current_jb = val; - } - } aubuf_read(rx->aubuf, sampv, num_bytes); } From b00508fc0c939cc73076f9dce4b7694ad5de00c0 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 17 Apr 2020 18:58:37 +0200 Subject: [PATCH 02/60] avformat: clean up docs --- modules/avformat/audio.c | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/avformat/audio.c b/modules/avformat/audio.c index 9e3264d7..5e374e42 100644 --- a/modules/avformat/audio.c +++ b/modules/avformat/audio.c @@ -74,7 +74,6 @@ int avformat_audio_alloc(struct ausrc_st **stp, const struct ausrc *as, st->arg = arg; st->prm = *prm; - /* todo: also lookup "dev" ? */ if (ctx && *ctx && (*ctx)->id && !strcmp((*ctx)->id, "avformat")) { st->shared = mem_ref(*ctx); } From 01bf410e826d4dc74966be31ed1f5dec064b4e63 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 17 Apr 2020 19:13:16 +0200 Subject: [PATCH 03/60] aac: add AAC_ prefix --- modules/aac/aac.c | 4 ++-- modules/aac/aac.h | 25 +++++++++++++------------ modules/aac/decode.c | 2 +- modules/aac/encode.c | 2 +- modules/aac/sdp.c | 6 +++--- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/modules/aac/aac.c b/modules/aac/aac.c index 1432aae3..646a5623 100644 --- a/modules/aac/aac.c +++ b/modules/aac/aac.c @@ -87,8 +87,8 @@ void aac_encode_fmtp(const struct aac_param *prm) "; indexDeltaLength=%u" "; bitrate=%u", prm->profile_level_id, prm->config, "AAC-hbr", - prm->constantduration, SIZELENGTH, - INDEXLENGTH, INDEXDELTALENGTH, + prm->constantduration, AAC_SIZELENGTH, + AAC_INDEXLENGTH, AAC_INDEXDELTALENGTH, prm->bitrate); } diff --git a/modules/aac/aac.h b/modules/aac/aac.h index 66f9fc1e..2b3c53b3 100644 --- a/modules/aac/aac.h +++ b/modules/aac/aac.h @@ -18,18 +18,19 @@ struct aac_param { }; -enum { AU_HDR_LEN = 4, /* single access unit only!!! */ - - SIZELENGTH = 13, - INDEXLENGTH = 3, - INDEXDELTALENGTH = 3, - - HIGH_QUALITY_AUDIO_PROFILE = 16, /* L3 */ - LOW_DELAY_AUDIO_PROFILE = 25, /* L4 */ - ENHANCED_LOW_DELAY_AUDIO_PROFILE = 76, /* L1 */ - HIGH_EFFICIENCY_AAC_PROFILE = 46, /* L4 */ - HIGH_EFFICIENCY_AAC_V2_PROFILE = 49, /* L3 */ - AAC_PROFILE = 41, /* L2 */ +enum { + AU_HDR_LEN = 4, /* single access unit only!!! */ + + AAC_SIZELENGTH = 13, + AAC_INDEXLENGTH = 3, + AAC_INDEXDELTALENGTH = 3, + + HIGH_QUALITY_AUDIO_PROFILE = 16, /* L3 */ + LOW_DELAY_AUDIO_PROFILE = 25, /* L4 */ + ENHANCED_LOW_DELAY_AUDIO_PROFILE = 76, /* L1 */ + HIGH_EFFICIENCY_AAC_PROFILE = 46, /* L4 */ + HIGH_EFFICIENCY_AAC_V2_PROFILE = 49, /* L3 */ + AAC_PROFILE = 41, /* L2 */ }; extern uint32_t aac_samplerate, aac_channels, aac_aot; diff --git a/modules/aac/decode.c b/modules/aac/decode.c index f8c78a20..4c469f0e 100644 --- a/modules/aac/decode.c +++ b/modules/aac/decode.c @@ -54,7 +54,7 @@ static int hdr_decode(struct au_hdr *au_data, const uint8_t *p, bits = ntohs(*(uint16_t *)(void *)&p[2]); - au_data->size = bits >> ((sizeof(uint16_t) * 8) - SIZELENGTH); + au_data->size = bits >> ((sizeof(uint16_t) * 8) - AAC_SIZELENGTH); if (au_data->size == 0) { warning("aac: decode: invalid access unit size (zero)\n", diff --git a/modules/aac/encode.c b/modules/aac/encode.c index 58e046e8..0c9415ab 100644 --- a/modules/aac/encode.c +++ b/modules/aac/encode.c @@ -63,7 +63,7 @@ static void hdr_encode(uint8_t *p, uint16_t size) * size */ *(uint16_t *)(void *)&p[2] = - htons(size << ((sizeof(uint16_t) * 8) - SIZELENGTH)); + htons(size << ((sizeof(uint16_t) * 8) - AAC_SIZELENGTH)); } diff --git a/modules/aac/sdp.c b/modules/aac/sdp.c index e0527a09..c87a292f 100644 --- a/modules/aac/sdp.c +++ b/modules/aac/sdp.c @@ -53,13 +53,13 @@ bool aac_fmtp_cmp(const char *lfmtp, const char *rfmtp, void *arg) if (param_value(rfmtp, "streamType") != 5) return false; - if (param_value(rfmtp, "sizeLength") != SIZELENGTH) + if (param_value(rfmtp, "sizeLength") != AAC_SIZELENGTH) return false; - if (param_value(rfmtp, "indexLength") != INDEXLENGTH) + if (param_value(rfmtp, "indexLength") != AAC_INDEXLENGTH) return false; - if (param_value(rfmtp, "indexDeltaLength") != INDEXDELTALENGTH) + if (param_value(rfmtp, "indexDeltaLength") != AAC_INDEXDELTALENGTH) return false; if (param_value(rfmtp, "bitrate") < 8000 || From 1cd2bd6b9a58df51e410110ca1242a14e4061ebd Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 17 Apr 2020 19:21:42 +0200 Subject: [PATCH 04/60] aac: add AAC_STREAMTYPE_AUDIO enum value --- modules/aac/aac.c | 3 ++- modules/aac/aac.h | 1 + modules/aac/sdp.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/aac/aac.c b/modules/aac/aac.c index 646a5623..54f40660 100644 --- a/modules/aac/aac.c +++ b/modules/aac/aac.c @@ -77,7 +77,7 @@ static struct aucodec aac = { void aac_encode_fmtp(const struct aac_param *prm) { (void)re_snprintf(fmtp_local, sizeof(fmtp_local), - "streamType=5" + "streamType=%d" "; profile-level-id=%u" "; config=%s" "; mode=%s" @@ -86,6 +86,7 @@ void aac_encode_fmtp(const struct aac_param *prm) "; indexLength=%u" "; indexDeltaLength=%u" "; bitrate=%u", + AAC_STREAMTYPE_AUDIO, prm->profile_level_id, prm->config, "AAC-hbr", prm->constantduration, AAC_SIZELENGTH, AAC_INDEXLENGTH, AAC_INDEXDELTALENGTH, diff --git a/modules/aac/aac.h b/modules/aac/aac.h index 2b3c53b3..84ad51f8 100644 --- a/modules/aac/aac.h +++ b/modules/aac/aac.h @@ -24,6 +24,7 @@ enum { AAC_SIZELENGTH = 13, AAC_INDEXLENGTH = 3, AAC_INDEXDELTALENGTH = 3, + AAC_STREAMTYPE_AUDIO = 5, HIGH_QUALITY_AUDIO_PROFILE = 16, /* L3 */ LOW_DELAY_AUDIO_PROFILE = 25, /* L4 */ diff --git a/modules/aac/sdp.c b/modules/aac/sdp.c index c87a292f..46d7684b 100644 --- a/modules/aac/sdp.c +++ b/modules/aac/sdp.c @@ -50,7 +50,7 @@ bool aac_fmtp_cmp(const char *lfmtp, const char *rfmtp, void *arg) return false; } - if (param_value(rfmtp, "streamType") != 5) + if (param_value(rfmtp, "streamType") != AAC_STREAMTYPE_AUDIO) return false; if (param_value(rfmtp, "sizeLength") != AAC_SIZELENGTH) From 599cf441dbb8cab190213326944c1efbbbf68d8c Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 17 Apr 2020 19:47:43 +0200 Subject: [PATCH 05/60] gzrtp: update docs --- modules/gzrtp/stream.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/gzrtp/stream.cpp b/modules/gzrtp/stream.cpp index 1afa95a1..074dd5d2 100644 --- a/modules/gzrtp/stream.cpp +++ b/modules/gzrtp/stream.cpp @@ -321,7 +321,7 @@ void Stream::stop() int Stream::sdp_encode(struct sdp_media *sdpm) { - // TODO: signaling hash + // NOTE: signaling hash return 0; } @@ -331,7 +331,7 @@ int Stream::sdp_decode(const struct sdp_media *sdpm) if (sa_isset(sdp_media_raddr(sdpm), SA_ALL)) { m_raddr = *sdp_media_raddr(sdpm); } - // TODO: signaling hash + // NOTE: signaling hash return 0; } From d2273f36b91d17d0b95094ccdd2f1c4a15537010 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sun, 19 Apr 2020 12:33:42 +0200 Subject: [PATCH 06/60] avcodec: fix H.264 interop with Firefox change profile-level-id: old: 42801f new: 42e01f --- modules/avcodec/sdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/avcodec/sdp.c b/modules/avcodec/sdp.c index 0605b050..c6623182 100644 --- a/modules/avcodec/sdp.c +++ b/modules/avcodec/sdp.c @@ -34,7 +34,7 @@ int avcodec_h264_fmtp_enc(struct mbuf *mb, const struct sdp_format *fmt, { struct vidcodec *vc = arg; const uint8_t profile_idc = 0x42; /* baseline profile */ - const uint8_t profile_iop = 0x80; + const uint8_t profile_iop = 0xe0; (void)offer; if (!mb || !fmt || !vc) From cc6fa7d1c764d46ba1fa3c08d2568e7618749806 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sun, 19 Apr 2020 14:45:15 +0200 Subject: [PATCH 07/60] ice: remove support for ICE-lite ICE lite is server-side only, if full ICE is not available. Since we have full ICE there is not really a need for ICE-Lite. --- modules/ice/ice.c | 72 +++++++++-------------------------------------- 1 file changed, 14 insertions(+), 58 deletions(-) diff --git a/modules/ice/ice.c b/modules/ice/ice.c index c7cf9846..f877d7bc 100644 --- a/modules/ice/ice.c +++ b/modules/ice/ice.c @@ -35,7 +35,6 @@ struct mnat_sess { char lufrag[8]; char lpwd[32]; uint64_t tiebrk; - enum ice_mode mode; bool turn; bool offerer; char *user; @@ -263,9 +262,6 @@ static int start_gathering(struct mnat_media *m, unsigned i; int err = 0; - if (m->sess->mode != ICE_MODE_FULL) - return EINVAL; - /* for each component */ for (i=0; i<2; i++) { struct comp *comp = &m->compv[i]; @@ -420,29 +416,12 @@ static int media_start(struct mnat_sess *sess, struct mnat_media *m) net_if_apply(if_handler, m); - switch (sess->mode) { - - default: - case ICE_MODE_FULL: - if (sess->turn) { - err = icem_gather_relay(m, - sess->user, sess->pass); - } - else { - err = icem_gather_srflx(m); - } - break; - - case ICE_MODE_LITE: - err = icem_lite_set_default_candidates(m->icem); - if (err) { - warning("ice: could not set" - " default candidates (%m)\n", err); - return err; - } - - gather_handler(0, 0, NULL, m); - break; + if (sess->turn) { + err = icem_gather_relay(m, + sess->user, sess->pass); + } + else { + err = icem_gather_srflx(m); } return err; @@ -514,11 +493,6 @@ static int session_alloc(struct mnat_sess **sessp, if (!sess) return ENOMEM; - if (0 == str_casecmp(mnat->id, "ice")) - sess->mode = ICE_MODE_FULL; - else if (0 == str_casecmp(mnat->id, "ice-lite")) - sess->mode = ICE_MODE_LITE; - sess->sdp = mem_ref(ss); sess->estabh = estabh; sess->arg = arg; @@ -535,11 +509,6 @@ static int session_alloc(struct mnat_sess **sessp, sess->tiebrk = rand_u64(); sess->offerer = offerer; - if (ICE_MODE_LITE == sess->mode) { - err |= sdp_session_set_lattr(ss, true, - ice_attr_lite, NULL); - } - err |= sdp_session_set_lattr(ss, true, ice_attr_ufrag, sess->lufrag); err |= sdp_session_set_lattr(ss, true, @@ -780,16 +749,14 @@ static int ice_start(struct mnat_sess *sess) if (sdp_media_has_media(m->sdpm)) { m->complete = false; - if (sess->mode == ICE_MODE_FULL) { - err = icem_conncheck_start(m->icem); - if (err) - return err; + err = icem_conncheck_start(m->icem); + if (err) + return err; - /* set the pair states - -- first media stream only */ - if (sess->medial.head == le) { - ice_candpair_set_states(m->icem); - } + /* set the pair states + -- first media stream only */ + if (sess->medial.head == le) { + ice_candpair_set_states(m->icem); } } else { @@ -831,7 +798,7 @@ static int media_alloc(struct mnat_media **mp, struct mnat_sess *sess, else role = ICE_ROLE_CONTROLLED; - err = icem_alloc(&m->icem, sess->mode, role, + err = icem_alloc(&m->icem, ICE_MODE_FULL, role, IPPROTO_UDP, ICE_LAYER, sess->tiebrk, sess->lufrag, sess->lpwd, conncheck_handler, m); @@ -967,22 +934,12 @@ static struct mnat mnat_ice = { .updateh = update, }; -static struct mnat mnat_icelite = { - .id = "ice-lite", - .ftag = "+sip.ice", - .wait_connected = true, - .sessh = session_alloc, - .mediah = media_alloc, - .updateh = update, -}; - static int module_init(void) { conf_get_bool(conf_cur(), "ice_debug", &ice.debug); mnat_register(baresip_mnatl(), &mnat_ice); - mnat_register(baresip_mnatl(), &mnat_icelite); return 0; } @@ -990,7 +947,6 @@ static int module_init(void) static int module_close(void) { - mnat_unregister(&mnat_icelite); mnat_unregister(&mnat_ice); return 0; From fe8976c0dbae3e985019cd64b0bb7e429112e3cf Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sun, 19 Apr 2020 14:53:19 +0200 Subject: [PATCH 08/60] ice: remove ice_debug, use log level DEBUG instead --- modules/ice/ice.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/modules/ice/ice.c b/modules/ice/ice.c index f877d7bc..44f2337d 100644 --- a/modules/ice/ice.c +++ b/modules/ice/ice.c @@ -13,12 +13,8 @@ * Interactive Connectivity Establishment (ICE) for media NAT traversal * * This module enables ICE for NAT traversal. You can enable ICE - * in your accounts file with the parameter ;medianat=ice. The following - * options can be configured: + * in your accounts file with the parameter ;medianat=ice. * - \verbatim - ice_debug {yes,no} # Enable ICE debugging/tracing - \endverbatim */ @@ -66,13 +62,6 @@ struct mnat_media { }; -static struct { - bool debug; -} ice = { - false -}; - - static void gather_handler(int err, uint16_t scode, const char *reason, void *arg); @@ -805,7 +794,7 @@ static int media_alloc(struct mnat_media **mp, struct mnat_sess *sess, if (err) goto out; - icem_conf(m->icem)->debug = ice.debug; + icem_conf(m->icem)->debug = LEVEL_DEBUG==log_level_get(); icem_conf(m->icem)->rc = 4; icem_set_conf(m->icem, icem_conf(m->icem)); @@ -937,8 +926,6 @@ static struct mnat mnat_ice = { static int module_init(void) { - conf_get_bool(conf_cur(), "ice_debug", &ice.debug); - mnat_register(baresip_mnatl(), &mnat_ice); return 0; From 975d6cbe1effa353b50a3f1470d3ae961a2ca06d Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sun, 19 Apr 2020 17:04:28 +0200 Subject: [PATCH 09/60] ice: make stun server optional --- modules/ice/ice.c | 60 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/modules/ice/ice.c b/modules/ice/ice.c index 44f2337d..a0fec062 100644 --- a/modules/ice/ice.c +++ b/modules/ice/ice.c @@ -28,6 +28,7 @@ struct mnat_sess { struct sa srv; struct stun_dns *dnsq; struct sdp_session *sdp; + struct tmr tmr_async; char lufrag[8]; char lpwd[32]; uint64_t tiebrk; @@ -303,6 +304,7 @@ static void session_destructor(void *arg) { struct mnat_sess *sess = arg; + tmr_cancel(&sess->tmr_async); list_flush(&sess->medial); mem_deref(sess->dnsq); mem_deref(sess->user); @@ -446,6 +448,22 @@ static void dns_handler(int err, const struct sa *srv, void *arg) } +static void tmr_async_handler(void *arg) +{ + struct mnat_sess *sess = arg; + struct le *le; + + for (le = sess->medial.head; le; le = le->next) { + + struct mnat_media *m = le->data; + + net_if_apply(if_handler, m); + + call_gather_handler(0, m, 0, ""); + } +} + + static int session_alloc(struct mnat_sess **sessp, const struct mnat *mnat, struct dnsc *dnsc, int af, const struct stun_uri *srv, @@ -457,25 +475,27 @@ static int session_alloc(struct mnat_sess **sessp, const char *usage; int err = 0; - if (!sessp || !dnsc || !srv || !ss || !estabh) + if (!sessp || !dnsc || !ss || !estabh) return EINVAL; - info("ice: new session with %s-server at %s (username=%s)\n", - srv->scheme == STUN_SCHEME_TURN ? "TURN" : "STUN", - srv->host, user); + if (srv) { + info("ice: new session with %s-server at %s (username=%s)\n", + srv->scheme == STUN_SCHEME_TURN ? "TURN" : "STUN", + srv->host, user); - switch (srv->scheme) { + switch (srv->scheme) { - case STUN_SCHEME_STUN: - usage = stun_usage_binding; - break; + case STUN_SCHEME_STUN: + usage = stun_usage_binding; + break; - case STUN_SCHEME_TURN: - usage = stun_usage_relay; - break; + case STUN_SCHEME_TURN: + usage = stun_usage_relay; + break; - default: - return ENOTSUP; + default: + return ENOTSUP; + } } sess = mem_zalloc(sizeof(*sess), session_destructor); @@ -505,11 +525,17 @@ static int session_alloc(struct mnat_sess **sessp, if (err) goto out; - sess->turn = (srv->scheme == STUN_SCHEME_TURN); + if (srv) { + sess->turn = (srv->scheme == STUN_SCHEME_TURN); - err = stun_server_discover(&sess->dnsq, dnsc, usage, stun_proto_udp, - af, srv->host, srv->port, - dns_handler, sess); + err = stun_server_discover(&sess->dnsq, dnsc, + usage, stun_proto_udp, + af, srv->host, srv->port, + dns_handler, sess); + } + else { + tmr_start(&sess->tmr_async, 1, tmr_async_handler, sess); + } out: if (err) From dfcc0618067a9c860ec988388259145de0a09532 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Thu, 23 Apr 2020 08:36:35 +0300 Subject: [PATCH 10/60] account: increased size of audio codec list to 16 --- src/core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.h b/src/core.h index 2c30b92e..66c76228 100644 --- a/src/core.h +++ b/src/core.h @@ -54,7 +54,7 @@ struct account { /* parameters: */ enum answermode answermode; /**< Answermode for incoming calls */ - struct le acv[8]; /**< List elements for aucodecl */ + struct le acv[16]; /**< List elements for aucodecl */ struct list aucodecl; /**< List of preferred audio-codecs */ char *auth_user; /**< Authentication username */ char *auth_pass; /**< Authentication password */ From 7c6ae23e7fb526ddf15017e3706b58b846551c41 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 24 Apr 2020 09:48:00 +0200 Subject: [PATCH 11/60] ice: fix warning --- modules/ice/ice.c | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ice/ice.c b/modules/ice/ice.c index a0fec062..7b68920c 100644 --- a/modules/ice/ice.c +++ b/modules/ice/ice.c @@ -474,6 +474,7 @@ static int session_alloc(struct mnat_sess **sessp, struct mnat_sess *sess; const char *usage; int err = 0; + (void)mnat; if (!sessp || !dnsc || !ss || !estabh) return EINVAL; From f07267d241f0d045d12fd5cb025c6fc8bd8c68e4 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 25 Apr 2020 10:32:23 +0200 Subject: [PATCH 12/60] ice: fix warning with ming64 --- modules/ice/ice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ice/ice.c b/modules/ice/ice.c index 7b68920c..7e1034ea 100644 --- a/modules/ice/ice.c +++ b/modules/ice/ice.c @@ -472,7 +472,7 @@ static int session_alloc(struct mnat_sess **sessp, mnat_estab_h *estabh, void *arg) { struct mnat_sess *sess; - const char *usage; + const char *usage = NULL; int err = 0; (void)mnat; From a5415fc2572102ecee0e7a243f2cfa81a4579352 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 25 Apr 2020 10:43:19 +0200 Subject: [PATCH 13/60] winwave: dont use waveInGetPosition() [waveInGetPosition is no longer supported for use as of Windows Vista. fixes #960 --- modules/winwave/src.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/winwave/src.c b/modules/winwave/src.c index 9a776c67..53eba943 100644 --- a/modules/winwave/src.c +++ b/modules/winwave/src.c @@ -87,7 +87,6 @@ static void CALLBACK waveInCallback(HWAVEOUT hwo, struct ausrc_st *st = (struct ausrc_st *)dwInstance; WAVEHDR *wh = (WAVEHDR *)dwParam1; struct auframe af; - MMTIME mmtime; (void)hwo; (void)dwParam2; @@ -109,12 +108,10 @@ static void CALLBACK waveInCallback(HWAVEOUT hwo, if (st->inuse < (READ_BUFFERS-1)) add_wave_in(st); - waveInGetPosition(st->wavein, &mmtime, sizeof(mmtime)); - af.fmt = st->fmt; af.sampv = (void *)wh->lpData; af.sampc = wh->dwBytesRecorded/st->sampsz; - af.timestamp = mmtime.u.ms * 1000; + af.timestamp = tmr_jiffies_usec(); st->rh(&af, st->arg); From b01f649c06e34cf7a3f6a6072796b96e182f3088 Mon Sep 17 00:00:00 2001 From: juha-h Date: Sat, 25 Apr 2020 15:10:01 +0300 Subject: [PATCH 14/60] Added video mode param to call_answer(), ua_answer() and ua_hold_answer() (#966) API functions. --- include/baresip.h | 18 +++++++++--------- modules/b2bua/b2bua.c | 3 ++- modules/echo/echo.c | 2 +- modules/gtk/gtk_mod.c | 2 +- modules/menu/menu.c | 2 +- src/call.c | 6 +++++- src/ua.c | 20 +++++++++++--------- test/call.c | 4 ++-- 8 files changed, 32 insertions(+), 25 deletions(-) diff --git a/include/baresip.h b/include/baresip.h index 7553e28b..0d3f84c1 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -146,6 +146,12 @@ enum call_event { CALL_EVENT_MENC, }; +/** Video mode */ +enum vidmode { + VIDMODE_OFF = 0, /**< Video disabled */ + VIDMODE_ON, /**< Video enabled */ +}; + struct call; typedef void (call_event_h)(struct call *call, enum call_event ev, @@ -153,7 +159,7 @@ typedef void (call_event_h)(struct call *call, enum call_event ev, typedef void (call_dtmf_h)(struct call *call, char key, void *arg); int call_connect(struct call *call, const struct pl *paddr); -int call_answer(struct call *call, uint16_t scode); +int call_answer(struct call *call, uint16_t scode, enum vidmode vmode); int call_progress(struct call *call); void call_hangup(struct call *call, uint16_t scode, const char *reason); int call_modify(struct call *call); @@ -712,12 +718,6 @@ enum ua_event { UA_EVENT_MAX, }; -/** Video mode */ -enum vidmode { - VIDMODE_OFF = 0, /**< Video disabled */ - VIDMODE_ON, /**< Video enabled */ -}; - /** Defines the User-Agent event handler */ typedef void (ua_event_h)(struct ua *ua, enum ua_event ev, struct call *call, const char *prm, void *arg); @@ -732,8 +732,8 @@ int ua_connect(struct ua *ua, struct call **callp, enum vidmode vmode); void ua_hangup(struct ua *ua, struct call *call, uint16_t scode, const char *reason); -int ua_answer(struct ua *ua, struct call *call); -int ua_hold_answer(struct ua *ua, struct call *call); +int ua_answer(struct ua *ua, struct call *call, enum vidmode vmode); +int ua_hold_answer(struct ua *ua, struct call *call, enum vidmode vmode); int ua_options_send(struct ua *ua, const char *uri, options_resp_h *resph, void *arg); int ua_debug(struct re_printf *pf, const struct ua *ua); diff --git a/modules/b2bua/b2bua.c b/modules/b2bua/b2bua.c index 0990888a..3c278bab 100644 --- a/modules/b2bua/b2bua.c +++ b/modules/b2bua/b2bua.c @@ -62,7 +62,8 @@ static void call_event_handler(struct call *call, enum call_event ev, case CALL_EVENT_ESTABLISHED: debug("b2bua: CALL_ESTABLISHED: peer_uri=%s\n", call_peeruri(call)); - call_answer(call2, 200); + call_answer(call2, 200, + call_has_video(call) ? VIDMODE_ON : VIDMODE_OFF); break; case CALL_EVENT_CLOSED: diff --git a/modules/echo/echo.c b/modules/echo/echo.c index 50f8b6a9..d6e22a22 100644 --- a/modules/echo/echo.c +++ b/modules/echo/echo.c @@ -83,7 +83,7 @@ static int new_session(struct ua *ua, struct call *call) call_dtmf_handler, sess); list_append(&sessionl, &sess->le, sess); - err = ua_answer(ua, call); + err = ua_answer(ua, call, VIDMODE_ON); if (err) mem_deref(sess); diff --git a/modules/gtk/gtk_mod.c b/modules/gtk/gtk_mod.c index 501054ec..e606c501 100644 --- a/modules/gtk/gtk_mod.c +++ b/modules/gtk/gtk_mod.c @@ -700,7 +700,7 @@ static void mqueue_handler(int id, void *data, void *arg) case MQ_ANSWER: call = data; - err = ua_answer(ua, call); + err = ua_answer(ua, call, VIDMODE_ON); if (err) { gdk_threads_enter(); warning_dialog("Call failed", diff --git a/modules/menu/menu.c b/modules/menu/menu.c index ddab8f6e..78244dc1 100644 --- a/modules/menu/menu.c +++ b/modules/menu/menu.c @@ -296,7 +296,7 @@ static int cmd_answer(struct re_printf *pf, void *unused) /* Stop any ongoing ring-tones */ menu.play = mem_deref(menu.play); - ua_hold_answer(ua, NULL); + ua_hold_answer(ua, NULL, VIDMODE_ON); return err; } diff --git a/src/call.c b/src/call.c index 1fdae445..6d820276 100644 --- a/src/call.c +++ b/src/call.c @@ -1067,10 +1067,11 @@ int call_progress(struct call *call) * * @param call Call to answer * @param scode Status code + * @param vmode Wanted video mode * * @return 0 if success, otherwise errorcode */ -int call_answer(struct call *call, uint16_t scode) +int call_answer(struct call *call, uint16_t scode, enum vidmode vmode) { struct mbuf *desc; int err; @@ -1084,6 +1085,9 @@ int call_answer(struct call *call, uint16_t scode) return 0; } + if (vmode == VIDMODE_OFF) + call->video = mem_deref(call->video); + info("call: answering call from %s with %u\n", call->peer_uri, scode); if (call->got_offer) { diff --git a/src/ua.c b/src/ua.c index f4992faf..2d512de9 100644 --- a/src/ua.c +++ b/src/ua.c @@ -395,7 +395,7 @@ static void call_event_handler(struct call *call, enum call_event ev, break; case ANSWERMODE_AUTO: - (void)call_answer(call, 200); + (void)call_answer(call, 200, VIDMODE_ON); break; case ANSWERMODE_MANUAL: @@ -972,12 +972,13 @@ void ua_hangup(struct ua *ua, struct call *call, /** * Answer an incoming call * - * @param ua User-Agent - * @param call Call to answer, or NULL for current call + * @param ua User-Agent + * @param call Call to answer, or NULL for current call + * @param vmode Wanted video mode * * @return 0 if success, otherwise errorcode */ -int ua_answer(struct ua *ua, struct call *call) +int ua_answer(struct ua *ua, struct call *call, enum vidmode vmode) { if (!ua) return EINVAL; @@ -988,19 +989,20 @@ int ua_answer(struct ua *ua, struct call *call) return ENOENT; } - return call_answer(call, 200); + return call_answer(call, 200, vmode); } /** * Put the current call on hold and answer the incoming call * - * @param ua User-Agent - * @param call Call to answer, or NULL for current call + * @param ua User-Agent + * @param call Call to answer, or NULL for current call + * @param vmode Wanted video mode for the incoming call * * @return 0 if success, otherwise errorcode */ -int ua_hold_answer(struct ua *ua, struct call *call) +int ua_hold_answer(struct ua *ua, struct call *call, enum vidmode vmode) { struct call *pcall; int err; @@ -1025,7 +1027,7 @@ int ua_hold_answer(struct ua *ua, struct call *call) return err; } - return ua_answer(ua, call); + return ua_answer(ua, call, vmode); } diff --git a/test/call.c b/test/call.c index 79b24a95..cf1b11e2 100644 --- a/test/call.c +++ b/test/call.c @@ -174,7 +174,7 @@ static void event_handler(struct ua *ua, enum ua_event ev, switch (f->behaviour) { case BEHAVIOUR_ANSWER: - err = ua_answer(ua, call); + err = ua_answer(ua, call, VIDMODE_ON); if (err) { warning("ua_answer failed (%m)\n", err); goto out; @@ -197,7 +197,7 @@ static void event_handler(struct ua *ua, enum ua_event ev, case BEHAVIOUR_GET_HDRS: hdrs = call_get_custom_hdrs(call); - err = ua_answer(ua, call); + err = ua_answer(ua, call, VIDMODE_ON); if (err) { warning("ua_answer failed (%m)\n", err); goto out; From c0b5dee30023d2d9ed616f4c09c1995515dd010a Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 1 May 2020 10:50:47 +0200 Subject: [PATCH 15/60] ua: update comment --- src/ua.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ua.c b/src/ua.c index 2d512de9..3470a13c 100644 --- a/src/ua.c +++ b/src/ua.c @@ -56,7 +56,7 @@ static struct { bool use_udp; /**< Use UDP transport */ bool use_tcp; /**< Use TCP transport */ bool use_tls; /**< Use TLS transport */ - bool delayed_close; + bool delayed_close; /**< Module will close SIP stack */ sip_msg_h *subh; /**< Subscribe handler */ ua_exit_h *exith; /**< UA Exit handler */ void *arg; /**< UA Exit handler argument */ From bd01d73d2bab3c021845b5a0ef69cd1f47d1780b Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Fri, 1 May 2020 10:51:20 +0200 Subject: [PATCH 16/60] net: remove debug --- src/net.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/net.c b/src/net.c index d5d3ba6b..82412e27 100644 --- a/src/net.c +++ b/src/net.c @@ -256,7 +256,6 @@ bool net_check(struct network *net) &laddr6, &net->laddr6); } #endif - debug("net: check for IP changes: change=%d\n", change); return change; } From 189e95df83cad1fd33f5cda5e7c74d45a7a0e874 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Wed, 6 May 2020 18:09:45 +0200 Subject: [PATCH 17/60] avcodec: call av_hwdevice_ctx_create before if-statement --- modules/avcodec/avcodec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/avcodec/avcodec.c b/modules/avcodec/avcodec.c index 232258e5..9f5b475b 100644 --- a/modules/avcodec/avcodec.c +++ b/modules/avcodec/avcodec.c @@ -260,8 +260,9 @@ static int module_init(void) } } - if ((ret = av_hwdevice_ctx_create(&avcodec_hw_device_ctx, type, - NULL, NULL, 0)) < 0) { + ret = av_hwdevice_ctx_create(&avcodec_hw_device_ctx, type, + NULL, NULL, 0); + if (ret < 0) { warning("avcodec: Failed to create HW device (%s)\n", av_err2str(ret)); return ENOTSUP; From 448050530c0562c84d5b142e7d0798d340fb5d60 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 9 May 2020 14:56:19 +0200 Subject: [PATCH 18/60] video: make video_sdp_attr_decode public --- include/baresip.h | 1 + src/core.h | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/include/baresip.h b/include/baresip.h index 0d3f84c1..d993e21d 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -1230,6 +1230,7 @@ struct stream *video_strm(const struct video *v); double video_timestamp_to_seconds(uint64_t timestamp); uint64_t video_calc_timebase_timestamp(uint64_t rtp_ts); const struct vidcodec *video_codec(const struct video *vid, bool tx); +void video_sdp_attr_decode(struct video *v); /* diff --git a/src/core.h b/src/core.h index 66c76228..92f4c843 100644 --- a/src/core.h +++ b/src/core.h @@ -379,7 +379,6 @@ bool video_is_started(const struct video *v); int video_decoder_set(struct video *v, struct vidcodec *vc, int pt_rx, const char *fmtp); void video_update_picture(struct video *v); -void video_sdp_attr_decode(struct video *v); int video_print(struct re_printf *pf, const struct video *v); From 0b19c41eafc3fcfe8014bf70769b27d245d19a2a Mon Sep 17 00:00:00 2001 From: juha-h Date: Sat, 9 May 2020 18:36:22 +0300 Subject: [PATCH 19/60] Added video_stop_display() API function. (#977) --- include/baresip.h | 1 + src/video.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/baresip.h b/include/baresip.h index d993e21d..d779eaa9 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -1219,6 +1219,7 @@ int video_encoder_set(struct video *v, struct vidcodec *vc, int video_start_source(struct video *v, struct media_ctx **ctx); int video_start_display(struct video *v, const char *peer); void video_stop(struct video *v); +void video_stop_display(struct video *v); int video_set_fullscreen(struct video *v, bool fs); void video_vidsrc_set_device(struct video *v, const char *dev); int video_set_source(struct video *v, const char *name, const char *dev); diff --git a/src/video.c b/src/video.c index d2da341b..0f092e98 100644 --- a/src/video.c +++ b/src/video.c @@ -1149,6 +1149,22 @@ void video_stop(struct video *v) } +/** + * Stop the video display + * + * @param v Video object + */ +void video_stop_display(struct video *v) +{ + if (!v) + return; + + debug("video: stopping video display ..\n"); + + v->vrx.vidisp = mem_deref(v->vrx.vidisp); +} + + bool video_is_started(const struct video *v) { return v ? v->started : false; From ad89b94a13ce6808a6ee7f9073af7e7d254e4470 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 9 May 2020 18:10:13 +0200 Subject: [PATCH 20/60] module: add path to module_load() function --- include/baresip.h | 2 +- src/baresip.c | 6 +++++- src/module.c | 11 +++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/baresip.h b/include/baresip.h index d779eaa9..edace1dd 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -1449,7 +1449,7 @@ static inline bool h264_is_keyframe(int type) int module_preload(const char *module); -int module_load(const char *name); +int module_load(const char *path, const char *name); void module_unload(const char *name); void module_app_unload(void); diff --git a/src/baresip.c b/src/baresip.c index a437e7ea..231302bc 100644 --- a/src/baresip.c +++ b/src/baresip.c @@ -49,9 +49,13 @@ static int cmd_quit(struct re_printf *pf, void *unused) static int insmod_handler(struct re_printf *pf, void *arg) { const struct cmd_arg *carg = arg; + char path[256]; int err; - err = module_load(carg->prm); + if (conf_get_str(conf_cur(), "module_path", path, sizeof(path))) + str_ncpy(path, ".", sizeof(path)); + + err = module_load(path, carg->prm); if (err) { return re_hprintf(pf, "insmod: ERROR: could not load module" " '%s': %m\n", carg->prm, err); diff --git a/src/module.c b/src/module.c index c1a20b68..5a006208 100644 --- a/src/module.c +++ b/src/module.c @@ -210,6 +210,7 @@ int module_preload(const char *module) /** * Load a module by name or by filename * + * @param path Module path * @param name Module name incl/excl extension, excluding module path * * @return 0 if success, otherwise errorcode @@ -217,10 +218,10 @@ int module_preload(const char *module) * example: "foo" * example: "foo.so" */ -int module_load(const char *name) +int module_load(const char *path, const char *name) { char filename[256]; - struct pl path, pl_name; + struct pl pl_path, pl_name; int err; if (!str_isset(name)) @@ -228,12 +229,10 @@ int module_load(const char *name) append_extension(filename, sizeof(filename), name); + pl_set_str(&pl_path, path); pl_set_str(&pl_name, filename); - if (conf_get(conf_cur(), "module_path", &path)) - pl_set_str(&path, "."); - - err = load_module(NULL, &path, &pl_name); + err = load_module(NULL, &pl_path, &pl_name); return err; } From 98f432979fce6d7e0dc0dbbef544c72cbb559bb3 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sun, 10 May 2020 10:17:13 +0200 Subject: [PATCH 21/60] conf: add conf_configure_buf --- include/baresip.h | 1 + src/conf.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/include/baresip.h b/include/baresip.h index edace1dd..7e0c47f3 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -215,6 +215,7 @@ int custom_hdrs_apply(const struct list *hdrs, custom_hdrs_h *h, void *arg); typedef int (confline_h)(const struct pl *addr, void *arg); int conf_configure(void); +int conf_configure_buf(const uint8_t *buf, size_t sz); int conf_modules(void); void conf_path_set(const char *path); int conf_path_get(char *path, size_t sz); diff --git a/src/conf.c b/src/conf.c index bfe59baf..0f654f4b 100644 --- a/src/conf.c +++ b/src/conf.c @@ -371,6 +371,31 @@ int conf_configure(void) } +/** + * Configure the system from a buffer + * + * @param buf Buffer with config + * @param sz Size of buffer + * + * @return 0 if success, otherwise errorcode + */ +int conf_configure_buf(const uint8_t *buf, size_t sz) +{ + int err; + + if (!buf || !sz) + return EINVAL; + + conf_obj = mem_deref(conf_obj); + + err = conf_alloc_buf(&conf_obj, buf, sz); + if (err) + return err; + + return 0; +} + + /** * Load all modules from config file * From 22a129fd36de5032a398739313f5650c0d535f7a Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Mon, 11 May 2020 10:45:35 +0200 Subject: [PATCH 22/60] test: add usage of g711.so module (#978) --- Makefile | 13 +++++++++++-- test/call.c | 6 ++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index d41b12f1..8891014f 100644 --- a/Makefile +++ b/Makefile @@ -221,13 +221,22 @@ $(BIN): $(APP_OBJS) -L$(LIBRE_SO) -lre $(LIBS) -o $@ +# +# List of modules used by selftest +# +ifneq ($(STATIC),) +TEST_MODULES := +else +TEST_MODULES := g711.so +endif + .PHONY: test test: $(TEST_BIN) ./$(TEST_BIN) -$(TEST_BIN): $(STATICLIB) $(TEST_OBJS) +$(TEST_BIN): $(STATICLIB) $(TEST_OBJS) $(TEST_MODULES) @echo " LD $@" - $(HIDE)$(LD) $(LFLAGS) $(TEST_OBJS) \ + $(HIDE)$(LD) $(LFLAGS) $(APP_LFLAGS) $(TEST_OBJS) \ -L$(LIBRE_SO) -L. \ -l$(PROJECT) -lre $(LIBS) $(TEST_LIBS) -o $@ diff --git a/test/call.c b/test/call.c index cf1b11e2..e8278308 100644 --- a/test/call.c +++ b/test/call.c @@ -78,7 +78,9 @@ struct fixture { f->estab_action = ACTION_RECANCEL; \ f->exp_estab = 1; \ f->exp_closed = 1; \ - mock_aucodec_register(baresip_aucodecl()); \ + /* NOTE: See Makefile TEST_MODULES */ \ + err = module_load(".", "g711"); \ + TEST_ERR(err); \ \ err = ua_alloc(&f->a.ua, \ "A ;regint=0" prm); \ @@ -119,7 +121,7 @@ struct fixture { mem_deref(f->b.ua); \ mem_deref(f->a.ua); \ \ - mock_aucodec_unregister(); \ + module_unload("g711"); \ \ uag_event_unregister(event_handler); \ \ From 6f985896154f8394fc60ff4752860a9136e45c57 Mon Sep 17 00:00:00 2001 From: Roger Sandholm Date: Mon, 11 May 2020 10:48:11 +0200 Subject: [PATCH 23/60] JSON initial codec state command and response (#973) --- include/baresip.h | 3 ++ modules/debug_cmd/debug_cmd.c | 40 +++++++++++++++++++++ src/account.c | 66 +++++++++++++++++++++++++++++++++-- src/core.h | 1 + src/reg.c | 36 +++++++++++++++++++ src/ua.c | 60 +++++++++++++++++++++++++++++++ 6 files changed, 204 insertions(+), 2 deletions(-) diff --git a/include/baresip.h b/include/baresip.h index 7e0c47f3..6efc9bc0 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -59,6 +59,8 @@ struct account; int account_alloc(struct account **accp, const char *sipaddr); int account_debug(struct re_printf *pf, const struct account *acc); +int account_json_api(struct odict *odacc, struct odict *odcfg, + const struct account *acc); int account_set_auth_user(struct account *acc, const char *user); int account_set_auth_pass(struct account *acc, const char *pass); int account_set_outbound(struct account *acc, const char *ob, unsigned ix); @@ -738,6 +740,7 @@ int ua_hold_answer(struct ua *ua, struct call *call, enum vidmode vmode); int ua_options_send(struct ua *ua, const char *uri, options_resp_h *resph, void *arg); int ua_debug(struct re_printf *pf, const struct ua *ua); +int ua_state_json_api(struct odict *od, const struct ua *ua); int ua_print_calls(struct re_printf *pf, const struct ua *ua); int ua_print_status(struct re_printf *pf, const struct ua *ua); int ua_print_supported(struct re_printf *pf, const struct ua *ua); diff --git a/modules/debug_cmd/debug_cmd.c b/modules/debug_cmd/debug_cmd.c index 41ff7547..f6290b7a 100644 --- a/modules/debug_cmd/debug_cmd.c +++ b/modules/debug_cmd/debug_cmd.c @@ -82,6 +82,45 @@ static int cmd_ua_debug(struct re_printf *pf, void *unused) } +/** + * Returns all the User-Agents and their general codec state. + * Formatted as JSON, for use with TCP / MQTT API interface. + * JSON object with 'cuser' as the key. + * + * @return All User-Agents available, NULL if none + */ +static int cmd_api_uastate(struct re_printf *pf, void *unused) +{ + struct odict *od = NULL; + struct le *le; + int err; + (void)unused; + + err = odict_alloc(&od, 8); + if (err) + return err; + + for (le = list_head(uag_list()); le && !err; le = le->next) { + const struct ua *ua = le->data; + struct odict *odua; + + err = odict_alloc(&odua, 8); + + err |= ua_state_json_api(odua, ua); + err |= odict_entry_add(od, ua_aor(ua), ODICT_OBJECT, odua); + mem_deref(odua); + } + + err |= json_encode_odict(pf, od); + if (err) + warning("debug: failed to encode json (%m)\n", err); + + mem_deref(od); + + return re_hprintf(pf, "\n"); +} + + static int cmd_play_file(struct re_printf *pf, void *arg) { static struct play *g_play; @@ -187,6 +226,7 @@ static const struct cmd debugcmdv[] = { {"timers", 0, 0, "Timer debug", tmr_status }, {"uastat", 'u', 0, "UA debug", cmd_ua_debug }, {"uuid", 0, 0, "Print UUID", print_uuid }, +{"apistate", 0, 0, "User Agent state", cmd_api_uastate }, }; diff --git a/src/account.c b/src/account.c index 4cf3b6c1..12447f50 100644 --- a/src/account.c +++ b/src/account.c @@ -1241,10 +1241,72 @@ int account_debug(struct re_printf *pf, const struct account *acc) } err |= re_hprintf(pf, "\n"); } - err |= re_hprintf(pf, " call_transfer: %s\n", + err |= re_hprintf(pf, " call_transfer:%s\n", account_call_transfer(acc)); - err |= re_hprintf(pf, " extra: %s\n", + err |= re_hprintf(pf, " extra: %s\n", acc->extra ? acc->extra : "none"); return err; } + + +/** + * Print the account information in JSON + * + * @param od Account dict + * @param odcfg Configuration dict + * @param acc User-Agent account + * + * @return 0 if success, otherwise errorcode + */ +int account_json_api(struct odict *od, struct odict *odcfg, + const struct account *acc) +{ + int err = 0; + struct odict *obn = NULL; + const char *stunhost = ""; + + if (!acc) + return 0; + + /* account */ + err |= odict_entry_add(od, "aor", ODICT_STRING, acc->aor); + if (acc->dispname) { + err |= odict_entry_add(od, "display_name", ODICT_STRING, + acc->dispname); + } + + /* config */ + if (acc->sipnat) { + err |= odict_entry_add(odcfg, "sip_nat", ODICT_STRING, + acc->sipnat); + } + + err |= odict_alloc(&obn, 8); + for (size_t i=0; ioutboundv); i++) { + if (acc->outboundv[i]) { + err |= odict_entry_add(obn, "outbound", ODICT_STRING, + acc->outboundv[i]); + } + } + err |= odict_entry_add(odcfg, "sip_nat_outbound", ODICT_ARRAY, obn); + + stunhost = account_stun_host(acc) ? account_stun_host(acc) : ""; + err |= odict_entry_add(odcfg, "stun_host", ODICT_STRING, stunhost); + err |= odict_entry_add(odcfg, "stun_port", ODICT_INT, + account_stun_port(acc)); + if (acc->stun_user) { + err |= odict_entry_add(odcfg, "stun_user", ODICT_STRING, + acc->stun_user); + } + + err |= odict_entry_add(odcfg, "answer_mode", ODICT_STRING, + answermode_str(acc->answermode)); + err |= odict_entry_add(odcfg, "call_transfer", ODICT_BOOL, acc->refer); + + err |= odict_entry_add(odcfg, "packet_time", ODICT_INT, + account_ptime(acc)); + + mem_deref(obn); + return err; +} diff --git a/src/core.h b/src/core.h index 92f4c843..5164491c 100644 --- a/src/core.h +++ b/src/core.h @@ -220,6 +220,7 @@ int reg_register(struct reg *reg, const char *reg_uri, void reg_unregister(struct reg *reg); bool reg_isok(const struct reg *reg); int reg_debug(struct re_printf *pf, const struct reg *reg); +int reg_json_api(struct odict *od, const struct reg *reg); int reg_status(struct re_printf *pf, const struct reg *reg); int reg_af(const struct reg *reg); diff --git a/src/reg.c b/src/reg.c index 1be48922..26fcc7fa 100644 --- a/src/reg.c +++ b/src/reg.c @@ -242,6 +242,14 @@ static const char *print_scode(uint16_t scode) } +/** + * Print the registration debug information + * + * @param pf Print function + * @param reg Registration object + * + * @return 0 if success, otherwise errorcode + */ int reg_debug(struct re_printf *pf, const struct reg *reg) { int err = 0; @@ -260,6 +268,34 @@ int reg_debug(struct re_printf *pf, const struct reg *reg) } +/** + * Print the registration information in JSON + * + * @param od Registration dict + * @param reg Registration object + * + * @return 0 if success, otherwise errorcode + */ +int reg_json_api(struct odict *od, const struct reg *reg) +{ + int err = 0; + + if (!reg) + return 0; + + err |= odict_entry_add(od, "id", ODICT_INT, (int64_t) reg->id); + err |= odict_entry_add(od, "state", ODICT_BOOL, reg_isok(reg)); + err |= odict_entry_add(od, "code", ODICT_INT, (int64_t) reg->scode); + if (reg->srv) + err |= odict_entry_add(od, "srv", ODICT_STRING, reg->srv); + + err |= odict_entry_add(od, "ipv", ODICT_STRING, + af_name(reg->af)); + + return err; +} + + int reg_status(struct re_printf *pf, const struct reg *reg) { if (!reg) diff --git a/src/ua.c b/src/ua.c index 3470a13c..f7a46315 100644 --- a/src/ua.c +++ b/src/ua.c @@ -1239,6 +1239,66 @@ int ua_debug(struct re_printf *pf, const struct ua *ua) } +/** + * Print the user-agent information in JSON + * + * @param od User-Agent dict + * @param ua User-Agent object + * + * @return 0 if success, otherwise errorcode + */ +int ua_state_json_api(struct odict *od, const struct ua *ua) +{ + struct odict *reg = NULL; + struct odict *cfg = NULL; + struct le *le; + size_t i = 0; + int err = 0; + + if (!ua) + return 0; + + err |= odict_alloc(®, 8); + err |= odict_alloc(&cfg, 8); + + /* user-agent info */ + err |= odict_entry_add(od, "cuser", ODICT_STRING, ua->cuser); + err |= odict_entry_add(od, "selected_ua", ODICT_BOOL, + ua == uag_current()); + + /* account info */ + err |= account_json_api(od, cfg, ua->acc); + if (err) + warning("ua: failed to encode json account (%m)\n", err); + + /* registration info */ + for (le = list_head(&ua->regl); le; le = le->next) { + struct reg *regm = le->data; + err |= reg_json_api(reg, regm); + i++; + } + if (i > 1) + warning("ua: multiple registrations for one account"); + + err |= odict_entry_add(reg, "interval", ODICT_INT, + (int64_t) ua->acc->regint); + err |= odict_entry_add(reg, "q_value", ODICT_DOUBLE, ua->acc->regq); + + if (err) + warning("ua: failed to encode json registration (%m)\n", err); + + /* package */ + err |= odict_entry_add(od, "settings", ODICT_OBJECT, cfg); + err |= odict_entry_add(od, "registration", ODICT_OBJECT, reg); + if (err) + warning("ua: failed to encode json package (%m)\n", err); + + mem_deref(cfg); + mem_deref(reg); + return err; +} + + /* One instance */ From 9096f429b0cbaf0581fbf18623b3ce76ad1fe581 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Mon, 11 May 2020 10:49:47 +0200 Subject: [PATCH 24/60] ua: fix ccheck warning --- src/ua.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ua.c b/src/ua.c index f7a46315..d2618909 100644 --- a/src/ua.c +++ b/src/ua.c @@ -1275,7 +1275,7 @@ int ua_state_json_api(struct odict *od, const struct ua *ua) for (le = list_head(&ua->regl); le; le = le->next) { struct reg *regm = le->data; err |= reg_json_api(reg, regm); - i++; + ++i; } if (i > 1) warning("ua: multiple registrations for one account"); From d20c3a96db535bf6091dab92772773832981bcdc Mon Sep 17 00:00:00 2001 From: juha-h Date: Wed, 13 May 2020 22:44:11 +0300 Subject: [PATCH 25/60] Added account_set_video_codecs() API function. (#981) --- include/baresip.h | 1 + src/account.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/include/baresip.h b/include/baresip.h index 6efc9bc0..bda9aeb9 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -73,6 +73,7 @@ int account_set_stun_port(struct account *acc, uint16_t port); int account_set_mediaenc(struct account *acc, const char *mediaenc); int account_set_medianat(struct account *acc, const char *medianat); int account_set_audio_codecs(struct account *acc, const char *codecs); +int account_set_video_codecs(struct account *acc, const char *codecs); int account_set_mwi(struct account *acc, const char *value); int account_set_call_transfer(struct account *acc, const char *value); int account_auth(const struct account *acc, char **username, char **password, diff --git a/src/account.c b/src/account.c index 12447f50..a01d8584 100644 --- a/src/account.c +++ b/src/account.c @@ -714,6 +714,34 @@ int account_set_audio_codecs(struct account *acc, const char *codecs) } +/** + * Sets video codecs + * + * @param acc User-Agent account + * @param codecs Comma separated list of video codecs (NULL to disable) + * + * @return 0 if success, otherwise errorcode + */ +int account_set_video_codecs(struct account *acc, const char *codecs) +{ + char buf[256]; + struct pl pl; + + if (!acc) + return EINVAL; + + list_clear(&acc->vidcodecl); + + if (codecs) { + re_snprintf(buf, sizeof(buf), ";video_codecs=%s", codecs); + pl_set_str(&pl, buf); + return video_codecs_decode(acc, &pl); + } + + return 0; +} + + /** * Sets the displayed name. Pass null in dname to disable display name * From 3a75b7cec1b8ed0b5623e4075d655b8248303058 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 16 May 2020 08:27:36 +0200 Subject: [PATCH 26/60] account: use single quote instead of backtick --- src/account.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/account.c b/src/account.c index a01d8584..6a922229 100644 --- a/src/account.c +++ b/src/account.c @@ -442,7 +442,7 @@ int account_alloc(struct account **accp, const char *sipaddr) if (acc->mnatid) { acc->mnat = mnat_find(baresip_mnatl(), acc->mnatid); if (!acc->mnat) { - warning("account: medianat not found: `%s'\n", + warning("account: medianat not found: '%s'\n", acc->mnatid); } } @@ -450,7 +450,7 @@ int account_alloc(struct account **accp, const char *sipaddr) if (acc->mencid) { acc->menc = menc_find(baresip_mencl(), acc->mencid); if (!acc->menc) { - warning("account: mediaenc not found: `%s'\n", + warning("account: mediaenc not found: '%s'\n", acc->mencid); } } From 1afa80a9f1ba0320e7a77ba66d77ecd917c22c13 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 16 May 2020 08:35:42 +0200 Subject: [PATCH 27/60] avcodec: minor cosmetic changes --- modules/avcodec/encode.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/avcodec/encode.c b/modules/avcodec/encode.c index b4eeaa3a..74c656f8 100644 --- a/modules/avcodec/encode.c +++ b/modules/avcodec/encode.c @@ -292,8 +292,9 @@ static int open_encoder(struct videnc_state *st, /* set hw_frames_ctx for encoder's AVCodecContext */ - if ((err = set_hwframe_ctx(st->ctx, avcodec_hw_device_ctx, - size->w, size->h)) < 0) { + err = set_hwframe_ctx(st->ctx, avcodec_hw_device_ctx, + size->w, size->h); + if (err < 0) { warning("avcodec: encode: Failed to set" " hwframe context.\n"); @@ -320,7 +321,7 @@ static int open_encoder(struct videnc_state *st, static int decode_sdpparam_h264(struct videnc_state *st, const struct pl *name, - const struct pl *val) + const struct pl *val) { if (0 == pl_strcasecmp(name, "packetization-mode")) { st->u.h264.packetization_mode = pl_u32(val); From ce15bb06bf4157548132201c1113c0fb5ac8b48a Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 16 May 2020 08:45:33 +0200 Subject: [PATCH 28/60] ice: fix segfault in connh (ref #980) --- modules/ice/ice.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/modules/ice/ice.c b/modules/ice/ice.c index 7e1034ea..1d1d8749 100644 --- a/modules/ice/ice.c +++ b/modules/ice/ice.c @@ -639,6 +639,21 @@ static bool all_gathered(const struct mnat_sess *sess) } +static bool all_completed(const struct mnat_sess *sess) +{ + struct le *le; + + /* Check all conncheck flags */ + LIST_FOREACH(&sess->medial, le) { + struct mnat_media *mx = le->data; + if (!mx->complete) + return false; + } + + return true; +} + + static void gather_handler(int err, uint16_t scode, const char *reason, void *arg) { @@ -678,7 +693,7 @@ static void conncheck_handler(int err, bool update, void *arg) { struct mnat_media *m = arg; struct mnat_sess *sess = m->sess; - struct le *le; + bool sess_complete = false; info("ice: %s: connectivity check is complete (update=%d)\n", sdp_media_name(m->sdpm), update); @@ -705,29 +720,24 @@ static void conncheck_handler(int err, bool update, void *arg) cand1 = icem_selected_rcand(m->icem, 1); cand2 = icem_selected_rcand(m->icem, 2); + sess_complete = all_completed(sess); + if (m->connh) { m->connh(icem_lcand_addr(cand1), icem_lcand_addr(cand2), m->arg); } - - /* Check all conncheck flags */ - LIST_FOREACH(&sess->medial, le) { - struct mnat_media *mx = le->data; - if (!mx->complete) - return; - } } /* call estab-handler and send re-invite */ - if (sess->send_reinvite && update) { + if (sess_complete && sess->send_reinvite && update) { info("ice: %s: sending Re-INVITE with updated" " default candidates\n", sdp_media_name(m->sdpm)); - sess->estabh(0, 0, NULL, sess->arg); sess->send_reinvite = false; + sess->estabh(0, 0, NULL, sess->arg); } } From 6ecf30d3e776983306273fa7c744fc1bf51cf145 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 30 May 2020 09:18:57 +0200 Subject: [PATCH 29/60] bump version to 1.0.0 --- Makefile | 2 +- include/baresip.h | 2 +- mk/Doxyfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 8891014f..e17ecdbf 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ # PROJECT := baresip -VERSION := 0.6.6 +VERSION := 1.0.0 DESCR := "Baresip is a modular SIP User-Agent with audio and video support" # Verbose and silent build modes diff --git a/include/baresip.h b/include/baresip.h index bda9aeb9..79985eeb 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -13,7 +13,7 @@ extern "C" { /** Defines the Baresip version string */ -#define BARESIP_VERSION "0.6.6" +#define BARESIP_VERSION "1.0.0" #ifndef NET_MAX_NS diff --git a/mk/Doxyfile b/mk/Doxyfile index 946b1f75..3bc3fb66 100644 --- a/mk/Doxyfile +++ b/mk/Doxyfile @@ -4,7 +4,7 @@ # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = baresip -PROJECT_NUMBER = 0.6.6 +PROJECT_NUMBER = 1.0.0 OUTPUT_DIRECTORY = ../baresip-dox CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English From c4bfdbe0de24bc321e854c7ad2b619d544d0e5dc Mon Sep 17 00:00:00 2001 From: juha-h Date: Sat, 30 May 2020 11:17:28 +0300 Subject: [PATCH 30/60] Update call->got_offer when re-INVITE or answer to re-INVITE is receiced. (#986) --- src/call.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/call.c b/src/call.c index 6d820276..a4d59a82 100644 --- a/src/call.c +++ b/src/call.c @@ -1409,6 +1409,8 @@ static int sipsess_offer_handler(struct mbuf **descp, if (got_offer) { + call->got_offer = true; + /* Decode SDP Offer */ err = sdp_decode(call->sdp, msg->mb, true); if (err) { @@ -1436,6 +1438,8 @@ static int sipsess_answer_handler(const struct sip_msg *msg, void *arg) debug("call: got SDP answer (%zu bytes)\n", mbuf_get_left(msg->mb)); + call->got_offer = false; + if (msg_ctype_cmp(&msg->ctyp, "multipart", "mixed")) (void)sdp_decode_multipart(&msg->ctyp.params, msg->mb); From 35cf5d2532869ba92dac29bdf5872a2be88c450d Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Sat, 30 May 2020 10:17:53 +0200 Subject: [PATCH 31/60] Test also for /usr/lib64/libspeexdsp.so to cover Fedora/RHEL/CentOS (#992) --- mk/modules.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/mk/modules.mk b/mk/modules.mk index 59704ed5..e35bb801 100644 --- a/mk/modules.mk +++ b/mk/modules.mk @@ -164,6 +164,7 @@ USE_SNDIO := $(shell [ -f $(SYSROOT)/include/sndio.h ] || \ USE_STDIO := $(shell [ -f $(SYSROOT)/include/termios.h ] && echo "yes") HAVE_SPEEXDSP := $(shell \ [ -f $(SYSROOT)/local/lib/libspeexdsp$(LIB_SUFFIX) ] || \ + [ -f $(SYSROOT)/lib64/libspeexdsp$(LIB_SUFFIX) ] || \ [ -f $(SYSROOT)/lib/libspeexdsp$(LIB_SUFFIX) ] || \ [ -f $(SYSROOT_ALT)/lib/libspeexdsp$(LIB_SUFFIX) ] && echo "yes") ifeq ($(HAVE_SPEEXDSP),) From 3871768191b1984f23bd3371528372e217cf19c7 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sat, 30 May 2020 16:44:45 +0300 Subject: [PATCH 32/60] Added TODO comment regarding h264_mediacodec extradata. --- modules/avcodec/decode.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/avcodec/decode.c b/modules/avcodec/decode.c index b368ef1d..ba5bbbf3 100644 --- a/modules/avcodec/decode.c +++ b/modules/avcodec/decode.c @@ -132,6 +132,11 @@ static int init_decoder(struct viddec_state *st, const char *name) st->ctx = avcodec_alloc_context3(st->codec); + /* TODO: If avcodec_h264dec is h264_mediacodec, extradata needs to + added to context that contains Sequence Parameter Set (SPS) and + Picture Parameter Set (PPS), before avcodec_open2() is called. + */ + st->pict = av_frame_alloc(); if (!st->ctx || !st->pict) From 32f781d2c3022121697f1077a748009ea4dc04d3 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sun, 31 May 2020 12:07:02 +0200 Subject: [PATCH 33/60] net: add fallback dns nameserver --- include/baresip.h | 1 + src/config.c | 28 +++++++++++++++++++++++++++- src/net.c | 45 ++++++++++++++++++++++++++++++++++++--------- 3 files changed, 64 insertions(+), 10 deletions(-) diff --git a/include/baresip.h b/include/baresip.h index 79985eeb..d8d325fd 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -319,6 +319,7 @@ struct config_net { char ifname[64]; /**< Bind to interface (optional) */ struct { char addr[64]; + bool fallback; } nsv[NET_MAX_NS]; /**< Configured DNS nameservers */ size_t nsc; /**< Number of DNS nameservers */ }; diff --git a/src/config.c b/src/config.c index 8cafa46d..2c350c8c 100644 --- a/src/config.c +++ b/src/config.c @@ -93,7 +93,7 @@ static int range_print(struct re_printf *pf, const struct range *rng) } -static int dns_server_handler(const struct pl *pl, void *arg) +static int dns_handler(const struct pl *pl, void *arg, bool fallback) { struct config_net *cfg = arg; const size_t max_count = ARRAY_SIZE(cfg->nsv); @@ -108,6 +108,9 @@ static int dns_server_handler(const struct pl *pl, void *arg) /* Append dns_server to the network config */ err = pl_strcpy(pl, cfg->nsv[cfg->nsc].addr, sizeof(cfg->nsv[0].addr)); + + cfg->nsv[cfg->nsc].fallback = fallback; + if (err) { warning("config: dns_server: could not copy string (%r)\n", pl); @@ -120,6 +123,26 @@ static int dns_server_handler(const struct pl *pl, void *arg) } +static int dns_server_handler(const struct pl *pl, void *arg) +{ + int err; + + err = dns_handler(pl, arg, false); + + return err; +} + + +static int dns_fallback_handler(const struct pl *pl, void *arg) +{ + int err; + + err = dns_handler(pl, arg, true); + + return err; +} + + static enum aufmt resolve_aufmt(const struct pl *fmt) { if (0 == pl_strcasecmp(fmt, "s16")) return AUFMT_S16LE; @@ -318,6 +341,8 @@ int config_parse_conf(struct config *cfg, const struct conf *conf) /* Network */ (void)conf_apply(conf, "dns_server", dns_server_handler, &cfg->net); + (void)conf_apply(conf, "dns_fallback", + dns_fallback_handler, &cfg->net); (void)conf_get_str(conf, "net_interface", cfg->net.ifname, sizeof(cfg->net.ifname)); @@ -589,6 +614,7 @@ static int core_config_template(struct re_printf *pf, const struct config *cfg) "\n# Network\n" "#dns_server\t\t1.1.1.1:53\n" "#dns_server\t\t1.0.0.1:53\n" + "#dns_fallback\t\t8.8.8.8:53\n" "#net_interface\t\t%H\n", cfg->avt.jbuf_del.min, cfg->avt.jbuf_del.max, default_interface_print, NULL); diff --git a/src/net.c b/src/net.c index 82412e27..271e9af8 100644 --- a/src/net.c +++ b/src/net.c @@ -16,10 +16,12 @@ struct network { #endif struct tmr tmr; struct dnsc *dnsc; - struct sa nsv[NET_MAX_NS];/**< Configured name servers */ - uint32_t nsn; /**< Number of configured name servers */ + struct sa nsv[NET_MAX_NS];/**< Configured name servers */ + uint32_t nsn; /**< Number of configured name servers */ + struct sa nsvf[NET_MAX_NS];/**< Configured fallback name servers */ + uint32_t nsnf; /**< Number of configured fallback name servers */ uint32_t interval; - char domain[64]; /**< DNS domain from network */ + char domain[64]; /**< DNS domain from network */ net_change_h *ch; void *arg; }; @@ -101,15 +103,22 @@ static int print_addr(struct re_printf *pf, const struct sa *ip) } -static int net_dnssrv_add(struct network *net, const struct sa *sa) +static int net_dns_srv_add(struct network *net, const struct sa *sa, + bool fallback) { if (!net) return EINVAL; - if (net->nsn >= ARRAY_SIZE(net->nsv)) + if (!fallback && net->nsn >= ARRAY_SIZE(net->nsv)) return E2BIG; - sa_cpy(&net->nsv[net->nsn++], sa); + if (fallback && net->nsnf >= ARRAY_SIZE(net->nsvf)) + return E2BIG; + + if (fallback) + sa_cpy(&net->nsvf[net->nsnf++], sa); + else + sa_cpy(&net->nsv[net->nsn++], sa); return 0; } @@ -120,6 +129,8 @@ static int net_dns_srv_get(const struct network *net, { struct sa nsv[NET_MAX_NS]; uint32_t i, nsn = ARRAY_SIZE(nsv); + uint32_t offset; + uint32_t limit = *n; int err; err = dns_srv_get(NULL, 0, nsv, &nsn); @@ -129,7 +140,7 @@ static int net_dns_srv_get(const struct network *net, if (net->nsn) { - if (net->nsn > *n) + if (net->nsn > limit) return E2BIG; /* Use any configured nameservers */ @@ -143,7 +154,7 @@ static int net_dns_srv_get(const struct network *net, *from_sys = false; } else { - if (nsn > *n) + if (nsn > limit) return E2BIG; for (i=0; insnf) { + offset = *n; + if ((offset + net->nsnf) > limit) { + warning("net: too many DNS nameservers, " + "fallback DNS ignored\n"); + return 0; + } + + for (i=0; insnf; i++) { + srvv[offset+i] = net->nsvf[i]; + } + + *n = offset + net->nsnf; + } + return 0; } @@ -372,7 +399,7 @@ int net_alloc(struct network **netp, const struct config_net *cfg) goto out; } - err = net_dnssrv_add(net, &sa); + err = net_dns_srv_add(net, &sa, cfg->nsv[i].fallback); if (err) { warning("net: failed to add nameserver: %m\n", err); From da7540a8f56ecfc6807480480dcd4850879fd668 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Wed, 3 Jun 2020 02:57:51 +0200 Subject: [PATCH 34/60] Allow distribution specific CA trust bundle locations (fixes #993) --- src/config.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/config.c b/src/config.c index 8cafa46d..c4098e29 100644 --- a/src/config.c +++ b/src/config.c @@ -422,7 +422,9 @@ int config_print(struct re_printf *pf, const struct config *cfg) static const char *default_cafile(void) { -#ifdef DARWIN +#if defined (DEFAULT_CAFILE) + return DEFAULT_CAFILE; +#elif defined (DARWIN) return "/etc/ssl/cert.pem"; #else return "/etc/ssl/certs/ca-certificates.crt"; From 69c427ec589441d449c19d9ea6958b180f6c5203 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Wed, 3 Jun 2020 03:06:27 +0200 Subject: [PATCH 35/60] Allow distribution specific default audio device (fixes #994) --- src/config.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/config.c b/src/config.c index 8cafa46d..40ab0e68 100644 --- a/src/config.c +++ b/src/config.c @@ -432,7 +432,9 @@ static const char *default_cafile(void) static const char *default_audio_device(void) { -#if defined (ANDROID) +#if defined (DEFAULT_AUDIO_DEVICE) + return DEFAULT_AUDIO_DEVICE; +#elif defined (ANDROID) return "opensles,nil"; #elif defined (DARWIN) return "coreaudio,default"; From 72824a31073bb5c002051df15a5a34d764c5d196 Mon Sep 17 00:00:00 2001 From: mbattista Date: Sat, 6 Jun 2020 00:51:46 +0200 Subject: [PATCH 36/60] show call_peername in notify title --- modules/gtk/gtk_mod.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/gtk/gtk_mod.c b/modules/gtk/gtk_mod.c index e606c501..d48aa724 100644 --- a/modules/gtk/gtk_mod.c +++ b/modules/gtk/gtk_mod.c @@ -309,7 +309,8 @@ static void accounts_menu_set_status(struct gtk_mod *mod, static void notify_incoming_call(struct gtk_mod *mod, struct call *call) { - static const char *title = "Incoming call"; + char title[128]; + re_snprintf(title, sizeof title, "Incoming call from %s", call_peername(call)); const char *msg = call_peeruri(call); GtkWidget *call_menu; GtkWidget *menu_item; From dec8a2ab45195609abc765fe1fe5fb228158ba24 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sat, 6 Jun 2020 09:42:19 +0200 Subject: [PATCH 37/60] update thanks --- docs/THANKS | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/THANKS b/docs/THANKS index f4637c4f..c8b0def9 100644 --- a/docs/THANKS +++ b/docs/THANKS @@ -38,6 +38,7 @@ Nicolas Tizon Ola Palm Olle E. Johansson Richard Perez +Robert Scheck Sebastian Reimers Stefan Sayer Steve Underwood From 36ecb4baf1ea77d35bc05c331f52511b390f1b55 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sat, 6 Jun 2020 10:18:36 +0200 Subject: [PATCH 38/60] update github urls (new baresip organization) --- README.md | 10 +++++----- debian/control | 2 +- docs/TODO | 4 ++-- modules/menu/menu.c | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9b8ee51a..378efb83 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ baresip README ============== -![Baresip Logo](https://raw.githubusercontent.com/alfredh/baresip/master/share/logo.png) +![Baresip Logo](https://raw.githubusercontent.com/baresip/baresip/master/share/logo.png) Baresip is a portable and modular SIP User-Agent with audio and video support. @@ -10,7 +10,7 @@ Copyright (c) 2010 - 2020 Creytiv.com Distributed under BSD license -[![Build Status](https://travis-ci.org/alfredh/baresip.svg?branch=master)](https://travis-ci.org/alfredh/baresip) +[![Build Status](https://travis-ci.org/baresip/baresip.svg?branch=master)](https://travis-ci.org/baresip/baresip) ## Features: @@ -191,7 +191,7 @@ the main [website](http://creytiv.com/doxygen/baresip-dox/html/) ### Examples Configuration examples are available from the -[examples](https://github.com/alfredh/baresip/tree/master/docs/examples) +[examples](https://github.com/baresip/baresip/tree/master/docs/examples) directory. @@ -203,7 +203,7 @@ The baresip project is using the 3-clause BSD license. ## Contributing Patches can be sent via Github -[Pull-Requests](https://github.com/alfredh/baresip/pulls) or to the RE devel +[Pull-Requests](https://github.com/baresip/baresip/pulls) or to the RE devel [mailing-list](http://lists.creytiv.com/mailman/listinfo/re-devel). @@ -444,5 +444,5 @@ zrtp ZRTP media encryption module ## References * Project homepage: http://www.creytiv.com/baresip.html -* Github: https://github.com/alfredh/baresip +* Github: https://github.com/baresip/baresip * Mailing-list: http://lists.creytiv.com/mailman/listinfo/re-devel diff --git a/debian/control b/debian/control index 97479c63..8e416706 100644 --- a/debian/control +++ b/debian/control @@ -30,5 +30,5 @@ Architecture: any Section: libdevel Depends: libbaresip (= ${binary:Version}), ${misc:Depends} Description: Baresip library development files - See https://github.com/alfredh/baresip/wiki/Using-baresip-as-a-library + See https://github.com/baresip/baresip/wiki/Using-baresip-as-a-library for an example. diff --git a/docs/TODO b/docs/TODO index e47f214e..6199e32a 100644 --- a/docs/TODO +++ b/docs/TODO @@ -4,8 +4,8 @@ TODO: Please see: - https://github.com/alfredh/baresip/issues + https://github.com/baresip/baresip/issues - https://github.com/alfredh/baresip/wiki/Roadmap + https://github.com/baresip/baresip/wiki/Roadmap ------------------------------------------------------------------------------- diff --git a/modules/menu/menu.c b/modules/menu/menu.c index 78244dc1..d73f4eae 100644 --- a/modules/menu/menu.c +++ b/modules/menu/menu.c @@ -449,7 +449,7 @@ static const char about_fmt[] = "| with audio and video support |\n" "| |\n" "| License: BSD |\n" - "| Homepage: https://github.com/alfredh/baresip |\n" + "| Homepage: https://github.com/baresip/baresip |\n" "| |\n" "'------------------------------------------------------------'\n" ; From 17e91cee2ea26b45794fd855fd885219be4ffdbf Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sat, 6 Jun 2020 10:40:04 +0200 Subject: [PATCH 39/60] mqtt: fix err is never read (found by clang static analyzer) --- modules/mqtt/subscribe.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/mqtt/subscribe.c b/modules/mqtt/subscribe.c index d406e232..2cf2fb71 100644 --- a/modules/mqtt/subscribe.c +++ b/modules/mqtt/subscribe.c @@ -86,7 +86,9 @@ static void handle_command(struct mqtt *mqtt, const struct pl *msg) warning("mqtt: error processing command (%m)\n", err); } - err |= mbuf_write_u8(resp, '\0'); + err = mbuf_write_u8(resp, '\0'); + if (err) + goto out; /* NOTE: the command will now write the response to the resp mbuf, send it back to broker */ From 65a70d17007a968061bbfb9190086b3910e2e7c9 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sat, 6 Jun 2020 12:07:16 +0200 Subject: [PATCH 40/60] avcodec: fix err is never read (found by clang static analyzer) --- modules/avcodec/decode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/avcodec/decode.c b/modules/avcodec/decode.c index ba5bbbf3..20c23d7f 100644 --- a/modules/avcodec/decode.c +++ b/modules/avcodec/decode.c @@ -696,7 +696,7 @@ int avcodec_decode_h265(struct viddec_state *vds, struct vidframe *frame, hdr.nal_unit_type = fu.type; err = mbuf_write_mem(vds->mb, nal_seq, 3); - err = h265_nal_encode_mbuf(vds->mb, &hdr); + err |= h265_nal_encode_mbuf(vds->mb, &hdr); if (err) goto out; } From a969faa6faca5b9095992904836b635171178d3d Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sat, 6 Jun 2020 15:29:37 +0200 Subject: [PATCH 41/60] gtk: fix ccheck --- modules/gtk/gtk_mod.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/gtk/gtk_mod.c b/modules/gtk/gtk_mod.c index d48aa724..4782fec7 100644 --- a/modules/gtk/gtk_mod.c +++ b/modules/gtk/gtk_mod.c @@ -309,8 +309,9 @@ static void accounts_menu_set_status(struct gtk_mod *mod, static void notify_incoming_call(struct gtk_mod *mod, struct call *call) { - char title[128]; - re_snprintf(title, sizeof title, "Incoming call from %s", call_peername(call)); + char title[128]; + re_snprintf(title, sizeof title, "Incoming call from %s", + call_peername(call)); const char *msg = call_peeruri(call); GtkWidget *call_menu; GtkWidget *menu_item; From 10f071061b7d08643b17c51ec0417d312cb3628c Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Fri, 12 Jun 2020 12:55:03 +0200 Subject: [PATCH 42/60] Derive default audio driver from default audio device (#1009) Modern Linux distributions often prefer PulseAudio over ALSA, thus their default audio driver should be "pulse" rather "alsa"; derive the default audio driver from the default audio device, which can already be changed by using e.g. -DDEFAULT_AUDIO_DEVICE=\"pulse\" in $EXTRA_CFLAGS. It completes the approach taken by #994 and #1001 and avoids for downstreams the need to batch baresip just to change the default. --- src/config.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index dc8c8cda..cd61c558 100644 --- a/src/config.c +++ b/src/config.c @@ -780,8 +780,14 @@ int config_write_template(const char *file, const struct config *cfg) #elif defined (WIN32) (void)re_fprintf(f, "module\t\t\t" "winwave" MOD_EXT "\n"); #else - (void)re_fprintf(f, "module\t\t\t" "alsa" MOD_EXT "\n"); - (void)re_fprintf(f, "#module\t\t\t" "pulse" MOD_EXT "\n"); + if (!strncmp(default_audio_device(), "pulse", 5)) { + (void)re_fprintf(f, "#module\t\t\t" "alsa" MOD_EXT "\n"); + (void)re_fprintf(f, "module\t\t\t" "pulse" MOD_EXT "\n"); + } + else { + (void)re_fprintf(f, "module\t\t\t" "alsa" MOD_EXT "\n"); + (void)re_fprintf(f, "#module\t\t\t" "pulse" MOD_EXT "\n"); + } #endif (void)re_fprintf(f, "#module\t\t\t" "jack" MOD_EXT "\n"); (void)re_fprintf(f, "#module\t\t\t" "portaudio" MOD_EXT "\n"); From 74a831d3e7f3427cdcf3533eb998ac0009354eba Mon Sep 17 00:00:00 2001 From: mbattista Date: Mon, 15 Jun 2020 12:26:05 +0200 Subject: [PATCH 43/60] GTK notification buttons do not work on Systems (#1012) * comparing raw pointers fails on some dbus systems * find call by call_id rather then by pointer magic Co-authored-by: Marcel Battista --- modules/gtk/gtk_mod.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/modules/gtk/gtk_mod.c b/modules/gtk/gtk_mod.c index 4782fec7..4581203a 100644 --- a/modules/gtk/gtk_mod.c +++ b/modules/gtk/gtk_mod.c @@ -71,26 +71,17 @@ static void reject_activated(GSimpleAction *, GVariant *, gpointer); static void denotify_incoming_call(struct gtk_mod *, struct call *); static GActionEntry app_entries[] = { - {"answer", answer_activated, "x", NULL, NULL, {0} }, - {"reject", reject_activated, "x", NULL, NULL, {0} }, + {"answer", answer_activated, "s", NULL, NULL, {0} }, + {"reject", reject_activated, "s", NULL, NULL, {0} }, }; static struct call *get_call_from_gvariant(GVariant *param) { - gint64 call_ptr; - struct call *call; struct list *calls = ua_calls(uag_current()); - struct le *le; - - call_ptr = g_variant_get_int64(param); - call = GINT_TO_POINTER(call_ptr); + const gchar *call_ptr = g_variant_get_string(param, NULL); - for (le = list_head(calls); le; le = le->next) - if (le->data == call) - return call; - - return NULL; + return call_find_id(calls, call_ptr); } @@ -340,7 +331,7 @@ static void notify_incoming_call(struct gtk_mod *mod, g_notification_set_urgent(notification, TRUE); #endif - target = g_variant_new_int64(GPOINTER_TO_INT(call)); + target = g_variant_new_string(call_id(call)); g_notification_set_body(notification, msg); g_notification_add_button_with_target_value(notification, "Answer", "app.answer", target); From 1c7a0ee3b13a402332c69fa48c48ef272a3c64e3 Mon Sep 17 00:00:00 2001 From: mbattista Date: Mon, 15 Jun 2020 13:23:59 +0200 Subject: [PATCH 44/60] fix dtmf_tone in gtk and add tones as feedback (#1010) * fix dtmf in gtk and add tones as feedback * combine similar cases to make code cleaner Co-authored-by: Marcel Battista --- modules/gtk/call_window.c | 31 ++++++++++++++++++++++--------- share/sound0.wav | Bin 0 -> 35324 bytes share/sound1.wav | Bin 0 -> 35324 bytes share/sound2.wav | Bin 0 -> 35324 bytes share/sound3.wav | Bin 0 -> 35324 bytes share/sound4.wav | Bin 0 -> 35324 bytes share/sound5.wav | Bin 0 -> 35324 bytes share/sound6.wav | Bin 0 -> 35324 bytes share/sound7.wav | Bin 0 -> 35324 bytes share/sound8.wav | Bin 0 -> 35324 bytes share/sound9.wav | Bin 0 -> 35324 bytes share/soundroute.wav | Bin 0 -> 35324 bytes share/soundstar.wav | Bin 0 -> 35324 bytes 13 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 share/sound0.wav create mode 100644 share/sound1.wav create mode 100644 share/sound2.wav create mode 100644 share/sound3.wav create mode 100644 share/sound4.wav create mode 100644 share/sound5.wav create mode 100644 share/sound6.wav create mode 100644 share/sound7.wav create mode 100644 share/sound8.wav create mode 100644 share/sound9.wav create mode 100644 share/soundroute.wav create mode 100644 share/soundstar.wav diff --git a/modules/gtk/call_window.c b/modules/gtk/call_window.c index e01417e3..73b7892d 100644 --- a/modules/gtk/call_window.c +++ b/modules/gtk/call_window.c @@ -35,6 +35,7 @@ struct call_window { guint vumeter_timer_tag; bool closed; int cur_key; + struct play *play_dtmf_tone; }; enum call_window_events { @@ -217,22 +218,33 @@ static gboolean call_on_window_close(GtkWidget *widget, GdkEventAny *event, static gboolean call_on_key_press(GtkWidget *window, GdkEvent *ev, struct call_window *win) { + struct config *cfg; + cfg = conf_config(); gchar key = ev->key.string[0]; (void)window; + char wavfile[32]; switch (key) { - case '1': case '2': case '3': case '4': case '5': case '6': - case '7': case '8': case '9': - case '*': case '0': case '#': - win->cur_key = key; - call_send_digit(win->call, key); - return TRUE; - + case '7': case '8': case '9': case '0': + re_snprintf(wavfile, sizeof wavfile, "sound%c.wav", key); + break; + case '*': + re_snprintf(wavfile, sizeof wavfile, "sound%s.wav", "star"); + break; + case '#': + re_snprintf(wavfile, sizeof wavfile, "sound%s.wav", "route"); + break; default: return FALSE; } + (void)play_file(&win->play_dtmf_tone, baresip_player(), + wavfile, -1, cfg->audio.alert_mod, + cfg->audio.alert_dev); + win->cur_key = key; + call_send_digit(win->call, key); + return TRUE; } @@ -242,8 +254,9 @@ static gboolean call_on_key_release(GtkWidget *window, GdkEvent *ev, (void)window; if (win->cur_key && win->cur_key == ev->key.string[0]) { - win->cur_key = 0; - call_send_digit(win->call, 0); + win->play_dtmf_tone = mem_deref(win->play_dtmf_tone); + win->cur_key = KEYCODE_REL; + call_send_digit(win->call, KEYCODE_REL); return TRUE; } diff --git a/share/sound0.wav b/share/sound0.wav new file mode 100644 index 0000000000000000000000000000000000000000..15b1b72d43c68086888e46ad634b0e5597aaebe9 GIT binary patch literal 35324 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 YM;wg%jmMgi4PKKw-kzRLunFw{0l906IRF3v literal 0 HcmV?d00001 diff --git a/share/sound1.wav b/share/sound1.wav new file mode 100644 index 0000000000000000000000000000000000000000..e100268bf35f4880439adb0334db91beea41b47e GIT binary patch literal 35324 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 F{{yk4T7v)p literal 0 HcmV?d00001 diff --git a/share/sound2.wav b/share/sound2.wav new file mode 100644 index 0000000000000000000000000000000000000000..1f71187450fe22c476431ebaa08f1fb8f0489ca2 GIT binary patch literal 35324 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

G&83yl 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 literal 0 HcmV?d00001 diff --git a/share/sound3.wav b/share/sound3.wav new file mode 100644 index 0000000000000000000000000000000000000000..8c01d8e1e4da0a818e7e17d27761219bad6a72a9 GIT binary patch literal 35324 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 NmvXnGgZXpL{{h>FqBZ~k literal 0 HcmV?d00001 diff --git a/share/sound4.wav b/share/sound4.wav new file mode 100644 index 0000000000000000000000000000000000000000..3063d3cc29820c4209fb383cb9b2c6f8078e25c6 GIT binary patch literal 35324 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 a9H|Y}??TP17J)4=J>@ad>dbwyp!k2wAj8uD literal 0 HcmV?d00001 diff --git a/share/sound5.wav b/share/sound5.wav new file mode 100644 index 0000000000000000000000000000000000000000..e43b04d763501b90cd34b34cfaeb03cf9542f54c GIT binary patch literal 35324 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 literal 0 HcmV?d00001 diff --git a/share/sound6.wav b/share/sound6.wav new file mode 100644 index 0000000000000000000000000000000000000000..760fa180765296650de4e65b0ce05d5e713ded8a GIT binary patch literal 35324 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�w;9B{!yuW#Tei$MJd7VuFtMk9s3z!Y4zALOH`^WKgtP zd_vNik%j!qWIYJ?#BWiAiL>0b6>vJ;i#*f3zr5GH7Vj(fAFf~a#@5!HjoD1F=t$$M zGD@tHX_7o1n;p3onj5?km>akg_$PQF)HTvEwgX_>@BDFTk=ogykfqpr;tRE!NwR6v zdhRp#fa}j4H(h2|GqvfbWNYFv))^JxGthS9oKEPAv<4tM-a*^0*#H-*Y`ixnLNrL3 zzk_LnLEZxO;WbFBnG8Q*B2ATF(rmF5NL2q!lj$KTcgm3(ka7TxWfEUpEG7?Czw5K$ z%9ubLpzE0qnqPv{X%S~-*GpH%wbpe8OtyKpx|U6*t#mIUj`TO4Db2({`fB2Pv`@HI z@U(xs&keNW|9n^d-GU>+q3DgouXHu>xKhzLgpfoT+F{yheqvn)68ig{y7P^*nzM}K znoYI@xGijPdMjbZ=EFIRcj`kKlBNsI_@SAv>HpFf)7il6UBoXC_K2?~lTt(N4!qt5 zhGxuzK0zofKv$ri!1ruqY|}GZ8||{%P)#Whm3K-`HB0RTCfhjU5!4b1qgi+xQlnNe zn5iyT$IP2MS-M#ab1idrZY_J724?{8fJ`u^tJ9^0{E3t$aX7j?ECeqHbpKU95qJ^E z7m9^T$KEF1rt^xMl`6(3WCB2JWw^rD>-MB`ulp0w*!Fp=dmDRRxO|Qkwr^%XdyX26 zn~*d5G-b5-U#57~!r#I@BlV(l0bUCxQ|a77FKM^(NmGp^d>XBZ&mm@# z<$=q43A}4jhsiXNohXG@#hRc4kWFv`8V*vYQ6pm%gBC+}_$)jQsfjY!BWxOOCdLzo ziG##&B7_&hb7OCj&hTF2vGz`RDLn!E0!p_}{)}IY`2l9=7rho;6uTPlmF%6q$oB)v zVGm;o;8!UMHhnaYvK?{!0~D6Wp3+|2+t%Z8|K%)dUu0QsYDPc7%Odmj-*P{}leQ)L zMe~N+1+hSNzvgS`cLsU~^M#uMPi%E+C4UTL7*Nm=NaE|MG$Wg~nm=2PTeI7;+fG|k zme1yyoR7`R)TEjbov|^#RJt8xzLE0r}t`%kZ9oCp1g zvQQByVJrk*SXI5JHbNbt4421BE5t`aMd3Mrh=0Ua0*St`SXsWStkX6bw_yv`k2pgK zjFVH%JFJ2&YM}t#j?YoY!32-J1KQyO^7Fjd4u1m9cC! zy{CBs!#r?ZeT|X_M3^j@1*sm%b&0ZxVu|UA0!atZ54U9s2$#j)vZ4H|sd@vbH{2LB ze}(#k~3B|@lT574~c&%guWgk&{}vEkhN&Uv}Pew zS5ps@(=>-Y$sD8SQ}xIMz8Pze<^|X?AJoryqfghn=>7FAx~@+%?4S+R8BW1d5g$?t zZG@IWKO-H0Q?wPDWE9a)tEH4p5-rZ>^Jo02U&(^Whb}>cm$? znun$aO8EQviufk^+WSuimWJL$X2i#*_VS24QhN&($J&#%na`$t7Tr3`-p}#N5p&E3 zN#;qmAV{6c?0LE;DPvhkd#H?FL!BpEff_&wllV$}4Sqgv60Qr|#EsHU`IvG>J*dso zs{u8s0Mrg@4dsDugPC?fm$h2jJiyFrC^rE!?^zY&1EfC>w4=I>rCrA%UyG8ZaiC;zDDRM4fDV|I4zt=e@rxtL6ICl5k259>#ym5 z=}!cfhxSHF#vQ3f{AsC$#zUL1Ley+_qq)27f@8PK>ft?Yy#+w(w4!^Cv%fuH$<1YB zq9DUC5^A8;l_v<9^xdQyUl-dJ^+xqb%P0(5I>Uj_`Yrtdc>RWK(oo|SGzsycZX6{J z5N5Ir=_IcawTKP)Ta3cWqy3S+AhR$Jd?ctdL3SyXQ6AZ!)mK+wzB(34>lTl0(wH6Zo?BL1 zRI|hU%QTG*(0>9ZaspG4?(h#|wLVE(uO^j+N;jaDZBuY{iCRK?tIgL-88?jT&?@LE z*kwzA)4dj?PGed?eWdJ>r%S!X?!q+wQKn-iU*^wDR;C@_O*kobl546x^}|pukYUOT z@WL+>YWZp%YTw}a%X!$j&>3(%vDdWKw7fBS8IHV<_JV$^BP28bAsLJ{k2pdtK!%~7 zkMs5SH38>3DG+%^UP^0Z=d5_?aJ>i=f3WG=bY)dZaZvg z%Uxk8sun&TxndO6ZpmB4>wM)5kuIG&m0X>?mu#ML0aVd~-zk`-*>XZ@t*z3J8@r$Z z;3;l`3`M#kIYDCSPk0;1GxRd<>5cRs+8&TOJ)?0TZ~m9j5*iLrx&@n#CyDOV3EIbm z*psF|xnW#0?wLtu?=m&%-efiW4N?bMq+OFmp-$#7(0OY{XNC)hY6c$%J_Uw>JUtUJ z#ioGFVPD~bTtj~j55#{_l}$}SICjlXcYnNf-$Iq_QEz{ zyRiwF8FWGCBg5dF;9O%`3uTdXPw?<_Kt3pvz!JmarQ)sQujAJfj?_)iEG;74R@UoF z;I-IRat+gulP&e__<~}180dA@$czCQ2CwlKG94dE+1P$uC(AdhV%ueZZ{KFuZL)Q% zMFFW(GxLi)icdqk!`+PqT0mJS50}=9Ch@LtN5I4hqF4GLosqXH3)F#Hd9ba984m#y zfuYxci>Z2NeUtV`6_p}@X&%eTGtJBso+q9TAa(lF2|3PN3z%E5O{tPNg9tjJ z){-vsi_%Avl@o>IGh=mPgJSX6lem%?oMJN1_#@(Kd5l_94;X{tGspvU2UZzhhVRG! z#jE2tuwo#UcMTzs4)8h9iTY|B1Sj?a&_j7$pK!r8-F;nfi&_Boy}bv1KPe5DjI zRv zZV++>2L@^c)&zzGPlg6Zro=uZCZ_8Md1XrbW@I5n@yX`4O0g|LihyeVDA&!rToVWdKQ@6^-y+~^X}e|sG$5kLby1GR$NLQ{br zHa)o@^GfWX#*LK#v8`tAb0@4d99>)4TM?! zv3yMs)3cI;3h|0P!8E3uWJwSF6B;R%ohxMEKL7ikE#R~NuL?;?xQMpzthk)L>Wz+1lH zeepfmUUV2DK^=`H+Fs?9bY1w8`6E3unJ>Y`o5p@ce??oy^2K{6h?FTaNHEKBRWtH~ zp4bR_n5ly0lW!F<=5^&eX%cO5w?i=nbqd_>@4Y)-L*Z4r!GjH_H?whCCn{M6M%a(8(jz; z(0F;O*pwfV{*}CzfD^mp`{GREO5$=-O%2bW!V$5b>;$e)d1Enj3M5JUp+C^VSOtv3 z&ZBkFBM1vpmgfLE-41pcZD@LakUvGC3(#hGCvpQ#W5tNBuJM96~ z61zoaXKR>Uwv_;f)&@?WAGp0ey-h)ydJAZZ)i!(BQ)Fq-sIh9>q~3i0)aCdT(5Pz? z8WLoKC4zT@Z-LiaBGx`}Db<0erMt=uJr`(+yvARV^8u=eup3PgQ_!^5B(XVI6Z0H2 zMY0p8vA<9+k_O4zV#YGP2uPs`!0DZ?3;F`15YUqP!7;ce=)gThE+FF(8Eym;YfTJV z->a5Wj!I?3tNgG`-E_;;rewurzT}`Jh|HyjW%3Gzq|u6~?S;mpEs0$8OSXr3zjcqj zfpfB}ihHWNhI^{3nsd6nrS%MVhgnAE!B#*SwXYP*98I2$WsmrR#RCanEnjxu9N&0< zIPfu4Ihu;gscOP@*{%Nr+MqOwoz@tM!7wn*s z-59H1(>Sd!K&2fNT=^v{a&zUq@}GJ{i|c(L4L*y`172@_`VBL{bdCE6+NJreH2}x2 zV<}?ZZ+gURpt2F&z<*5Wr?r%8gRbJj1QB}`CjYO!v+k1OeExQOPmlWy1XwIM!5xCz z;!d!IMFJb#U4y#^w*)6R1eai8abE~d*m3FUnV$AvJ>Qq{9L}B-{vwARx%;lF&vg~> zZ-4vx`{qGEv|qpysuj5#JD=cF!$nFxf_5OE=}H@`S$wt{P9tQqs(Yt;t9yq)FQTKf zkbRlum~jg;fO6pvw5{@b;clumSB&i)L!!>ertpezG<+)ZJlZ@iuphZ_$|BT~x+=Z2 zx@Zs^NNj=pXnlG&eS_XdccOEtB2+hW8nFexiY3ve=t(3KF@qnZ1TqeZAj{EAtPn2X z&xw6xHYHOq+oAW+S@a8vrdaqpG}aJlr`DIh6M6n4RH22~rLktwE|KfuP2qRpb&>Os z&1#<53PevOshzq6eNK3FjSRKTVQV`_Yv_l*^9=I#_dfQVa~F2ej=9!treS)4%Em8f z9(j4XTCxz^E2@MX!QUaD+ub+SSHhne_zGlyW-P%zOXj6x5~&f`TVf{tn)z&4ZF*zA zVyS2CWF@WrEQ8J8n+_RB;Ce^E^yVQ}6sG-kfob|)o(S*aWAUYEk;Y4kv_tL)1l(!0 ztCk1prHRNqnD&|=ZTve8?`Vx z6ORE|d{wU)b(Tlg7WOQM#o6BJasKRRXx|O_ymH1NOfSldpVAu2kJB@fKe1DykV>!!m+gu0YQeD&B6WlRZ98#x8 zZ3`?e(`fxZ`T@bCHMI3|IZ@+_rZ#XtC)TsYAoJat&0~)y{^qFE2;QF_1*y|4<&^qa z`wvdG4%l(*Eo8@cVok6cXk~OI^wYX(_tk-rF~`*c@aIQ$9gywwVb)6$1Ie3IQQZ(` ziGH@BzVW2-o$-vZhOxJyw0^tp2K75o3YRpy(nH+N3*1z;YOGphX{c3je4s#}Uf^v& z4Q>WTpajcvp7a=rRp((gY5{Z4_|P)Le$%DVUS!& zD~NeWn=Yk43H`7fds8rR9C4TR6!WZe&vV5cUu`2T8{i(Qqo!al)f&kyNxO4JUy1Iglh<^+F*L432)OxdLqys)%fvzm|veBAhZongR9if`ZcCsfD-XLC%9*NH0ZJn_H=RIcHXy-wcas((BG$b z6XVeyY9DDs+L8L0FtVFtYof`>jffao9i0=q8gG=~Aa!~%q zBQh+M8#v;3_!ZwT{_cUZ!8zgm(ZcL~ZXdrH-_q_^5$#ir1_q? zt$Bti$CzO_z_@i|sr%4DI)-*czSG=lYvr`uTdpIwh3-lUlJo`CE9zj#Gb})&NHw$# zFf%?R2f3tuRNnyu{HxRirVY9LvDAfRni~Um{QBHxu6?pc>J)V3yGrvFpEd&1k^AV{ z`UA!Q7=||5^Bwn{ja+qHr=6!Ab?t4foaskH9bF2h7q~h@H1O9Fr(;5RNAR@2m9IY- zhN|bY`L+FOpicNr^cmdPW(hiF0}wSpJm`m;f)?Dq-|@^j*LA`*$hF-$3{t1>EWewo z8aC;IWIg;hIP@+{yM=pvQ|KO73@=*#O4_I2|{=<$f z5_M8b1*5VTX+}JvYrxH>w(Yp%0#G8Iy^p=uy`{aRXP~RCBgMW<x3;}u|aTW0@GX*B~fc+5d82%wR-=F2X zmVY$Al&`pdYhZEcP2|`3Xl@1nk7!bxqgg~NIu2A_3z&!)Z2#CicEL8zw!+%g^2lT} zey{&dM^F*m2RX9F>S=ipxUd!rxNtRnInAdB3W9J{oGNvMWOYQ@t=7`^X<@jBhqOPm zs@g`#($h*wxxUm(Tq@+HJEVF36)*DHkb7aomeNgmmO2!fgzY4rQYiDC!D@PBZf~7# zYiBMEL%$H7 zg#{Qt{R_31*p1~N26e4u7dEA8a{xBPxCN;U+^6-D1L>p5^K2oQix&<( z4iMn23H!GP{s#W7NpyBxN$g7v2g8r19ze?yW2o`EGWvyvrN(NeS*Ecj2b^lN4gK{V z<^<|-?ow{lRCl#!~WZiH^q3#di%&43SgKY*PngA~_T zFbp-2?h9FIEp;)ui@N}m-V5vr7D*gP9OX#gPN z=F(gh-EUkv*BM6u`n)ESTc1be;QwmP<@4!I$s%mc=)usEz-Qm({F3=@$Q|$WRR~lG z?TU8Ckmu`olnt6!z2m2i8MqhO91_y%MaSBqWY10KmSLQj@o_LIo z)T%1wr9r|M{$%QDvPDv#{4O~z$)ujAa{2dZQmi8NkcTTn)CO8W8;YDp9wV2K89+j< z)Z)Mb{-&^UU->Ke8%9fWq+F?!>`*Lf6YUSMQN6}D0RLtIuCStUl4*{)k>#M}tYv^@ zA9y$j_-3*61o9G=2eamf!Xq%}HHbfmoD4~U6aFv0jlPGz75*oIwV}I_U*dzg12FBs ztPa93;MH#%Z(By#_dAEXk3#Nv6U=&hc;YT65U^z|b&YQ30Wi>Iw78U?{w}pGF*SZM z`U^ZQGr}dq8^R+ayQ8JzVb;$vd;?*k^t*BnTsQ;q|A_CY4EiBmTh~ihSNDPLO7EoZ zlRiSmop?QL8l2+U@H-2d9x9U4V5CW+=b^vSmncQ%kt3;Bl$AEq_o-IYEOIPS65on` z(x51pBEnmk^>T@N?B&>!=)p+&h&?hmQaai_7LUggt$~1i4foK}*w0{MIb+ynZU~gX zXxC@=OHWI01@A)Wh#qpzvqvq8@iNnrI)q_bf9VaskeeF68JQH?9%$kp?knQ!2_2Sh z0XkF+NWo5trm3F740)UOJ2sar4IYdo#%ktCmd@6{t@o^BtmiGq%>7JH3Y{S2wT1^kk9o-j&ku5{Gqqp$GV)JEMGz1c)q&RPrDi#RSg z@*O)IAM6KhxHV>)ZaA&mPY%TxZL3r#&2sPJmgsMxMS-yIX?~;pI{8=fANd9YCBQ|V z#*yUEG%sz`s^G^d9Gpe>EXD1NbD}HTo$Eg4cDYg4bjMm-H_KyV0ewTd2Qe1?Lsg`u z0?cgS^@q7wd{umI{C+%#?U)$H-3CVMK6F@8(j?`r`W?7c3{Zz;fJvu2UJAdDb;hpz z?@9Jn>!`g`S3>S|yn0+M2I-}Z$a?5AC-6q(YU*Fw&Xm?$3|9;ljO~p@jGGJ>^@|up zSDvy#=dhu+Q|5%W{5h^Y`yHfCw}(atPXvAm>a9K15T)#yQ%Y&t*FIfyryeIUPl{1=Wr>%h}3g*2R4OI=l=*KXfbRPN< zxd=MPC9r~M9b|!qgGXtjdI;X_PTF&A~)vH`n~-bc1+P1GB5 zWofm*@k3H6?s#Gkn-}jFuM-~~*RfclH;k$ZrbmdHd`;VpttO}IIzsY&C}i{6fW2{% zJK}!guHrViavYs(_sjvq1zjid8u&YZ6;b}r#E#h4@H)7$_w>!quK_)_roOfQEU4OQ z#)`qWWs86+gQ0Wymbwf5$W!JGR)gK-_|5UBqqAd)J=u$|1Py9wIlUkYB29ghth9_cj71My?h6zw@siDaUpe(3XoA-snOa%^{^6@ zE67u%w_>*F5L1Ff94Ru=R|!>ms2{Zr=y1FT_zJ2rq~WBoqIrm=qxF;3VS5W*mMWIZ zrmu!mOci=KF%JDntt2sNiSx1(qQ%0Mf(QLOd~To1x6OCh|6{OC_%_f_Pm@0iPvvPy zG2$3)H&ivN)*+5QuIKK5Jk`8TnDsVw?{coTm#_{t4F_wDjmQJP%PBFy4^7sAe4ZLb zqN5^hBC8^`qjh6T;~9ys+|$&H^n3B6d{14ERKYglSBd>#Iz2+&r;bzosgGnsavpIG z4?>oHG^81_5E~K$6G=VDVAex9^e%P+|D9MzPNEvo|IvLQ_p(*jQ+Jn609iDGxDCO= zk1*?>EY?b+DPKa2w~l>`JPsERzYXca`@`oW4PxclX^oM$>?>}7buQ~<-! zRlpvIj-r>68oa)H6-LOnF#q`Z}3&`7;2k4`6 zl1``ycec^o#)LP)vPBbH6MeYu$=UGCE-$PVc_~wwt8UO{A~n!+D2)|^6xwYx3w@0= zfsQc(lcJEaOzEm*Dr3QnIYh0h{Q%jHeULg`MjGh3y3b58LnR|>T5kHs^rxw|X%JXs z4=}m(Zn6%(4S0EjR4Y9p`GOrD%Y@XaJD3sJ<=^Em87K>Pw!INk{8=KHYApV(^nx4P zWZe@(*nHNO;dHr|duBuL_`28Xed*3{CG6SO>0o1$sU^4rIU?r>S*fiF$mB#g}NwO|xxpnkf(t^N&Dh51R>k8VR% zB(321!-4A^2PD)QEk_%x?bj$|AyNW;2ub>?_*1+$aTVNv2>F2MPn^PYA@$G!$yJLf z{iKyJ6TwphxhQ)kemzz+mKRM#$Hsn&?`6AjS*i2sUQ%Vau{9t%(jE2XO%E)k>?NFk zxn8;_d)9l(gAwqi^SOPT^$29dYtn~t9Wp?^m(EI7V%q~JbQ#EQFXZXhLF%-I|5o6i zP~~Va?&sX;zS3bei0a7{yytF66#g+0sukL|JbS4+rL&{$Bf($B~v_(pV> z_DpFYe-d*AF+CcLrRCCt)6XG4T1mvEFVYQpi_%v`wK>{L_+F>9t6Cp0W0q9=DGTL8 z(lgNv2CesL=#YRVHJRQitQK#B1;DS~KyJeGLWM3*Q3GoF(_Fw>&Bj74(!hS%_P{#Y zvL9S9vaSkM9#^!p@@S!Ms$8OLEH}J8_|Ct<_c(uT{s*8$+<`=}MMR5PxgmU51gkLi zm~6((1X5766>{Eo#og;Y$048llRM!o?D%T!V_pLl_5yM^)=wKH9~FM!B`zbeC%!E9 z4lJ{$qt#+`yfnKwQ6%{a__w)YciF9;)heQ6u~{&^{XkSB+mPkSH^e~V9$pmB!A`?0 zY$D_tj%tgvRoXvV6_^w(Mn^!7YX+QZ`=|r-N?lv#1yfT0gFejkV`l3*)33=wz{{t! zKa~2?z4V}zhvQ%#HY!ps+%ohe_&C@yR5QFKGA4G6ZIi5-&XP{6#j*7yud50(F~6;$ zvy6L#XO8z17-nS81$Wwc+5Vlii0KV8h4ovF;fTH~^N#LGJ%)5v z7|e&uAZ6)ShAJ6~5whdsl~2lWRR>A>Ofb&$K#xPl+=re=d!pA75uWT{;C9zZVukhT z7Q8)00o}Pi(F}ezC0cSFl7FW9r~8UqWQ%qX?Mt}nn@o4(U*^}qzZG?sbzOG7bd7Z_ zhlFrvo53=`IEX1pox;j$8zooz47VnJKGFzy_1(U8`PTe``6u$9_{IlTgly4h+?5;+ zM9nD8k2R%!VcHpAn+e+$JL!DrEDU|)_TU)21v8Nkrj-U4Gmi@61JJm7NZumePiI2f zqE_+TqVpT|zW~-UNb*@KPq!8*xKO*xXSvwAxnUd-pB_dCh zi^+mS$j#+z@?>D9mTMn?>*Vn5-~>#-Z8%~mWh!cZWUgSTXt{6JLp~_WFpFtNKZ8#| zOUN+v5PnW=1k2fu$RWZ?gNVBi^-CTa!o6I5wPdvv#k>@L?$ zcfzv~I>+_A4LyIm9y!L@E}AbJmgs7d&(WD`Q#dV$Ct3D+tZ4L2SQkDNx*BR0t`wOV zwLt1r;41LrgiDg76hR7LA0bC}k~%>T2HGPE%*ROG8@dSHnCb+qNH+8j51|rR0bPg> z40#2R2?!6y%g&e=|A6lTr};aw1@I-)sRq;~$YS&ODXccSO#4f@BmE=X!bIH^;VXnMRyNYpSVWyN(G%vPYajbL&;T}@V8}rokBwf{< zqOFJJC!>v7OLAzYdQdFKzfZgc0+tU}3gr8~haAg~kUAX(m1zHnFLoAs5$^s%upqilsNzZ%aokElG{hgj7CQXqXU^@{71D8~+tV{t9kJ&v*|wk&+Q zz5HL0Iwj@b6tmU`nU4O96~x!#Pw?0HF}yea33>{LA(J-%c?fe685|t{sA+IEgtenE z>pg zTxeI22h*tm&Nf^4P9z$elIWG1ExeJtBX9BE^m+Xk(;aJP$5>Y(@LYcKa^5N4u^yl6 zlVhZ9t9iPixNbLLM;9vv#8)Yx3*sLmM0gw2HZ23a0=_^19L~j}_2a)Kil=hZv!oy3 z$x;I!Lk_14Gt>3I8mb$Y8kZXz84np=>K`$?bUkPUIzc`042(jZNN4S;nhnm8#_A;X z8Pp>GLB6~UdIN2ToyRb|Fizv=v6^7;U5pIX3aiH_(J-$3g& z6MA&G@?7YXawZ(HoNzgCLVA2X@=L%>B+GZpzYo%Rf5dhr@=`U$y^0MTLad~x>OH2O zma4Wb_LUBU)8gFexM^Qtivs?}8V)g;^ao-(RteFmHo3d_K7EpZo@$XIQpQxz)Q8k2 zep-5puu$AA{UPsAW~z0xT&*H902u_n&(A>hK7>j;M>!#r@(76&{}305J48-gB=v@V z%xUoAzCgF)6TsnIfeGms8lxt+C2AQ17U9m;eU`Omuc?7S&n%{HJ8P99zZvzvS!85S2-W@y^&BWP$pN{38(aK}ek%*^#k=(ZZ40;kMz0 z;p&mj(f6@uY?*@^!z^`*a>S*GZpajNwXL?l+=N{tf?f7UV&9C$$ z={I-{WQ|M-`@mUq6{bgnf&oA4o9)}+s|2ajXTjWXq1a#S^5mlQ25FDF75=XldKfd# zP{K6U+{g0XqFBxY0awW^8J8OpOg-Ir>JSmZGSR!*B(y(m|-$@tYRGXWg%kNF4lk<~Zk~zso$pxtu{MYnC zphOm{&k%5tk+pPt^bsRvd1LKwU*Kr!TyzJOv*MsG3yYXM<3AF+*h5RYk5#A<` zvVTV_gvCHzzX%-`d;Zw`zP^Y4%fX_NFEJ_6iGM2Qs0j3p@^lICU6;0%avXu%ZDV(9 z_Y>DAnDs(R#?sKVSMR3_g5PDemX_CuIqBsoEcrMgv-8*?>~{A1L?R(`)l;i@RG0?# z%C5>b^}2QrnT6UQbGizfhqZ!^@euS8ywfYSG;~(X>I3CGByh`v`E?YWffK>uY$7I- zU#LvoX6BCmj$xV6Xlh_8Xxe7HX;`DzF%@Z;1z}EPfU-@@$1jvQ)OucmC|Y>)Gq&A)OTiC*)J-TIjK* zjn|mI)F&WnM6lKzNk$<(urh*$!@(}WYQd$!?x7{&LQy3CJ$NvZ{0xy$CTqE949_EH z(XVtLnT>i0dO>;mEd3$ow(c?*v__LniDI}LQm2EEd)h#)0{E0VfMv&n902pHi2i{! z#qZ*k!QU{MXiI#>n*mkQ5v7pTDlfMH!_Wi1cxoM2HNik%er@ch*sK^6=i{01>Qa1` zAW6BfN#Hthi$0^DWinek+v~u4brm}Oojp(84_qysE$y!?l<5mIhvKkK+F_|k`aHKj zem&A9)GhGL_X>;^bMs64I{VWBTX|9L{uRBI9EAUf*3||mSESxz1L5cN8-4@)JmXtKf8_*J6*Ht9xxJF1 zK2@`|J23gv0SmT5vqOI6f)bZAuRn<3-eQ*xhX6jPewaMJ<+DoN6}NU{CMvKmVB5xncgnWle?-o)D~}` z8+eZxOkO5mlb6U5WPbDmL?f~}RTmO{ zcXXM|8fGKYmAR?&(^sf=%qq1&Mw;TlmF z{41oSFKw0KmBp%33z^f#y_Qz?CCc?BJ% z$>>7(uG`Ti$P+CDv)*IyEXx2t@>+gWY79`bUhZ+?RiYaA9~Vis<)t($mQ~hj#jsn% zXxgY>YRrQU%WgaB+(_FaAo^6q_7b6p{lU{6B*2bf$k$AUAj< ztVPeT*OPW(ja&h_k7v<$^|I-Mbr5VP@Bk%t5z_Qky&0Zmu6YiJEz?}jAkdqLO6U`1 zt+;@{%(Y^x#TG%5c}b{#XkbVP@!>8}4V*>xWKaIMU<4P=64-kJP9m~7-BPDO-ex{j z%7U(+?l<}vb&@UAB#)D| zz-}-H&&1v!4YbM1Ch0J6y`RAcxtgsLFB=;kHAQXFnLw9rjQ^Nu24ryyaJN-Py5Q5P z4a^E-N6TH9_5A^r$Z=1?bHwx3y~uUSG2C{+eB3ZV_m-%Ku2GW0v{ctIV#>(mV)OCiyn#CN&@hAcB~Yv`a{9o=ro(px>PfPd@ZXli?7u59cIiLY*WPh=8M z8qL%86yz7!JtHc zEdCy=gDpqDfPv(emJQD`k5&taZWHh_ThXo9S^N{>pnjx#=sGb)!7b!6lre<$1N3v4 z4!Q>vL5kP~q$_-`TL@QET{sKOdYebyhVp_#$5u{G5MziBj5~EUOg|Ku$Z3BiMhSKXUF@+4pjrWa3OkUGfV}|iZLm8-- zR?(%YOJEpsV1C38KEMg8UVR4rQB~=p-c^6nc1bRE}j=+2Ng0!WMf@9!*!Dc-6Vb0E(kfY!^x4!X~_r4eyQTTC0!7<9`%&QK~`r3R3dMH{#gxQxFSw17Ax11QlMczN_(|>56%gMY7ne*DYoX zYZ_-(n2bHg|0Jf9HDHQTmmUX})F0@*R33So7>j>G zGmxrkY1tq~_;<-*q7=I&)*GfWU&7bI21toTqVwW26EBi8(?g|S)hj4PHrEX`^foiL zfxva!*`6;va#Dz%kfiF?F-;(M@4-IvD5C6#|++eT&WoK_TOLSx_+Ady8d`!uPA6^~3v zG2v@E!58OertGQwB$moa73E7o_3D&jGOjg3x54*nJj`SW6K%O;t!>YAaE^-3n4_-4 zY#(9mZ;k_7o<{C9*2iHMl5HEzl=G1j~o+h2KYevsIH_(tk=nXqU0p)CJg*Bw6;@ zzc`P(RnHAD4DI*c@npMaIm_E8SVkJlGUv&f*eSK8gr^m*8S9Vo;mM(~L4V-iKr2Y- zj|Rh#CEhx5D%mjoN*t-gwD#C^Vg%*Yjb~=+s~XlAb{et`@AVn_N=yNrA6!_Yhz593 ztOVK)=;aFFdVC7G)0)stD+m4Y(WnPIiPgn-I=ChOwm8_ zty1^6>4`z?D)0-vi&jc;(a10qiPw+33nu&v!C25De{y~e-$Zz_^$$m*57}_C zCfwMPT4Q`D)s0CTnwcwF57qG=Hcs#~%yCLxZAq*#5~|>7V3pdo921wfwf% z^4ng^Z+k7j?X~>2*Yew5%Wr!vzwNdBw%4-Ex4o9%_F8`1Yx!-jrSaQd%Wr!vzwNdB Ww%798UdwNLEx+xx{QqaK<^KT)n5R4d literal 0 HcmV?d00001 diff --git a/share/sound8.wav b/share/sound8.wav new file mode 100644 index 0000000000000000000000000000000000000000..5cd63dd697bf5724e86acc1e4dc2b78bd1b662ed GIT binary patch literal 35324 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 literal 0 HcmV?d00001 diff --git a/share/soundroute.wav b/share/soundroute.wav new file mode 100644 index 0000000000000000000000000000000000000000..1631695c5b17bad200fe7cf04d52031ce8f73482 GIT binary patch literal 35324 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 literal 0 HcmV?d00001 From a057d0d108dbee254bd12e28766ac6a8403e5b21 Mon Sep 17 00:00:00 2001 From: juha-h Date: Mon, 15 Jun 2020 14:24:43 +0300 Subject: [PATCH 45/60] Added call_state() API function that returns enum state of the call. (#1013) * Added call_state() API function that returs state of the call. Exposed enum state. * Added call_ prefix to call state enum type name and STATE_ prefix to call state constants. --- include/baresip.h | 13 ++++++++ src/call.c | 80 +++++++++++++++++++++++++---------------------- 2 files changed, 56 insertions(+), 37 deletions(-) diff --git a/include/baresip.h b/include/baresip.h index d8d325fd..428a3bfa 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -149,6 +149,18 @@ enum call_event { CALL_EVENT_MENC, }; +/** Call States */ +enum call_state { + CALL_STATE_IDLE = 0, + CALL_STATE_INCOMING, + CALL_STATE_OUTGOING, + CALL_STATE_RINGING, + CALL_STATE_EARLY, + CALL_STATE_ESTABLISHED, + CALL_STATE_TERMINATED, + CALL_STATE_UNKNOWN +}; + /** Video mode */ enum vidmode { VIDMODE_OFF = 0, /**< Video disabled */ @@ -178,6 +190,7 @@ int call_notify_sipfrag(struct call *call, uint16_t scode, void call_set_handlers(struct call *call, call_event_h *eh, call_dtmf_h *dtmfh, void *arg); uint16_t call_scode(const struct call *call); +enum call_state call_state(const struct call *call); uint32_t call_duration(const struct call *call); uint32_t call_setup_duration(const struct call *call); const char *call_id(const struct call *call); diff --git a/src/call.c b/src/call.c index a4d59a82..a69f8da7 100644 --- a/src/call.c +++ b/src/call.c @@ -22,17 +22,6 @@ for (le = call->streaml.head; le; le = le->next) -/** Call States */ -enum state { - STATE_IDLE = 0, - STATE_INCOMING, - STATE_OUTGOING, - STATE_RINGING, - STATE_EARLY, - STATE_ESTABLISHED, - STATE_TERMINATED -}; - /** SIP Call Control object */ struct call { MAGIC_DECL /**< Magic number for debugging */ @@ -47,7 +36,7 @@ struct call { struct audio *audio; /**< Audio stream */ struct video *video; /**< Video stream */ struct media_ctx *ctx; /**< Shared A/V source media context */ - enum state state; /**< Call state */ + enum call_state state; /**< Call state */ char *local_uri; /**< Local SIP uri */ char *local_name; /**< Local display name */ char *peer_uri; /**< Peer SIP Address */ @@ -82,23 +71,24 @@ struct call { static int send_invite(struct call *call); -static const char *state_name(enum state st) +static const char *state_name(enum call_state st) { switch (st) { - case STATE_IDLE: return "IDLE"; - case STATE_INCOMING: return "INCOMING"; - case STATE_OUTGOING: return "OUTGOING"; - case STATE_RINGING: return "RINGING"; - case STATE_EARLY: return "EARLY"; - case STATE_ESTABLISHED: return "ESTABLISHED"; - case STATE_TERMINATED: return "TERMINATED"; + case CALL_STATE_IDLE: return "IDLE"; + case CALL_STATE_INCOMING: return "INCOMING"; + case CALL_STATE_OUTGOING: return "OUTGOING"; + case CALL_STATE_RINGING: return "RINGING"; + case CALL_STATE_EARLY: return "EARLY"; + case CALL_STATE_ESTABLISHED: return "ESTABLISHED"; + case CALL_STATE_TERMINATED: return "TERMINATED"; + case CALL_STATE_UNKNOWN: return "UNKNOWN"; default: return "???"; } } -static void set_state(struct call *call, enum state st) +static void set_state(struct call *call, enum call_state st) { call->state = st; } @@ -318,11 +308,11 @@ static void mnat_handler(int err, uint16_t scode, const char *reason, switch (call->state) { - case STATE_OUTGOING: + case CALL_STATE_OUTGOING: (void)send_invite(call); break; - case STATE_INCOMING: + case CALL_STATE_INCOMING: call_event_handler(call, CALL_EVENT_INCOMING, call->peer_uri); break; @@ -442,7 +432,7 @@ static void call_destructor(void *arg) { struct call *call = arg; - if (call->state != STATE_IDLE) + if (call->state != CALL_STATE_IDLE) print_summary(call); call_stream_stop(call); @@ -657,7 +647,7 @@ static void stream_error_handler(struct stream *strm, int err, void *arg) sdp_media_name(stream_sdpmedia(strm)), err); call->scode = 701; - set_state(call, STATE_TERMINATED); + set_state(call, CALL_STATE_TERMINATED); call_stream_stop(call); call_event_handler(call, CALL_EVENT_CLOSED, "rtp stream error"); @@ -738,7 +728,7 @@ int call_alloc(struct call **callp, const struct config *cfg, struct list *lst, call->acc = mem_ref(acc); call->ua = ua; - call->state = STATE_IDLE; + call->state = CALL_STATE_IDLE; call->eh = eh; call->arg = arg; call->af = prm->af; @@ -948,7 +938,7 @@ int call_connect(struct call *call, const struct pl *paddr) if (err) return err; - set_state(call, STATE_OUTGOING); + set_state(call, CALL_STATE_OUTGOING); /* If we are using asyncronous medianat like STUN/TURN, then * wait until completed before sending the INVITE */ @@ -1003,7 +993,7 @@ void call_hangup(struct call *call, uint16_t scode, const char *reason) switch (call->state) { - case STATE_INCOMING: + case CALL_STATE_INCOMING: if (scode < 400) { scode = 486; reason = "Rejected"; @@ -1022,7 +1012,7 @@ void call_hangup(struct call *call, uint16_t scode, const char *reason) break; } - set_state(call, STATE_TERMINATED); + set_state(call, CALL_STATE_TERMINATED); call_stream_stop(call); } @@ -1079,7 +1069,7 @@ int call_answer(struct call *call, uint16_t scode, enum vidmode vmode) if (!call || !call->sess) return EINVAL; - if (STATE_INCOMING != call->state) { + if (CALL_STATE_INCOMING != call->state) { info("call: answer: call is not in incoming state (%s)\n", state_name(call->state)); return 0; @@ -1300,8 +1290,8 @@ int call_status(struct re_printf *pf, const struct call *call) switch (call->state) { - case STATE_EARLY: - case STATE_ESTABLISHED: + case CALL_STATE_EARLY: + case CALL_STATE_ESTABLISHED: break; default: return 0; @@ -1464,10 +1454,10 @@ static void sipsess_estab_handler(const struct sip_msg *msg, void *arg) MAGIC_CHECK(call); - if (call->state == STATE_ESTABLISHED) + if (call->state == CALL_STATE_ESTABLISHED) return; - set_state(call, STATE_ESTABLISHED); + set_state(call, CALL_STATE_ESTABLISHED); call_stream_start(call, true); @@ -1767,7 +1757,7 @@ int call_accept(struct call *call, struct sipsess_sock *sess_sock, if (err) return err; - set_state(call, STATE_INCOMING); + set_state(call, CALL_STATE_INCOMING); /* New call */ if (call->config_call.local_timeout) { @@ -1819,11 +1809,11 @@ static void sipsess_progr_handler(const struct sip_msg *msg, void *arg) switch (msg->scode) { case 180: - set_state(call, STATE_RINGING); + set_state(call, CALL_STATE_RINGING); break; case 183: - set_state(call, STATE_EARLY); + set_state(call, CALL_STATE_EARLY); break; } @@ -2165,6 +2155,22 @@ uint16_t call_scode(const struct call *call) } +/** + * Get state of the call + * + * @param call Call object + * + * @return Call state or CALL_STATE_UNKNOWN if call object is NULL + */ +enum call_state call_state(const struct call *call) +{ + if (!call) + return CALL_STATE_UNKNOWN; + + return call->state; +} + + /** * Set the callback handlers for a call object * From f4cac831047bedd43c8f22f6a58a2feae25c7225 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Mon, 15 Jun 2020 16:16:51 +0300 Subject: [PATCH 46/60] Added account_set_stun_user() and account_set_stun_pass() API functions. --- include/baresip.h | 2 ++ src/account.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/include/baresip.h b/include/baresip.h index d8d325fd..5bf52dcf 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -70,6 +70,8 @@ int account_set_display_name(struct account *acc, const char *dname); int account_set_regint(struct account *acc, uint32_t regint); int account_set_stun_host(struct account *acc, const char *host); int account_set_stun_port(struct account *acc, uint16_t port); +int account_set_stun_user(struct account *acc, const char *user); +int account_set_stun_pass(struct account *acc, const char *pass); int account_set_mediaenc(struct account *acc, const char *mediaenc); int account_set_medianat(struct account *acc, const char *medianat); int account_set_audio_codecs(struct account *acc, const char *codecs); diff --git a/src/account.c b/src/account.c index 6a922229..067e75a9 100644 --- a/src/account.c +++ b/src/account.c @@ -615,6 +615,50 @@ int account_set_stun_port(struct account *acc, uint16_t port) } +/** + * Set the STUN user for a SIP account + * + * @param acc User-Agent account + * @param user STUN username (NULL to reset) + * + * @return 0 if success, otherwise errorcode + */ +int account_set_stun_user(struct account *acc, const char *user) +{ + if (!acc) + return EINVAL; + + acc->stun_user = mem_deref(acc->stun_user); + + if (user) + return str_dup(&acc->stun_user, user); + + return 0; +} + + +/** + * Set the STUN password for a SIP account + * + * @param acc User-Agent account + * @param pass STUN password (NULL to reset) + * + * @return 0 if success, otherwise errorcode + */ +int account_set_stun_pass(struct account *acc, const char *pass) +{ + if (!acc) + return EINVAL; + + acc->stun_pass = mem_deref(acc->stun_pass); + + if (pass) + return str_dup(&acc->stun_pass, pass); + + return 0; +} + + /** * Set the media encryption for a SIP account * From 91469480ed77c438fcc457597d56d50a69c35697 Mon Sep 17 00:00:00 2001 From: Christian Spielberger Date: Tue, 16 Jun 2020 08:39:58 +0200 Subject: [PATCH 47/60] pulse: drain pulse buffers before freeing The call to pa_simple_free in the auplay_destructor() sometimes crashed with a segfault when it comes to quick after the last call to pa_simple_write(). This occurs with libpulse 11.1.0. --- modules/pulse/player.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/pulse/player.c b/modules/pulse/player.c index 5145a12f..cf895f1c 100644 --- a/modules/pulse/player.c +++ b/modules/pulse/player.c @@ -29,6 +29,8 @@ struct auplay_st { static void auplay_destructor(void *arg) { struct auplay_st *st = arg; + int pa_error = 0; + int pa_ret; /* Wait for termination of other thread */ if (st->run) { @@ -37,8 +39,14 @@ static void auplay_destructor(void *arg) (void)pthread_join(st->thread, NULL); } - if (st->s) + if (st->s) { + pa_ret = pa_simple_drain(st->s, &pa_error); + if (pa_ret < 0) + warning("pulse: pa_simple_drain error (%s)\n", + pa_strerror(pa_error)); + pa_simple_free(st->s); + } mem_deref(st->sampv); } From 3066811dd63c0d26fa8888dc171a6a61f2ea0061 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 19 Jun 2020 11:57:06 +0300 Subject: [PATCH 48/60] Added new API functions account_stun_uri and account_set_stun_uri. --- include/baresip.h | 2 ++ src/account.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/include/baresip.h b/include/baresip.h index e54dcefe..c5fea517 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -68,6 +68,7 @@ int account_set_sipnat(struct account *acc, const char *sipnat); int account_set_answermode(struct account *acc, enum answermode mode); int account_set_display_name(struct account *acc, const char *dname); int account_set_regint(struct account *acc, uint32_t regint); +int account_set_stun_uri(struct account *acc, const char *uri); int account_set_stun_host(struct account *acc, const char *host); int account_set_stun_port(struct account *acc, uint16_t port); int account_set_stun_user(struct account *acc, const char *user); @@ -97,6 +98,7 @@ const char *account_sipnat(const struct account *acc); const char *account_stun_user(const struct account *acc); const char *account_stun_pass(const struct account *acc); const char *account_stun_host(const struct account *acc); +const struct stun_uri *account_stun_uri(const struct account *acc); uint16_t account_stun_port(const struct account *acc); const char *account_mediaenc(const struct account *acc); const char *account_medianat(const struct account *acc); diff --git a/src/account.c b/src/account.c index 067e75a9..45e05abf 100644 --- a/src/account.c +++ b/src/account.c @@ -575,6 +575,37 @@ int account_set_regint(struct account *acc, uint32_t regint) } +/** + * Set the STUN server URI for a SIP account + * + * @param acc User-Agent account + * @param uri STUN server URI (NULL to reset) + * + * @return 0 if success, otherwise errorcode + */ +int account_set_stun_uri(struct account *acc, const char *uri) +{ + struct pl pl; + int err; + + if (!acc) + return EINVAL; + + acc->stun_host = mem_deref(acc->stun_host); + + if (!uri) + return 0; + + pl_set_str(&pl, uri); + err = stunuri_decode(&acc->stun_host, &pl); + if (err) + warning("account: decode '%r' failed: %m\n", + &pl, err); + + return err; +} + + /** * Set the stun host for a SIP account * @@ -1134,6 +1165,22 @@ const char *account_stun_pass(const struct account *acc) } +/** + * Get the STUN server URI of an account + * + * @param acc User-Agent account + * + * @return STUN server URI + */ +const struct stun_uri *account_stun_uri(const struct account *acc) +{ + if (!acc) + return NULL; + + return acc->stun_host ? acc->stun_host : NULL; +} + + /** * Get the STUN hostname of an account * From ba5f2b1f4ad7e09689d5e0c356a31cf79914cd24 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sun, 21 Jun 2020 13:42:34 +0200 Subject: [PATCH 49/60] add ausine module Audio sine wave input module --- README.md | 1 + mk/modules.mk | 2 +- modules/ausine/ausine.c | 209 +++++++++++++++++++++++++++++++++++++++ modules/ausine/module.mk | 11 +++ src/config.c | 1 + 5 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 modules/ausine/ausine.c create mode 100644 modules/ausine/module.mk diff --git a/README.md b/README.md index 378efb83..6d16d058 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ aubridge Audio bridge module audiounit AudioUnit audio driver for MacOSX/iOS aufile Audio module for using a WAV-file as audio input auloop Audio-loop test module +ausine Audio sine wave input module avcapture Video source using iOS AVFoundation video capture avcodec Video codec using FFmpeg/libav libavcodec avformat Video source using FFmpeg/libav libavformat diff --git a/mk/modules.mk b/mk/modules.mk index e35bb801..202c1265 100644 --- a/mk/modules.mk +++ b/mk/modules.mk @@ -291,7 +291,7 @@ MODULES += vidloop MODULES += vumeter ifneq ($(HAVE_PTHREAD),) -MODULES += aubridge aufile +MODULES += aubridge aufile ausine endif endif diff --git a/modules/ausine/ausine.c b/modules/ausine/ausine.c new file mode 100644 index 00000000..222c6416 --- /dev/null +++ b/modules/ausine/ausine.c @@ -0,0 +1,209 @@ +/** + * @file ausine.c sine Audio Source + * + * Copyright (C) 2020 Creytiv.com + */ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include +#include +#include +#include +#define SCALE (32767) + + +/** + * @defgroup ausine ausine + * + * Audio module generating sine wave as audio input + * + * Sample config: + * + \verbatim + audio_source ausine,400 + \endverbatim + */ + +static const double PI = 3.14159265358979323846264338328; + +struct ausrc_st { + const struct ausrc *as; /* base class */ + + uint32_t ptime; + size_t sampc; + bool run; + pthread_t thread; + ausrc_read_h *rh; + ausrc_error_h *errh; + void *arg; + int freq; + double sec_offset; +}; + + +static struct ausrc *ausrc; + + +static void destructor(void *arg) +{ + struct ausrc_st *st = arg; + + if (st->run) { + st->run = false; + pthread_join(st->thread, NULL); + } +} + + +static void *play_thread(void *arg) +{ + uint64_t now, ts = tmr_jiffies(); + struct ausrc_st *st = arg; + int16_t *sampv; + double sample, rad_per_sec; + double sec_per_frame = 1.0 / 48000; + int inc; + size_t frames; + + sampv = mem_alloc(st->sampc * sizeof(int16_t), NULL); + if (!sampv) + return NULL; + + while (st->run) { + + struct auframe af = { + .fmt = AUFMT_S16LE, + .sampv = sampv, + .sampc = st->sampc, + .timestamp = ts * 1000 + }; + + sys_msleep(4); + + now = tmr_jiffies(); + + if (ts > now) + continue; + + inc = 0; + rad_per_sec = st->freq * 2.0 * PI; + frames = st->sampc / 2; + + for (size_t frame = 0; frame < frames; frame += 1) { + sample = sin((st->sec_offset + frame * sec_per_frame) + * rad_per_sec); + sampv[inc] = (int16_t)(SCALE * 50 / 100.0f * sample); + sampv[inc+1] = (int16_t)(SCALE * 50 / 100.0f * sample); + inc += 2; + } + + st->sec_offset = fmod(st->sec_offset + sec_per_frame * frames, + 1.0); + + st->rh(&af, st->arg); + + ts += st->ptime; + } + + mem_deref(sampv); + + return NULL; +} + + +static int alloc_handler(struct ausrc_st **stp, const struct ausrc *as, + struct media_ctx **ctx, + struct ausrc_prm *prm, const char *dev, + ausrc_read_h *rh, ausrc_error_h *errh, void *arg) +{ + struct ausrc_st *st; + int err; + (void)ctx; + + if (!stp || !as || !prm || !rh || !dev) + return EINVAL; + + if (prm->fmt != AUFMT_S16LE) { + warning("ausine: unsupported sample format (%s)\n", + aufmt_name(prm->fmt)); + return ENOTSUP; + } + + if (prm->srate != 48000) { + warning("ausine: supports only 48kHz samplerate"); + return ENOTSUP; + } + + if (prm->ch != 2) { + warning("ausine: supports only 2 channels"); + return ENOTSUP; + } + + st = mem_zalloc(sizeof(*st), destructor); + if (!st) + return ENOMEM; + + st->as = as; + st->rh = rh; + st->errh = errh; + st->arg = arg; + st->sec_offset = 0.0; + + st->freq = atoi(dev); + + if (st->freq < 10 || st->freq > 20000) + { + err = ENOTSUP; + goto out; + } + + info("ausine: %u Hz, %d channels, frequency %d Hz\n", + prm->srate, prm->ch, st->freq); + + st->sampc = prm->srate * prm->ch * prm->ptime / 1000; + + st->ptime = prm->ptime; + + info("ausine: audio ptime=%u sampc=%zu\n", + st->ptime, st->sampc); + + st->run = true; + err = pthread_create(&st->thread, NULL, play_thread, st); + if (err) { + st->run = false; + goto out; + } + + out: + if (err) + mem_deref(st); + else + *stp = st; + + return err; +} + + +static int module_init(void) +{ + return ausrc_register(&ausrc, baresip_ausrcl(), + "ausine", alloc_handler); +} + + +static int module_close(void) +{ + ausrc = mem_deref(ausrc); + + return 0; +} + + +EXPORT_SYM const struct mod_export DECL_EXPORTS(ausine) = { + "ausine", + "ausrc", + module_init, + module_close +}; diff --git a/modules/ausine/module.mk b/modules/ausine/module.mk new file mode 100644 index 00000000..a224d8ee --- /dev/null +++ b/modules/ausine/module.mk @@ -0,0 +1,11 @@ +# +# module.mk +# +# Copyright (C) 2010 Creytiv.com +# + +MOD := ausine +$(MOD)_SRCS += ausine.c +$(MOD)_LFLAGS += + +include mk/mod.mk diff --git a/src/config.c b/src/config.c index cd61c558..a6f0225d 100644 --- a/src/config.c +++ b/src/config.c @@ -793,6 +793,7 @@ int config_write_template(const char *file, const struct config *cfg) (void)re_fprintf(f, "#module\t\t\t" "portaudio" MOD_EXT "\n"); (void)re_fprintf(f, "#module\t\t\t" "aubridge" MOD_EXT "\n"); (void)re_fprintf(f, "#module\t\t\t" "aufile" MOD_EXT "\n"); + (void)re_fprintf(f, "#module\t\t\t" "ausine" MOD_EXT "\n"); (void)re_fprintf(f, "\n# Video codec Modules (in order)\n"); From cc3d1fdca3abef8141e26eb468228a1cba690eaf Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Sun, 21 Jun 2020 14:00:03 +0200 Subject: [PATCH 50/60] ausine: add frequency warning --- modules/ausine/ausine.c | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ausine/ausine.c b/modules/ausine/ausine.c index 222c6416..184a378b 100644 --- a/modules/ausine/ausine.c +++ b/modules/ausine/ausine.c @@ -155,6 +155,7 @@ static int alloc_handler(struct ausrc_st **stp, const struct ausrc *as, if (st->freq < 10 || st->freq > 20000) { + warning("ausine: frequency must be between 10 and 20000 Hz\n"); err = ENOTSUP; goto out; } From 1f7e52d0164594b4c580efacfe29d2482806ade5 Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Mon, 22 Jun 2020 12:52:17 +0200 Subject: [PATCH 51/60] Add "make ccheck" --- .travis.yml | 3 +- Makefile | 2 +- test/ccheck.py | 435 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 437 insertions(+), 3 deletions(-) create mode 100755 test/ccheck.py diff --git a/.travis.yml b/.travis.yml index b08b6e19..5f371a42 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,11 +40,10 @@ addons: install: - git clone https://github.com/creytiv/re.git - git clone https://github.com/creytiv/rem.git - - curl -OL 'https://github.com/alfredh/pytools/raw/master/ccheck.py' - for p in ${LIBRE} ${LIBREM}; do cd $p && sudo PATH="$PATH" make install && cd - && sudo rm -Rf $p; done - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo ldconfig; fi script: - make V=1 CCACHE= EXTRA_CFLAGS=-Werror info test modules - make clean; make CCACHE= STATIC=yes - - python2 ccheck.py + - make ccheck diff --git a/Makefile b/Makefile index e17ecdbf..a8192b53 100644 --- a/Makefile +++ b/Makefile @@ -301,7 +301,7 @@ clean: .PHONY: ccheck ccheck: - @ccheck.pl > /dev/null + @test/ccheck.py version: @perl -pi -e 's/BARESIP_VERSION.*/BARESIP_VERSION \"$(VERSION)"/' \ diff --git a/test/ccheck.py b/test/ccheck.py new file mode 100755 index 00000000..79ed25b3 --- /dev/null +++ b/test/ccheck.py @@ -0,0 +1,435 @@ +#! /usr/bin/env python3 +# +# ccheck.py Code Checker +# +# Copyright (C) 2005 - 2012 Alfred E. Heggestad +# Copyright (C) 2010 - 2012 Creytiv.com +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# Contributors: +# +# Haavard Wik Thorkildssen +# Mal Minhas +# Sebastian Reimers +# +# +# TODO: +# - optimize regex functions +# - count max y lines +# + +import sys, os, re, fnmatch, getopt + +PROGRAM = 'ccheck' +VERSION = '0.2.0' +AUTHOR = 'Alfred E. Heggestad' + + +### +### Class definition +### + +class ccheck: + + def __init__(self): + self.errors = 0 + self.cur_filename = '' + self.cur_lineno = 0 + self.empty_lines_count = 0 + self.cc_count = 0 + self.files = {} + self.extensions = ['c', 'cpp', 'h', 'mk', 'm4', 'py', 'm', 's', 'java', + 'php'] + + self.operators = ["do", "if", "for", "while", "switch"] + self.re_tab = re.compile('(\w+\W*)\(') + self.re_else = re.compile('\s*\}\s*else') + self.re_inc = re.compile('(^\s+\w+[+-]{2};)') + self.re_hex = re.compile('0x([0-9A-Fa-f]+)') + + # empty dict + for e in self.extensions: + self.files[e] = [] + + # todo: global config + self.common_checks = [self.check_whitespace, self.check_termination, + self.check_hex_lowercase, self.check_pre_incr, + self.check_file_unix] + self.funcmap = { + 'c': [self.check_brackets, self.check_c_preprocessor, + self.check_indent_tab], + 'h': [self.check_brackets, self.check_indent_tab], + 'cpp': [self.check_brackets, self.check_indent_tab], + 'mk': [self.check_indent_tab], + 'm4': [self.check_brackets, self.check_c_comments, + self.check_indent_tab], + 'py': [self.check_brackets, self.check_indent_space], + 'm': [self.check_brackets, self.check_c_preprocessor, + self.check_indent_tab], + 's': [self.check_indent_tab, self.check_c_preprocessor], + 'java': [self.check_brackets, self.check_indent_tab], + 'php': [self.check_brackets, self.check_indent_tab], + } + self.extmap = { + 'c': ['*.c'], + 'h': ['*.h'], + 'cpp': ['*.cpp', '*.cc'], + 'mk': ['*Makefile', '*.mk'], + 'm4': ['*.m4'], + 'py': ['*.py'], + 'm': ['*.m'], + 's': ['*.s', '*.S'], + 'java': ['*.java'], + 'php': ['*.php'], + } + self.maxsize = { + 'c': (79, 3000), + 'h': (79, 1000), + 'cpp': (79, 3000), + 'mk': (79, 1000), + 'm4': (79, 3000), + 'py': (79, 3000), + 'm': (79, 3000), + 's': (79, 3000), + 'java': (179, 3000), + 'php': (179, 3000), + } + + + def __del__(self): + pass + + + # + # print an error message and increase error count + # + def error(self, msg): + print("%s:%d: %s" % \ + (self.cur_filename, self.cur_lineno, msg), file=sys.stderr) + self.errors += 1 + + + # + # print statistics + # + def print_stats(self): + print("Statistics:") + print("~~~~~~~~~~~") + print("Number of files processed: ", end=' ') + for e in self.extensions: + print(" %s: %d" % (e, len(self.files[e])), end=' ') + print("") + print("Number of lines with errors: %d" % self.errors) + print("") + + + # + # check for strange white space + # + def check_whitespace(self, line, len): + + if len > 0: + # general trailing whitespace check + if line[-1] == ' ': + self.error("has trailing space(s)") + + if line[-1] == '\t': + self.error("has trailing tab(s)") + + # check for empty lines count + if self.cur_lineno == 1: + self.empty_lines_count = 0 + if len == 0: + self.empty_lines_count += 1 + else: + self.empty_lines_count = 0 + if self.empty_lines_count > 2: + self.error("should have maximum two empty lines (%d)" % \ + self.empty_lines_count) + self.empty_lines_count = 0 + + + # + # check for strange white space + # + def check_indent_tab(self, line, len): + + # make sure TAB is used for indentation + for n in range(4, 17, 4): + if len > n and line[0:n] == ' '*n and line[n] != ' ': + self.error("starts with %d spaces, use tab instead" % n) + + + def check_indent_space(self, line, len): + + if len > 1 and line[0] == '\t': + self.error("starts with TAB, use 4 spaces instead") + + + # + # check for end of line termination issues + # + def check_termination(self, line, len): + + if len < 2: + return + + if line[-2:] == ';;': + self.error("has double semicolon") + + if line[-2:] == ' ;' and re.search('[\S]+[ \t]+;$', line): + self.error("has spaces before terminator") + + + # + # check for C++ comments + # + def check_c_preprocessor(self, line, len): + + index = line.find('//') + if index != -1 and line[index-1] != ':': + if not re.search('["]+.*//.*["]+', line): + self.error("C++ comment, use C comments /* ... */ instead") + + + # + # check that C comments are not used + # + def check_c_comments(self, line, len): + + if self.cur_lineno == 1: + self.cc_count = 0 + + cc = False + + if line.find('/*') != -1: + self.cc_count += 1 + + if line.find('*/') != -1: + if self.cc_count > 0: + cc = True + self.cc_count = 0 + + if cc: + self.error("C comment, use Perl-style comments # ... instead"); + + + # + # check max line length and number of lines + # + def check_xy_max(self, line, line_len, max_x): + + # expand TAB to 8 spaces + l = len(line.expandtabs()) + + if l > max_x: + self.error("line is too wide (" + str(l) + " - max " \ + + str(max_x) + ")"); + + # TODO: + # if ($line > $max_y) { + # self.error("is too big ($lines lines - max $max_y)\n"); + + + # + # check that hexadecimal numbers are lowercase + # + def check_hex_lowercase(self, line, len): + + m = self.re_hex.search(line) + if m: + a = m.group(1) + if re.search('[A-F]+', a): + self.error("0x%s should be lowercase" % a) + + + # + # check for correct brackets usage in C/C++ + # + # TODO: this is too slow, optimize + # + def check_brackets(self, line, len): + + m = self.re_tab.search(line) + if m: + keyword = m.group(1) + + if keyword.strip() in self.operators: + if not re.search('[ ]{1}', keyword): + self.error("no single space after operator '%s()'" \ + % keyword) + + # check that else statements do not have preceeding + # end-bracket on the same line + if self.re_else.search(line): + self.error("else: ending if bracket should be on previous line") + + + # + # check that file is in Unix format + # + def check_file_unix(self, line, len): + + if len < 1: + return + + if line[-1] == '\r': + self.error("not in Unix format"); + + + # + # check for post-increment/decrement + # + def check_pre_incr(self, line, len): + + m = self.re_inc.search(line) + if m: + op = m.group(1) + if op.find('++') != -1: + self.error("Use pre-increment: %s" % op); + else: + self.error("Use pre-decrement: %s" % op); + + + def process_line(self, line, funcs, ext): + + line = line.rstrip('\n') + line_len = len(line) + + for func in self.common_checks: + func(line, line_len) + + for func in funcs: + func(line, line_len) + + if ext in self.maxsize: + (x, y) = self.maxsize[ext]; + self.check_xy_max(line, line_len, x) + + + def parse_file(self, filename, ext): + + funcs = self.funcmap[ext] + + f = open(filename) + + self.cur_filename = filename + + while 1: + lines = f.readlines(100000) + if not lines: + break + self.cur_lineno = 0 + for line in lines: + self.cur_lineno += 1 + self.process_line(line, funcs, ext) + + + def parse_any_file(self, f): + for e in self.extensions: + em = self.extmap[e] + for m in em: + if fnmatch.fnmatch(f, m): + self.files[e].append(f) + self.parse_file(f, e) + return + print("unknown extension: " + f) + + + def rec_quasiglob(self, top, patterns, exclude): + for root, dirs, files in os.walk(top, topdown=False): + for f in files: + for pattern in patterns: + if fnmatch.fnmatch(f, pattern): + path = os.path.join(root, f) + parse = True + for excl in exclude: + if path.find(excl) >= 0: + parse = False + + if parse: + self.parse_any_file(path) + + + def build_file_list(self, top, exclude): + for e in self.extensions: + em = self.extmap[e] + self.rec_quasiglob(top, em, exclude) + + +### +### END OF CLASS +### + + +def usage(): + print("%s version %s" % (PROGRAM, VERSION)) + print("") + print("Usage:") + print("") + print(" %s [options] [file]... [dir]..." % PROGRAM) + print("") + print("options:") + print("") + print(" -h --help Display help") + print(" -V --version Show version info") + print(" -q --quiet Print warnings only") + print(" -e --exclude Exclude pattern(s)") + + +# +# main program +# + + +def main(): + quiet = False + exclude = [] + try: + opts, args = getopt.getopt(sys.argv[1:], \ + 'hVqe:', + ['help', 'version', 'quiet', 'exclude=']) + except getopt.GetoptError as err: + print(str(err)) + usage() + sys.exit(2) + for o, a in opts: + if o in ('-h', '--help'): + usage() + sys.exit() + elif o in ('-V', '--version'): + print("%s version %s, written by %s" % (PROGRAM, VERSION, AUTHOR)) + sys.exit() + elif o in ('-q', '--quiet'): + quiet = True + elif o in ('-e', '--exclude'): + exclude.append(a) + else: + assert False, "unhandled option" + + cc = ccheck() + + if len(args) >= 1: + for f in args[0:]: + if os.path.isdir(f): + cc.build_file_list(f, exclude) + elif os.path.isfile(f): + cc.parse_any_file(f) + else: + print("unknown file type: " + f) + else: + # scan all files recursively + cc.build_file_list('.', exclude) + + # done - print stats + if not quiet: + cc.print_stats() + + sys.exit(cc.errors != 0) + + +if __name__ == "__main__": + main() From bcb6bd822da4a17beaf50666170aa4889acf94dd Mon Sep 17 00:00:00 2001 From: Ethan Funk <57192178+eafunk@users.noreply.github.com> Date: Thu, 25 Jun 2020 02:12:51 -0700 Subject: [PATCH 52/60] Modified info message for new jack client creation to indicate in the (#1019) message body if the client is a jack source or a jack destination, and removed the "if" logic so that the message is always passed when a new jack client is created. --- modules/jack/jack_play.c | 6 ++---- modules/jack/jack_src.c | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/modules/jack/jack_play.c b/modules/jack/jack_play.c index 857923b1..e44f40a9 100644 --- a/modules/jack/jack_play.c +++ b/modules/jack/jack_play.c @@ -108,10 +108,8 @@ static int start_jack(struct auplay_st *st) if (status & JackServerStarted) { info("jack: JACK server started\n"); } - if (status & JackNameNotUnique) { - client_name = jack_get_client_name(st->client); - info("jack: unique name `%s' assigned\n", client_name); - } + client_name = jack_get_client_name(st->client); + info("jack: source unique name `%s' assigned\n", client_name); jack_set_process_callback(st->client, process_handler, st); diff --git a/modules/jack/jack_src.c b/modules/jack/jack_src.c index 4c66a1bf..da483dca 100644 --- a/modules/jack/jack_src.c +++ b/modules/jack/jack_src.c @@ -108,10 +108,8 @@ static int start_jack(struct ausrc_st *st) if (status & JackServerStarted) { info("jack: JACK server started\n"); } - if (status & JackNameNotUnique) { - client_name = jack_get_client_name(st->client); - info("jack: unique name `%s' assigned\n", client_name); - } + client_name = jack_get_client_name(st->client); + info("jack: destination unique name `%s' assigned\n", client_name); jack_set_process_callback(st->client, process_handler, st); From ac7e2e24ec10c50596643b81d44575055e2a1cf3 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 26 Jun 2020 20:45:32 +0300 Subject: [PATCH 53/60] When video stream is disabled, stop also video display. --- src/call.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/call.c b/src/call.c index a69f8da7..5c2ca998 100644 --- a/src/call.c +++ b/src/call.c @@ -375,6 +375,7 @@ static int update_video(struct call *call) else if (call->video) { info("video stream is disabled..\n"); video_stop(call->video); + video_stop_display(call->video); } return err; From 04fc1ae6329cd19fe60d2846c90bfb2f00e7f3c8 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Mon, 29 Jun 2020 10:00:23 +0200 Subject: [PATCH 54/60] Update THANKS file (#1027) --- docs/THANKS | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/THANKS b/docs/THANKS index c8b0def9..d1516950 100644 --- a/docs/THANKS +++ b/docs/THANKS @@ -32,6 +32,7 @@ Juha Heinanen Lorenzo Mangani Luigi Rizzo Maciej Koman +Marcel Battista Matthias Apitz Mikhail Barg Nicolas Tizon From a8316d459ee7c3a3c42bc977d03205662aba211f Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Mon, 29 Jun 2020 10:01:19 +0200 Subject: [PATCH 55/60] Convert ChangeLog to UTF-8 (to match THANKS file) (#1026) --- docs/ChangeLog | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ChangeLog b/docs/ChangeLog index 60384c46..ca2df60b 100644 --- a/docs/ChangeLog +++ b/docs/ChangeLog @@ -682,7 +682,7 @@ Alfred E. Heggestad (111): config: refresh config template audiounit: fix warning on ios -José Luis Millán (2): +José Luis Millán (2): ctrl_tcp: increase command buffer size (#585) vumeter: configuration option to disable vumeter output to stderr (#608) @@ -766,7 +766,7 @@ juha-h (5): * avformat: remove support for old versions of ffmpeg - * ctrl_tcp: Fix netstring frame handling (#569) (José Luis Millán) + * ctrl_tcp: Fix netstring frame handling (#569) (José Luis Millán) * debug_cmd: /play will always stop current file playing. (#578) (thanks Ola Palm) @@ -786,7 +786,7 @@ juha-h (5): * opus: add configuration parameter 'opus_complexity' add configuration parameter 'opus_application' - (thanks José Luis Millán) + (thanks José Luis Millán) * libsrtp: module removed @@ -1001,7 +1001,7 @@ juha-h (5): * ctrl_tcp: Fix #369. documentation typo (#372) Fix #370. wrong assignent (#371) - (thanks José Luis Millán) + (thanks José Luis Millán) * dshow: add support for video frame timestamp @@ -1043,7 +1043,7 @@ juha-h (5): * new modules: - ctrl_tcp TCP control interface using JSON payload - (thanks José Luis Millán) + (thanks José Luis Millán) * config: @@ -1097,7 +1097,7 @@ juha-h (5): * codec2: update aucodec API with audio sample format * ctrl_tcp: new module for TCP control interface using JSON payload - (thanks José Luis Millán) + (thanks José Luis Millán) * g711: update aucodec API with audio sample format From 0113e9dd22ec3a3f739825784620f34bbcfc68ee Mon Sep 17 00:00:00 2001 From: Sebastian Reimers Date: Mon, 29 Jun 2020 10:12:19 +0200 Subject: [PATCH 56/60] add contributing file --- docs/contributing.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs/contributing.md diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 00000000..7c43cfcd --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,16 @@ +Contributions are welcome to the Baresip project. + +The preferred way to contribute is via a Pull Request (PR). + +* The PR should be small and logical and solve a concrete problem. + If your code is very large then please split it into smaller PRs. + +* The code must be tested on your platform. If the code involves + SIP signaling or interop, it should also be tested against + 3rd party SIP endpoints. + +* The code must compile with zero warnings + +* The code must pass "make ccheck" + +* Doxygen comments is nice to add, but it is not mandatory --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -1,4 +1,4 @@ -Contributions are welcome to the Baresip project. +## Contributions are welcome to the Baresip project The preferred way to contribute is via a Pull Request (PR). @@ -14,3 +14,7 @@ The preferred way to contribute is via a Pull Request (PR). * The code must pass "make ccheck" * Doxygen comments is nice to add, but it is not mandatory + +## How to add new modules + +* https://github.com/baresip/baresip/wiki/How-to-add-new-modules From 53d9b436f8313cc3d16cb572fe6de1fdbfb9ac26 Mon Sep 17 00:00:00 2001 From: mbattista Date: Wed, 1 Jul 2020 13:51:55 +0200 Subject: [PATCH 58/60] replace spaces from uri (#1007) * whitespace_handler with remove for menu and gtk * tabs and line-length * another line too wide * added function to encode whitespace * tabs * sizeof instead of strlen * rewrite with clean_numbers. Now it will only clean dialed numbers. * better removal of some mal-formated numbers & remove dots from clean numbers * fixes gtk error on opening the dial-window a second time * cleanup added newline * GTK throw errors on second open and only removed strings Co-authored-by: Marcel Battista --- docs/examples/config | 4 ++++ modules/gtk/dial_dialog.c | 48 +++++++++++++++++++++++++++++++++++++++ modules/gtk/gtk_mod.c | 11 +++++++++ modules/gtk/gtk_mod.h | 4 ++++ modules/gtk/uri_entry.c | 7 ++++++ modules/menu/menu.c | 48 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 122 insertions(+) diff --git a/docs/examples/config b/docs/examples/config index a7c12b56..e6845722 100644 --- a/docs/examples/config +++ b/docs/examples/config @@ -195,6 +195,10 @@ ice_debug no #redial_delay 5 # Delay in seconds #ringback_disabled no #statmode_default off +#menu_clean_number no + +# GTK +#gtk_clean_number no # avcodec #avcodec_h264enc libx264 diff --git a/modules/gtk/dial_dialog.c b/modules/gtk/dial_dialog.c index 21391d88..17e0c8d5 100644 --- a/modules/gtk/dial_dialog.c +++ b/modules/gtk/dial_dialog.c @@ -18,6 +18,48 @@ struct dial_dialog { GtkComboBox *uri_combobox; }; +static int clean_number(char* str) +{ + /* only clean numeric numbers + * In other cases trust the user input + */ + int err = re_regex(str, sizeof(str), "[A-Za-z]"); + if (err == 0) + return -1; + + /* remove (0) which is in some mal-formated numbers + * but only if trailed by another character + */ + int i = 0, k = 0; + if (str[0] == '+' || (str[0] == '0' && str[1] == '0')) + while (str[i]) { + if (str[i] == '(' + && str[i+1] == '0' + && str[i+2] == ')' + && (str[i+3] == ' ' + || (str[i+3] >= '0' && str[i+3] <= '9') + ) + ) { + str[i+1] = ' '; + break; + } + ++i; + } + i = 0; + while (str[i]) { + if (str[i] == ' ' + || str[i] == '.' + || str[i] == '-' + || str[i] == '/' + || str[i] == '(' + || str[i] == ')') + ++i; + else + str[k++] = str[i++]; + } + str[k] = '\0'; + return k; +} static void dial_dialog_on_response(GtkDialog *dialog, gint response_id, gpointer arg) @@ -27,6 +69,12 @@ static void dial_dialog_on_response(GtkDialog *dialog, gint response_id, if (response_id == GTK_RESPONSE_ACCEPT) { uri = (char *)uri_combo_box_get_text(dd->uri_combobox); + if (gtk_mod_clean_number(dd->mod)) { + int length = clean_number(uri); + if (length >= 0) + uri_combo_box_set_text(dd->uri_combobox, + uri, length); + } gtk_mod_connect(dd->mod, uri); } diff --git a/modules/gtk/gtk_mod.c b/modules/gtk/gtk_mod.c index 4581203a..25add5c1 100644 --- a/modules/gtk/gtk_mod.c +++ b/modules/gtk/gtk_mod.c @@ -53,6 +53,7 @@ struct gtk_mod { struct dial_dialog *dial_dialog; GSList *call_windows; GSList *incoming_call_menus; + bool clean_number; }; static struct gtk_mod mod_obj; @@ -625,6 +626,13 @@ void gtk_mod_connect(struct gtk_mod *mod, const char *uri) mqueue_push(mod->mq, MQ_CONNECT, (char *)uri); } +bool gtk_mod_clean_number(struct gtk_mod *mod) +{ + if (!mod) + return false; + return mod->clean_number; +} + static void warning_dialog(const char *title, const char *fmt, ...) { @@ -1001,6 +1009,9 @@ static const struct cmd cmdv[] = { static int module_init(void) { + mod_obj.clean_number = false; + conf_get_bool(conf_cur(), "gtk_clean_number", &mod_obj.clean_number); + int err = 0; err = mqueue_alloc(&mod_obj.mq, mqueue_handler, &mod_obj); diff --git a/modules/gtk/gtk_mod.h b/modules/gtk/gtk_mod.h index ab123caa..2b3df378 100644 --- a/modules/gtk/gtk_mod.h +++ b/modules/gtk/gtk_mod.h @@ -48,4 +48,8 @@ void transfer_dialog_fail(struct transfer_dialog *, const char *reason); /* URI entry combo box */ GtkWidget *uri_combo_box_new(void); +void uri_combo_box_set_text(GtkComboBox *box, char* str, int length); const char *uri_combo_box_get_text(GtkComboBox *box); + +/* Helper functions */ +bool gtk_mod_clean_number(struct gtk_mod *mod); diff --git a/modules/gtk/uri_entry.c b/modules/gtk/uri_entry.c index a584637d..47169b38 100644 --- a/modules/gtk/uri_entry.c +++ b/modules/gtk/uri_entry.c @@ -39,6 +39,13 @@ GtkWidget *uri_combo_box_new(void) return uri_combobox; } +void uri_combo_box_set_text(GtkComboBox *box, char* str, int length) +{ + gchar* number = g_strdup (str); + GtkEntry *entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(box))); + GtkEntryBuffer *buf = gtk_entry_get_buffer(entry); + gtk_entry_buffer_set_text(buf, number, length); +} const char *uri_combo_box_get_text(GtkComboBox *box) { diff --git a/modules/menu/menu.c b/modules/menu/menu.c index d73f4eae..570b9c12 100644 --- a/modules/menu/menu.c +++ b/modules/menu/menu.c @@ -40,6 +40,7 @@ static struct { uint32_t current_attempts; /**< Current number of re-dials */ uint64_t start_ticks; /**< Ticks when app started */ enum statmode statmode; /**< Status mode */ + bool clean_number; /**< Remove -/() from diald numbers */ char redial_aor[128]; } menu; @@ -204,6 +205,47 @@ static int ua_print_call_status(struct re_printf *pf, void *unused) return err; } +static void clean_number(char* str) +{ + /* only clean numeric numbers + * In other cases trust the user input + */ + int err = re_regex(str, sizeof(str), "[A-Za-z]"); + if (err == 0) + return; + + /* remove (0) which is in some mal-formated numbers + * but only if trailed by another character + */ + int i = 0, k = 0; + if (str[0] == '+' || (str[0] == '0' && str[1] == '0')) + while (str[i]) { + if (str[i] == '(' + && str[i+1] == '0' + && str[i+2] == ')' + && (str[i+3] == ' ' + || (str[i+3] >= '0' && str[i+3] <= '9') + ) + ) { + str[i+1] = ' '; + break; + } + ++i; + } + i = 0; + while (str[i]) { + if (str[i] == ' ' + || str[i] == '.' + || str[i] == '-' + || str[i] == '/' + || str[i] == '(' + || str[i] == ')') + ++i; + else + str[k++] = str[i++]; + } + str[k] = '\0'; +} static int dial_handler(struct re_printf *pf, void *arg) { @@ -216,6 +258,8 @@ static int dial_handler(struct re_printf *pf, void *arg) mbuf_rewind(menu.dialbuf); (void)mbuf_write_str(menu.dialbuf, carg->prm); + if (menu.clean_number) + clean_number(carg->prm); err = ua_connect(uag_current(), NULL, NULL, carg->prm, VIDMODE_ON); @@ -228,6 +272,8 @@ static int dial_handler(struct re_printf *pf, void *arg) err = mbuf_strdup(menu.dialbuf, &uri, menu.dialbuf->end); if (err) return err; + if (menu.clean_number) + clean_number(uri); err = ua_connect(uag_current(), NULL, NULL, uri, VIDMODE_ON); @@ -1283,6 +1329,7 @@ static int module_init(void) menu.redial_delay = 5; menu.ringback_disabled = false; menu.statmode = STATMODE_CALL; + menu.clean_number = false; /* * Read the config values @@ -1290,6 +1337,7 @@ static int module_init(void) conf_get_bool(conf_cur(), "menu_bell", &menu.bell); conf_get_bool(conf_cur(), "ringback_disabled", &menu.ringback_disabled); + conf_get_bool(conf_cur(), "menu_clean_number", &menu.clean_number); if (0 == conf_get(conf_cur(), "redial_attempts", &val) && 0 == pl_strcasecmp(&val, "inf")) { From 10936162de1594ccf146e5110032799845669dc8 Mon Sep 17 00:00:00 2001 From: Ethan Funk <57192178+eafunk@users.noreply.github.com> Date: Wed, 1 Jul 2020 04:53:02 -0700 Subject: [PATCH 59/60] Issue #1020 feature implementation, and call.c change to report line number. (#1025) * Modified info message for new jack client creation to indicate in the message body if the client is a jack source or a jack destination, and removed the "if" logic so that the message is always passed when a new jack client is created. * -Added linenumber to call answering info report. -Implemented user requested jackaudio client name config option "jack_client_name". * Fixed reversed if logic on conf_get_str() in jack_play.c and jack_src.c * Formatting changed to attempt to get ccheck to pass * ccheck formatting pass attempt #2 * This ccheck thing must be converting tabs to spaces. Try #3 to make ccheck happy with formatting --- modules/jack/jack_play.c | 16 +++++++++++++--- modules/jack/jack_src.c | 17 ++++++++++++++--- src/call.c | 3 ++- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/modules/jack/jack_play.c b/modules/jack/jack_play.c index e44f40a9..25e79b85 100644 --- a/modules/jack/jack_play.c +++ b/modules/jack/jack_play.c @@ -76,7 +76,6 @@ static void auplay_destructor(void *arg) mem_deref(st->portv); } - static int start_jack(struct auplay_st *st) { struct conf *conf = conf_cur(); @@ -93,9 +92,20 @@ static int start_jack(struct auplay_st *st) &jack_connect_ports); /* open a client connection to the JACK server */ + size_t len = jack_client_name_size(); + char *conf_name = mem_alloc(len+1, NULL); + + if (!conf_get_str(conf, "jack_client_name", + conf_name, len)) { + st->client = jack_client_open(conf_name, options, + &status, server_name); + } + else { + st->client = jack_client_open(client_name, + options, &status, server_name); + } + mem_deref(conf_name); - st->client = jack_client_open(client_name, options, - &status, server_name); if (st->client == NULL) { warning("jack: jack_client_open() failed, " "status = 0x%2.0x\n", status); diff --git a/modules/jack/jack_src.c b/modules/jack/jack_src.c index da483dca..ee3f9e5a 100644 --- a/modules/jack/jack_src.c +++ b/modules/jack/jack_src.c @@ -90,12 +90,23 @@ static int start_jack(struct ausrc_st *st) bool jack_connect_ports = true; (void)conf_get_bool(conf, "jack_connect_ports", - &jack_connect_ports); + &jack_connect_ports); /* open a client connection to the JACK server */ + size_t len = jack_client_name_size(); + char *conf_name = mem_alloc(len+1, NULL); + + if (!conf_get_str(conf, "jack_client_name", + conf_name, len)) { + st->client = jack_client_open(conf_name, options, + &status, server_name); + } + else { + st->client = jack_client_open(client_name, options, + &status, server_name); + } + mem_deref(conf_name); - st->client = jack_client_open(client_name, options, - &status, server_name); if (st->client == NULL) { warning("jack: jack_client_open() failed, " "status = 0x%2.0x\n", status); diff --git a/src/call.c b/src/call.c index 5c2ca998..dfa12a1d 100644 --- a/src/call.c +++ b/src/call.c @@ -1079,7 +1079,8 @@ int call_answer(struct call *call, uint16_t scode, enum vidmode vmode) if (vmode == VIDMODE_OFF) call->video = mem_deref(call->video); - info("call: answering call from %s with %u\n", call->peer_uri, scode); + info("call: answering call on line %u from %s with %u\n", + call->linenum, call->peer_uri, scode); if (call->got_offer) { From 235c0217a577625d732e2b11b512d2edeb4808b6 Mon Sep 17 00:00:00 2001 From: Alexander Gramner <47948035+agramner@users.noreply.github.com> Date: Wed, 1 Jul 2020 13:54:44 +0200 Subject: [PATCH 60/60] jack_play: connect all physical ports (#1028) * jack_play: connect all physical ports * Fix ccheck errors * Fix more ccheck errors --- modules/jack/jack_play.c | 19 ++++++++++++++----- modules/jack/jack_src.c | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/modules/jack/jack_play.c b/modules/jack/jack_play.c index 25e79b85..3c563135 100644 --- a/modules/jack/jack_play.c +++ b/modules/jack/jack_play.c @@ -175,19 +175,28 @@ static int start_jack(struct auplay_st *st) if (jack_connect_ports) { info("jack: connecting default input ports\n"); ports = jack_get_ports (st->client, NULL, NULL, - JackPortIsInput); + JackPortIsInput | JackPortIsPhysical); if (ports == NULL) { warning("jack: no physical playback ports\n"); return ENODEV; } - for (ch=0; chprm.ch; ch++) { - + /* Connect all physical ports. In case of for example mono + * audio with 2 physical playback ports, connect the + * single registered port to both physical port. + */ + ch = 0; + for (unsigned i = 0; ports[i] != NULL; i++) { if (jack_connect (st->client, - jack_port_name (st->portv[ch]), - ports[ch])) { + jack_port_name (st->portv[ch]), + ports[i])) { warning("jack: cannot connect output ports\n"); } + + ++ch; + if (ch >= st->prm.ch) { + ch = 0; + } } jack_free(ports); diff --git a/modules/jack/jack_src.c b/modules/jack/jack_src.c index ee3f9e5a..1ee2fa92 100644 --- a/modules/jack/jack_src.c +++ b/modules/jack/jack_src.c @@ -168,7 +168,7 @@ static int start_jack(struct ausrc_st *st) if (jack_connect_ports) { info("jack: connecting default output ports\n"); ports = jack_get_ports (st->client, NULL, NULL, - JackPortIsOutput); + JackPortIsOutput | JackPortIsPhysical); if (ports == NULL) { warning("jack: no physical playback ports\n"); return ENODEV;