osmo-mgw (1.13.1) unstable; urgency=medium [ Philipp Maier ] * mgcp_network: use an uint16_t to store the port number * mgcp_network: add missing ntohs [ Pau Espin Pedrol ] * tests/mgcp/mgcp_test: Add some extra asserts in code -- Oliver Smith Thu, 12 Sep 2024 13:53:19 +0200 osmo-mgw (1.13.0) unstable; urgency=medium [ Neels Hofmeyr ] * add mgcp_conn_rtp_type_names[] * mgcp_parse_audio_port_pt(): fix buffer overflow * client: replace two assertions with graceful error handling * systemd,manual: set LimitNOFILE=65536 * IuUP: allow Initialization from any address if not yet set * check_rtp_origin: drop special case for legacy IuUP hack * mgcp_client_test: fix function name * fix possible NULL deref on early media * client: move some items to internal header * client: safely handle dealloc on event dispatch * build: move mgcp/*.h to noinst_HEADERS, drop RPM libosmo-mgcp-devel * client: deprecate legacy API * client: collapse codecs[] and ptmap[]; allow codec variants * client: allow MGCP_MAX_CODECS entries * client SDP: more verbose error logging * mgcp_client_test: add test_parse_response() * drop (now) unused code * tests/mgcp: add update_exp target * drop get_net_downlink_format_cb * drop cfg 'sdp audio fmtp-extra' * mgcp_codec_decide: remove redundant lookup * tweak DEBUG log * mgcp_test: fix false negatives in test output * mgw: do not fail MGCP on codec mismatch * mgcp-client: always send 'm=audio' line * mgcp_test.c: verify osmo-mgw accepts m=audio 0 * mgcp_test.c: fix various missing '\r' and '\n' * mgcp_test: test a=ptime:20, not 40 * mgcp_test: add CRCX for IUFP in sendrecv * do not FAIL on CRCX in sendrecv mode [ Keith Whyte ] * vty and log: also show local port for RTP conns [ Andreas Eversberg ] * Use uniform log format for default config files [ Pau Espin Pedrol ] * mgcp_network: Improve err logging when rtp pkt from unexpected origin comes in * cosmetic: Fix line indentation * IuUP: Allow Initialization with set rem IP address and unset rem port * mgcp-client: Transmit remote IP addr in CRCX if known and port=0 * Fix IuUP RTP hdr seqnr field not incremented * iuup: Increment RTP hdr seqnr even if Tx over UDP fails [ Vadim Yanitskiy ] * mgcp: simplify getting msgb tail in mgcp_msg_terminate_nul() * mgcp: reserve once byte for '\0' in mgcp_do_read() * mgcp: correctly put NUL character in mgcp_msg_terminate_nul() * build: include README into the release tarball [ neels ] * Revert "drop (now) unused code" [ Harald Welte ] * Convert README to README.md and expand like in other projects * migrate mgcp_client from osmo_wqueue to osmo_io * mgw: Add our usual SIGABRT, SIGUSR1 signal handlers * don't log useless "transcoding disabled" message * remove strange loop for non-existant transcoding support * simplify unused transcoding/processing call-back * remove osmo_fd from mgcp_create_bind() * Change msgb ownership in processing of received msgb * cosmetic: make linter happy * Convert RTP/RTCP/OSMUX I/O from osmo_fd to osmo_io [ Oliver Smith ] * contrib: remove rpm spec file * contrib/systemd: run as osmocom user * doc: example configs: fix deprecation warnings [ Mychaela N. Falconia ] * E1: support HRv1 codec on both 16k and 8k subslots * fix E1 TS output when used with osmo-e1d -- Oliver Smith Wed, 24 Jul 2024 15:44:47 +0200 osmo-mgw (1.12.1) unstable; urgency=medium [ Pau Espin Pedrol ] * mgcp-client: Fix missing include in mgcp_client_pool.h * mgcp-client: Introduce API osmo_mgcpc_ep_local_name() * mgw: Configure IuUP if codec set during MDCX -- Oliver Smith Thu, 28 Sep 2023 15:58:17 +0200 osmo-mgw (1.12.0) unstable; urgency=medium [ Philipp Maier ] * mgcp_sdp: add spec reference * mgcp_sdp: cosmetic: remove newline * mgcp_endp: cosmetic move mgcp_endp_release to the end * mgcp_endp: cosmetic: remove unnecessary new line * mgcp_e1: fix log output * mgcp_e1: be more frugal withe E1 line resources * mgcp_client: fix sourcecode formatting * mgcp_e1: fix typo * mgcp_e1: rewrite comment * mgcp_e1: rename e1_send to e1_send_ts_frame * mgcp_e1: cosmetic: rewrite comment * Revert "mgcp_codec: do not differentiate between oa and bwe when comparing codec" * mgcp_codec: fix oa/bwe comparison in mgcp_codec_pt_translate() * mgcp_codec: refactor payload type converstion * mgcp_codec: cosmetic: remove line break in api-doc * mgcp_network: fix apidoc * mgcp_vty: add warnings for deprecated config options * mgcp_codec: move mgcp_codec_decide down * mgcp_codec: fix codec decision * mgcp_network: do not deliver RTP packets with unpatched PT * mgcp_codec: be sensitive about IuFP when checking codecs * mgcp_client.h: also add spec ref to the other 3gpp defined payload types [ Harald Welte ] * cosmetic: Fix grammar suggesting reading _the_ user manual [ arehbein ] * Transition to use of 'telnet_init_default' [ Oliver Smith ] * mgcp_client: mgcp_msg_gen: add more error logs * mgcp_client_pool: add mgcp_client_pool_empty() * Cosmetic: mgcp_client: fix typo * debian: set compat level to 10 * systemd: depend on networking-online.target * Cosmetic: fix a typo * mgcp_client: check rc of map_str_to_codec [ Pau Espin Pedrol ] * mgcp_network: Unregister osmo_fd before closing fd * mgcp-client: Call osmo_fd_unregister() before closing and changing bfd->fd * mgcp-client: Drop unused struct mgcp_client field * mgcp_client: Introduce mgcp_client_conf_alloc(), deprecate mgcp_client_conf_init() * mgcp-client: Move some static functions further above * mgw: Allow auditing speciall 'null' endpoint * mgcp-client: Add keepalive feature * mgcp_client: pool: Only pick clients with an MGCP link considered to be UP * mgcp-client: Always mark client as UP if keepalive request-interval disabled * mgcp-client: Mark client as UP when keepalive request-interval/timeout is disabled through VTY [ Vadim Yanitskiy ] * */Makefile.am: libraries shall not be in AM_LDFLAGS * tests: use -no-install libtool flag to avoid ./lt-* scripts * tests: $(BUILT_SOURCES) is not defined, depend on osmo-mgw * copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbH [ Neels Hofmeyr ] * mgcp_find_section_end(): skip spaces at start of SDP * mgcp_client: simpler error handling * mgcp: fix "L: a:" header parsing: heed ";" separator * mgcp_client: tweak extract_codec_name() implementation [ Andreas Eversberg ] * ASCI: Add new mode for voice group/broadcast call * ASCI: Support conference briding with 1..n connections -- Pau Espin Pedrol Tue, 12 Sep 2023 14:48:51 +0200 osmo-mgw (1.11.0) unstable; urgency=medium [ Pau Espin Pedrol ] * mgcp-client: Remove impossible code path * mgcp_osmux: Drop duplicated conn_osmux_release_cid() in code path * Use Osmux default port define from libosmo-netif * osmux: Use new osmux APIs to let libosmo-netif alloc struct osmux_out_handle * mgw: Fix osmux conn local IP selection * cosmetic: osmux: Fix wrong indentation * mgw: Use X-Osmux string define * Add Osmux log category * cosmetic: main: Properly format log_info_cat * osmux: Use better name for function which may allocate a new struct * osmux: Use osmo_sockaddr wherever possible * osmux: Log refcounting of osmux_handle_list * osmux: Fix memleak on error code path * osmux: don't store conn ptr inside shared osmux_handle * osmux: set log level of expected code path to INFO * cosmetic: vty: Fix indentation whitespace * osmux: Log sendto() error * cosmetic: mgcp_conn.h: fix indentation whitespace * osmux: Attach osmux to virtual trunk * osmux: Clean up helper macro osmux_chunk_length() * osmux: Get rid of static NULL talloc context * Fix typo in ratectr description * mgcp_conn: rename field s/rate_ctr_group/ctrg/g * Use 'static const' instead of 'const static' everywhere * osmux: Add connection and global rate counters * cosmetic: osmux: Fix formatting of if-else brackets * osmux: Rename field osmux usage policy and define it with proper type * Use bool type instead of int in config field * osmux: Support local CID != remote CID * osmux: Fix incorrect rate_ctr_group used in mgcp_osmux.c * osmux: Improve per-conn tx rate counters * vty: show per-connection Osmux VTY stats * osmux: Rename field s/init/initialized * osmux: Allocate rate counters during initialization of osmux conn * cosmetic: osmux: Drop extra empty line * osmux: Drop unneeded comment block * osmux: Lower log level when osmux batch received for unknown CID * osmux: Keep decoding osmux pkt if a batch contains an unknown CID * Allocate struct osmux_in_handle through new libosmo-netif APIs * osmux: Drop logging of osmux internal counters * osmux: cleanup misleading code calling rtp_bridge_cb * osmux: Unify rtp_conn osmux type into a single type * osmux: Match remote address in osmux_conn_lookup() * osmux: Fill in from_addr in struct osmo_rtp_msg_ctx * osmux: Log remote address upon rx of osmux pkt * send_dummy: Use proper condition to test if conn is osmux * Fix regression in detection of legacy dummy packets * Use new libosmocore API osmo_sockaddr_is_any() * Get rid of separate rtp_port field * osmux: Use available API to check if remote end is known * Add Osmux IPv6 support * Clean up local var pointers in mgcp_get_local_addr() * osmux: Change couple log lines to OSMUX category * osmux: Add square brackets around IPv6 address to distinguish port in log line * osmux: Drop unused role parameter * osmux: cosmetic: Fix indentation * Check once if remote addr is available when sending dummy packet * osmux: Simplify and constify param passing * osmux: Set conn->type during osmux_init_conn() * osmux: Make conn_osmux_{allocate,release}_local_cid() APIs static * osmux: Define osmux_dummy cfg as boolean * osmux: Move setting OSMUX_STATE_DISABLED to initializer function * osmux: Erase references to bsc-nat * mgcp_conn_dump(): Separate dump for osmux and iuup connections * osmux: Introduce osmux peer-behind-nat (on|off) and rework conn activation * osmux: Clean up mgcp_config osmux fields * cosmetic: Fix typo in comment * mgcp-client: pool: Improve documentation of some internal fields * mgcp-client: Avoid double iteration picking client from pool * mgcp-client: Fix typo in internal function name * mgcp-client: Rename internal field in mgcp_client_pool * mgcp-client: Move & rename helper function outside of vty code * mgcp-client: Create alloc() and free() internal APIs for mgcp_client_pool_member * mgcp-client: Move internal API acting on mgcp_client_pool to the correct file section * mgcp-client: Refactor reinit of mgcp clients * mgcp-client: Rearrange order of structs and APIs in header * mgcp-client: Rearrange internal backpointers * mgcp-client: Introduce APIs to manually select mgcp_client from pool * mgcp-client: vty: Write deprecation warning using non-mgw nodes * mgcp-client: Use random free local port by default * mgcp-client: Convert users supporting new MGW Pool VTY node during write-config * mgcp-client: Introduce API mgcp_client_pool_config_write * mgcp-client: Add new VTY commands under mgw node without mgw prefix * mgcp-client: Fix 'mgw endpoint-range' command dropped from old VTY node * mgcp-client: Refactor system keeping old users not calling mgcp_client_pool_config_write() working * mgcp-client: Fix no 'mgw ' prefix written in old VTY node * Fix misleading error log * mgcp_send: Use mgcp_conn_rtp_is_iuup() helper * cosmetic: Clarify and fix typos in comment * mgw: Log unexpected RTP AMR OA-vs-BE payload * Rename and move func checking if amr mode is explicitly configured * mgw: rx_rtp(): reorder checks and handlings * mgw: Rename s/mgcp_send_rtp/mgcp_conn_rtp_dispatch_rtp/ * osmux: Rename function and pass msgb directly to it * osmux: Make sure RTP AMR feed to osmux is in octet-aligned mode * Improve logging on AMR OA<->BWE conversion failure * osmux: Rotate over available Osmux CID when allocating a new one * osmux: Use new osmux_xfrm_input API to set name on each link * iuup: Use osmo_amr_ft_valid() API [ Vadim Yanitskiy ] * libosmo-mgcp-client: add -no-undefined to *_la_LDFLAGS [ Philipp Maier ] * mgcp_e1: fix apidoc * mgcp_network: improve coment [ Max ] * Set working directory in systemd service file * Add realtime scheduling and set priority in service file * ctrl: take both address and port from vty config [ Harald Welte ] * Make osmo_mgcpc_ep_fsm_pre_term() static * Support building with -Werror=strict-prototypes / -Werror=old-style-definition * Add -Werror=implicit-int -Werror=int-conversion -Werror=old-style-definition * update outdated vty copyright statement [ Oliver Smith ] * mgcp_client_pool.h: add missing stdbool include * Fix various typos * mgcp_client: add new clearmode codec [ Neels Hofmeyr ] * AMR->IuUP: do not crash on AMR data before IuUP Init * AMR->IuUP: properly translate Q -> FQC * IuUP->AMR: do not patch payload type a second time * IuUP->AMR: log whether converting to AMR OA or BE * AMR->IuUP: log conversion, like for the flipside -- Pau Espin Pedrol Tue, 07 Feb 2023 16:58:41 +0100 osmo-mgw (1.10.0) unstable; urgency=medium [ Eric ] * adjust mgcp response context * rework message handling * add a lock-free bounded spsc interthread queue * clang-format: remove foreach macros * fix mgcp_conn_free_all ubsan complaints [ Philipp Maier ] * configuration: point out difference between trunk-nr and e1 line nr * mgcp_client: add new codec IUFP as VND.3GPP.IUFP * mgcp_codec: do not differentiate between oa and bwe when comparing codec * mgcp_network: do not try to convert RTCP packets * mgcp_network: fix typo RTPC -> RTCP [ Oliver Smith ] * treewide: remove FSF address [ Pau Espin Pedrol ] * mgcp_network.c: Set proper CRC Header for ACK Initialization * cosmetic: Rename variable payload=>payload_type * mgcp_network.c: Fix byte alignment of CRC Header for ACK Initialization * Define mgcp_rtp_end.output_enabled as bool * cosmetic: mgcp_codec.c: Fix typo in comment * Drop unneeded ax_check_compile_flag.m4 * Make function amr_is_octet_aligned publicly available * Initial IuUP support using proper FSMs * IuUP: Support RFCI ID != RFCI Index * iuup: Fix caps in logging message * iuup: Check for IuUP Initialization retrans [ Alexander Couzens ] * doc/overview: fix wrong project page link [ Vadim Yanitskiy ] * tests: use 'check_PROGRAMS' instead of 'noinst_PROGRAMS' * libosmo-mgcp: e1: fix memleaks in e1_recv_cb() [ Harald Welte ] * update git URLs (git -> https; gitea) -- Pau Espin Pedrol Tue, 28 Jun 2022 18:50:25 +0200 osmo-mgw (1.9.0) unstable; urgency=medium [ Harald Welte ] * TOS bits != DSCP * manual: don't define fig-bsc twice * switch from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() * mgw: Add support for setting socket priority from VTY * manual: Include QoS chapter and add osmo-mgw specific example [ Keith ] * Add vty command 'show mgcp active' * Log some useful messages at ERROR/INFO instead of DEBUG [ Neels Hofmeyr ] * send DLCX only once * tweak termination DLCX log msg * add osmo_mgcpc_ep_ci_get_remote_rtp_info() * check_rtp_destin(): clarify log msg * mgcp_client_fsm delete: set mgcp_client as ctx, not NULL * mgcp_client_endpoint_fsm: on term, still let conns wait for DLCX OK * mgcp_client_fsm: add missing log_subsys * mgcp_client: add logging on received MGCP messages [ Philipp Maier ] * mgcp_network: fix implicit address loopback * mgcp_common, mgcp_udp_send: make parameter buf const * mgcp_network: refactor MGCP_DUMMY_LOAD * mgcp_client: drop nunnecessary else statement * mgcp_client: fix error handling in mgcp message generation * mgcp_protocol: fix loop that sends dummy RTP packets * mgw_main: fix loop that resets all endpoints * mgcp_trunk: drop ws line * mgcp_ratectr: drop ws line * mgcp_ratectr: fix sourcecode formatting * mgcp_trunk: add value string for trunk type. * mgcp_ratectr: refactor rate counter and set group name * mgcp_protocol: forward declare mgcp_endpoint * mgcp_endp: make wildcarded detection separate * mgcp_protocol: refactor request handler array * mgcp_trunk: use unsigned int instead of int as trunk_nr * mgcp_protocol: refactor MGCP request handling * mgcp_ratectr: add stats items to monitor trunk usage * mgcp_msg: add trunk parameter to mgcp_check_param for logging * mgcp_protocol: refactor function create_response_with_sdp * mgcp_protocol: add support for wildcarded DLCX * remove struct member wildcarded_req from struct mgcp_endpoint * mgcp_lient: remove unsubstantial FIXME note * mgcp_protocol: assert endp when it becomes mandatory * mgcp_trunk: check MGW domain name earlier * mgcp_ratectr: add stats items to monitor trunk usage * mgcp_client: fix typo Initalize -> Initialize * mgcp_protocol: get rid of policy_cb and change_cb * mgcp_ratectr: do not set talloc destructor on library allocated item * mgcp_client: allow to reset endpoints on startup * mgcp_client_vty: remove unnecessary checks * mgcp_client: do not print (null) when address is ANY * mgcp_client: refactor function init_socket * libosmo-mgcp-client: extend the mgcp_client for MGW pooling * mgcp_client_vty: add missing docstrings * mgcp_client_vty: add OSMO_ASSERT on pool parameter * mgcp_client_vty: fix docstrings for mgw-pool * mgcp_client_vty: cosmetic: doc string should terminated with \n * mgcp_client_vty: fixing docstring * mgcp_ratectr: remove unusued rate counters * mgcp_client: fix typo in doxygen comment * mgcp_client: add MGW name as logging context [ Pau Espin Pedrol ] * Use new stat item/ctr getter APIs * constify arg in addr_is_any() * Define patch_ssrc as bool type * constify some function arg pointers * mgcp_network.c: Reorder some functions in file * mgcp_send_dummy: Check RTP destination is available before attempt tx * mgw: rx CRCX: Avoid sending dummy rtp if remote address not provided * Fail rx MDCX sendrecv with invalid remote addr * Take into account Marker bit when patching RTP stream * Use DLMGCP instead of DLGLOBAL in log lines * Fix attribute parsing on gcc 11.1.0 [ neels ] * Revert "mgcp_ratectr: add stats items to monitor trunk usage" [ Daniel Willmann ] * contrib/jenkins: Use ASAN for osmo-mgw [ Oliver Smith ] * mgcp_client_vty: add missing NO_STR * Revert "Turn some compiler warnings into errors" [ Eric ] * add vscode stuff to gitignore * configure.ac: fix maybe-uninitialized for clang * fix missing includes and forward declarations * rename do_retransmission * mgcp_sdp: fix potential leak * stats: make sanitizers happy * libosmo-mgcp: cleanup audio codex alloc * libosmo-mgcp: atomic rate counter group indexes * libosmo-mgcp: do not use the default msgb talloc context * globally lock the portrange when trying to grab a port to prep for multithreading * embed strings into structs * adjust talloc context * endp: do not cache cfg pointer * add modified .clang-format * rename strip_epname and find_specific_endpoint and make them available * fix mgcp_conn_free_all * fix up some docstrings that lost their dot [ Vadim Yanitskiy ] * libosmo-mgcp: use OSMO_STRLCPY_ARRAY in mgcp_codec_add() -- Pau Espin Pedrol Tue, 16 Nov 2021 16:59:21 +0100 osmo-mgw (1.8.1) unstable; urgency=medium * attempt to fix RPM spec file after recent soversion bump -- Harald Welte Wed, 24 Feb 2021 10:56:17 +0100 osmo-mgw (1.8.0) unstable; urgency=medium [ Harald Welte ] * Fix number of endpoints of default trunk * Add CTRL interface to osmo-mgw * Update per-trunk global packet/byte counters in real-time * remove accidential TODO-RELEASE entry * mgcp_protocol: Avoid code duplication between virtual + other trunks * osmo-mgw.spec.in: Use %config(noreplace) to retain current config file * mgcp_client_init(): consider "talloc returns NULL" case * mgcp_client_pending_add(): Consider "talloc returns NULL" case * libosmo-mgcp-client: fix memleak in case if no response is received * debian/control + SPEC: Add missing build dependency to libosmo-abis * osmo-mgw.spec.in: Fix dependency to libosmoabis * osmo-mgw.spec.in: Add missing dependency to libosmotrau * Add example osmo-mgw configuration file for Abis/E1 * use osmo_fd_setup() whenever applicable [ Neels Hofmeyr ] * fix vty dump_trunk: start from zero, do not omit first CONN * allow larger MGCP client wqueue: 10 -> 1024 * add osmo-mgw --vty-ref-xml: dump VTY ref XML to stdout * manuals: generate vty reference xml at build time * refactor: use msgb to receive, pass and send RTP packets * change timer T2427001 to X2427 [ Philipp Maier ] * doc: do not bind osmo-mgw to random ip-address * cosmetic: remove excess newlines * mgcp: remove unused callback pointer * mgcp: find better locations for LOGPCONN and LOGPENDP * vty: fix unreachable code (error msg on trunk alloc fail) * mgcp_vty: fix indentation * osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg * mgcp_vty: fix indentation in VTY config write * osmo-mgw: refactor endpoint and trunk handling * mgcp_trunk: remove audio_name and audio_payload * ratectr: move rate counter definitions into mgcp_ratectr.h * cosmetic: fix doxygen * cosmetic: fix doxygen * cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() * trunk: get rid of virt_trunk pointer * cosmetic: remove excess space * endp: move endpoint name generation into mgcp_endp.c * endp: add name generator function for E1 endpoints * mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() * mgcp_trunk: fix docstring for mgcp_trunk_alloc() * mgcp_osmux: remove unused define constants * mgcp_trunk: move enum mgcp_trunk_type to mgcp_trunk.h * mgcp_trunk: use enum type for trunk type variable * trunk: parse E1 trunk number * endp: add typeset for e1-endpoints * mgcp_conn: move struct mgcp_conn mgcp_conn.h * mgcp_internal: remove forward declaration struct mgcp_endpoint_type * endp: add E1 endpoint interlocking * endp: require domain name also for E1 endpoints * mgcp_trunk: pick trunk by number and type * mgcp_client: add function to generate e1-endpoint names * mgcp_endp: use define constant to define max number of E1 subslots * mgcp_endp.c: cosmetic: fix sourcecode formatting * mgcp_trunk: remove double check * mgcp_test: do not access endpoint array elements directly * mgcp_vty: fix endpoint number configuration * mgcp_test: remove trunk2 from unit-test * mgcp_trunk: use talloc_zero_array instead of _talloc_zero_array * mgcp_protocol: remove unused variable * mgcp_e1: finish E1 support, add E1 support from libosmoabis * get rid of mgcp_internal.h * mgcp_ratectr: fix comments in header file * mgcp_e1: use return value of e1inp_line_update() * mgcp_protocol: log when endpoint is unavailable * cosmetic: add missing new-line * mgcp_trunk: drop "trunk 0" limitation * mgcp_e1: make E1 ts initalization more debugable * mgcp_e1: remove unused struct member trunk->e1.line * mgcp_endp: use NUM_E1_TS from e1_input.h * mgcp_trunk: increase default number of virtual endpoints * cosmetic: mgcp_client_fsm: change error message. * mgcp_vty: remove remains of loopback functionality * mgcp_vty: deprecate bind early command * mgcp_e1: do not expose function mgcp_e1_init() * mgcp_vty: add user attributes to configuration commands * overview: update section limitations. * overview: fix graph "OsmoMGW used with OsmoBSC" * overview: fix graph "OsmoMGW used with OsmoMSC" * overview: add graph to show E1 integration * configuration: remove hint towards trunk 0 limit * configuration: drop note about lackin E1 support * configuration: add note that changes to trunks need a restart * mgcp_vty: fix config write for trunk 0 * mgcp_vty: add missing VTY commands for E1 trunks * mgcp_trunk: get rid of magic numbers for E1 slots * configuration: add section about E1 trunks * usermanual: add chapter about mgcp endpoints * mgcp_client: get rid of magic numbers for E1 slots [ Eric ] * tests: dlopen does not imply availability of dlsym.. * configure.ac: fix libtool issue with clang and sanitizer [ Alexander Chemeris ] * vty: Prepend VTY output of counters for better visual separation. * counters: Implement more useful counters. * mgcp_network: Fix a typo in the comment bahviour -> behaviour * rtp_bridge: Demote a chatty ERROR log message to DEBUG level. [ Pau Espin Pedrol ] * Use OSMO_FD_* instead of deprecated BSC_FD_* * Support setting rt-prio and cpu-affinity mask through VTY * cosmetic: Rename main talloc ctx * mgcp-client: Support IPv6 in osmo_mgcpc_ep_ci_get_crcx_info_to_sockaddr() implementation * mgcp-client: Fix trailing whitespace in mgcp_client_fsm.h * mgcp_client: Use INET6_ADDRSTRLEN to store addresses in str format * mgcp_client: Allow submitting and parsing IPv6 addr in SDP * mgcp_client: Allow setting IPv6 addresses * mgcp_client: Make MGCP_CLIENT_LOCAL_ADDR_DEFAULT IPv6 compatible * mgcp_client: Support validating IPv6 addresses in CRCX and MDCX commands * mgcp_client: Deprecate unused IPv4-only API * mgcp_client: copy back Connection Information from MDCX ACK * mgw: Fix mgcp_rtp_end field description comment * mgw: Initial IPv6 support * mgw: Introduce VTY cmd 'rtp bind-ip-v6' command * mgw: Find and store RTP conn local_addr once during CRCX handling * mgw: Announce and rebind new local address if change required during MDCX * mgw: osmux: Avoid sending packets on recvonly connection * mgw: Release endpoint after last conn times out * mgw: osmux: Fix conn watchdog timeout not updated * mgw: Don't be case-sensitive when parsing X-Osmo-IGN param * cosmetic: Fix typo in comment * mgw: Avoid logging notice message each time we receive nt param in LCO * mgw: Fix return value documentation for API mgcp_verify_call_id * cosmetic: Fix typo in comment * contrib/jenkins: Enable parallel make in make distcheck * .gitignore: Ignore new autofoo tmp files * tests: Replace deprecated API log_set_print_filename [ Oliver Smith ] * contrib: import RPM spec * contrib: integrate RPM spec * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in * contrib/jenkins: don't build osmo-gsm-manuals * configure.ac: set -std=gnu11 [ Vadim Yanitskiy ] * libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() * libosmo-mgcp-client: fix use-after-free in mgcp_msg_gen() * libosmo-mgcp: fix unsigned compared against 0 in mgcp_trunk_by_name() * libosmo-mgcp: fix unused extra argument to printf() in add_fmtp() * libosmo-mgcp: always check result of msgb_printf() in add_fmtp() * libosmo-mgcp-client: mgcp_client_tx(): return rc on error * debian/control: change maintainer to the Osmocom team / mailing list * vty: use install_lib_element() and install_lib_element_ve() * main: add --vty-ref-mode, use vty_dump_xml_ref_mode() * fixup mgcp_trunk: increase default number of virtual endpoints [ Alexander Couzens ] * configure.ac: require libosmoabis + libosmotrau >= 1.0.0 -- Pau Espin Pedrol Tue, 23 Feb 2021 18:28:45 +0100 osmo-mgw (1.7.0) unstable; urgency=medium [ Neels Hofmeyr ] * rename codecs_cmp() to codecs_same() * mgcp_codec: constify 'param' arg * fix crashes: don't assert on incoming RTP packet size * mgcp_send(): stop looping on conversion error * mgcp_codec: split codec_free() off of codec_init() * fix memleak: actually free strings in mgcp_codec_reset_all() * mgcp_test: extend / rewrite test_mgcp_codec_pt_translate() * test_mgcp_codec_pt_translate(): more tests * differentiate AMR octet-aligned=0 vs =1 * ptmap: implicitly match '/8000' and '/8000/1' * mgcp_codec: codec_set(): log about all possible errors * mgcp_codec_add: fix audio_name size check * explicitly free codecs in mgcp_rtp_conn_cleanup() * tweak mgcp_parse_audio_ptime_rtpmap() * SDP: store all ptmap entries * mgcp_client_fsm cleanup: Do not assert on DLCX failure * clear pending requests on MGCP failure * client: endp fsm: add notify struct, prep for cancel-notify * client: endp fsm: clear ci[] before dispatching DLCX success * client: endp fsm: allow cancelling a notify event * client: endp fsm: add osmo_mgcpc_ep_ci_ep() * accept MGCP without SDP * fix use-after-free: require new fsm deferred dealloc, check for term [ Pau Espin Pedrol ] * mgcp_test: Correctly release all endpoints allocated * mgw: Allocate mgcp_conn instance under tcfg->endpoints [ Harald Welte ] * manual: Fix copy+paste error * mgcp_client: Check for osmo_fsm_register() error return value * Move fsm_mgcp_client regstration to __attribute__((contructor)) * exit(2) on unsupported positional arguments on command line [ Oliver Smith ] * osmoappdesc.py: switch to python 3 -- Pau Espin Pedrol Fri, 03 Jan 2020 13:35:09 +0100 osmo-mgw (1.6.0) unstable; urgency=medium [ Oliver Smith ] * Cosmetic: fix spaces/tabs in mgcp_requests[] * Inactive connection cleanup (disabled by default) * debian: create -doc subpackage with pdf manuals * vty: allow 0 as conn-timeout to disable it * vty: update desc of conn-timeout * manuals: update VTY documentation * "make dist" fix for: no rule to make mgcp_common.h * contrib/jenkins.sh: run "make maintainer-clean" [ Philipp Maier ] * Add option to GSM HR frames to RFC5593 representation * mgcp_sdp: cosmetic: correct typo in comment * mgco_client: cosmetic: remove excess whitespace * mgcp_sdp: mgcp_sdp.c does not include own header file * mgcp_sdp: untangle parsing of a= parameters * mgcp_network: use mgcp_rtp_codec in downlink format callback * AMR: Add function to convert between bw-effient and octet aligned mode [ Neels Hofmeyr ] * log: don't spam with "can not patch PT" messages * mgcp client: allow setting conn mode for CRCX and MDCX * make codec_table public as osmo_mgcpc_codec_names * move MGW endpoint FSM from osmo-bsc to here * fix: multiple initial CRCX * constify map_codec_to_pt() ptmap arg [ Pau Espin Pedrol ] * mgcp-client: whitespace cleanup in mgcp_client.c * mgcp-client: Sanitize implementation of mgcp_client_rtpbridge_wildcard * libosmo-mgcp: Use trunk type during endpoint allocation * cosmetic: Fix typos in comment * cosmetic: tests: mgcp_client_test: clean trailing whitespace * mgcp_msg: Log faulty line on Osmux parsing error * cosmetic: handle_modify_con: Fix indentation level * Introduce log fmt helpers LOGPENDP and LOGPCONN * create_response_with_sdp: Fix inclusion of X-Osmux * osmux: Cleanup of CID alloc pool APIs * mgcp_osmux.c: osmux_enable_endpoint: Fix incorrect return check * osmux: Log osmux socket during osmux_init * mgcp-cli: Change osmo_mgcpc_ep_fsm name to avoid collision with old osmo-bsc * osmux: Document func and return different rc upon osmux init failure * osmux: Fix reception of legacy dummy payloads * osmux: Use LOGPCONN in several log calls * cosmetic: mgcp_udp_send: Document port param is in network byte order * cosmetic: osmux: Document network byte order in port variable * vty: Allow enabling Osmux * osmux: Allocate CID during CRCX * osmux: Introduce mgcp_conn_rtp_is_osmux() helper * osmux: Mark conn_rtp->type as osmux during CRCX * mgcp-cli: Allow submitting X-Osmux on CRCX request * mgcp-cli: Parse X-Osmux on CRCX response * osmux: Handle Osmux MGCP extension in MDCX messages * mgcp-cli: Allow submitting X-Osmux on MDCX request * mgcp-cli: Parse X-Osmux on MDCX response * osmux: Drop unneeded OSMUX_STATE_NEGOTIATING * mgcp-cli: endpoint_fsm: Add API to retrieve Osmux CID from MGW * osmux: Provide correct local port during mgcp resp * osmux: Use remote port to send osmux frames * osmux: Improve logging around osmux enabling events * osmux: Delay osmux enable of conn until remote addr is configured by MDCX * osmux: Redo read/write osmux glue code to have data routed correctly * mgw, mgcp-li: Handle X-Osmux param name as case insensitive * osmux: Use DUMMY ft msg as per Osmux spec * osmux: Fix loopback for Osmux connections * osmux: Fix CID release for non-enabled connections * osmux: Fix hardcoded rtp payload_type 98 in osmux conn * mgcp-cli: Validate osmux cid value during mgcp_msg_gen * mgw: Support uppercase LCO options * mgw: Support lowercase header parameters * mgcp-cli: Support lowercase header parameters * mgw: Support receiving uppercase connection mode * mgw: Support receiving lowercase LCO codec * mgw: Make check of duplicated LCO fields case insensitive * mgw: Allow receiving lowercase MGCP header keyword * mgw: Allow receiving lowercase X-Osmo-Ign Callid field * mgw: Allow receiving uppercase noanswer keyword * doc: X-Osmo-IGN: small formatting and typo fixes * doc: Add Osmux documentation to OsmoMGW User Manual * Catch unsigned integer MGCP parsing errors with strtoul * Fix return variable of strtoul() * Remove undefined param passed to {logging,osmo_stats}_vty_add_cmds * configure.ac: Require libosmo-netif 0.6.0 [ Alexander Couzens ] * mgcp_internal: LOGPENDP: ensure *endp is not NULL [ Harald Welte ] * handle NULL return of rate_ctr_group_alloc() * update .gitignore * mgcp_sdp: Don't check if an unsigned int is below 0 [ Vadim Yanitskiy ] * configure.ac: drop useless check for -fvisibility=hidden [ Daniel Willmann ] * manuals: Add script to regenerate vty/counter documentation * manuals: Update vty/counter documentation [ Hoernchen ] * turn -Werror=null-dereference into a warning -- Pau Espin Pedrol Wed, 07 Aug 2019 16:52:58 +0200 osmo-mgw (1.5.0) unstable; urgency=medium [ Pau Espin Pedrol ] * gitignore: Filter *.pc * configure: Find correct libgsm's gsm.h header * vty: Fix typo writing bts-jitter-buffer-delay-{min,max} * Remove libosmo-legacy-mgcp and osmo-bsc-mgcp * debian: Remove dangling symlink to osmo-bsc-mgcp.service * Install systemd services with autotools * Install sample cfg file to /etc/osmocom * mgcp: Fix osmux_cid_bitmap static array size calculation * mgcp_osmux: Use define to calculate rtp_ssrc_winlen * osmux: Avoid initing output without enabling osmux * mgcp: Log endpoint nr consistently as hex * osmux_send_dummy: Avoid logging incorrectly and sending if osmux not enabled * osmux: Don't process regular osmux frames if disabled by cfg * osmux: Move parse_cid of legacy dummy frames to own function * osmux: Make func handling dummy frames independent of endp type * osmux: allow enabling osmux only on correct activating state * osmux: Improve checks around activating and using enabled osmux * osmux.h: Document enum osmux_state * osmux: Avoid processing further frames if conn not found [ Philipp Maier ] * mgcp_client_fsm: allow ptmap in mgcp_client_fsm as well * mgcp_network: translate payload type numbers in RTP packets * mgcp_client: use IETF source port as for MGCP * mgcp_client: increment local port number when port is in use * mgcp_test: release endpoints after use * network: do not patch PT of RTCP packets * network: check packets before further processing * Cosmetic: remove misplaced line break * mgcp_sdp: restructure mgcp_write_response_sdp() (rtpmap) * mgcp_sdp: restructure mgcp_write_response_sdp() (audio) * mgcp_client: check local port only once * mgcp_client_fsm: switch to MGCP_CONN_RECV_SEND in add_audio() * mgcp_protocol: increase buffer space for codec name in LCO * osmo-mgw: Add vty reference manual [ Neels Hofmeyr ] * fix handling of "Wrong domain name" error * interpret domain '*' as 'allow any domain' * cosmetic: log: fix "CallIDs does not match" * fix 3G hack: allow any IP for loopback and 0.0.0.0 * cosmetic: drop code dup in mgcp_client_fsm.c CRCX * add X-Osmo-IGN MGCP header to ignore CallID * X-Osmo-IGN: rather parse items by token, not char * mgcp_test: fix log of conn_id presence * mgcp_test: fix get_conn_id_from_response() CI length * mgcp_client_test: cosmetically re-arrange reply_to() args * mgcp_client_test: use "\r\n\r\n" instead of "\n\n" * mgcp_client_test: also verify received conn_id * mgcp_client_test: test long conn_id * mgcp_client: error on too long conn id * mgcp_common: rename to MGCP_CONN_ID_MAXLEN * doc: fix mgcp_verify_ci() return val doc * mgcp_verify_ci(): return meaningful error codes * fix mgcp_verify_ci(): off-by-one in max len check * generate shorter 'I:' conn IDs * mgcp_conn_get(): compare conn Id ('I:') case insensitively * mgcp_conn_get(): match conn Id ('I:') despite leading zeros * cosmetic: mgcp_test: fix get_conn_id_from_response() * comment: indicate struct type for mgcp_endpoint.conns * log: avoid logging early media as error * fix osmo-mgw -s; fixes osmo-mgw.service using -s * Importing history from osmo-gsm-manuals.git * OsmoMGW: update VTY reference * OsmoMGW: document the 'X-Osmo-IGN' MGCP extension * mgw: update vty reference * drop/replace very weird logging in mgcp_client.c * check_rtp: on IP:port errors, log the IP and port * osmo-mgw: err-log: include expected domain name * mgcp_client_vty: fix missing talloc_free * mgcp_client: drop a bunch of dead code * mgcp_client: logging tweaks * mgcp_client: make domain part of endpoint configurable * mgcp_client: tweak some log levels INFO -> {DEBUG,ERROR} [ Stefan Sperling ] * add VTY commands which show specific mgcp endpoints * add MGCP CRCX command statistics to osmo-mgw * show RTP TX/RX stats in 'mgcp show stats' output * use local variable for rate counters in handle_create_con() * add more mgcp crxc error counters * add MDCX command statistics to osmo-mgw * add aggregated rtp connection stats to osmo-mgw * add DLCX command statistics to osmo-mgw [ Harald Welte ] * debian/rules: Don't overwrite .tarball-version * check_rtp_origin(): Don't memcmp sockadd_in and in_addr * check_rtp_origin(): Avoid using memcmp for comparing integer types * vty-ref: Update URI of docbook 5.0 schema [ Daniel Willmann ] * mgw: Add new VTY reference * Add initial OsmoMGW manual [ Oliver Smith ] * build manuals moved here from osmo-gsm-manuals.git * jenkins.sh: remove leftover MGCP env variable * Fix DISTCHECK_CONFIGURE_FLAGS override * contrib/jenkins.sh: build and publish manuals * contrib: fix makedistcheck with disabled systemd -- Harald Welte Sun, 20 Jan 2019 15:02:18 +0100 osmo-mgw (1.4.0) unstable; urgency=medium [ Philipp Maier ] * network: independently initalize state->out_stream * stats: use libosmocore rate counter for in/out_stream.err_ts_counter * mgcp_sdp: correct apidoc of mgcp_parse_sdp_data * vty: clean up rtp port-range command * sdp: remove unused alt_codec field from struct mgcp_rtp_end * sdp: remove circular inclusion * protocol: Try whole port range on port allocation * client: do not start connections in loopback mode * mgcp_network: do not log destination invalid ip/port as error * cosmetic: fix log output * conn: call talloc_free before setting the pointer to NULL * protocol: do not change LCO, when no LCO are present * protocol: reject illegal lco options * cosmetic: fix typo * mgw: clean up codec negotiation (sdp) * client: add features to generate and parse codec information * mgcp_internal: remove unused struct member * stats: replace packet statistic counters with libosmocore rate counters * stat+vty: fix printing of rate counter values * protocol: prevent unnecessary null pointer deref [ Pau Espin Pedrol ] * legacy-mgcp: Add jitter buffer on the uplink receiver * legacy-mgcp: switch to new osmux output APIs * mgcp: mgcp_osmux: use conn_bts when forwarding pkts from bsc_nat * mgcp: switch to new osmux output APIs * debian: Package installed example doc files * gitignore: Add m4 scripts from m4 subdir [ Neels Hofmeyr ] * api doc: fix parameter name for mgcp_conn_create() * mgcp-client: add mgcp_conn_get_ci() * mgcp_client_fsm: improve error logging * cosmetic: fix doxygen comment markers * cosmetic: mgcp_network.c: merge one LOGPC to its preceding LOGP * IuUP hack: make RTP patching less general [ Harald Welte ] * cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' [ Daniel Willmann ] * git-version-gen: Don't check for .git directory -- Pau Espin Pedrol Fri, 27 Jul 2018 19:05:22 +0200 osmo-mgw (1.3.0) unstable; urgency=medium [ Pau Espin Pedrol ] * contrib: Add osmo-mgw systemd service * legacy: mgcp_protocol: Don't print osmux stats if it is off * mgcp_stat: Don't print osmux stats if it is off [ Neels Hofmeyr ] * fix segfault: DLCX for unknown endpoint: dont try to log NULL endpoint * MGCP endpoints: parse as decimal, not hex * add --enable-sanitize config option * legacy_mgcp: mgcp_test: sanitize: free msgb_ctx * mgcp_test: test_packet_error_detection: sanitize: free all conns * mgcp_test: test_no_cycle: sanitize: free endp * mgcp_test: sanitize: free msgb_ctx * mgcp_client: don't configure "bts base" * Revert "mgcp_client: don't configure "bts base"" until osmo-msc is ready * mgcp_client: add transaction cleanup * mgcp_client_test makefile: add update_exp target * cosmetic: mgcp_network: typo in log * osmo-mgw: Add talloc context introspection via VTY * mgcp_client: show failure by MGCP SDP section parsing test * mgcp_client: cosmetic: clean up SDP params parsing * mgcp_client: detect SDP section-start parsing errors * compiler warning: ignore deprecated in mgcp_client_test.c * configure: add --enable-werror * jenkins.sh: add --enable-werror to configure flags * cosmetic: mgcp, legacy_mgcp: drop unused vty.h definitions * use osmo_init_logging2() with proper talloc ctx [ Philipp Maier ] * osmux: fix nullpointer dereference * cosmetic: guard dead osmux vty code with ifdef * cosmetic: remove prefix "net" from rtp related vty commands * doc: update sample config file * cosmetic: use correct VTY port number constant * vty: simplify endpoint allocation * vty: do not change number_endpoints at runtime * MGCP: Connection Identifiers are hex strings * libosmo-mgcp: Connection Identifiers are allocated by MGW, not CA * client: use osmo_strlcpy instead of strncpy * cosmetic: fix sourcecode formatting * cosmetic: clearly mark endpoint numbers as hex * client: use string as connection identifier * conn: remove assertions * mgcp_test: fix wrong strcmp() parameters * mgcp_test: fix nullpointer dereference * mgcp_test: add returncode check * mgcp_test: fix possible double free * mcgp_client: mgcp_msg_gen(): add checks to verify params * network: use originating RTP packet address for loopback * client: mgcp_response_parse_params: check rtp port * mgcp: allow endpoints beginning from zero * client/common: move constant MGCP_ENDPOINT_MAXLEN * mgcp: make domain name configurable * cosmetic: protocol: remove unnecessary nul termination * client: do not insist on \n\n when parsing MGCP messages * main: display mgcp ip/port * client: make callid in MDCX mandatory * client: add missing mandatory SDP fields * mgcp: permit wildcarded endpoint assignment (CRCX) * mgcp: add prefix to virtual trunk * client: eliminate destructive parameter parsing * client: eliminate destructive head parsing * cosmetic: client: add doxygen comments * protocol: fix problem with line break and OSMUX * protocol: fix missing carriage return * client: fix sdp parameter ordering * protocol: check the packetization in local cx options * cosmetic: remove spaces from pointer symbol * client: Do not accept endpoint ids with wildcards in responses * client: do not accept endpoint ids without @ character in responses * client: prohibit endpoint ids without @ character * protocol: on wildcarded CRCX return endpoint number as hex * msg: fix response code on exhausted endp resources * cosmetic: move mgcp_release_endp() to mgcp_ep.c * client: use heap to store mgcp_response * ep: move endpoint struct and define to mgcp_ep.h * cosmetic: rename mgcp_release_endp to mgcp_endp_release * cosmetic: rename mgcp_ep.c/h to mgcp_endp.c/h * protocol: reject DLCX/CRCX/MDCX on unsupported parameters * protocol: exit cleanly when local cx options check fails * cosmetic: Add missing \n on log line * protocol: check requested connection mode * protocol: fix tagging of wildcarded requests * protocol: prohibit wildcarded requests for MDCX and DLCX * mgcp: fix use-after-free and add callback for endpoint cleanup * client: add an optional FSM interface * mgcp_client_fsm: Add FSM event names * cosmetic: mgcp_client_fsm: rename enums * cosmetic: rename function .._conn_reset() to .._conn_init() * mgcp_conn: do not touch u.rtp in mgcp_conn_alloc() * cosmetic: rename .._codec_reset() to .._codec_init() * mgcp_conn: add function mgcp_rtp_conn_cleanup() * stats: use libosmocore rate counter for in/out_stream.err_ts_counter [ Alexander Couzens ] * debian/control: correct library dependency of osmo-mgw against libosmo-mgcp1 * debian: include systemd service osmo-mgw.service * Revert "stats: use libosmocore rate counter for in/out_stream.err_ts_counter" [ Harald Welte ] * cosmetic: fix whitespaces; we use tabs for indentation * Fix possible buffer overflow in mgcp_conn_dump() * osmo-mgw: Update copyright statement * osmo-mgw: Config file is osmo-mgw.cfg, and not mgcp.cfg * osmo-mgw: Fix copyright notice * strct mgcp_rtp_state: Group + document struct members related to patching * mgcp_rtp_state: grup 'stats' members into sub-structure * mgcp_rtp_end: Group statistics members into 'stats' sub-struct * libosmo-mgcp: Cosmetic spelling fixes in comments * mgcp_msg: We must parse endpoint numbers as hex, not decimal! * mgcp_internal.h: document more struct members with comments * centralize handling of common errors like "endpoint not found" * Return proper MGCP Error codes, as per spec * osmo-mgw: Use libosmocore socket abstraction * osmo-bsc_mgcp: Add LIBOSMONETIF_{CFLAGS,LIBS} * libosmo-mgcp-client is GPLv2+, not AGPLv3+ * Turn libosmo-mgcp into local, non-installed library [ Stefan Sperling ] * enable osmo_fsm vty commands in libosmo-mgcp-client vty -- Pau Espin Pedrol Thu, 03 May 2018 17:40:35 +0200 osmo-mgw (1.2.0) unstable; urgency=medium [ Neels Hofmeyr ] * jenkins: use osmo-clean-workspace.sh before and after build * vty: skip installing cmds now always installed by default * mgcp-client vty: use name 'mgw' instead of 'mgcpgw' * mgcp client: vty: tweak doc strings [ Philipp Maier ] * sdp: refactoring sdp parser/generator * cosmetic: rename bts_codec to codec_str * cosmetic: fix coding style for mgcp_parse_sdp_data() * cosmetic: fix commenting style * cosmetic: correct whitespaces * client: fix stderror logging in unit-test * client: add unified function to generate MGCP messages * client: add ip address parsing to the client * protocol: allow wildcarded DLCX * mgcp: remove port/timeslot calculator functions from mgcp.h * network: add separate log category * cosmetic: make dummy packet handling more explicit * network: autdetect rtp bind ip-address * network: fix rtp packet length * network: remove unused return code [ Pau Espin Pedrol ] * mgcp_client_vty.c: Fix VTY compatibility with 'mgcpgw bts-base' -- Harald Welte Fri, 10 Nov 2017 11:10:23 +0900 osmo-mgw (1.1.0) unstable; urgency=medium * New upstream release -- Harald Welte Sat, 28 Oct 2017 12:48:41 +0200 osmo-mgw (1.0.2) unstable; urgency=low * First release after major rename. -- Max Suraev Thu, 14 Sep 2017 18:41:05 +0200 osmo-mgw (0.1.0) unstable; urgency=low * Initial release. -- Alexander Couzens Tue, 08 Aug 2017 01:12:53 +0000