+all the contact's fields are exported to javascript
side. a custom renderer could also be used to display
a tooltip with all the contact's fields.
Change-Id: Icadcb07701d13ad4a619f429b9245f203d79b051
If set and a call is done within a pbx customer, the call is blocked
in blacklist, and is allowed in whitelist.
Change-Id: Ib43e5a45525a69e2b9dd9537dabddf10dfc006d1
- 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
values is the correct datastructure to be used to update the db
when using HTML::Formhandler. the reason is, it does de-/inflation
such as trim, which removes whitespaces at the beginning and end.
Change-Id: I5570e64b69fd9e8ed1bbbbc9cd880a381ac3cf68
Also call agent request in the update_item method, to make it more safe.
And added lost transaction commit
Fix 500 response for the incorret x3_port input
Change-Id: Ic538ffdd4d7fff833ba5395934a1b2bc6cf71664
The codebase does not use autodie directly, it does indirectly via
Sipwise::Base, and the autodie module is part of the standard perl
distribution anyway. TryCatch is imported via Sipwise::Base, and
that depends on it. The rest are not used anymore in the codebase.
Change-Id: Ic08e246cc60d7d151381dff39e0eba517a492e06
which implies, among others, strict and warnings. these should never
be omitted and are one of the most frequent complaints of perlcritic
currently.
as a result TryCatch can be removed (imported by Sipwise::Base).
also, "no Moose" is removed (has no effect).
Change-Id: I901b6a9f0f6d426f62b73e68f2c5ad6365c1eeef
by using a relative target url (without the host part) we make sure,
that when logging in as an admin we don't get redirected to a subscriber
page or vice versa. also simplifying the login controller a bit.
Change-Id: Ib9f0cdf7c687b711f8b357816e17a175efdfd1fe
format is
<external_documentation>
<link>
name Google
url http://elgoog.im/
</link>
<link>
name Sipwise Website
url https://sipwise.com/
</link>
</external_documentation>
Change-Id: Id9283f1df5fb5933fa6523cbf2f01a458fa21475
using (de|en)code_base64url because the callid can contain a lot of characters,
which are invalid in a url including forward slash and questionmark.
see https://tools.ietf.org/html/rfc3261#section-25
Change-Id: I9818e0e06e251c3f58a8b26e46973176162103c1
+prohibit deletion of lnp providers if numbers are
still linked to it
+number+provider must be unique
+fixed other panel lnp page validation checks
+db constraints to stand concurrent inserts/updates
+fixup all txn_do die() calls in panel to properly
display the error
+bulk upload checks by db constraints
+lnp api testcase
Change-Id: I872b19f50d96e6c39c7fd5728b2a16555a397236
Authoritative is rejecting call with 404 if number is not assigned
to local subscriber.
Skip Rewrite is skipping lnp rewrite rules.
Change-Id: I106df797a0b6530b4aaa0fc25ce54d3a459cbd97
a map used by the profile_edit logic mistakenly used
voip_subscriber_profile_attributes.id
as keys instead of
voip_preferences.id
keys.
so editing a subscriber profile seems to drop arbitrary
voip_usr_preferences values (and also cf mappings),
even when just changing the profile's name.
in addition, the resseller_edit config option is made
working as expected.
Change-Id: I75a60ee3e1e3889bdb16ccc0fa7d5661305f351c
in line with the web-login, a domain can be specified or defaults to
the request host.
because validating the format "username@domain" is not supported natively
by the catalyst HTTP auth plugin, the domain is checked manually at the
appropriate place.
Change-Id: Ifcc86234bc27598244788d1b4b07c2611c2e593b
this is neccessary to support multiple threads
plus remove the "handle" indirection
plus remove Moo - OO has no advantage here
Change-Id: I1c0657fd454c5dc2001404920abfadd01aa0a953
drop "inversion of control" loading them
this way we can remove MooseX::Object::Pluggable completely, which did
a filesystem search on _every_ panel page called.
Change-Id: If22dbb1a5a2ab24dee7af68a0085072ab1b2b855
using a direct relation to the required widgets instead of MooseX::Object::Pluggable
this also means additional widgets can easily enabled/disabled by the platform admin
in a next step, we can also refactor topmenu widget, to remove this completely
Change-Id: I890b47edc68b6d1df259d71075bda3c04045871e
Switch from the discouraged base module to the light-weight parent module.
Also remove some surrounding BEGIN blocks from 'use parent' which are
completely unnecessary.
Change-Id: I3a669e8024f098819be45030ca9d1afa8756105c
If we have a 20M lnp file to upload, putting everything into the
numbers array is killing the fcgi process on low-mem machines.
Make sure to write each 2k chunk to DB and clear the array
afterwards.
Change-Id: I857be5d6a0195607b1fcb86db3327a9fd10ce5f1
Make LNP number params optional.
Fix clearing optional LNP number params.
Fix rewrite rule inflation, deflation and validation (doesn't seem
related to the lnp rwr changes, just started to not work anymore?).
Change-Id: If2278ad6dceacb84facd0397388ee2895b120b00
by choosing "stable" (about 1m30s) or "fast" (about 30s) as second
argument of testrunner, only tests are run, which are currently
succeeding on a plain trunk vm using docker. (times are on my machine)
I hope we can in this way re-enable them on nightlies (or even in gerrit)
so that devs have some better feedback on the impact of our changes.
Current status of tests (in trunk):
| Problems:
| api-callforwards.t
| api-balanceintervals.t
| api-faxes.t
| api-journals.t
|
| Fixed:
| api-all-links.t
| api-contracts.t
| api-customercontacts.t
| api-customers.t
| api-rewriterulesets.t
| api-root.t
|
| Working:
| api-billingfees.t
| api-billingnetworks.t
| api-billingprofiles.t
| api-billingzones.t
| api-calllists.t
| api-calls.t
| api-cert-auth.t
| api-cfdestinationsets.t
| api-ncoslevels.t
| api-pbxdevicemodels.t
| api-pbxdevices.t
| api-peeringgroups.t
| api-peeringrules.t
| api-peeringservers.t
| api-preferences.t
| api-profilepackages.t
| api-resellers.t
| api-rewriterules.t
| api-soundsets.t
| api-subscriberregistrations.t
| api-subscribers.t
| api-systemcontacts.t
| api-threads.t
| api-topuplogs.t
| api-trustedsources.t
| api-valid-patch.t
| api-vouchers.t
Change-Id: I74e672d9dc6bcccfd3ace2fe233dbcf325c6fc4d
Currently I only need to fetch a collection and create a new item
within the collection, no need for update/delete an existing one.
Thus, no AdminsItem.pm yet.
Since we're exposing field names now, rename md5pass to password.
Change-Id: I571a340f89560bc456147b0ec27d3ae737e6dbc3
+dashboard uses a similar query for the survey
info visible to subscribers, which should now
load faster as well.
+the filter dropdown select+update table was
generally not working properly (MT#17323):
-fnFilter() does net necesarily trigger new
ajax requests, but searches in clientside
table store. the list stays empty, if there
is no direction column present, to match
"in" or "out" literals.
-using sSearch for specifying in/out filter
disallows to enter other search params in
text search field.
+union all now also used for the api
subscriber_id filter
Change-Id: Ia777504b9ade7acb34c66cb899f366ce029c905f
+input validation for verlapping time ranges
for both weekdays and special. can be disabled.
+root entiy locking
+peektime special is growing and not paginated,
so PUT/PATCH will get slower if special peektimes
are added on a regular basis. they can be removed
using the UI however
+testcase to check overlap detection
Change-Id: I935d943078ab5c81263da88ecd04e004deb26c8b
creating and deleting the entities users and networks
via the rtc api, when a reseller is created or modified
Change-Id: I2e9c785cacec680d1b22827983abca6037cdee3b
HDV130 only supports HTTP download of firmware, provide a
template var for config templates as firmware.booturl.
Change-Id: Ia7be98867849489de9beab67acdf7615ec99f42d
CAUTION: uses some optimized bulk-insert and truncate mechanisms
bypassing DBIC to make it reasonably fast (1M rows up in ~20s).
Optimized CSV download also to use partial writes to avoid
gateway timeouts on huge files.
Allows to handle LNP carriers in /api/lnpcarriers/.
Allows to handle LNP numbers and batch uploads in /api/lnpnumbers/.
Change-Id: I2f659bf5ee53270bedd3bb416a011bddc558b9ae
On X1 requests, properly update the configured agents on the cluster.
Currently we only throw an error if no agents are configured at all,
but let it slip through if the actual requests are failing, as they
might be down or failing.
Change-Id: I0f4e021a5cc4ba6a30e30bb197ed20d4504797d8
calls of subscribers of the same contract (inter-pbx?)
should not appear in "in" calls when using "customer_id" filter.
Change-Id: I9380a171c200f87601ae2d047460d3de278e20e9
that commit had introduced a couple of syntax errors:
Global symbol "$sub" requires explicit package name at /usr/share/perl5/NGCP/Panel/Controller/Device.pm line 1610.
Global symbol "$sub" requires explicit package name at /usr/share/perl5/NGCP/Panel/Controller/Device.pm line 1615.
Global symbol "$sub" requires explicit package name at /usr/share/perl5/NGCP/Panel/Controller/Device.pm line 1619.
Global symbol "$sub" requires explicit package name at /usr/share/perl5/NGCP/Panel/Controller/Device.pm line 1622.
Change-Id: Ie8d31fdaa60da18f73daba4983fe54ea427a9f9a
+subscriber instead of source_subscriber typo fixed
+rudimentary test case to see if the filter works
+fixed in/out direction filter testcase: sum of in and
out calls should be >= total count of calls
Change-Id: Ibe4b8153f023c53bb463626ad9e6613992fc101d
+fix for profile package "initial balance" default value
+fix for clearing the reseller id when editing billing profiles (related to MT#15399)
Change-Id: I53954dd12061fa5ebc4bde7c1769a502e6f862fe
Fix faxserversettings PUT/PATCH processing found after faxes tests run
MT#15441 Tests for subscriber number changes
MT#12347 Test framework small fixes and additions
Some format changes and unused library removals
Add put_and_get method as common
Replace request_get & check 200 with check_item_get
Changes for API that doesn't return created object json after POST
Complete base_uri using replacement with normalize_uri
Change-Id: Ia31a97eb9511f1ca1de63c72bcbe380b89dfed34
any *attempt* of a top-up request should be
logged.
+create top-up log records for api
in order to record failed top-up requests as well,
the somewhat tricky thing is to have two
separate transactions here
+propery casting of topup request json field
values to numbers etc., so the transaction for
creating the log entry cannot fail and e.g.
requests with subscriber_id='blah' are recorded
correctly
+new "request_token" parameter for /api/topupvoucher
and /api/topupcash, to identify and filter for
particular requests.
+topup log api resource
+topup log api tests
+fix to correctly reject used vouchers
+topup log panel UI
+fix for balanceintervals.t threaded tests
Change-Id: I86eb845f6173803705b12cc7e5cdbac9a3153a0a
in short: whenever the contract_balances "cash_balance" is
about to decrease, it might drop below thresholds defined
by a contract's profile package. in that case, subscribers
are to be locked and/or underrun billing profile sets are
to be applied. this commit also contains some minor fixes:
+when creating/editing profile packages, all billing
profiles of initial, topup, underrun sets must show the
same interval_free_cash and interval_free_time values.
there was also a problem with adding profile sets to
packages that use profile with prepaid = 1 (see ticket
14301)
+when editing packages using the panel UI, the validation
was not properly invoked (!) +the frequency of topups has
to be limited to 1 per second.
+updating the "lock" subscriber prior to editing or viewing
it in the panel UI was added.
+topup cash and topup voucher panel UI added
+when aquiring multiple contract row locks at once, no
joined tables are used any mure. the number of row locks
is therefore minimal now (see ticket 14903)
+rework of updating prepaid subscriber preference
Change-Id: Ideb0fec2404ca10b3ac5d8735f53620d0c3a24ed
MT#14779 Add default value for the q parameter
MT#14891 Consider form validation for the POST request (create location)
MT#14789 Remove user_agent registration parameter
Change-Id: I9f81ec3ec5c308c731b3dfe6aa5f075c7d7b50ab
formerly, the contract_balance catchup (and resize) procedures
used contracts.modified_timestamp, whose value was intended to
be set explicitly upon update operations.
it turns out that mysql ON UPDATE current_timestamp columns
effectively ignore the explicit timestamp value, unless it
exactly matches the old timestamp value.
while this is not an issue for the logic in production usage,
this seems to be the reason why the api-balance_intervals.t test
fails occassionally with its time-warp cases.
Change-Id: I504dd98548b88c99079e071598806d884c4422eb
We rename DataType fields from "name" to "name_id", but still often allow
to pass field as "name". So we need to document both possible params.
In the same time, we can't add "name" field again with required title
or other params.
Change-Id: I63acd6d175517b7f0bba3aedaaff079597e9f7c5
+profile package details view to overlook associations
+voucher count is properly checked before deleting a package
+package_id filters for /api/customers and /api/vouchers
+Fake::Time replaced by Time::Warp for balance_interval tests
+cleanup
Change-Id: Idc34220a9d29c115453eeee2907e70a71cf9f0cc
This is a patcht introducing a variable to disable
setting profile_package_id's in in the contracts
table. The code should therefore behave as before,
as long rate-o-mat and libswrate are ready.
Not once set to 1 and contract balances are written
to a database once, disabling this constant will
mess up contract_balances!
Change-Id: I080460395627202f3f5a386022de643577f4f3c2
+applying profile package and billing mappings
+testcase in api-balanceintervals.t
+caveats: to meet melita's user story, an additional 'topup_interval' interval start mode will be required. the currently implemented 'topup' start mode restarts intervals upon every topup and therefore does not provide constantinterval lengths.
Change-Id: I0a4898783c023749994e94e6909833a42debe259
+ synchronized contract balance catchup
+ balance interval resizing upon profile package transitions
+ dynamic interval length, interval start, carry-over propagation, ..
+ end-of-month 'preserve' mode correction for strictly aligned month intervals for start_mode=customer "create" timestamp
+ new api/balanceintervals resource to inspect contracts' balance interval histories
+ updated affected panel UI controllers
+ test case with time warps using Time::Fake
caveats:
- creating an invoice for a given 'period' (month) has to be refactored to select a disitnct balance interval. right now it takes the last interval in the month specified.
- generate_invoice.pl is broken and needs a major refactoring
Change-Id: I7bb54a83b76e510b1baa573a986d05400a7fec1e
-properly validate billing mapping intervals
-api/contracts and api/customers complete
+the problem with updating the "prepaid" preference remains at the moment
+billing_mappings field contains future (editable) mappings only, the full schedule is given in a separate field
+hal-links to all occurring billing profiles and networks
-extended tests: api-customer.t and api-contract.t
-api-billingnetworks.t test
-billing networks panel controller
+search by enclosed IP address
-panel UIs for billing networks, customers, contracts
+past billing mapping intervals that cannot be edited are displayed by a seperate hfh "block" part of the billing_profiles repeatable
-profile packages api, UI
+terminating billing profiles (MT#8645) will be broken
+fixed now: profile cannot be terminated unless there are:
-zero non-terminated customers, whose mappings contain the profile with future or open end
-zero profile packages, that link to the profile in either one of their initial-, underrun- or topup profile sets
+panel edit should work, termination wip
+topup_profiles w/o amounts
+contracts/customers API profile_package_id field:
+apply the package's initial profiles
+api/customer and api/contract profile definition modes (id/profiles/package)
+api OK, api-customer.t tests
+customer and contract panel UI with selector to specify actual billing mapping, schedule or profile package (same as api)
+terminate logic harmonized: profiles, networks, packages
+api tests updated
+prepare for merging: cleanup, enable tests
Change-Id: I6c0dec72f490b5731fc673cd393d6aeb08dd8143
because the HTTP::Tiny and HTTP::Thin libraries on wheezy
are old and create SSL errors
also enable SIP custom headers relaying, which we'll need
to transmit metadata (preserve alphanumeric sip url)
Change-Id: I02e8ffe5881a88ff04d255ada08505c7fe33af47
The noupdate flag in the username field of the form causes the
field from not showing up in $form->values, so use $form->params
instead.
Change-Id: I14440ba21f1ae2987d0aca41aa10567ef6cafd5c
- The option to show more entries per site.
- The option to show only outgoing or only incoming calls
(use seach with words outcoming or incoming accordingly)
- Show the subscriber phone number instead of the sip-username
Not instead, but near
- Show the Billing Fee Description of the outgoing calls
Change-Id: I85205afb8735f4a5dec0a95f5d6b13f1890579d4
+error message in test descriptions texts
+with recent changes to "description" fields to "required", the strict_sql_mode flage in api-journals.t has to be set.
+missing cftimestes and cfdestinationsets DELETE methods are now finally "journalized" and tested OK.
+other tests were disabled:
>test_billingzone -> journal settings not in yaml file yet, test_customerpreferences -> a valid ncos level item has to be referred (since today?) - ncos api crud methods not journalized yet
>test_profilepreferences -> a valid rewrite rule set item has to be referred (since today?) - rewrite rule set api crud methods not journalized yet
>test_autoattendants -> journal settings not in yaml file yet
>test_subscriberpreferences -> a valid ncos level item has to be referred (since today?) - ncos api crud methods not journalized yet
Change-Id: I75b24b3eb0758d6e4e248758c7861f93abc791c0
-enhanced test detail: did not detect missing CRUD operations yet
-query param 'operation' didn't work for 'recent' yournal entry of all API resources so far
-fix of several copy paste errors in existing rest api code
-...
Change-Id: I71b54212d8126b0280fcad2e568fad52a673cbf0