Skip to content

Commit

Permalink
Merge commit for 3.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Kaian committed Dec 1, 2023
2 parents b5c9a32 + 9845eb6 commit d4c64dc
Show file tree
Hide file tree
Showing 327 changed files with 6,047 additions and 16,094 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
.vscode

**/.unison.**

**/__debug**
vendor
**/coverage/
storage/*
Expand Down
15 changes: 15 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
Tue, 28 Nov 2023 13:33:23 +0100 IvozProvider Team <[email protected]>

* Ivozprovider 3.4.0 released

* New Portals
- Fixed prepaid balances operations
- Fixed voicemail message counter on dashboards
- Fixed labels in platform portal feature selectors
- Fixed audio players
* Application Server
- Configurable setting to announce how many participants are already present when joining a conference room.
- Pause and unpause services for queues
* 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]>

* Ivozprovider 3.3.0 released
Expand Down
18 changes: 18 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,24 @@ pipeline {
failure { notifyFailureGithub() }
}
}
stage ('microservice-realtime') {
agent {
docker {
image "ironartemis/ivozprovider-testing-base:${env.DOCKER_IMAGE_TAG}"
args '--user jenkins --volume ${WORKSPACE}:/opt/irontec/ivozprovider'
reuseNode true
}
}
steps {
sh '/opt/irontec/ivozprovider/microservices/realtime/tests/test-build.sh'
sh '/opt/irontec/ivozprovider/microservices/realtime/tests/test-codestyle.sh'
}
post {
success { notifySuccessGithub() }
failure { notifyFailureGithub() }
}
}

stage('orm') {
agent {
docker {
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ If you want to test an [standalone](https://irontec.github.io/ivozprovider/en/ar
|--------------------------|:---------------------------------------------------------------------------------------------------------------------------------------:|:-------:|
| oldstable (oasis 1.7) | [![iso http](web/admin/public/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-1.7.1-oasis-amd64.iso) | [![iso http](web/admin/public/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-1.7.1-oasis-i386.iso)|
| stable (artemis 2.23.0) | [![iso http](web/admin/public/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-2.23~2.23.0-artemis-amd64.iso) | |
| testing (halliday 3.3.0) | [![iso http](web/admin/public/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-3.3~3.3.0-halliday-amd64.iso) | |
| testing (halliday 3.4.0) | [![iso http](web/admin/public/images/iso-http-green.png)](https://packages.irontec.com/isos/ivozprovider-3.4~3.4.0-halliday-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 Down
7 changes: 7 additions & 0 deletions asterisk/agi/src/Agi/Action/ConferenceRoomAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ public function process()
$this->agi->setConferenceSetting('user,pin', $room->getPinCode());
}

// Announce member count if requested
if ($room->getAnnounceUserCount() == ConferenceRoomInterface::ANNOUNCEUSERCOUNT_ALWAYS) {
$this->agi->setConferenceSetting('user,announce_user_count', 'yes');
} else {
$this->agi->setConferenceSetting('user,announce_user_count', 'no');
}

// Check if conference has max members
if ($room->getMaxMembers()) {
$this->agi->setConferenceSetting('bridge,max_members', $room->getMaxMembers());
Expand Down
48 changes: 47 additions & 1 deletion asterisk/agi/src/Agi/Action/ServiceAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
use Agi\ChannelInfo;
use Agi\Wrapper;
use Doctrine\ORM\EntityManagerInterface;
use Ivoz\Ast\Domain\Model\QueueMember\QueueMemberInterface;
use Ivoz\Ast\Domain\Model\QueueMember\QueueMemberRepository;
use Ivoz\Core\Domain\Service\EntityTools;
use Ivoz\Core\Infrastructure\Persistence\Doctrine\Model\Helper\CriteriaHelper;
use Ivoz\Provider\Domain\Model\BrandService\BrandServiceInterface;
Expand Down Expand Up @@ -56,23 +58,31 @@ class ServiceAction
*/
protected $service;

/**
* @var QueueMemberRepository
*/
protected $queueMemberRepository;

/**
* ServiceAction constructor.
* @param Wrapper $agi
* @param ChannelInfo $channelInfo
* @param EntityManagerInterface $em
* @param EntityTools $entityTools
* @param QueueMemberRepository $queueMemberRepository
*/
public function __construct(
Wrapper $agi,
ChannelInfo $channelInfo,
EntityManagerInterface $em,
EntityTools $entityTools
EntityTools $entityTools,
QueueMemberRepository $queueMemberRepository,
) {
$this->agi = $agi;
$this->channelInfo = $channelInfo;
$this->em = $em;
$this->entityTools = $entityTools;
$this->queueMemberRepository = $queueMemberRepository;
}

/**
Expand Down Expand Up @@ -137,6 +147,12 @@ public function process()
case Service::CALL_FORWARD_UNREACHEABLE:
$this->processCfwUnreachable();
break;
case Service::QUEUE_PAUSE:
$this->processQueuePause();
break;
case Service::QUEUE_UNPAUSE:
$this->processQueueUnpause();
break;
}
}

Expand Down Expand Up @@ -529,6 +545,36 @@ protected function processCallForwardSetting($callForwardType)
$this->agi->playback("ivozprovider/cfw-enabled");
}

protected function processQueuePause(): void
{
$endpoint = $this->agi->getEndpoint();

/** @var QueueMemberInterface[] $queueMembers */
$queueMembers = $this->queueMemberRepository->findByInterface("PJSIP/$endpoint");

foreach ($queueMembers as $queueMember) {
$this->agi->queuePause(
$queueMember->getQueueName(),
$queueMember->getInterface(),
);
}
}

protected function processQueueUnpause(): void
{
$endpoint = $this->agi->getEndpoint();

/** @var QueueMemberInterface[] $queueMembers */
$queueMembers = $this->queueMemberRepository->findByInterface("PJSIP/$endpoint");

foreach ($queueMembers as $queueMember) {
$this->agi->queueUnpause(
$queueMember->getQueueName(),
$queueMember->getInterface(),
);
}
}

public function processHello()
{
$entered = "";
Expand Down
10 changes: 10 additions & 0 deletions asterisk/agi/src/Agi/Wrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -391,4 +391,14 @@ public function getDialedNumber()

return array_shift($dialedNumberParts);
}

public function queuePause(string $queuename, string $interface): void
{
$this->fastagi->exec("PauseQueueMember", "$queuename,$interface");
}

public function queueUnpause(string $queuename, string $interface): void
{
$this->fastagi->exec("UnpauseQueueMember", "$queuename,$interface");
}
}
2 changes: 1 addition & 1 deletion asterisk/config/pjsip.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;;
[global]
type=global
user_agent=Irontec IvozProvider v3.3
user_agent=Irontec IvozProvider v3.4
endpoint_identifier_order=ip,header,username,anonymous

;;
Expand Down
6 changes: 6 additions & 0 deletions debian/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ RUN apt-get update && apt-get -y install gnupg wget

RUN echo deb http://packages.irontec.com/debian halliday main extra >> \
/etc/apt/sources.list
RUN echo deb http://ftp.debian.org/debian bullseye-backports main contrib non-free >> \
/etc/apt/sources.list

RUN wget http://packages.irontec.com/public.key -q -O - | apt-key add -

# Packages from standard repository
RUN apt-get update && apt-get install -y \
composer \
curl \
Expand Down Expand Up @@ -37,6 +40,9 @@ RUN apt-get update && apt-get install -y \
sphinx-common \
yarn

# Packages from backports
RUN apt-get install -y -t bullseye-backports \
golang

# Create jenkins user (configurable)
ARG UNAME=jenkins
Expand Down
10 changes: 8 additions & 2 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
ivozprovider (3.3~3.3.0) UNRELEASED; urgency=medium
ivozprovider (3.4~3.4.0) UNRELEASED; urgency=medium

* Version bump to 3.4.0

-- Irontec IvozProvider Team <[email protected]> Fri, 01 Dec 2023 11:31:53 +0100

ivozprovider (3.3~3.3.0) unstable; urgency=medium

* Version bump to 3.3.0

-- Irontec IvozProvider Team <[email protected]> Mon, 02 Oct 2023 17:16:03 +0200
-- Irontec IvozProvider Team <[email protected]> Fri, 01 Dec 2023 11:31:53 +0100

ivozprovider (3.2~3.2.1) unstable; urgency=medium

Expand Down
3 changes: 2 additions & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ Build-Depends: debhelper (>=9.2),
python3-sphinx-rtd-theme,
ruby-dev,
sphinx-common (>=1.4.6),
yarn
yarn,
golang
Standards-Version: 3.9.6
Maintainer: Irontec IvozProvider Team <[email protected]>

Expand Down
2 changes: 1 addition & 1 deletion debian/ivozprovider-realtime.install
Original file line number Diff line number Diff line change
@@ -1 +1 @@
microservices/realtime /opt/irontec/ivozprovider/microservices/
microservices/realtime /opt/irontec/ivozprovider/microservices/
19 changes: 0 additions & 19 deletions debian/ivozprovider-realtime.postinst

This file was deleted.

15 changes: 0 additions & 15 deletions debian/ivozprovider-realtime.preinst

This file was deleted.

3 changes: 2 additions & 1 deletion debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ build_microservices: build_library
cd microservices/recordings; composer --no-interaction --no-dev --no-progress --optimize-autoloader install
cd microservices/workers; composer --no-interaction --no-dev --no-progress --optimize-autoloader install
cd microservices/scheduler; composer --no-interaction --no-dev --no-progress --optimize-autoloader install
cd microservices/realtime; composer --no-interaction --no-dev --no-progress --optimize-autoloader install
cd microservices/realtime; go mod download && go mod verify
cd microservices/realtime; go build -v -o server irontec.com/realtime/cmd/server
cd microservices/router; composer --no-interaction --no-dev --no-progress --optimize-autoloader install

build_schema: build_library
Expand Down
6 changes: 5 additions & 1 deletion debian/systemd/ivozprovider-realtime.service
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
[Unit]
Description=Ivozprovider Realtime Websockets Server
After=network.target

[Service]
User=root
ExecStart=/opt/irontec/ivozprovider/microservices/realtime/bin/run
WorkingDirectory=/opt/irontec/ivozprovider/microservices/realtime
ExecStart=/opt/irontec/ivozprovider/microservices/realtime/server
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
4 changes: 2 additions & 2 deletions doc/sphinx/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
# built documents.
#
# The short X.Y version.
version = "3.3"
version = "3.4"

# The full version, including alpha/beta/rc tags.
release = 'halliday'
Expand Down Expand Up @@ -277,7 +277,7 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'IvozProvider.tex', 'IvozProvider 3.3 Documentation',
(master_doc, 'IvozProvider.tex', 'IvozProvider 3.4 Documentation',
'Irontec', 'manual'),
]

Expand Down
4 changes: 2 additions & 2 deletions kamailio/trunks/config/kamailio.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ log_facility=LOG_LOCAL0
onsend_route_reply=yes

# Add custom Server header
server_header="Server: Irontec IvozProvider v3.3"
user_agent_header="User-Agent: Irontec IvozProvider v3.3"
server_header="Server: Irontec IvozProvider v3.4"
user_agent_header="User-Agent: Irontec IvozProvider v3.4"

####### Modules Section ########

Expand Down
Loading

0 comments on commit d4c64dc

Please sign in to comment.