apply_rewrite demands a billing subscriber object
this resulted in an uncaught server error before
Change-Id: Ia11dc12b8a1a2f71b74881356dcd0b1ec7bf73fc
Consider item_rs probable additional params in get_list
Use uuid from get_owner for conversation filtering
Define subscriber_id for fax conversations
More clear debug
Change-Id: Ibef1662795a07e6b31e1dcf0052d618efeb2dbcd
* with the removal of PCMA transcoding for music_on_hold
sound files, the transcoding only applies to convert
any WAV -> expected WAV format by sems
* adjust File::Slurp play_file() to use the buffer, to
avoid possible issues with the stream data read
* fail if the sound file to upload is empty or cannot be read
Change-Id: I527aadd279dfe7dee42593be89f65dedf65fd6dd
was used to allow specifying a custom config file in order
to quickly test manually with a different db
Change-Id: I03db8ca922037f9d342a81236e6dfbfe79575c36
When clicking on the "Dashboard Administration" link in the Monitoring
and Statistics menu of the panel, grant administrative access to the
grafana dashboard.
This privilege elevation is kept in the session until you click any
of the other dashboard links in the Monitoring and Statistics menu.
Change-Id: I703a05b74fc6943ecac82cca5acb2d71674028e7
* Make sure resellers with interception rights can query both
collections and items
* Make sure we only query the reseller specific interceptions
when accessing API as reseller
Change-Id: I3010f899cbbd1a7a4f60025d95f09f013cc07c03
This prevents e.g. to insert \", which will break the trigger
populating kamailio, and will also protect against SQL injection
attacks, because the "name" value is taken as is in the trigger
statement without escaping it.
Change-Id: Ic2f911f4ce7fa79516796141d565bd3fe4a4044a
* NGCP sound files do not need transcoding anymore and
it is disabled for the sound file upload/download logic
(voicemail sound files transcoding is still required
and retained)
Change-Id: I756c794ae614d3d85096936e217d83f3e0c6db44
Certain forms like SubscriberCFSimple need $c as ctx already when
setting up the form, so move setting ctx=>$c right before that.
Change-Id: I8d377b20a1b62ffa8bba1277fdaf1b144a7c1607
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