Otherwise, sound handles and pbx devices are displayed in UI
based on the order of insertion, which is not nice from a
usability perspective.
Change-Id: I584a40ec7a55e4317126a2eb073951b3c8ae8332
* When enabling password_sip/web_validate, panel checks password
against username (web and sip, respectively), and runs it through
cracklib to enforce a reasonably strong password.
* Add auto-generate buttons next to web/sip password.
Change-Id: I11f5f6c2d69dc5658f298094f7d17d26d0a26ee1
scalar returns an arrayref with an item for every request,
which we then didn't unpack. better to request an array here
Change-Id: I80717c9e957ad44ad5d75db36735180123ab931c
This patch reuses existing forms by clearing them, rather than
re-instantiating them again and again.
Also, panel start time should be better due to less package
pre-loading.
Change-Id: Ia3e64fd4b4084bb5ec35a669c5840c9fc3c58f2e
Used to fetch whether pbx, faxserver, rtcengine etc is enabled.
* Fix rtcengine reseller creation:
- Refuse to create reseller if rtcengine part fails
- Use proper auto-generated rtcengine values (pass, domain)
to not fail on reseller names which are not forming valid
hostnames.
* Implement /api/admins/id to support testing
- add test
- fix creating admins with overly long login
- fix various ACL bugs handling /api/admins/
- fix creating /api/admincerts/ as r/o user
* Fix test framework
- use proper client cert when switching API user
Change-Id: I602fdd8181c0b3f23e76e3eab0df90a1ff9e986f
(cherry picked from commit 0d376bd8b59db65296090d26f2c84d704129beef)
Remove excrescent code from the pbxdevicemodels API & Panel
Add roles control per method for the API
Use form field "required" attribute for the API uploads
Fix getting old resource for the PATCH and PUT methods
Change-Id: Ia0515b3d071d45435db7c9138ea9de9447775143
* Fix syntax errors and internal errors
* Pass set ids back in mappings
* Allow updates of mappings both via name and ids
Change-Id: I26fdfe96d67563c11040a6c1e87f13a835bb793f
* Implement r/o access to /api/customers for subadmin
* Implement r/o access to /api/subscribers for subs
* Implement create access to /api/subscribers for subadmins
* Implement /api/numbers to re-assign a number
* Implement CF endpoints access for subs
* Implement new test framework to simplify testing
* Fix updating number by using Utils to make sure allowed_clis etc
are handled correctly
* Install missing docker dependencies for new test framework
* Add edr handling on /api/numbers/xx update
Change-Id: I678da16cfb1361b2809780cba8c204ac90bb1736
+ added conversations to api_root.t
+ disabled xmpp conversations source, since "soap"
MySQL user is not yet granted to prosody.* tables
Change-Id: I3d6a9418e7c2b77503f8472fe639e971ad7be3fa
* billing is split into 2 parts:
- init_prepaid_billing (reserves billing/creates session)
- perform_prepaid_billing (commits or cancels the session)
* when sms fails to be sent the billing session is canceled
(was committed before, regardless)
* NGCP::Panel::Entities::post
- do not do $self->return_representation_post() if
api_error_message is present, therefore, the actual
error is returned
* sms_journal item is now created also in case of an error
* improved errors indication
Change-Id: I454b8c6a1c04d743ee82e03f8621c7cc4c7c4f98
When creating or updating a reseller, catch non-numeric contract_id
and return 422, otherwise 500 would be returned.
Change-Id: I0e22f6f514fef80f5265eca28d7ec97811c1172f
* create reseller with enable_rtc now succeds but shows an
error if the "rtc" related part cannot be created
* update reseller with enable_rtc now succeds but shows an
error if the "rtc" related part cannot be update
* terminate reseller with enable_rtc now fails with an
error if the "rtc" related part cannot be deleted
Change-Id: I59a8b531d59bc3d4ca9201a2a25c783cb149b759
added checking and persisting of timezone for
+ panel UI subscriber create
+ POST /api/subscribers
+ PUT /api/subscriber/x
+ PATCH /api/subscriber/x
+ central is_valid_timezone_name method
Change-Id: I59865f5af33a71e5b5032dc35ba9c41eca74b04c
* new "Manager Secretary" call forwarding type
* new /api/managersecretary
- controls "Manager Secretary" call forwarding auto set
* support Prefer='internal' to avoid all form validations,
and creations as well as no hal is created but json body
is returned instead. only usable on port 1442 for
internal ngcp api clients.
* Role/API valid_uuid() check
Change-Id: I826138d8cdbce737c09c3b98bc7bdd905d09e81c
* enables a mode for cf source sets, where all numbers are
considered as whitelisted or blacklisted (similar to the
NCOS levels mode)
Change-Id: I84e76e5ba717050c48bcaf5c1fd5f67ed5582cab
When requested with an "Accept: application/json" header, return
the response in json format instead of xhtml.
Change-Id: Iba4135d8013fd200af426f2eb3d67b97282c034b
The error happens while preparing ngcp-panel translations
Creating lib/NGCP/Panel/I18N/messages.pot
Merging lib/NGCP/Panel/I18N/ru.po
lib/NGCP/Panel/I18N/ru.po:13386: duplicate message definition...
lib/NGCP/Panel/I18N/ru.po:13359: ...this is the location of the first
definition
msgmerge: found 1 fatal error
Change-Id: I704df2e5751e6189a34f489b0fe0c78413457ff9
Under Subscribers > Call Forward > Manage Timesets, the label for the
hour period has a typo. Should be "through" instead of "trough". Fix.
Change-Id: Iad07cb3c8ee69cd147e7629f1e551cd69da709ec
- read key from specific config file
- key is hex encoded
+ fix: add libcryptx-perl as dependency (actually dep of libcrypt-jwt-perl)
+ fix: typo in perl (comma instead of assignment)
+ fix: chomp any preceeding newlines from jwt_secret
Change-Id: I6c6bd4dc0d7fa7fa43868afb13b4d8d838d90564
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
* add missing Form/Faxserver/T38 form
* add missing Form/Faxserver/ECM form
* add T38, ECM forms for the API
Change-Id: Idb1d28f8bbe33a7383a88c074cc4a009f4c37ff4
as read-only access to subscriberadmin in order to view neccessary
details for creation of pbxdevices.
Change-Id: I369c3a1936e46a4144652f0a65899fc4defcb501
* 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
- move the "group" field from Rule.pm/InboundRule.pm into
RuleEditAdmin.pm/InboundRuleEditAdmin.pm respectively
- the "group" field is used only by the GUI rule edit forms
Change-Id: I1c1ebf883848e90c9412784c8d8610fcbebc4331
- a new feature, "Peering Overview" under the "Tools" menu that
shows a consolidated table of peering rules, peering groups and
peering hosts with a quick links to the related edit dialogs
- added a group selection for "peering rule edit" dialogs that
enables a possibility to move a peering rule into another
peering group
- changed the "back" uri in the "peering host" and "peering rule"
dialogs to return back to the previous uri instead of forcing it
to /peering, that is needed to call those dialogs from
/peeringoverview and then get back to the original uri upon
completion
- dynamic columns support
- separate outbound and inbound peering rules respresentation
- export to "CSV", also with the "Search" filter support
- add dynamic column join detection excluding excessive joins
if no related columns are selected
Change-Id: I71b4c62c4583989baacfc166f08e965c4464e4b2
- 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
Only use request param "q" for filtering firmware versions. Otherwise
devices which attach a specific verstion to the download url will not
find the latest/next version.
Change-Id: Ibd92de4c73ad20cc5a0e06f185171fff370ceaf6
the factory Catalyst::ActionRole::HTTPMethods action role
is set for any action, and in race with our own
NGCP::Panel::Role::HTTPMethods. the testcase could have
been misleading ever since, as it uses DELETE /api/customers,
which was present when implemting the method override initially,
but dropped on the road to 4.5.
the issue is resolved by overriding
Catalyst::Controller::gather_default_action_roles.
until the class hierachy refactoring is completed, only
consistent way is to add the override to each api controller.
the action_roles config attribute can therefore be
removed.
using Plack::Middleware::MethodOverride as an alternative from
upstream has the drawback to work only with POST. but a required
usecase is to also support translation DELETE requests to PATCH.
Change-Id: I204ba59869a8327bdd5db8a867fbbb061d1c9e7c
This avoids having to look for the customer with the last customer
id and click Details there, rather than now having a direct link.
Change-Id: Ie7688607cf29ed7eb6c4e52bd42244730be783de
It's fine to remove read-only fields only if $run==1, but in any
case remove unknown fields.
Also the force-array change broke additional tests, fixed them.
Change-Id: I48ffcf201bd1eedb8fb317f1ca248af9e4a01e60
- including the desired sorting by call leg depth
- "... order by length(call_id) asc, start_time asc;"
seems to cover the call flow sceanrios.
Change-Id: I294c27985627bea6a9acdaff8aeedc84e365c34e
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
Until all LI vendors have migrated to REST later this year,
re-introduce a SOAP API for interceptions.
Change-Id: Ie8ef28e745b9f240547c3b6eb99fae4871287308
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
they may come in as utf-8 or utf-16. the latter causes catalyst
to die per default, which we circumvent. then we manually decode
the text in utf-16.
+ fix bug where last jumps out of subrouting causing an exception
Change-Id: I9df15317f4438b4205f7f0f6af26df8f85ae0614
+ 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
* caller/callee should not be used after rewrite rules
but caller_in/callee_in instead as they contain the
normalised values where caller/callee contain the original ones
Change-Id: I42081a6221945208477a1d0ce80b4d2369099242
* 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
* normalise /api/faxes numbers by using the new common
NGCP::Panel::Utils::Fax::process_fax_journal_item
Change-Id: Ibf00109eb69bc13a6819424d451e34da072e5749
* 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
Nightly translation upload job fails due to duplicates in translation:
> Merging lib/NGCP/Panel/I18N/it.po
>
> lib/NGCP/Panel/I18N/it.po:12422: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1432: ...this is the location of the first definition
> lib/NGCP/Panel/I18N/it.po:12438: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1447: ...this is the location of the first definition
> lib/NGCP/Panel/I18N/it.po:12448: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1488: ...this is the location of the first definition
> lib/NGCP/Panel/I18N/it.po:12458: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1507: ...this is the location of the first definition
> lib/NGCP/Panel/I18N/it.po:12474: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1522: ...this is the location of the first definition
> lib/NGCP/Panel/I18N/it.po:12484: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1541: ...this is the location of the first definition
> lib/NGCP/Panel/I18N/it.po:12500: duplicate message definition...
> lib/NGCP/Panel/I18N/it.po:1556: ...this is the location of the first definition
> msgmerge: found 7 fatal errors
> > die 'Error: Failed to prepare ngcp-panel translations. Exiting.'
Change-Id: I9518955627b9b773361f7924317087e5c87a9cea
* map regex fixed
* get_form may return an array with the exceptions now
* use get_item_id consistently
* use warnings and strict
Change-Id: I9f356814ecf4b51613d3aee3782a6b3b91f04cad
-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
+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
* 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
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
+there are different implementations of obtaining a
fresh id from voip_aig_sequence for panel and api
+api call fails, when there are more than one id's
in that table. which can happen after concurrently
using the panel UI for that.
+now modified to always use mysql's autoincrement,
otherwise api will stop working again, once it
filled up id gaps coming from panel usage.
Change-Id: I9c699e19f7161e744ae858e75089b333cbc2b128
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
* send fax to a remote proxy if defined, otherwise queue it locally
* when queuing send fax remotely check if the host:port is alive
Change-Id: I29f9c32c784dccbb74d24ef4ef1ab0dc09d0a1ae
a reseller can manage multiple apps. these will have different networks in the
future, enabling one to allow or disallow networks depending on that.
in that case, the subscriber must have the possibility to select, which app they
are going to use. if none is selected, the default app is used.
Change-Id: I191bf3911004d405086821a89b46e4fa59379a46
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
the uppermost level in @searchColumns is to be comined via AND,
the next level, via OR (implicitly by DBIx::Class)
- plus fix billing networks in customers to be date-searched
Change-Id: I8db95cc5e8aadf5d5c86ef8fe06e59eb5e95c3d0
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
- the connector name is properly set when creating a reseller
- the network tag defaults to just (sip,xmpp,webrtc,...)
- rtcsessions doesn't accept network tag anymore
- an rtc-account is created for every network of the rtc-user
- the identifier in the rtc-account is set according to the specific connector
- api-rtc-full.t has been simplified for the user (no more need for domain_id)
- update available networks (in reseller api)
Change-Id: I2700c646726a06569cc5a70a5a30d4cb67eb1c80
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
Should be "Sprachnachrichten" instead of "Sprachnachriten".
Change-Id: Ib8086854bd27be01708d8f468f5de726f4250fac
Thanks: Matthias Hohl for reporting this bug on the spce-user mailing list
+creation of profile packages with hour and minute
intervals was disabled in api-balanceintervals.t
Change-Id: Idd18ced9704522bf5d919155d866c91b81526b92
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
- extended apply_rewrite to allow "rwr_rs" parameter to
override rewrite rule set
- added lookup functions for Subscriber and Peering to
perform a lookup based on calleer/callee
Change-Id: Iceea7a807587e12e1f5485998ade23bc932adaaf
Zone name is used as a result hash key.
Zone detail should be obtained from zones API if necessary.
Change-Id: Ic45d79bb5c0fc0b637da542571c58ec10802ee6e
Use proper fh to write and close
Also insert trailing rows not multiples of chunk size
Also download/upload routing number
Change-Id: I2654c880f89ccc58de1ff1eae320746ee3792788
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
interestingly, the sorting with a malformed comparison used here
sort {$a > $b} @elements
gives different results on master (mr4.2x) and mr3.8.5. however,
results are the same with correct comparison.
sort {$a <=> $b} @elements
Change-Id: I62f0fd65b62a1db24ee9e2cc735839e30d5da916
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
+due to optimisations in hal_from_item
+journal affected as well, thats how we found this
+so the last failing journal testcase should be fixed
Change-Id: I33824cc92c4a4895d2dd3afe8bd963f442f556f5
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
which was provided by Capture::Tiny, which was provided by perl5i,
which was provided by Sipwise::Base
As an alternative, we just merge stdout and stderr using perl primitives.
Change-Id: I5aaf8267ff6275754981998296692577ee25332d
+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
this is important, because it allows us, to be completely
independent of their href uris, whom we cannot always trust (the domain
part in particular)
Change-Id: Ic67f8240dfb50a5ea4948931d7e0554ce7f5ef4e