Remark: this commit is created as an attempt to keep PRO / CE sems repositories
consistent in terms of the provided code and functionality.
We need to have a possibility to detect emergency calls and let them
pass through the SEMS, even if the license limitation (CPSLimit) is triggered.
Also taking into account the global policy defined by the cfg parameter
'skip_cpslimit_emergency'.
If set to 'yes' (in the code will be treated as True)
then we do not drop emergency calls on CPSLimit triggering.
If set to 'no' - we treat emergency calls
as if they were usual calls in terms of checking CPSLimit license limitation.
Change-Id: I4ab1d2d0b7286b05e1fc2cf2a432fdfd220ca72f
We need to add a possibility to control (add/modify/delete) registrations
for SIP peerings using NGCP-panel. For that to work NGCP-panel uses XMLRPC
requests being sent towards SEMS, which in its turn takes care of work with:
- locally cached map structures:
* registrations / registrations_peers
* registration_ltags / registration_ltags_peers
* registration_timers / registration_timers_peers
- MySQL database (our scope of interest is 'sems_registrations')
- triggering events
Main amount of work is concentrated on interaction with map structures which keep
an actual information on registrations of either subscribers and peerings,
and less amount of work is related to the SQL side.
Basically, the main idea is to add an identifier, which will be used by
NGCP-panel when sending XMLRPC messages to SEMS, which will let SEMS know,
whether it's an event for a usual subscriber or a SIP peering.
Also we take care of loading time, when SEMS retrieves all previously saved data
from the DB using: peer / subscriber auth preferences and loads this to be usable.
A new query has been added for peering type, to let peerings be loadable after restart.
Change-Id: Id471a95ea3f7f57513e1f728ea48fb4b0543bde9
There are cases when calls coming to a subscriber of C5 CE,
is being challenged by this subscriber, the use case for that could be
if for e.g. we have a PBX/SBC connected to NGCP via subscriber's object.
Current implementation of SEMS works so, that in case parameters;
'enable_auth' and 'enable_aleg_auth' are set to value 'yes',
SEMS tries to pass the digest for the calling party.
This leads to the empty 'username' and wrong 'response' parameters of
the Proxy-Authorization header, eventually the Authorization process is failed.
This is to be changed, so in case 'u=', 'p=' and 'd=' have not been
previously sent by the Proxy (in 'P-App-Param:'), or rather they are empty, authentication should be transparent,
hence be processed by the calling side, with no interfer from SEMS into that.
Change-Id: I9bced848d27f8c23bd557609277d5127e7e8696a
Otherwise we're missing plenty of audio files in /usr/lib/ngcp-sems/audio/,
several plugins in /usr/lib/ngcp-sems/plug-in/, as well as a bunch of binaries:
* /usr/sbin/ngcp-sems-get-callproperties
* /usr/sbin/ngcp-sems-list-active-calls
* /usr/sbin/ngcp-sems-list-calls
* /usr/sbin/ngcp-sems-list-finished-calls
* /usr/sbin/ngcp-sems-sbc-get-activeprofile
* /usr/sbin/ngcp-sems-sbc-get-regex-map-names
* /usr/sbin/ngcp-sems-sbc-list-profiles
* /usr/sbin/ngcp-sems-sbc-load-callcontrol-modules
* /usr/sbin/ngcp-sems-sbc-load-profile
* /usr/sbin/ngcp-sems-sbc-reload-profile
* /usr/sbin/ngcp-sems-sbc-reload-profiles
* /usr/sbin/ngcp-sems-sbc-set-activeprofile
* /usr/sbin/ngcp-sems-sbc-set-regex-map
* /usr/sbin/ngcp-sems-sbc-teardown-call
* /usr/sbin/ngcp-sems-webconference-addparticipant
* /usr/sbin/ngcp-sems-webconference-roomcreate
* /usr/sbin/ngcp-sems-webconference-roominfo
This fixes a regression introduced in commit 1619876f76 (TT#101059).
Ported the python2 scripts we ship with our Debian package to python3
(AKA py3k), fixed inconsistent use of tabs and spaces in indentation
and indention in several files:
* apps/sbc/tools/sems-sbc-*
* apps/examples/db_announce/announcement.py
* apps/examples/py_sems_ex/*py
We're also not installing the *.pyc files (see
apps/ivr/Makefile.ivr_application +
apps/py_sems/Makefile.py_sems_application), they don't exist in py3k
builds and it wouldn't make any sense to ship them in Debian packages
anyway.
Change-Id: I1f2f23e90f8cc3d37b38cbd27ce865737406c1bf
- customer has a scenario when 180 has to_tag and call terminated by caller with BYE but calle did not get any call termination signalling.
- a bit more special for such cases BYE handling added.
Change-Id: If826a2ebf5c570bbf4e3cbe00a3ad27bffa6efef
This feature gives the user the ability to disable all active
call forwards (CFU, CFB, CFT, CFNA, CFS, CFR, CFO) by triggering
a VSC on the phone.
Additionally create function SW_VscDialog::deleteCF to group all
the common operations that are done to delete a CF.
Change-Id: I49f5ec6b23899768325db92ae023601922430f42
The --parallel option is already the default with debhelper >= 10, but
that does not apply to any overrides we use, which means we were not
honoring parallel builds there.
Change-Id: I3b50098aaf1461d3591989b2779b157562a23c97
It is unnecessary as '--parallel' should be the default with debhelper compat 10+
Thank you, Michael Prokop and Guillem Jover for noticing and pointing!
This reverts commit 937e2379ff.
Change-Id: I0aea58004e7b87966b642ccc993106b3c9594cc0
'*' - matches 0 or more characters
'?' - matches any one character
for more info, refer to <fnmatch.h>
Change-Id: Icbe450b7921d541fed089a1bb00c180e416c34ae
- "-E" which is enables debug mode, removed from unit files.
- not daemonize will be reached by changing sems config file options
Change-Id: I0778aa2b15c08cd9a85739283fb2355046f64d78
If an SDP UPDATE is received after the 183, but before the 200,
SEMS fails when it receive the final ACK. In fact SEMS tries to
find the SDP content inside the ACK message itself.
The solution is copied from sems-pbx module where the issue
doesn't happen.
Change-Id: Ib9402071c44afa032a45f97e2acd30629e7bc89b
The current problem is massive services restart on: systemctl restart glusterd.service
which is not really necessary on NGCP.
Use 'Wants' instead of 'Requires' so dependent services aren't
restarted on restart of remote-fs.target.
Change-Id: I512fdc7ae83efb10cc442da12e72d4b902dba96c
Is service B "Requires" service A to be started before B
and B does NOT require B restart on A restart, B should use "Wants=A".
Convert Wants=network-online.target to After=network-online.target
to be identical for all other NGCP services. IMHO sems should be
restarted if networking got restarted (listen new IP's, etc).
Also sort them alphabetically.
Change-Id: I2e239eec2c33a90f150fe2773566f671cbd2483a
Otherwise it refuses to stop, until it reaches the timeout.
Confirmed that it's OK to kill in this way, and waiting for implementation
changes so this is not necessary.
Change-Id: I34fc0b017b17779e8a15e031bf78960bbca2ada7
This service requires write access to redis, and relies on redis-master
to setup Redis in that mode. If we switch the redis master/slave roles
while SEMS is still running, or while we are trying to shut it down,
it gets very confused and takes very long to realize and shutdown.
So we should always make sure that redis-master is running before we
start sems, and stop sems before we stop redis-master.
Change-Id: Iaa43186230df6ab8365c94585192fbb6db2652cc