Skip to content

Commit

Permalink
Merge commit for 4.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Kaian committed Jan 14, 2025
2 parents 6286c19 + 232a529 commit f072afa
Show file tree
Hide file tree
Showing 979 changed files with 56,832 additions and 17,892 deletions.
44 changes: 43 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
Tue, 13 Jan 2025 08:30:36 +0100 IvozProvider Team <[email protected]>

* IvozProvider 4.3.0 released

* Portals:
- Fixed a bug displaying portal logos with special characters in filenames #2780
- Fixed a bug displaying brand features in client creation screen #2822
- Fixed terminal status hint for SIP ALG registrations #2811
- Fixed Call CSV Schedulers available fields based on client features #2821
- Added validations of email fields #2776
- Added new API endpoint to retrieve Users API tokens #2817
- Added new option to impersonate as users #2835
- Added support for downloading multiple recording files #2796
- Added new platform infrastructure section to group Application Servers in Sets #2784
- Added support for assigning Media Relay Sets to Companies #2784
- Added support for assigning Application Server Sets to Companies #2784

* Application Server:
- Fixed a bug with incorrect calling order in Linear Queues #2794

* Microservices:
- Fixed a bug updating Current Daily Usage in clients #2812

* Proxies:
- Fixed a bug handling 302 Moved from WSS clients #2819
- Avoided short callid collisions #2785

* Schema:
- Added new entity Application Server Sets #2784

* Other:
- Added additional Cypress tests in platform, brand, client and user portals
- Fixed standalone ISO install missing packages
- Added spanish translation to documentation

* Security:
- build(deps): bump express from 4.19.2 to 4.21.0 in /web/portal #2767
- build(deps): bump body-parser from 1.20.2 to 1.20.3 in /web/portal #2769
- build(deps): bump vite from 3.2.10 to 3.2.11 in /web/portal #2774
- build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /web/portal #2823


Fri, 13 Sep 2024 09:17:20 +0200 IvozProvider Team <[email protected]>

* IvozProvider 4.2.0 released
Expand Down Expand Up @@ -255,7 +297,7 @@ Tue, 28 Nov 2023 13:33:23 +0100 IvozProvider Team <[email protected]
* Other
- Brand new realtime active calls microservice written in go that replaces the old one written in openswoole

Tue, 03 Oct 2023 09:39:40 +0200 IvozProvider Team <[email protected]>
Tue, 03 Oct 2023 09:39:40 +0200 IvozProvider Team <[email protected]>

* Ivozprovider 3.3.0 released

Expand Down
109 changes: 104 additions & 5 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,35 @@ pipeline {
SYMFONY_PHPUNIT_DIR = "/opt/phpunit/"
SYMFONY_PHPUNIT_VERSION = "9.5.3"
DOCKER_TAG = getDockerTag()
BRANCH_NAME = getBranchName()
BASE_BRANCH = getBaseBranch()
JIRA_TICKET = getJiraTicket()
}

stages {
stage('Pull Request') {
agent any
when {
expression {
env.BRANCH_NAME.startsWith("PROVIDER-")
}
}
steps {
// Update Jira Ticket Custom fields
script {
// customfield_10126 - Merge Request
// customfield_10159 - Branch
def fields = [
fields: [
customfield_10126: env.JOB_BASE_NAME,
customfield_10159: env.CHANGE_BRANCH,
]
]
jiraEditIssue site: 'irontec.atlassian.net', idOrKey: env.JIRA_TICKET, issue: fields
}
}
}

// --------------------------------------------------------------------
// Image stage
// --------------------------------------------------------------------
Expand Down Expand Up @@ -71,6 +95,7 @@ pipeline {
expression { hasLabel("ci-force-tests-back") }
expression { hasLabel("ci-force-tests") }
expression { hasCommitTag("core:") }
expression { hasCommitTag("doc:") }
expression { hasCommitTag("schema:") }
expression { hasCommitTag("microservices/") }
expression { hasCommitTag("rest/") }
Expand Down Expand Up @@ -189,6 +214,7 @@ pipeline {
steps {
sh '/opt/irontec/ivozprovider/web/rest/platform/bin/test-api-spec'
sh '/opt/irontec/ivozprovider/web/rest/platform/bin/test-api --skip-db'
sh '/opt/irontec/ivozprovider/web/portal/platform/bin/test-sync-api-spec platform'
}
post {
success { notifySuccessGithub() }
Expand All @@ -206,6 +232,7 @@ pipeline {
steps {
sh '/opt/irontec/ivozprovider/web/rest/brand/bin/test-api-spec'
sh '/opt/irontec/ivozprovider/web/rest/brand/bin/test-api --skip-db'
sh '/opt/irontec/ivozprovider/web/portal/brand/bin/test-sync-api-spec brand'
}
post {
success { notifySuccessGithub() }
Expand All @@ -223,6 +250,7 @@ pipeline {
steps {
sh '/opt/irontec/ivozprovider/web/rest/client/bin/test-api-spec'
sh '/opt/irontec/ivozprovider/web/rest/client/bin/test-api --skip-db'
sh '/opt/irontec/ivozprovider/web/portal/client/bin/test-sync-api-spec client'
}
post {
success { notifySuccessGithub() }
Expand All @@ -240,6 +268,7 @@ pipeline {
steps {
sh '/opt/irontec/ivozprovider/web/rest/user/bin/test-api-spec'
sh '/opt/irontec/ivozprovider/web/rest/user/bin/test-api --skip-db'
sh '/opt/irontec/ivozprovider/web/portal/user/bin/test-sync-api-spec user'
}
post {
success { notifySuccessGithub() }
Expand Down Expand Up @@ -651,11 +680,6 @@ pipeline {
println "No functional reviewer assigned."
}

// Link issue Pull Request field with current branch
// customfield_10126 - Pull Request
def fields = [fields: [customfield_10126: env.JOB_BASE_NAME]]
jiraEditIssue site: 'irontec.atlassian.net', idOrKey: env.JIRA_TICKET, issue: fields

// Validated - 10325
def status = issue.data.fields.status
println "Issue Status: ${status.name} (${status.id})"
Expand Down Expand Up @@ -689,6 +713,77 @@ pipeline {
unstable { notifyUnstableGithub() }
}
}

// --------------------------------------------------------------------
// Mergeability validation
// --------------------------------------------------------------------
stage ('mergeability') {
steps {
script {
// Check we're validating a Merge request
if (!env.CHANGE_TARGET) {
echo "Not a merge request branch. Merge checks not required."
return
}

// Check Merge request has a Jira ticket associated
if (!env.JIRA_TICKET) {
failure "No ticket associated. Can not validate mergeability."
}

// Fetch issue data from Jira
def issue = jiraGetIssue site: 'irontec.atlassian.net', idOrKey: env.JIRA_TICKET

// Merge validations for feature subtask
isSubtask = issue.data.fields.issuetype.subtask
if (isSubtask) {
// Get parent task
def task = issue.data.fields.parent
echo "${env.JIRA_TICKET} is a subtask part of a feature task."

// Check the target branch is an feature branch
if (!env.CHANGE_TARGET.startsWith(task.key)) {
unstable "Target branch ${env.CHANGE_TARGET} is not an feature branch. Merge will be blocked until all previous task are merged"
}

// Validate parent status - Validated - 10325
def status = task.fields.status
if (status.id != "10325") {
unstable "Feature not yet validated. Merge is blocked."
}

// Validate feature branch is properly rebased
try {
sh "git merge-base --is-ancestor origin/master origin/${env.CHANGE_TARGET}"
} catch (Exception e) {
unstable "Feature branch ${env.CHANGE_TARGET} is not properly rebased. Merge is blocked."
}
} else {
echo "${env.JIRA_TICKET} is a task. Checking subtasks..."

// Check the target branch is master
if (env.CHANGE_TARGET != "bleeding") {
unstable "Target branch ${env.CHANGE_TARGET} is not an bleeding branch."
}

// Check all subtask has been merged
def subtasks = issue.data.fields.subtasks
subtasks.each { subtask ->
def status = subtask.fields.status
// Validate child status - Done - 10002
if (status.id != "10002") {
unstable "Subtask ${subtask.key} is not completed (Status: ${status.name})."
}
}
}
}
}
post {
success { notifySuccessGithub() }
failure { notifyFailureGithub() }
unstable { notifyUnstableGithub() }
}
}
}

// ------------------------------------------------------------------------
Expand Down Expand Up @@ -725,6 +820,10 @@ boolean hasCommitTag(String module) {
) == 0
}

void getBranchName() {
return env.CHANGE_BRANCH ?: env.GIT_BRANCH
}

void getBaseBranch() {
return env.CHANGE_TARGET ?: env.GIT_BRANCH
}
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<img src="doc/images/logoprovider.png" width="350"> ![stable](https://raster.shields.io/badge/stable-3.4-blue.png) ![release](https://raster.shields.io/badge/release-halliday-14b9bc.png)
<img src="doc/images/logoprovider.png" width="350"> ![stable](https://raster.shields.io/badge/latest-4.3-blue.png) ![release](https://raster.shields.io/badge/release-tempest-14b9bc.png)

Ivoz Provider is a multitenant solution for VoIP telephony providers designed for horizontal scaling and load balancing.

Expand Down Expand Up @@ -43,15 +43,15 @@ IvozProvider is designed to work directly from the Internet. Although it can be

There are [several ways](https://irontec.github.io/ivozprovider/en/artemis/basic_concepts/installation/index.html) to install IvozProvider.

If you want to test an [standalone](https://irontec.github.io/ivozprovider/en/artemis/basic_concepts/installation/install_types.html#standalone-install) installation, we recommend using one of auto-install CDs based on Debian Stretch 9.4 amd64.
If you want to test an [standalone](https://irontec.github.io/ivozprovider/en/artemis/basic_concepts/installation/install_types.html#standalone-install) installation, we recommend using one of auto-install CDs based on Debian Bookworm 12 amd64.


| Version | 64 bits | 32 bits |
|----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------:|:-------:|
| oldoldstable (oasis 1.7) | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-1.7.1-oasis-amd64.iso) | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-1.7.1-oasis-i386.iso)|
| oldstable (artemis 2.23.0) | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-2.23~2.23.0-artemis-amd64.iso) | |
| stable (halliday 3.4.1) | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-3.4~3.4.1-halliday-amd64.iso) | |
| testing (tempest 4.2.0) | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-4.2~4.2.0-tempest-amd64.iso) | |
| Release | Version | ISO Link |
|-----------------------|----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------:|
| oasis | 1.7 | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-1.7.1-oasis-amd64.iso) |
| artemis | 2.23.0 | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-2.23~2.23.0-artemis-amd64.iso) | |
| halliday | 3.4.1 | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-3.4~3.4.1-halliday-amd64.iso) | |
| tempest | 4.3.0 | [![iso http](doc/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-4.3~4.3.0-tempest-amd64.iso) | |


You can read about differences between releases [here](https://github.com/irontec/ivozprovider/blob/bleeding/FAQ.md#what-release-should-i-use).
Expand All @@ -62,8 +62,8 @@ You can browse online documentation in different formats:

| Language | HTML | LaTeX | PDF | EPUB |
|----------|:----:|:-----:|:---:|:----:|
| Spanish | [![badge html](doc/images/doc-html-green.png)](https://irontec.github.io/ivozprovider/es/artemis) [![badge singlehtml](doc/images/doc-singlehtml-green.png)](https://irontec.github.io/ivozprovider/essingle/artemis) | [![badge latex](doc/images/doc-latex-ff69b4.png)](https://irontec.github.io/ivozprovider/eslatex/artemis/IvozProvider.tex) | [![badge pdf](doc/images/doc-pdf-blue.png)](https://irontec.github.io/ivozprovider/eslatex/artemis/IvozProvider.pdf) | [![badge epub](doc/images/doc-epub-orange.png)](https://irontec.github.io/ivozprovider/esepub/artemis/IvozProvider.epub) |
| English | [![badge html](doc/images/doc-html-green.png)](https://irontec.github.io/ivozprovider/en/artemis) [![badge singlehtml](doc/images/doc-singlehtml-green.png)](https://irontec.github.io/ivozprovider/ensingle/artemis) | [![badge latex](doc/images/doc-latex-ff69b4.png)](https://irontec.github.io/ivozprovider/enlatex/artemis/IvozProvider.tex) | [![badge pdf](doc/images/doc-pdf-blue.png)](https://irontec.github.io/ivozprovider/enlatex/artemis/IvozProvider.pdf) | [![badge epub](doc/images/doc-epub-orange.png)](https://irontec.github.io/ivozprovider/enepub/artemis/IvozProvider.epub) |
| Spanish | [![badge html](doc/images/doc-html-green.png)](https://irontec.github.io/ivozprovider/es/tempest) [![badge singlehtml](doc/images/doc-singlehtml-green.png)](https://irontec.github.io/ivozprovider/essingle/tempest) | [![badge latex](doc/images/doc-latex-ff69b4.png)](https://irontec.github.io/ivozprovider/eslatex/tempest/IvozProvider.tex) | [![badge pdf](doc/images/doc-pdf-blue.png)](https://irontec.github.io/ivozprovider/eslatex/tempest/IvozProvider.pdf) | [![badge epub](doc/images/doc-epub-orange.png)](https://irontec.github.io/ivozprovider/esepub/tempest/IvozProvider.epub) |
| English | [![badge html](doc/images/doc-html-green.png)](https://irontec.github.io/ivozprovider/en/tempest) [![badge singlehtml](doc/images/doc-singlehtml-green.png)](https://irontec.github.io/ivozprovider/ensingle/tempest) | [![badge latex](doc/images/doc-latex-ff69b4.png)](https://irontec.github.io/ivozprovider/enlatex/tempest/IvozProvider.tex) | [![badge pdf](doc/images/doc-pdf-blue.png)](https://irontec.github.io/ivozprovider/enlatex/tempest/IvozProvider.pdf) | [![badge epub](doc/images/doc-epub-orange.png)](https://irontec.github.io/ivozprovider/enepub/tempest/IvozProvider.epub) |


## Feedback & Questions
Expand Down
2 changes: 1 addition & 1 deletion asterisk/agi/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
},
"require": {
"friendsofphp/proxy-manager-lts": "^1.0",
"irontec/ivoz-provider-bundle": "^2.5",
"irontec/ivoz-provider-bundle": "^3.0",
"irontec/replacements": "^1.0",
"php-mime-mail-parser/php-mime-mail-parser": "^7.0",
"symfony/flex": "^1.9",
Expand Down
20 changes: 10 additions & 10 deletions asterisk/agi/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion asterisk/config/pjsip.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;;
[global]
type=global
user_agent=Irontec IvozProvider v4.2
user_agent=Irontec IvozProvider v4.3
endpoint_identifier_order=header,ip
mwi_disable_initial_unsolicited=yes

Expand Down
Loading

0 comments on commit f072afa

Please sign in to comment.