Try to match up the peer_auth_realm with peer's ip or host, and if
found, check for outbound_socket of this peer and use it as contact
if found.
Change-Id: I428c408d6f3b0796fab2306cc129478806ac9bd3
* enables a filter for calls that were initated or received
by the specified subscriber/custoemr
* set direction for internal subscriber calls to "out"
Change-Id: I2f3b543b57352f92dc5a67bc82779cf371b6f23c
from perl core documentation:
> $& returns the entire matched string.
> (At one point $0 did also, but now it returns the name of the program.)
Change-Id: Ia884ac758c91da7e365f609c2d5f0dbe784e763b
* Add dispatcher reload helper in peer utils
* Handle probe flag for peer hosts
* Reload dispatcher on proxies on peer host change
* Reworked kamailio cache reload to perform it after commit,
otherwise kamailio won't see the changes yet!
Change-Id: I9a53854b4a42c97a2889c63f8bf2c878c6f48a2d
- mask (anonymise) the caller if source_clir is enabled and the auth
role is non-admin, and the call is not inside the same customer
- if source_cli is "anonymous" try to use source_user@source_domain
as the caller and in case if the "domain part" is used check and
mask it if the auth user is non-admin
Change-Id: I835679ed7a2a0c070542fbd9a625fed7ffe2d71f
Also take into account latin1 characters when calculating number
of parts for billing, because SMS uses some special derivation of
latin-1 and can therefore encode certain chars without the use of
UTF-8.
Change-Id: Ia7f02a3cf96040e5ad23da9037d05422beecea74
OR-part must go into parantheses, otherwise $c->user is called
on an undefined $c if $c is not passed in.
Change-Id: Iebc07eb19ae306c61fbcfd39f35325b3c69d2bc4
Admins can use this to generate a new ssl client certificate package
in ZIP format containing a PEM and a P12 cert, the same way you can
do it on the admin panel.
Admins can generate that for themselves in all cases, or for others
if they are master or superuser. If role is reseller, then masters
can only do this within their own reseller.
Change-Id: I32d5c1b5af5324d1c80b34bacecd7f2665cd91c7
Took the Utils/SOAP.pm from ossbss Backend.pm and adapted
for ngcp-panel usage to properly type the response elements
in accordance to the WSDL.
Change-Id: I8d8011b5ff256c65469a006d4e0c76467a2325a5
For the migration of the admin pwd, the logic is as follows:
1. If the admin has a bcrypt password already, use this
2. If not, perform auth via md5, then clear the md5 column
and write a salted bcrypt hash instead.
For dropping the ssl client cert, we simply not store anymore
the client certificate in the DB. As a result, you cannot
download the certs (pem, p12) after creation anymore, so
we immediately download the two certs in a zip file after
creation.
A cost of 13 takes 500ms on an i7-5500U CPU @ 2.40GHz, which
seems to be a reasonable value.
Change-Id: I1ce21321c58d8c57d7ddce1541995f64821b0053
Except for greek characters, which are available in the
GSM 03.38 encoding but not in latin-1, all other latin-1
characters can be sent with coding 0 (7bit).
We neither support the € sign available in the GSM extended
encoding, but for unknown reasons the rest of the extended
char sets (which are part of ascii anways) do work.
So, no € and no greek chars inside coding=0.
Change-Id: Ia87e337772e126b6a0a95b53acba0a369b71e660
ngcp-panel fails to start up on Debian/stretch based systems:
| ngcp-panel[1471]: Starting NGCP-Panel Webapp:Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/(?:{\s*)?<!--{ <-- HERE |}-->(?:\s*})?/ at /usr/share/perl5/NGCP/Panel/Utils/InvoiceTemplate.pm line 105, <DATA> line 1.
| ngcp-panel[1471]: Compilation failed in require at /usr/share/perl5/NGCP/Panel/Controller/Pbx.pm line 9, <DATA> line 1.
| ngcp-panel[1471]: BEGIN failed--compilation aborted at /usr/share/perl5/NGCP/Panel/Controller/Pbx.pm line 9, <DATA> line 1.
| ngcp-panel[1471]: Compilation failed in require at /usr/share/perl5/Catalyst/Utils.pm line 309, <DATA> line 1.
| ngcp-panel[1471]: Compilation failed in require at /usr/share/perl5/Module/Runtime.pm line 317, <DATA> line 1. at /usr/share/ngcp-panel/ngcp_panel_fastcgi.pl line 4.
| ngcp-panel[1471]: error ... failed!
| ngcp-panel[1471]: failed!
Minimal example:
% perl -E 'm/foo{x}bar/'
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/foo{ <-- HERE x}bar/ at -e line 1.
% perl -E 'm/foo\{x\}bar/'
%
This is new behavior as of Perl 5.22 (and we've Perl v5.24.1 on
Debian/stretch), quoting
http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#New_Warnings:
| Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%s/
|
| (D deprecated, regexp) You used a literal "{" character in a regular expression pattern.
| You should change to use "\{" instead, because a future version of Perl (tentatively v5.26)
| will consider this to be a syntax error. If the pattern delimiters are also braces, any
| matching right brace ("}") should also be escaped to avoid confusing the parser, for example,
|
| qr{abc\{def\}ghi}
Change-Id: I6192b723bb7a0f95b64b6b01ba75988021dc22a6
In GSM encoding for ascii-only messages, we can have 160 chars in
a single message, or 153 chars each for multi-part messages.
In UTF8, it's 70 and 67, respectively.
Change-Id: I50d95f9d0335b42457238234a4fd552401c8fb26
+ as resellers always are only terminated but not deleted,
interceptions never got dropped.
+ its not possible to remove existing interceptions once
a reseller is terminated, so delete them when terminating
the reseller.
Change-Id: I30f829b0e5a4ce48946e9ce54274715a35ffee71
With this change, calls which have the same customer for source
and destination will be shown with direction "out" when only
filtered by customer.
This makes it easier to as postprocessing change the type to
"call" only when the direction is "in" (see ticket)
Change-Id: I2370bd2192c6cee6c01c89a8b78de5791cb72196
in scenario 3 it is unclear, whether the correct direction should be "in" or
"out". The benefit of setting it to out would be, that it would make call type
modifications easier (see ticket).
Change-Id: I40557b2675c750362c4cd6ff63810e0157510463
-introduce deferred event record insertion, to span across
update_subscriber_number and update_subadmin_sub_aliases
calls by handing over a snapshot of aliases before number
edit operations
-the snapshot is used to persist first_non_primary_alias_before
event values
-it also is the preparation to derive number change events
apart from that, the following was noticed:
-fix: start_huntgroup was generated twice
-fix: when terminating a subs, the order of end events was
not the reverse order of start_events
-POST /api/subscribers does not consider pbx alais selection
of pilot pool aliases, while terminating the susbcriber does
move back alaises to the pilot pool.
Change-Id: I092f4a21bed25503f48c47c253f1cae0729f43da
+preference-style 1:1 association api resource will
list all existing customer contracts
+avoiding get_customer_rs for performance reasons
+PUT/PATCH only, no POST/DELETE
Change-Id: If3b00c6cde07bf030e8bfc308e5e29d3251bdedd
If pcc is enabled for a subscriber, don't forward sms immediately,
rather than mark for forwarding and let the API forward it on
incoming request.
Change-Id: I75104266a1c1fccc7165af9ba65b31f085d7081f
Used to notify NGCP about pending calls and sms.
* /partycallcontrols is for handling incoming
call control requests from external API sources
Change-Id: I4d886f941f19f659017e32504fdb10e8ae02ba8b
we store it as is. but in order to preserve all information on callforwards,
we send those messages with the same coding as we receive them.
Change-Id: I3f72db4e19291aa2fb54d7aac000f88ad1874295
+ api/events resource
+ removing an autoattendant via /api/callforwards: events OK
+ removing an autoattendant via /api/cfdestiantions: OK
+ removing an autoattendant via /api/cfmappings: OK
Change-Id: I4c309753b9338582479dba9951f757bb2ecaad7e
* add a helper module Utils/DeviceFirmware.pm
* device firmware data upload internally splits
the data into 10MB chunks and upload it into
the new autoprov_firmwares_data table
* NGCP::Panel::Utils::insert_firmware_data()
* NGCP::Panel::Utils::download_firmware_data()
Change-Id: I91b2ae3d5b6c2d34c9d540ad816bb7549b4543cb
* webfax numbers representation is now handled by
NGCP::Utils::Fax::process_fax_journal_item
similar to process_cdr_item
* process_fax_journal_item supports pbx_entensions
and rewrite_rules in similar to process_cdr_item
Change-Id: I2457f35d96f478274f77a66729414330ffc01641
+1. terminate if terminated contracts or subscribers exists
+2. if active contracts or subscribers -> error
+3. delete otherwise
+customer contact api DELETE
+customer contact testcases
+customer api POST
+customer api PUT/PATCH
+system contact api DELETE
+system contact testcases
+contract api POST
+contract api PUT/PATCH
+panel UI contact delete
+panel UI contract create
no change panel UI contract update
+panel UI customer create
no change panel UI customer update
note contact links like customers.omm_contact or customers.tech_contact
are not considered.
Change-Id: I19ea6e2245282485cc30d3e92d17a2eb603e0c2d
-undo unique lnp_numbers: undo misleading unique keys
-retain lnp_provider delete cascade restriction
-api: wire lnp_numbers_actual
-lnpnumbers collection pagination request takes several
seconds (up to tens of for 200k lnp numbers), too slow
especially for GET /api/lnpnumbers/?number=.. lookups
-query param is properly injected into the virtual view
sql query, so the lookup is fast now.
-panel UI custom datatable filter to switch between
complete history (all records) and actual portings
-"terminate" lnp number: DELETE /api/lnpnumbers/?number=x
+special use-case for melita's crm
+all empty or future "end" timestamps of records
are set to now(), so a subsequent listing shows no
records any more.
-number parameter is forced, other collection query params
are currently not supported for DELETE
Change-Id: I7b69d16a2d4f38ea84fc1cc0b407fa67e0f5ef8b
* the (terminated) prefix is shown for the 'other_cli'
only if the 'other_cli' has
the same contract_id as the 'own_cli'
Change-Id: I0b41c82164ff225001de1641bbe381544372473e
- use the caller domain part in subscriber and peering lookups
- allowed_cli is checked after inbound rewrite rules
- peering lookup also requires a 3rd argument "prefix"
that matches the number and caller and callee are
expected to be uri.
Change-Id: I57e3ca01fc1bfa7dcddda90ed4176176713f6d2d
Auto-detect CSV separator (requested by customer).
Move reseller id out of CSV into form/api-param.
Fix empty prefix to store as NULL instead of empty string.
Change-Id: Id6776d3cddb6bc1745a23a79e9f590ef934608aa