ABI
Tracker

(osmo-mgw)




Changelog from Git



commit e81c1176aa1254b0bb148385134186f6a55fd405
Author: Harald Welte <laforge@gnumonks.org>
Date:   2019-01-20 15:02:19 +0100

    Bump version: 1.4.0.90-ed0c-dirty → 1.5.0
    
    Change-Id: I8f7c7b75f38ebd1ee48605596424af48cc1ad53d

commit ed0c1aa9d5e4ad3b120841bb68712207620f2b38
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-21 03:07:53 +0100

    mgcp_client: tweak some log levels INFO -> {DEBUG,ERROR}
    
    Change-Id: Ie4ecb4b82a7a1e476c58d0a6056525733254adbb

commit ac69ea9cdf6b3b30c3834bed3a10d41857eadb11
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-19 00:27:50 +0100

    mgcp_client: make domain part of endpoint configurable
    
    So far, both osmo-msc and osmo-bsc always pass endpoint names of the form
    '...@mgw' to osmo-mgw. Allow configuring the 'mgw' part.
    
    Note that the actual way to pass a differing name is to pass a composed
    'rtpbridge/*@foo' to mgcp_msg_gen() in the struct mgcp_msg. So this merely adds
    a common VTY config for the domain name part, changes to clients are necessary.
    
    - add mgcp_client_rtpbridge_wildcard() (useful for AoIP endpoints)
    - add mgcp_client_endpoint_domain() (useful for SCCPlite endpoints)
    - add mgcp client vty cfg 'mgw endpoint-domain NAME'
    
    Rationale: reading pcaps becomes so much easier when each of osmo-bsc and
    osmo-msc address their MGW with differing domain names. Otherwise, both will
    have a '0@mgw' endpoint and it gets really confusing.
    
    Also: our MGCP clients osmo-bsc and osmo-msc use code dup to compose the
    initial 'rtpbridge/*@mgw' rtpbridge wildcard. It should be defined by this API
    instead.
    
    This will be used by:
    * osmo-msc I87ac11847d1a6d165ee9a2b5d8a4978e7ac73433
    * osmo-bsc I492023e9dca0233ec0a077032455d9f2e3880f78
    
    After these, with according configuration, there can be a '0@bsc' and a '0@msc'
    endpoint on two separate osmo-mgw instances:
    
    osmo-mgw-for-bsc.cfg:
     mgcp
      domain bsc
    
    osmo-bsc.cfg:
     msc 0
      mgw endpoint-domain bsc
    
    osmo-mgw-for-msc.cfg:
     mgcp
      domain msc
    
    osmo-msc.cfg:
     msc
      mgw endpoint-domain msc
    
    There can also be '0@bsc' and '1@msc' endpoints on one single osmo-mgw instance with:
    
    osmo-mgw.cfg:
     mgcp
      domain *
    
    and same osmo-{bsc,msc}.cfg as above.
    
    (By default, everything will still use '@mgw')
    
    Change-Id: Ia662016f29dd8727d9c4626d726729641e21e1f8

commit 0a403792145843fdbe210df171b2209dace709f1
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-12 03:10:18 +0100

    mgcp_client: logging tweaks
    
    Fix typos, use osmo_sock_get_name2() to show the tx source and target IP:port,
    shorten some wording.
    
    Depends: I8ad89ac447c9c582742e70d082072bdd40a5a398 (libosmocore)
    Change-Id: Iae728192f499330d16836d9435648f6b8ed213b6

commit 72bc8da53760646871e85d94423b42c3459650ea
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-19 00:44:37 +0100

    mgcp_client: drop a bunch of dead code
    
    Remove public API that makes no sense anymore and is dead code.
    
    I see the dropped API as a dead-end initial misconception of the early mgcp
    client, and it doesn't really make sense to drag this stuff along. It has not
    been used by osmo-msc,-bsc for a long time now, and just confuses the reader.
    
    It is public API, yes, and older versions of osmo-msc / osmo-bsc will not be
    able to compile against this, but even if it did, the resulting MGCP client
    would not work with the current osmo-mgw: this API is still based on the
    premise that the MGCP client dictates the MGW endpoint numbers, a concept that
    cannot be used with the current osmo-mgw. Instead, osmo-mgw expects a
    wildcarded endpoint upon CRCX and assigns its own endpoint names.
    
    Also, the bts-base configuration is unused and a legacy of when osmo-bsc_mgcp
    had explicit BTS and CN sides.
    
    Change-Id: I98a9f1f17a1c4ab20cea3b08c7d21663592134d6

commit c3132fd5083904295ad2d9cf8738b8d3662555b4
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-19 00:30:34 +0100

    mgcp_client_vty: fix missing talloc_free
    
    If the vty client enters multiple local / remote addresses, that leaks talloc
    memory of the previously set addresses. Free those first, if any, using
    osmo_talloc_replace_string().
    
    Change-Id: I331b3d53b5eb330b87d798f952077a043674d409

commit 96c3107dafbdf7aa500bb3c7ad55d7cfe9373cf4
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-19 00:31:48 +0100

    osmo-mgw: err-log: include expected domain name
    
    Add the expected domain name, and move the error log to where the expected
    domain name is compared.
    
    Change-Id: I59f40dc9263f686852f103ca904fc0a6702d7c8e

commit ad21a0e166209635650ee142d4643ae9aa198c9f
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-12 01:16:42 +0100

    check_rtp: on IP:port errors, log the IP and port
    
    Half of those are obviously zero, but I'd rather print the raw data instead of
    adding string constants, even if the condition must always lead to 0.0.0.0:0.
    
    Rationale: I had osmo-mgw listen on 0.0.0.0 and got the error message
      DRTP ERROR endpoint:0x1 destination IP-address is invalid
    which didn't convey that 0.0.0.0 is regarded as invalid.
    
    Change-Id: I9e98d464a27038904797c5c10735a98ef5b7b9c3

commit 32d15cc8bae0c88f62a7269327685f6c1820c1d9
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-12-12 03:05:33 +0100

    drop/replace very weird logging in mgcp_client.c
    
    mgcp_do_write() is the final stage of writing data towards the MGCP server
    (MGW). In that function, drop an unconditional iteration and copy of the MGCP
    message to a static string buffer for no apparent reason besides debug logging.
    
    Instead, use osmo_escape_str() with a limited length, which can just be an
    inline format argument in the LOGP() statement. This way, the string mangling
    is simpler and only gets run when DMGCP is actually on debug log level.
    
    Change-Id: Id6877ed7fd7dbe009b2ece8792d5160d040c1aaa

commit 1fd50e53069ac4361ef72b2ca632c7f31a66ff54
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-06 13:54:53 +0100

    contrib: fix makedistcheck with disabled systemd
    
    EXTRA_DIST files need to be distributed, no matter if the systemd option
    is configured or not.
    
    Change-Id: I5014d98e06e033d04be45585b34458c90b1ced00

commit 68023745740195f8f0d9e2773b6f346a409dc178
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-11-29 14:20:29 +0100

    contrib/jenkins.sh: build and publish manuals
    
    Add new environment variables WITH_MANUALS and PUBLISH to control if
    the manuals should be built and uploaded. Describe all environment vars
    on top of the file.
    
    When WITH_MANUALS is set, install osmo-gsm-manuals like any other
    dependency and add --enable-manuals to the configure flags (for "make"
    and "make distcheck"). Add the bin subdir of the installed files to
    PATH, so osmo-gsm-manuals-check-depends can be used by ./configure.
    
    Related: OS#3385
    Change-Id: I24179b21ce4ff182649243e286c87c824b889454

commit 82c1d1eb20f71f2e52de877cd634c126fd0bb991
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-04 15:36:37 +0100

    Fix DISTCHECK_CONFIGURE_FLAGS override
    
    Set AM_DISTCHECK_CONFIGURE_FLAGS in Makefile.am instead of
    DISTCHECK_CONFIGURE_FLAGS. This is the recommended way from the
    automake manual, as otherwise the flag can't be changed by the user
    anymore.
    
    Related: OS#3718
    Change-Id: Ie9db1519e89d2a8ca1e403e480f57d72fc25ab75

commit 5a5169e15c21bd912853841f6f2b28495ae77043
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-12-03 16:27:06 +0100

    jenkins.sh: remove leftover MGCP env variable
    
    Jenkins currently runs the build twice, once with
    MGCP="--enable-mgcp-transcoding" and once with
    MGCP="--disable-mgcp-transcoding". The configure.ac does not have this
    parameter, so let's remove the confusing variable.
    
    This is in preparation for describing all environment variables used in
    jenkins.sh (follow up commit).
    
    Change-Id: I6223afef0f34d90170a691d7d5b1d9542c34c6b0

commit 7c0b70a94e756a5640426749cceb4fa2009560de
Author: Oliver Smith <osmith@sysmocom.de>
Date:   2018-11-14 10:47:01 +0100

    build manuals moved here from osmo-gsm-manuals.git
    
    Moved to doc/manuals/, with full commit history, in preceding merge commit.
    Now incorporate in the build system.
    
    Build with:
    
    $ autoreconf -fi
    $ ./configure --enable-manuals
    $ make
    
    Shared files from osmo-gsm-manuals.git are found automatically if
    - the repository is checked out in ../osmo-gsm-manuals; or
    - if it osmo-gsm-manuals was installed with "make install"; or
    - OSMO_GSM_MANUALS_DIR is set.
    
    Related: OS#3385
    Change-Id: I504f05a49721f2dfe105b6c5fd1995c4e7a0be9c

commit ca6a8495e1a99e0d8a55dfb0bfba0f7832b32ccc
Merge: 8ab3fbba c0a2196f
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-27 18:07:16 +0100

    Merge history from osmo-gsm-manuals.git
    
    Change-Id: Ibbc4f41f7672159d8596ceb84b60e5c849b98074

commit c0a2196f91f4225a1b32e9ff603bb91bcf22e1ff
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-05 03:18:55 +0100

    mgw: update vty reference
    
    Change-Id: Ib30ea8b02f8a950648b85e7ebc96a40ba5a36b34

commit da026abc27c05c498858d23ce685d34fc5ae6122
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-26 23:14:21 +0200

    OsmoMGW: document the 'X-Osmo-IGN' MGCP extension
    
    See also Ia6fe5ead4b601931c1bf41b29fc1b237aac37d2c in osmo-mgw.git, which
    changes the initial single-character implementation to match this specification
    of string tokens separated by spaces.
    
    Change-Id: If15a88c3b5b40fd1d24ad0f94f3231f678669ab1

commit 27780313ac98c318846739693bffa7e0a78d45bd
Author: Daniel Willmann <dwillmann@sysmocom.de>
Date:   2018-07-31 18:53:45 +0200

    Add initial OsmoMGW manual
    
    Change-Id: I1b4ff96309d280c6a63105a6e06a82ec2e7b6908

commit e5ed946bdbfcee9c8e18e078e16718b57b80408f
Author: Daniel Willmann <dwillmann@sysmocom.de>
Date:   2018-07-31 18:54:34 +0200

    mgw: Add new VTY reference
    
    Change-Id: Ic8ca983f3358aae9362fb21ff3a111f9c4f3935b

commit c319b79baa38806d92b46e2cb8ceccdc165677a7
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-03-17 14:15:38 +0100

    vty-ref: Update URI of docbook 5.0 schema
    
    ... to match the /etc/xml/catalog file on debian (no "www" in hostname)
    
    Change-Id: Id9f3579c7f2bc3af13fe30b5268f249b6f59ed0d

commit 2818db8b33208c1867cacd6a10851dc8f4ccb73c
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-03-06 14:59:00 +0100

    OsmoMGW: update VTY reference
    
    This is the first update since the libosmocore changes to the 'show
    online-help' generated output. Hence the produced document now benefits from
    the structural improvements:
    - not repeating common commands for every node;
    - using section names that match the VTY prompt.
    
    Change-Id: I79804ec0e61cc19a679f079a083a5ea2ea3ee2de

commit 0415de74b84defd7577142f1574126c20bfea7e0
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2017-12-11 18:48:34 +0100

    osmo-mgw: Add vty reference manual
    
    add missing vty reference manual for osmo-mgw
    
    Change-Id: If9d8cdcbbbf14b23e48af5b9ae1c56c2a38219a2

commit 4075b8805da246a4c8ad08dea72d73570f89aaff
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-27 18:05:58 +0100

    Importing history from osmo-gsm-manuals.git
    
    Change-Id: Ie9bf61a61d00a74cb327853f26dd1a7e1481fdfa

commit 8ab3fbbaf2dc4d6bafae709ce0cab7fdd58c0829
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-30 14:57:25 +0100

    add DLCX command statistics to osmo-mgw
    
    Add a counter group for DLCX commands. The group contains counters for
    successful connection processing as well as various error conditions.
    This provides a quick overview of DLCX failures on each trunk throughout
    the lifetime of the osmo-mgw process.
    
    The counters are displayed by 'show mgcp stats' and 'show rate-counters'
    
    While here, rename MGCP_MDCX_FAIL_DEFERRED_BY_POLICY to
    MGCP_MDCX_DEFERRED_BY_POLICY; we have decided that deferred connections
    aren't failures, and this keeps names used by DLCX and MDCX in sync.
    
    Also remove some allocation failure checks with OSMO_ASSERT(); such
    checks aren't en vogue anymore.
    
    Change-Id: Ie0dde2faf02fd68a69f986973d39b1bea367039b
    Depends: I80d36181600901ae2e0f321dc02b5d54ddc94139I
    Related: OS#2660

commit cc39218dceb1a2def4bce86ae48db38567e326ef
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-11-25 22:33:32 +0100

    fix osmo-mgw -s; fixes osmo-mgw.service using -s
    
    Even though osmo-mgw advertises the -s option, the getopt configuration lacks
    -s and that option does not work. Thus the osmo-mgw.service file that uses -s
    was unable to start.
    
    Add 's' to the getopt configuration, fix -s and hence also fix the .service
    file.
    
    Change-Id: I6f298aef73eb3486d04706910e9fdbaaebaf2481

commit 8dbc9ed4082363c05fe31c5d2b977dabe34e23e9
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-10-26 14:50:25 +0200

    mgcp_protocol: increase buffer space for codec name in LCO
    
    The function that parses the LCO uses an internal buffer to store the
    codec name that has been issued via LCO. This buffer is only 9 byte
    long, this means an 8 character string can be stored. If a codec name
    exceeds this limit it gets chopped. For example "GSM-HR-08" becomes
    "GSM-HR-0", which may mess up the codec negotiation.
    
    - Increase the buffer from 9 to 17 byte.
    
    Change-Id: I17ce7acde1f23ab1394227d74214fe2a55cd2264
    Related: OS#3673

commit ba25eab0fa322e5e24c9bc9ccad7341c4eba4d8f
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-30 14:32:31 +0100

    add aggregated rtp connection stats to osmo-mgw
    
    Add a counter group for aggregated RTP connection statistics.
    This group contains RTP counters which aggregate values of the
    ephemeral RTP counters maintained per connection (mgcp_conn).
    
    This provides a global overview of RTP processing for each
    trunk throughout the lifetime of the osmo-mgw process.
    
    The counters are displayed by 'show mgcp stats' and 'show rate-counters'.
    
    While here, fix a typo in an item of the mgcp_conn_rate_ctr_desc array:
    "rtp:octets_rx" was displayed for outbound packes; now says "_tx".
    
    Change-Id: I80d36181600901ae2e0f321dc02b5d54ddc94139
    Related: OS#2660

commit aa823bf24b80d7d7a4cbbffc9aab9400aee88e78
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-29 14:51:41 +0100

    add MDCX command statistics to osmo-mgw
    
    Add a counter group for MDCX commands. The group contains counters for
    successful connection processing as well as various error conditions.
    This provides a quick overview of MDCX failures on each trunk throughout
    the lifetime of the osmo-mgw process.
    
    The counters are displayed by 'show mgcp stats' and 'show rate-counters'.
    
    Change-Id: I79c27425ba40c3a85edc6cd846cba325d847298c
    Depends: Ia2004f8063f3a50b5d7a838ebe8a784a47fcc50d
    Related: OS#2660

commit a714abfc915efd4ba0b0c8830836335ffeaf3300
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-29 14:19:54 +0100

    add more mgcp crxc error counters
    
    Add counters for error conditions which I overlooked in
    commit 1e174875bf72c3d7840fa98cfad8c410a542919e
    
    Change-Id: Ia2004f8063f3a50b5d7a838ebe8a784a47fcc50d
    Depends: If4f097c5e441914eaa24c7657813ebb3f9a49916
    Related: OS#2660

commit 9270e91c092992cd82139151505e0aafb8b8df47
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-29 14:10:00 +0100

    use local variable for rate counters in handle_create_con()
    
    Use a local variable to shorten the length of rate counter names.
    Cosmetic only; no functional change.
    
    Change-Id: If4f097c5e441914eaa24c7657813ebb3f9a49916
    Related: OS#2660

commit b7974e2fa4cd260faa80c821e9c3aaab2dd8c7f0
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-29 13:22:00 +0100

    show RTP TX/RX stats in 'mgcp show stats' output
    
    Make the 'mgcp show stats' VTY command display TX/RX counters
    for an RTP stream. This command was already showing the counter
    for dropped packets from the same counter group, so it seems
    natural to display other relevant counters in the group as well.
    
    Change-Id: I1313e64d7d8b49964f21fc8d213cba6c9fb6c7cf
    Related: OS#2660

commit 1e174875bf72c3d7840fa98cfad8c410a542919e
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-10-25 18:36:10 +0200

    add MGCP CRCX command statistics to osmo-mgw
    
    Add a counter group for CRCX commands. The group contains counters for
    successful connection processing as well as various error conditions.
    This provides a quick overview of CRCX failures on each trunk throughout
    the lifetime of the osmo-mgw process.
    
    For example, after running the TTCN3 mgw test suite, the counters show
    the following values:
    
    OsmoMGW> show rate-counters
    crxc statistics:
                 crcx:success:         88 (0/s 88/m 0/h 0/d) CRCX command processed successfully.
              crcx:bad_action:          0 (0/s 0/m 0/h 0/d) bad action in CRCX command.
         crcx:unhandled_param:          1 (0/s 1/m 0/h 0/d) unhandled parameter in CRCX command.
          crcx:missing_callid:          1 (0/s 1/m 0/h 0/d) missing CallId in CRCX command.
            crcx:invalid_mode:          1 (0/s 1/m 0/h 0/d) connection invalid mode in CRCX command.
          crcx:limit_exceeded:          0 (0/s 0/m 0/h 0/d) limit of concurrent connections was reached.
           crcx:unkown_callid:          0 (0/s 0/m 0/h 0/d) unknown CallId in CRCX command.
         crcx:alloc_conn_fail:          0 (0/s 0/m 0/h 0/d) connection allocation failure.
     crcx:no_remote_conn_desc:          1 (0/s 1/m 0/h 0/d) no opposite end specified for connection.
       crcx:start_rtp_failure:          0 (0/s 0/m 0/h 0/d) failure to start RTP processing.
           crcx:conn_rejected:          0 (0/s 0/m 0/h 0/d) connection rejected by policy.
    OsmoMGW>
    
    These same counters are now also shown by 'show mgcp stats'
    in the context of the trunk which they belong to.
    
    With input from Philipp Maier.
    
    Change-Id: Ida82fc340d5c66180e5fe9a0d195e9be6dc64c61
    Related: OS#2660

commit c26b665c0c6f33249f6c05e51ee974afbf0fa3cf
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-10-21 12:01:04 +0200

    check_rtp_origin(): Avoid using memcmp for comparing integer types
    
    in_addr consists only of s_addr, which is an integer type that
    can be compared directly.  By avoiding memcmp() here we would have
    been able to catch Coverity CID#188874 even without Coverity, and
    make the code more compact...
    
    Change-Id: Ic6105d39ae2fb4b301f87448b16763fe9f695621

commit 0479b2a15f58c4a999584d1da92f88815700f314
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-10-21 11:56:05 +0200

    check_rtp_origin(): Don't memcmp sockadd_in and in_addr
    
    We were comparing 16 bytes (sockaddr_in) in memcmp() rather than using
    four bytes (struct in_addr in mgcp conn end).
    
    This is a good example why we should actually simply use the == (equals)
    operator rather than using memcmp which treats everything as void.
    
    Change-Id: Ic64256619ef893d625400e8b1b573ea2c629ed9c
    Fixes: Coverity CID#188874

commit ff6606cacb18985b5583e2a96bb36664d7c0e1f3
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 16:45:40 +0200

    osmux: Avoid processing further frames if conn not found
    
    Other frames can come from known connections, so let's keep processing
    each of them.
    
    Change-Id: I09190140ba917dfada4b0952230b68e0f5f6d43d

commit 407b1f186dee21b77daad99ee129f79d8a87fce4
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 16:40:11 +0200

    osmux.h: Document enum osmux_state
    
    Port for openbsc 9ae32d0d0607f270f20239b8104e09ec20352301.
    Change-Id: I28978fa505d259f144457f29af4ba615aeaac74c

commit de2a4d7c2221cb76ba05ebe39d84b25899dc8629
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 16:37:43 +0200

    osmux: Improve checks around activating and using enabled osmux
    
    * Refactor code to have unified checks on all paths activating Osmux.
    * Improve checkings at activation time and add logging.
    * Code now enforces endp osmux status to be enabled before processing
    the frame through endp->osmux.out. Before, a delayed or bad pkt could
    arrive and be processed by an endp with osmux not enabled, using
    endp->osmux.out that was not initialized and ended up crashing:
    libosmo-netif/src/osmux.c:281:3: runtime error: member access within null pointer of type 'struct msgb'
    
    This could also happen if a BSC started sending or we received (non legacy dummy) osmux
    frames before we received the BSC CRCX ACK agreeing on osmux negotiation
    and switching to ACTIVATING state.
    
    Related: SYS#4350
    
    Port from openbsc 4a2cc9eb0a0f9424c16b26fcb757483a39d67482.
    Includes fixup from openbsc I438349bffaa46a10ad8983090a4b17aed7e00d82.
    Change-Id: Iac11e447ec0d76e4e74ec982a6e3f63b35548978

commit 48aff62341596e9ce35bdce38f5cfdcb49d7aa67
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 16:03:57 +0200

    osmux: allow enabling osmux only on correct activating state
    
    State ACTIVATING is set once negotiation between the 2 parts went
    successfuly.
    
    Port from openbsc 96bd7b075a59eb051079152241b127ca944b0781.
    Change-Id: Ic56eda1251be41369d869e687a1cf955df2c6d61

commit 852ba869493773cc4c4cf637a73830f9e630d562
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 15:55:56 +0200

    osmux: Make func handling dummy frames independent of endp type
    
    Port from openbsc 8f321179747f64819d940d72d0212192f69284ca.
    Change-Id: I3e16217737fd5ffb95c166c5f7344492cb6a6263

commit 662fa421c61baea4154ea413fb8a9d4b1180801c
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 15:54:38 +0200

    osmux: Move parse_cid of legacy dummy frames to own function
    
    Backport from openbsc b010f869c915016b7fa97a26621582cd89de96b0.
    Change-Id: I5766165985fbfcecc63d45b9e229322bc8cedf52

commit d14163e74ff515c8f9540cdad5b2d1d955899e01
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 15:48:59 +0200

    osmux: Don't process regular osmux frames if disabled by cfg
    
    Prior to this commit, the check was only done on legacy dummy frames.
    
    Port from openbsc a42d4584fd01c9cd1021fab609bdaaafe859c13a.
    Change-Id: I5b6606d72a9f5ae593a8e3ab5fbbe7e1e5a0ae11

commit 11b48101426b43312c733900635eb37e24976872
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 15:45:56 +0200

    osmux_send_dummy: Avoid logging incorrectly and sending if osmux not enabled
    
    Port from openbsc 37a0307b6193c9b108cfd1aa2a88517a8b5cb907.
    Change-Id: Iabc84cb482a425d4a6c2bb08c20b2e02a5a86b36

commit 9ecceb651ba6aac7477ac8410f353af979567a66
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 15:35:58 +0200

    mgcp: Log endpoint nr consistently as hex
    
    Port from openbsc 078905a0603c91b227854abfa01c9e24143e39a1.
    Change-Id: Idcb40e6fd561b24e111afe7463f44c43c530fac5

commit 426a9d9103f127f6939a941d975fc32eca8bcbfc
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-10-16 15:31:45 +0200

    osmux: Avoid initing output without enabling osmux
    
    Otherwise we end up in a weird state where we have timers set up but
    osmux is still flagged as not enabled.
    
    Cherry-picked from openbsc cad739d2386640a68c24e3d470ddacdcaf377561.
    Change-Id: I0a334842463d311bc80a980e60fb702a0a9ad610

commit 17bf60322223dfc48d85bba9b39e86d4ee285d3a
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-17 13:38:39 +0200

    mgcp_osmux: Use define to calculate rtp_ssrc_winlen
    
    Since that define is already used to allocate size of osmux_cid_bitmap,
    let's use it here too instead of hardcoding its value.
    
    Change-Id: Ib2e4febee8bc6bcc035ad0a65c5c1eb94ef5e6fb

commit bcd52e5724d2b846a76d2caa7daa261f3d4b11c7
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-17 12:41:28 +0200

    mgcp: Fix osmux_cid_bitmap static array size calculation
    
    Right now it's not a big issue since OSMUX_CID_MAX is 255, so 255+1 is
    256 which fits array boundaries correctly (multiple of 8). However, if
    for example OSMUX_CID_MAX was modified to be 12, 12+1/8 = 1, so we'd
    have an undesired memory access when accessing last 4 CIDs.
    
    A +1 should be kept on top, because OSMUX_CID_MAX specified the maximum
    number used by a CID, that is (0,OSMUX_CID_MAX), and as a result we
    require OSMUX_CID_MAX+1 slots.
    
    Change-Id: Iaf9b93712dbd2a862b01e70dd8e11893bfa6b24c

commit 956242dcec1bb61d46fe8214d3578dc769080ca9
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-12 18:46:47 +0200

    Install sample cfg file to /etc/osmocom
    
    Change-Id: I6926e989a130086f4b6c8277407377a4063f452f

commit e686675f7ddaa2e2e8f3ec25179ebf1a2e3ad9d1
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-10 12:46:47 +0200

    Install systemd services with autotools
    
    Change-Id: I7e4dae6b8c1685e8a673c58a843c41fa0af1b35c

commit 4ca0b0d1faf35d9766459ca44c7d86643525a989
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-09-10 12:49:32 +0200

    debian: Remove dangling symlink to osmo-bsc-mgcp.service
    
    osmo-bsc-mgcp was removed recently from osmo-mgw.git as it belongs to
    openbsc.git.
    This symlink was a leftover from that time.
    
    Change-Id: Ifdcb266efd821eac9d90aff186400f85751e8f42

commit efd645e5a8d408c4c7630767f009e48f6e8fca25
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-10 13:14:50 +0200

    log: avoid logging early media as error
    
    When the peer address is still 0.0.0.0, the endpoint is not yet configured.
    This commonly happens before bridging a call is complete, so instead of ERROR
    logging about an invalid packet, rather INFO-log this as "early media".
    
    Related: OS#3539
    Change-Id: I335f6453bd599be76eef08fcf9e5daed071e5b6d

commit f0504e86b302ed853b836397fb0786dc6f8d4946
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-28 21:12:59 +0200

    comment: indicate struct type for mgcp_endpoint.conns
    
    Change-Id: Ia65359c22da3e7b28e3f23b36446ca434ca0be8c

commit e28b673fbad92a22efcfa823577351909645e144
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-28 16:19:25 +0200

    cosmetic: mgcp_test: fix get_conn_id_from_response()
    
    This function is implemented in such a weird way that I couldn't stop myself
    from rewriting it.
    
    Change-Id: Ib9b13d7b0e64f8ae25a7b69cbb385e7fad33d02b

commit a77eade744933b8ad37e48b0f96a9cd0f5b89e83
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-29 02:30:39 +0200

    mgcp_conn_get(): match conn Id ('I:') despite leading zeros
    
    The Connection Identifier is defined as a hex string, so clients may send the
    ID back with or without leading zeros. Ignore all leading zeros when comparing.
    
    A specific SCCPlite MSC is observed to DLCX with Connection Identifier with
    leading zeros removed, which would mismatch pefore this patch.
    
    Extend test_conn_id_matching() in mgcp_test.c to include leading zero tests.
    
    Now, mgcp_conn_get() would match a valid id with *any* amount of leading zeros,
    even if that far surpasses the permitted conn id length. Valid lengths of
    incoming conn ids should be and is checked elsewhere.
    
    Related: OS#3509
    Change-Id: If55a64a2da47b6eff035711c08e4114d70dbec91

commit 6531726a02c1da607789ab9327ab29dce3a0d2f5
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 22:11:05 +0200

    mgcp_conn_get(): compare conn Id ('I:') case insensitively
    
    The Connection Identifier is defined as a hex string, so clients may send the
    ID back in lower case. Convert to upper case before comparing.
    
    A specific SCCPlite MSC is observed to DLCX with Connection Identifier in lower
    case, which would mismatch pefore this patch.
    
    Add test_conn_id_matching() in mgcp_test.c to verify case insensitivity.
    
    Cosmetic: use strcmp(), not strncmp(). In the presence of a terminating nul as
    we can assume here, this makes no functional difference, but it clarifies the
    code.
    
    Related: OS#3508
    Depends: Ib0ee1206b9f31d7ba25c31f8008119ac55440797 (libosmocore)
    Change-Id: I8e52278c3abe9e9c8c848c2b1538bce443f68a43

commit 31b4729f2731c747b8b33c4646dd5ade2ace29bc
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-08-17 18:15:21 +0200

    Remove libosmo-legacy-mgcp and osmo-bsc-mgcp
    
    They are only used by openbsc.git programs and belong there.
    
    Change-Id: Id31bef052d3f9b8aada1824d6f7f995ebd39bbfd

commit a729db62a930b931775ce9fd99afe89f1d7066b7
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-28 16:20:51 +0200

    generate shorter 'I:' conn IDs
    
    Reduce the number of hex chars generated as Connection Identifier from 32 to 8.
    
    According to RFC3435 2.1.3.2 "Names of Connections", the maximum length is
    indeed 32 characters, but there isn't really a benefit of using IDs of that
    size. That, and:
    
    A specific SCCPlite MSC is seen to be able to store conn IDs of up to 8 hex
    characters of length. If given more than that, it will later send 'ffffffff' as
    ID, e.g. in the DLCX message, causing mismatches and rejected DLCX.
    
    Conn IDs need to be unique only within the context of one endpoint, so
    producing 32 characters of ID is far beyond overkill, especially if we
    currently expect exactly two IDs per endpoint.
    
    Notice that the maximum length of conn ID that can be handled by the message
    parsing and composition doesn't change, only the length that an osmo-mgw will
    generate upon CRCX does.
    
    Related: OS#3507
    Change-Id: Ia290c22a91fca0e5aa44515fca6df00064aff100

commit 5336f57f05cde9e83b4a671a78d61ffdfc8ce5a6
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 22:05:48 +0200

    fix mgcp_verify_ci(): off-by-one in max len check
    
    MGCP_CONN_ID_MAXLEN actually includes a terminating nul, so we need to compare
    strlen() against MGCP_CONN_ID_MAXLEN-1.
    
    Log the length if it is too long.
    
    Add MDCX_TOO_LONG_CI test to mgcp_test.c, testing a conn id of 33 characters.
    Before this patch, the test returns error code 515 meaning "not found", while
    now it returns 510 meaning "invalid", showing the off-by-one. Same is
    illustrated by the error log ("not found" before, "too long" now), but the
    error log is not verified by mgcp_test.c.
    
    Change-Id: I8d6cc96be252bb486e94f343a8c7cae641ff9429

commit eb72ff058fa4ae84b5e2d41f9973009647cf2a74
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 23:00:07 +0200

    mgcp_verify_ci(): return meaningful error codes
    
    Instead of just -1, return RFC3435 error codes that can be used to compose a
    FAIL message response. Note that the return value stays compatible in that it
    returns 0 on a valid Connection Identifier, nonzero otherwise.
    
    The idea is to be able to distinguish between "Conn ID not found" and "Conn ID
    invalid" in mgcp_test.c's expected output, in upcoming change
    I8d6cc96be252bb486e94f343a8c7cae641ff9429.
    
    Change-Id: Ifc17f2893cc4b9a865f3ffcb9888bbf1039337a6

commit 8a91d2c04e5294feed8279b380171331fdc379c6
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 22:51:30 +0200

    doc: fix mgcp_verify_ci() return val doc
    
    Match the '\returns' doc to the actual implementation.
    
    Change-Id: I6f89abd56ffcda8ba0276db1bc3381fa372e35a4

commit 55e0dcf254f2bb11f03b11ffc783e5a8e50082ab
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 21:36:56 +0200

    mgcp_common: rename to MGCP_CONN_ID_MAXLEN
    
    So far, MGCP_CONN_ID_LENGTH was often used as exactly the length of the
    Connection Identifier. To indicate this length as a maximum, introduce the
    MGCP_CONN_ID_MAXLEN and use it everywhere. Keep the old name as an alias.
    
    Change-Id: I1117003c7614e98535d5c201d002e459c01bdc3f

commit 23e7bf1c00fdeb41592c2131f7b7678631312c7a
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 21:26:22 +0200

    mgcp_client: error on too long conn id
    
    Instead of just silently truncating the conn ID if it is too long, rather
    verify its length and return an error where applicable.
    
    Adjust expected test output.
    
    Change-Id: If2a1aab1f13e771a6705c430e3c75bd42477a23b

commit 10d487e13f8f6c052107f2ce4ddc06a7f37b7860
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 21:13:01 +0200

    mgcp_client_test: test long conn_id
    
    Add a full length (32 characters according to spec) conn ID in a CRCX response,
    as well as a too long one.
    
    The too long one is currently silently truncated, a subsequent patch will
    improve on that (If2a1aab1f13e771a6705c430e3c75bd42477a23b).
    
    Change-Id: I5f2d52f086ea2d330fcce88a176488ace972bf79

commit 40f5033cf90ca0f9fc3f51c035efb5363e1a3cd2
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 21:12:48 +0200

    mgcp_client_test: also verify received conn_id
    
    Include the parsed conn_id in the response cb printout to verify them in
    mgcp_client_test.ok.
    
    Change-Id: I6b9b18d4d0867febd75a4d29f8a2fcdf0553ae4c

commit b1bb1fa18726a1ef2cbd8372a76055ca55e87a50
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 21:07:26 +0200

    mgcp_client_test: use "\r\n\r\n" instead of "\n\n"
    
    The separator between MGCP and SDP section is typically "\r\n\r\n". For some
    reason the test so far used "\n\n" instead, rather use the standard separator.
    
    Change-Id: I41c73722e5fae00663bcf96de0b57b7155809a06

commit 1d121483f6a8b1f1b738794eea118986fe116ff9
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-09-03 21:05:13 +0200

    mgcp_client_test: cosmetically re-arrange reply_to() args
    
    I want to test arbitrary length Conn IDs ('I:'), and hence don't want to pass
    the conn_id as int, but rather just include it in the message string. Prepare
    for that by eliminating the extra conn_id arg and just pass a params string.
    
    Change-Id: Ib2e718dda3aa1f6e9979dee823d973dd002e2318

commit 124441af1f43a4b2897167eb2cdf1e6fd75b9b55
Author: Harald Welte <laforge@gnumonks.org>
Date:   2018-08-06 11:16:56 +0200

    debian/rules: Don't overwrite .tarball-version
    
    The .tarball-version file should contain the *source version* uniquely
    identifying the git commit, and not the Debian package name.
    
    With https://gerrit.osmocom.org/#/c/osmo-ci/+/10343/ there is a correct
    .tarball-version file in the .tar.xz of the nightly source packages.
    
    Change-Id: I4bf7b6124c747a0cff5562187a099c33525e109e
    Related: OS#3449

commit b861db97ea7d3fb1587326845b7084754d70a5e1
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-28 16:19:25 +0200

    mgcp_test: fix get_conn_id_from_response() CI length
    
    This function is set on conn ID length of 32 characters. Make it detect a
    shorter length also when parsing 'o=-' headers. Before, this failed to
    recognize a space as the end of the conn ID, now sees any non-hex char as end.
    
    Related: OS#3507
    Change-Id: I762c273bac172acb6d0aae6ea6267603ab654cbf

commit 08e07046f9cfd14854a8f2cec4ed4f2d4ec477eb
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-28 16:22:14 +0200

    mgcp_test: fix log of conn_id presence
    
    Flip logic to accurately log whether an 'I:' is included, instead of logging
    the opposite.
    
    Note that it isn't possible to log the actual conn ID, because they are random
    and differ in every test run, which would collide with the fixed expected
    output file mgcp_test.ok.
    
    Change-Id: Idcd731b9daf618b97d8f7e6a776266071cd29e08

commit a5e0cf09a60ccea624d43789b21e203bc0aa7f03
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-29 14:33:01 +0200

    mgcp_client_fsm: switch to MGCP_CONN_RECV_SEND in add_audio()
    
    The change Ie51cc86e90ffeca5b66bcb8f6db0d389241abe57 has replaced the
    functions make_crcx_msg_bind() and make_crcx_msg_bind_connect() with
    make_crcx_msg() and add_audio(). When a bidirectional connection is
    needed, the user calls add_audio() to add the remaining connection
    details. Unfortunately add_audio() leaves the conn_mode struct member
    unchanged. Which means the connection is still at MGCP_CONN_RECV_ONLY,
    which will instruct the MGW not to forward any of the received packets.
    
    - Make sure that conn_mode is set to MGCP_CONN_RECV_SEND when
      add_audio() is called.
    
    Change-Id: Id12de37797de5af5cc447642d2fbb1af7de680df
    Closes: OS#3511

commit f2388eab716df6624473387755794b472baf4090
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-26 23:36:53 +0200

    X-Osmo-IGN: rather parse items by token, not char
    
    Adjust the X-Osmo-IGN parsing to use string tokens instead of parsing single
    characters.
    
    Reconsidering the first implementation as a poor choice, rather specify the
    format of X-Osmo-IGN as any-length string tokens separated by spaces, which is
    more flexible and more future proof.
    
    See also osmo-gsm-manuals If15a88c3b5b40fd1d24ad0f94f3231f678669ab1 which
    defines the X-Osmo-IGN format as string tokens, matching this patch.
    
    In mgcp_test, add an unknown X-Osmo-IGN item. Though the output is not checked
    by the testsuite.at, running manually shows the error log about the unkown
    X-Osmo-IGN item.
    
    Change-Id: Ia6fe5ead4b601931c1bf41b29fc1b237aac37d2c

commit 120865833c6ea2cf3536cf6af362e9aa1198b1fb
Author: Stefan Sperling <ssperling@sysmocom.de>
Date:   2018-06-26 15:26:28 +0200

    add VTY commands which show specific mgcp endpoints
    
    Add VTY commands "show mgcp endpoint NAME" and
    "show mgcp trunk <0-64> endpoint NAME" which
    show information about specific endpoints.
    
    Change-Id: I5330e697ec34bf215de91d44209048a8dc226d51
    Related: OS#2660

commit e6d8e91b3a316490a209196cf52f2e78b6a7120b
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-23 16:36:48 +0200

    add X-Osmo-IGN MGCP header to ignore CallID
    
    The format is
    
      CRCX ...
      C: ...
      M: ...
      X-Osmo-IGN: C
    
    So far the only ignorable element is C, i.e. the CallID. Any other items may be
    added in the future.
    
    (I initially intended to also add '@' to ignore the endpoint name's domain
    part, but in the osmo-mgw code base the domain part is verified long before any
    additional headers are even parsed, so sparing that refactoring for now.)
    
    The intention is that osmo-bsc will issue "X-Osmo-IGN: C" for all SCCPlite
    calls, because we are unable to retrieve the CallID that the MSC sends to
    osmo-mgw for the network side of the endpoint.
    
    Testing with a specific SCCPlite MSC, I actually observe that all CallIDs are
    1, even for concurrent calls. So, an alternative hacky solution would have been
    to always pass CallID == 1 for SCCPlite connections from osmo-bsc.
    
    Related: I257ad574d8060fef19afce9798bd8a5a7f8c99fe (osmo-bsc)
    Change-Id: Id7ae275ffde8ea9389270cfe3db087ee8db00b51

commit 475f868b7fc6a4f386e9f05834cbbb9b3ee74018
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-23 16:38:59 +0200

    cosmetic: drop code dup in mgcp_client_fsm.c CRCX
    
    Both make_crcx_msg_bind() and make_crcx_msg_bind_connect() were mostly
    identical. Rather, compose the CRCX bits in one common function and just add
    the audio bits in another.
    
    Prepares cosmetically for adding X-Osmo-IGN header.
    
    Change-Id: Ie51cc86e90ffeca5b66bcb8f6db0d389241abe57

commit 0063ca2fb04a785df0421965a5455520e193f769
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-07-23 18:12:16 +0200

    fix 3G hack: allow any IP for loopback and 0.0.0.0
    
    HACK: for IuUP, we want to reply with an IuUP Initialization ACK upon the first RTP
    message received. We currently hackishly accomplish that by putting the endpoint in
    loopback mode and patching over the looped back RTP message to make it look like an
    ack. We don't know the femto cell's IP address and port until the RAB Assignment
    Response is received, but the nano3G expects an IuUP Initialization Ack before it even
    sends the RAB Assignment Response. Hence, if the remote address is 0.0.0.0 and the
    MGCP port is in loopback mode, allow looping back the packet to any source.
    
    None of these are anything near nice, during call setup using a 3G femto cell,
    we still lack a proper IuUP handling. See OS#2459, OS#1937. This is merely a
    temporary hack to maintain 3G voice usability in a quick and dirty way.
    
    Related: OS#3411
    Change-Id: Ib25e6261855eae8ddb8d1c0b8838cc3e30332cf1

commit 610fda6108ff9886005dcdb9d4b2e2ddb9bace9c
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-21 00:03:48 +0200

    cosmetic: log: fix "CallIDs does not match"
    
    Change-Id: I16f3bf1312f913b7a7f0d9ff5c42efa645c6a5b3

commit 352eed09ae07497bf5a546756c2ea62696a36ff4
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-20 23:59:32 +0200

    interpret domain '*' as 'allow any domain'
    
    Make the 'domain NAME' vty doc more descriptive, and add the hint that '*'
    means any domain.
    
    In check_domain_name(), exit early in success if the configured domain name is
    '*'.
    
    (Do not implement other wildcard functionality for partial matches or the
    like, just the single '*'.)
    
    Related: OS#3490
    Change-Id: Ie0220c88d2f5cee15f2a90390b3c4590ac61d5eb

commit 0a89e92a5e03798831de506bc08092f21e84c5bf
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-08-20 22:39:53 +0200

    fix handling of "Wrong domain name" error
    
    If no endpoint was found, assert that the cause code indicates error, so that
    the remaining code path doesn't assume finding an endpoint was successful.
    
    Also fix find_endpoint() to return an error cause (not 0) in case it finds the
    domain name to be wrong.
    
    After this, the error described in OS#3488 simply results in a CRCX failure,
    not in a program crash.
    
    Related: OS#3488
    Change-Id: I87e2d76c22603d6fef89907c3cf8f7965abf35a0

commit dde80f3f615571dcfdf82eb5053579531749a6a1
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-08-16 15:10:42 +0200

    vty: Fix typo writing bts-jitter-buffer-delay-{min,max}
    
    Change-Id: I15ec1bd9e8d2241d29ef64cefe7ad4879ccdf898

commit 9a7ccc3746559777937a679efcc27ca8037bee23
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-09 11:41:19 +0200

    mgcp_client: check local port only once
    
    When the user has set a local port for the mgcp client we want the
    client to exit if this port is already occupied. If no port is set the
    IETF default port is configured automatically. When we find this port
    occupied we try up to 100 times the next port to find a useable port.
    
    Since the for loop that controls the attempts always sets the port
    config it uses for its checks it will mistakenly assume that the user
    has set a port on the second cycle.
    
    - Make sure we only check for the default port in the first cycle
    
    Change-Id: Ic1fd1018d68fcac94961321615bfdd726465532d

commit 910189d0a170fe8f647c78f17371139ba9cb93f5
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-02 17:45:42 +0200

    mgcp_sdp: restructure mgcp_write_response_sdp() (audio)
    
    The function mgcp_write_response_sdp() is responsible to write the
    audio port and the list with the supported payload type numbers to
    the sdp response. At the moment it can only write exactly one payload
    type number to the response, but in the future we may want to write
    several payload type numbers to the response. Lets add a function
    for that so that now.
    
    - add add_audio() helper function to add multiple payload type
      numbers, but keep the functionality as it is for now
    
    Change-Id: I662c725f697b2ffb1e3ad4671a445f943cd79b63
    Related: OS#3442

commit 8482e8374c484fda836485b3171b5a8a831aafcf
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-02 17:22:40 +0200

    mgcp_sdp: restructure mgcp_write_response_sdp() (rtpmap)
    
    The function mgcp_write_response_sdp() generates the rtpmap lines in the
    sdp response. Since we will likely support multiple codecs we will need
    to generate several rtpmap lines. Therefore it makes sense to split up
    that part in a separate function without altering the overall
    functionality (yet)
    
    - add static function add_rtpmap() to generate the rtpmap.
    
    Change-Id: I520e2d40fe6294c88bae63dfcbc5238ef98101e2
    Related: OS#3442

commit fee4fa94922266d6a1484b43a9b44651aa1165c4
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-03 12:24:20 +0200

    Cosmetic: remove misplaced line break
    
    Change-Id: I7eea5454cb0567a4a162fb9796f889b2daa21af7

commit 4dba769577092fbccb652be755583331a2aa9d86
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-03 12:20:52 +0200

    network: check packets before further processing
    
    When we receive a packet, we do not really check the contents. However,
    we should at least do some basic checks.
    
    - Check for short RTP packets
    - Check if the length field of RTCP packets seems plausible
    - Check if the packet type of RTCP packets makes sense (IANA)
    
    Change-Id: Id47b9eee2164c542e6b673db24974859dd0a7618
    Related: OS#3444

commit da895b115127007fcdcb73ee2fa059b5eaf4ef86
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-03 12:16:37 +0200

    network: do not patch PT of RTCP packets
    
    At the moment all packets that are sent with mgcp_send are fed into
    mgcp_patch_pt(). This functions corrects the payload type so that it
    matches the codec configuration on the egress side. However, this
    functions is only to be used with RTP packets and must not be used on
    RTCP packets, which we currently do because we do not check if the
    packet is RTCP or RTP.
    
    - Check if the packet is RTP before running mgcp_patch_pt()
    
    Change-Id: I55b8aa830e4e23f991373470bd04d4db12241c56
    Related: OS#3444

commit a74c0ea2db664316f755f322bd29fc8329156a38
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-02 11:59:09 +0200

    mgcp_test: release endpoints after use
    
    The test function test_multilple_codec() in mgcp_test.c creates a
    lot of connections, but it never releases them. Just freeing the
    cfg object is not enough since the UDP ports stay open and this
    may interfere with other tests that also create connections
    (port numbers).
    
    - Make sure all endpoints are released when test_multilple_codec()
      is done.
    
    Change-Id: Ic13b4368162149ec36c93f4188fa4c71166e08d5

commit 6a26c16eb04fdaf9a7f4d21b83502fa6d1c7ff4c
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-08-01 16:37:06 +0200

    mgcp_client: increment local port number when port is in use
    
    The IETF has designated port 2727 for call agents (clients). This
    works as long as only one call agent is running. As soon as two
    call agents (e.g. osmo-bsc and osmo-msc) run on the same machine.
    The port numbers will collide.
    
    To avoid such a situation we will first try the IETF port and if
    we fail to use it we increment the port number until we found a
    usable port. However, we should only do this if the user has not
    configured a non standard port. (The rationale behind this is that
    if there is a non standard port configured the choice must have
    been made conciously by the user and therefor we should fail hard
    so that the user gets aware of the problem.)
    
    Change-Id: Iaa5f41fdb43ec6bf4feaefa174fd82622e37d4d0
    Related: OS#2874

commit af8e00ffe84d01792b3d26f4b46046d5b39ce493
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-27 16:04:41 +0200

    mgcp_client: use IETF source port as for MGCP
    
    At the moment the mgcp client uses an arbitrary port as sourceport to
    exchange MGCP messages with the MGW. However, IETF has designated a
    specific port as sourceport for MGCP clients (Call agents), which is
    2727. See also RFC3435, capter 3.5 Transmission over UDP.
    
    - Change MGCP_CLIENT_LOCAL_PORT_DEFAULT from 0 to 2727
    
    Change-Id: I96de84df3a3bf623d98b057ec3f3f621a3330a8a
    Closes: OS#2874

commit 6931f9a7a4e0535922c57f4803f676492a1a8980
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-26 09:29:31 +0200

    mgcp_network: translate payload type numbers in RTP packets
    
    Since no transcoding is in place osmo-mgw forwards the incoming rtp
    packets as they are (there may be minor modifications of the header) from
    an ingress connection to an egress connection.
    
    This works without problems as long as both connections use the same
    payload type. For IANA defined fixed payload type numbers this is
    usually the case, but for dynemic payload type numbers both ends may set
    up the same codecs but with different payload type numbers.
    
    When different payload type numbers are set up, and the packet is passed
    through without modification, it will have the wrong payload type when
    it is sent. The receiving end may then toss the packet since it expects
    packets with the payload type it has configured.
    
    The machanism, which is introduced with this patch looks up actual codec
    inside the struct data of the ingress connection and then looks for the
    matching codec in the struct data of the egress connection. When it
    finds the codec there it looks up the payload type of this codec. The
    header of the RTP packet is then patched with the correct payoad type.
    
    - Add function mgcp_codec_pt_translate() to look up the payload type
    - Add unit-test for function mgcp_codec_pt_translate()
    - Add payload type translation to mgcp_network.c
    
    Change-Id: I3a874e59fa07bcc2a67c376cafa197360036f539
    Related: OS#2728
    Related: OS#3384

commit 544448abeac2c0feb7a2eed21256619fee7a08e4
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-26 11:37:44 +0200

    mgcp_client_fsm: allow ptmap in mgcp_client_fsm as well
    
    The regular version of the mgcp_client supports the configuration of of
    custom payload types. In case some corner cases require a specific
    dynamic paylod type number that is not according to 3GPP standards has
    to be used the user can override the standard settings. However the fsm
    based variant of the mgcp_client does not have that feature but it
    should have it as well.
    
    - add struct members for ptmap config.
    - pass configuration values down to the underlying magcp client.
    
    Change-Id: If176a3719dd9e888da16196d5fc0bdb53cc2a5f2
    Related: OS#2728
    Related: OS#3384

commit e547bdd1ce94f05893e1f9762fa68a28ce8b35c9
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-28 02:46:12 +0200

    configure: Find correct libgsm's gsm.h header
    
    Some distributions (archlinux) or versions of libgsm install gsm.h in
    /usr/include/gsm/gsm.h
    
    Since libgsm doesn't come with a pkfconfig, let's first check if gsm.h
    and take the correct path in the build setup.
    
    Change-Id: I07d3c03903e0d4bb80e843c7ed917a27b791ea53

commit d1562a77662599c24a2c738aa530c89cf2051849
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-27 19:23:34 +0200

    gitignore: Filter *.pc
    
    Change-Id: I1e4e9b7342b23b4ef460801d61b4dd9c2fdc6dab

commit 304b3eb32876cf69b202ee5688e00905fdb336f9
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-27 19:05:23 +0200

    Bump version: 1.3.0.34-9cd52-dirty → 1.4.0
    
    Change-Id: Ice736ca8016be5ed000c30014b955f4e0f77cb4e

commit 9cd523360939656fbebac6ca65882ec8694eaffc
Author: Daniel Willmann <dwillmann@sysmocom.de>
Date:   2018-07-24 17:51:58 +0200

    git-version-gen: Don't check for .git directory
    
    This check is not in all our repos that use git-version-gen. Indeed it
    seems to be a leftover of openbsc where I think it wanted to ensure
    being called in the openbsc subfolder or something? libosmocore e.g.
    doesn't have it.
    
    In any case .git being a directory is not always true (if using git
    worktree) so remove this check.
    
    Change-Id: I83b84099c34d593a8a384f001a8131c2a8085606

commit 35a382968c642522e83c54a65d36d0999d78cfe5
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-07-23 18:29:04 +0200

    IuUP hack: make RTP patching less general
    
    We currently still patch over an RTP message to make it look like an IuUP
    Initialization Ack specifically for the ip.access nano3G femto cell.
    
    Be more specific about it:
    
    - only patch over RTP in 'loopback' mode. osmo-msc specifically leaves the
      endpoint in loopback mode for this hack, so if we're not in 'loopback', then
      this hack is out of place.
    
    - only patch over RTP if the header indicates an IuUP Initialization (check for
      0xe4 byte).
    
    Change-Id: Ia9ec4debc138b34f6ca6a871a8778eafa6c0ba21

commit 7066af825acddcd6b4dcf7bf3074f00b454b3ae3
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date:   2018-07-23 18:28:36 +0200

    cosmetic: mgcp_network.c: merge one LOGPC to its preceding LOGP
    
    Change-Id: I4dde8a060ec77e1234a373d7501c7082ae4c5028

commit acc10353fedb536001512c913d6fe73a5882656f
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-19 18:07:57 +0200

    protocol: prevent unnecessary null pointer deref
    
    The function setup_rtp_processing() in mgcp_protocol.c executes a
    function pointer setup_rtp_processing_cb(). The function pointer
    gets two struct mgcp_rtp_end pointers as parameter. To get those
    parameters it has to dereference them from struct mgcp_conn_rtp
    pointers. The variable conn_src is such a struct pointer and there
    are conditions where this pointer may be NULL. The function at the
    function pointer should get the conn pointers directly instead of
    the dereferenced end (rtp) pointers. This also gives additional
    flexibility to the implementation behind the function pointer,
    which is not yet defined (the function pointer points always to
    a stub function since we donot support transcoding yet.
    
    - give conn pointers directly to setup_rtp_processing_cb() insed
      of dereferencing conn_src->end
    
    Change-Id: Id46e9bfba88613387026639eb4957221cce6820a
    Closes OS#3406

commit bca0ef6cd9ba916c67f4bc06a1a7c49ff41ba935
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-09 17:20:51 +0200

    stat+vty: fix printing of rate counter values
    
    When creating the mgcp statistics (DLCX) and also when printing
    values in the VTY. The printf placeholder %lu is used. However,
    this is not portable when the same code is compiled on a machine
    with different integer size (e.g. armv7).
    
    - Use PRIu64 when printing ->current value of the rate counters
    
    Change-Id: Ifb8944cec83868845f74ad84551eb090f812daf8

commit cede2a4b7c36acd3b49921e2a835fe0c4da4bc6f
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-03 14:14:21 +0200

    stats: replace packet statistic counters with libosmocore rate counters
    
    In struct mgcp_rtp_end one finds unsigned int counters. Those should
    be replaced with libosmocore rate counters
    
    - replace packets_rx, octets_rx, packets_tx, octets_tx and
      dropped_packets with libosmocore rate counters.
    
    Change-Id: I47c5c9006df5044e59ddebb895e62adb849d72d5
    Related: OS#2517

commit 337209a6ea00cb6c51e08d179fd24cadb2b0ba2b
Author: Philipp Maier <pmaier@sysmocom.de>
Date:   2018-07-03 09:39:29 +0200

    mgcp_internal: remove unused struct member
    
    The struct member rtp_process_data in struct mgcp_rtp_end is
    unused and should be removed
    
    - remove rtp_process_data
    
    Change-Id: I3a66d159ce32359621ff2e772ee3421340b78cd5

commit 56e0443e1c8056fa0c9a026e9f02c8e9fd53f1c1
Author: Pau Espin Pedrol <pespin@sysmocom.de>
Date:   2018-07-02 17:05:39 +0200

    gitignore: Add m4 scripts from m4 subdir
    
    Change-Id: I8da2a55e84bcc24cc5af00dc089630a18105c625

...