POC sends us back a 404 for a SIP phone that
is not currently registered. This is not an
"Unassigned Number", but rather "temporarily unavailable"
so send USER_NOTRESPOND to MNCC for 404.
Change-Id: Id67f2709fc16d614ad07db348f91a8f89627a9a0
Add NULL checks on the return value of call_leg_other() in
update_rtp()
If the remote side has requested media change and we cannot
find the other leg, then release call. This should not
happen.
Also, Add an assert to show that we cannot be here
without call type of SIP or MNCC (not related to coverity)
Fixes: CID#202863
Change-Id: I6f1f26533a25c93f243090bc02f1bc83b9108d42
Use of osmo_mncc_name() requires libosmocore 0.12.0
Use of gsm48_cc_cause_name() requires libosmocore 1.0.0
Change-Id: I466140a9c1e05c191fe1b079cf3615fd6ac5fb8c
Up to now most logging is on LDEBUG, lets make more use of Log Levels.
reserve NOTICE for unusual events
INFO: normal call setup/teardown
DEBUG, well.. it's DEBUG
* BYE is not an Error.
* 4XX or 5XX response to INVITE is not an Error don't log as such.
* 183 does not necessarily mean "ringing".
Change those log messages for clarity.
Change-Id: Ie0014043d93303a87cbb8bb351e439ff78651cbe
Also removes a comment in sdp_create_file() about the
IP address in o= and c= having to be the same.
It is completely legal in SDP and often normal for the
originator and the connection information IP to be different.
Change-Id: I057573467c335fc27ead391c0bb4c775f2f6ba0a
Fixes a bug I introduced in 5f73c2033b
where we would not call mncc_call_leg_connect() on receiving 200 from
SIP side, and therefore never send MNCC_SETUP_RSP to the MS
Fixes: 5f73c2033b
Change-Id: Ic7cc56c0d68a27eb1229c0c4aa1fa54d00b660b6
As far as I can make out, the intention is to always store ip address in the call struct
in network byte order, whereas the ip address sent on MNCC are in host byte order.
Change-Id: I89ef26aa32a672f394699251cf560b53ae01a814
Since March 15th 2017, libosmocore API logging_vty_add_cmds() had its
parameter removed (c65c5b4ea075ef6cef11fff9442ae0b15c1d6af7). However,
definition in C file doesn't contain "(void)", which means number of
parameters is undefined and thus compiler doesn't complain. Let's remove
parameters from all callers before enforcing "(void)" on it.
API osmo_stats_vty_add_cmds never had a param list but has seem problem
(no "void"), so some users decided to pass a parameter to it.
Change-Id: Ie519d4a4064a95803c33fd6969b53e1ef27045b7
Related: OS#4138
Do not send an MNCC_RTP_CONNECT as a result of a SIP re-INVITE,
unless the media connection information has changed.
Change-Id: I7c48300092a309e50a8fe091b30e395e7c72de9d
Handle MO hold and retrieve and pass this to the SIP side.
Handle the 200 from the SIP side in response to our HOLD-ing re-INVITE.
With this commit we now handle MO hold and therefore also handle
call-waiting and swapping.
Change-Id: Ife7bdab20cde92b7ce550215bab28b36a0f302e9
Add function pointers to the call_leg struct for call hold and retrieve.
Add function to send re-INVITE to SIP side when MNCC side puts call on HOLD/RETRIEVES.
Add MNCC/SIP CC_HOLD to call states.
Change-Id: I2595626dfa50eb2f8e29a02540b708c9c1dce88c
SIP end points can send periodic re-INVITES. Previous to this commit,
the osmo-sip-connector would send a new call SETUP to the MSC for each
re-INVITE.
Add a function to find if we already handle this call based on the nua handle.
Use this function to detect and respond with an ACK to re-INVITES.
Add a function to extract the media mode from the SDP.
In the case the re-INVITE has a=sendonly (HOLD) respond with a=recvonly
In the case that the re-INVITE changes the media connection ip/port,
forward this to the MNCC side with an MNCC_RTP_CONNECT
Change-Id: I4083ed50d0cf1b302b80354fe0c2b73fc6e14fed
This enables call hold implemented by subsequent commits
Prior to this commit, osmo-sip-connector would not send
any media mode attribute in the sdp. After this commit
we will by default always include a=sendrecv.
Given that a media mode attribute of "sendrecv" is default
and implicit it its absense, this does not represent any
functional change.
Change-Id: Ib4212d0174955042e7d80d3744ce632a4942ccb2
osmo-config-merge expects only one space indentation for each level and
the VTY also outputs the config formatted like that.
Change-Id: I9c7a5bc6b3eae955288dada80abc856779ca9336
In case we receive MNCC_RTP_CREATE after MNCC_DISC_IND,
check if the call is already marked in_release
and if so, send MNCC_REJ_REQ and do not proceed with
the B leg.
Related: OS#3518
Change-Id: I0eca9a741f7924c2fc32c503dd1a0fc083f94f37
LCR supports emergency calling by sending the string 'emergency' as callee to
the SIP side.
This does the same
Change-Id: I5d0adb61dfa82e7ded5f41d9bc773d546112c9f1
When the SIP call source contains + as first character,
set the TON to International so that the MS displays
caller ID correctly
Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe
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: I4cf9d3c21f3912eac3c51bae1ac7b2ad0845c947
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: I6aadee1ab05b4caec0857e476190db7b83c85984
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: I1317131ed6765fec996344fc6ed08350187b615b
osmo-sip-connector does not yet support full DTMF support. The current
implementation only supports DTMF tones to be send from MNCC to SIP,
but not in the opposite direction.
Change-Id: I578e50b0a42d88b05cf6da80443b71494b5eb26f
Related: OS#2777
Add --enable-sanitize to ./configure, as a copy-paste from libosmocore.
When building libosmocore with --enable-sanitize, osmo-sip-connector cannot be
linked if it doesn't include asan as well.
This is particularly annoying to me when using sanitize.opts in osmo-dev. I'd
have to turn off *all* asan everywhere just to include the osmo-sip-connector
dep that was recently added.
Change-Id: I18761802db2f29d9f0c7f269197d5b5e191142c5
Display a table with one row per call (instead of two lines per call),
and display the phone numbers of the people making the calls instead of
internal IDs. This should make the VTY command friendlier for end users,
especially if they have bigger networks. There is still the 'show calls'
command with all the verbose output.
Example output:
OsmoSIPcon> show calls summary
No active calls.
OsmoSIPcon> show calls summary
ID From To State
----- -------------------------------- -------------------------------- ----------
5001 101 100 PROCEEDING
OsmoSIPcon> show calls summary
ID From To State
----- -------------------------------- -------------------------------- ----------
5001 101 100 CONNECTED
Relates: OS#1680
Change-Id: I2092d58d80a34e6083f618593b92bb9e838aa906
For OpenBSC it made sense to have a /tmp/bsc_mncc file to share for
external MNCC, but now that we have an MSC osmo-sip-connector
communicates with that, so rename the socket file to avoid confusion.
Change-Id: I5e0dbf1aafe1b9c3776c49a08a76d64dd4fe9cc5
Use osmo_mncc_name() in timer functions and in logging
the type of MNCC message sent to the socket.
Change-Id: Ic77e0d86c91c29ff7304e620fdecb69b22127d33