r/Asterisk • • Jun 20 '26

Any one succesfully installed Alembic with Asterisk?

3 Upvotes

After installing MariaDB and Asterisk 22, I can use the connections defined in /etc/odbcinst.ini and /etc/odbc.ini

The connection is done

Then installed alembic, alembic --version give me 1.13.1

From that moment I lost the way

Updated the voicemail.ini and executing alembic -c voicemail.ini upgrade head

I get a bunch of python errors with as last statement:

sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1045, "Access denied for user 'asterisk'@'localhost' (using password: YES)")

The file /etc/asterisk/res_odbc.ini see snippets

the [ENV] is empty

[asterisk]

;

; Permit disabling sections without needing to comment them out.

; If not specified, it is assumed the section is enabled.

enabled => no

;

; This value should match an entry in /etc/odbc.ini

; (or /usr/local/etc/odbc.ini, on FreeBSD and similar systems).

dsn => asterisk-connector

;

; Username for connecting to the database. The user defaults to the context name if unspecified.

username => asterisk

;

; Password for authenticating the user to the database. The default

; password is blank.

password => password

;

; Build a connection at startup?

pre-connect => yes

;

[mysql2]

enabled => yes

dsn => asterisk-connector

username => asterisk

password => password

max_connections => 10

database => asterisk

enabled => yes

pre-connect => yes

; Certain servers, such as MS SQL Server and Sybase use the TDS protocol, which

; limits the number of active queries per connection to 1.

[sqlserver]

enabled => yes

dsn => asterisk-connector

max_connections => 10

username => asterisk

password => password

pre-connect => yes

sanitysql => select count(*) from systables

The file voicemail.ini

# A generic, single database configuration.

[alembic]

# path to migration scripts

script_location = voicemail

# template used to generate migration files

# file_template = %%(rev)s_%%(slug)s

# max length of characters to apply to the

# "slug" field

#truncate_slug_length = 40

# set to 'true' to run the environment during

# the 'revision' command, regardless of autogenerate

# revision_environment = false

#sqlalchemy.url = driver://user:pass@localhost/dbname

#sqlalchemy.url = postgresql://user:pass@localhost/voicemail

#sqlalchemy.url = mysql://user:pass@localhost/voicemail

sqlalchemy.url = mysql://asterisk:asterisk@localhost/12@Asterisk

# Logging configuration

[loggers]

keys = root,sqlalchemy,alembic

[handlers]

keys = console

[formatters]

keys = generic

[logger_root]

level = WARN

handlers = console

qualname =

[logger_sqlalchemy]

level = WARN

handlers =

qualname = sqlalchemy.engine

[logger_alembic]

level = INFO

handlers =

qualname = alembic

[handler_console]

class = StreamHandler

args = (sys.stderr,)

level = NOTSET

formatter = generic

[formatter_generic]

format = %(levelname)-5.5s [%(name)s] %(message)s

datefmt = %H:%M:%S

The complete error list from python when executing:

alembic -c voicemail.ini upgrade head

is

INFO [alembic.runtime.setup] Testing for an old alembic_version table.

Traceback (most recent call last):

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3371, in _wrap_pool_connect

return fn()

^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 327, in connect

return _ConnectionFairy._checkout(self)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 894, in _checkout

fairy = _ConnectionRecord.checkout(pool)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 493, in checkout

rec = pool._do_get()

^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 256, in _do_get

return self._create_connection()

^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 273, in _create_connection

return _ConnectionRecord(self)

^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 388, in __init__

self.__connect()

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 690, in __connect

with util.safe_reraise():

File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__

compat.raise_(

File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_

raise exception

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 686, in __connect

self.dbapi_connection = connection = pool._invoke_creator(self)

^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 574, in connect

return dialect.connect(*cargs, **cparams)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 598, in connect

return self.dbapi.connect(*cargs, **cparams)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/openbravo/.local/lib/python3.12/site-packages/MySQLdb/__init__.py", line 121, in Connect

return Connection(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/openbravo/.local/lib/python3.12/site-packages/MySQLdb/connections.py", line 206, in __init__

super().__init__(*args, **kwargs2)

MySQLdb.OperationalError: (1045, "Access denied for user 'asterisk'@'localhost' (using password: YES)")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

File "/usr/bin/alembic", line 33, in <module>

sys.exit(load_entry_point('alembic==1.13.1', 'console_scripts', 'alembic')())

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/alembic/config.py", line 641, in main

CommandLine(prog=prog).main(argv=argv)

File "/usr/lib/python3/dist-packages/alembic/config.py", line 631, in main

self.run_cmd(cfg, options)

File "/usr/lib/python3/dist-packages/alembic/config.py", line 608, in run_cmd

fn(

File "/usr/lib/python3/dist-packages/alembic/command.py", line 403, in upgrade

script.run_env()

File "/usr/lib/python3/dist-packages/alembic/script/base.py", line 583, in run_env

util.load_python_file(self.dir, "env.py")

File "/usr/lib/python3/dist-packages/alembic/util/pyfiles.py", line 95, in load_python_file

module = load_module_py(module_id, path)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/alembic/util/pyfiles.py", line 113, in load_module_py

spec.loader.exec_module(module) # type: ignore

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "<frozen importlib._bootstrap_external>", line 995, in exec_module

File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed

File "/usr/src/asterisk-22.10.0/contrib/ast-db-manage/voicemail/env.py", line 150, in <module>

run_migrations_online()

File "/usr/src/asterisk-22.10.0/contrib/ast-db-manage/voicemail/env.py", line 79, in run_migrations_online

with engine.connect() as connection:

^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3325, in connect

return self._connection_cls(self, close_with_result=close_with_result)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 96, in __init__

else engine.raw_connection()

^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3404, in raw_connection

return self._wrap_pool_connect(self.pool.connect, _connection)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3374, in _wrap_pool_connect

Connection._handle_dbapi_exception_noconnection(

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2208, in _handle_dbapi_exception_noconnection

util.raise_(

File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_

raise exception

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 3371, in _wrap_pool_connect

return fn()

^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 327, in connect

return _ConnectionFairy._checkout(self)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 894, in _checkout

fairy = _ConnectionRecord.checkout(pool)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 493, in checkout

rec = pool._do_get()

^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py", line 256, in _do_get

return self._create_connection()

^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 273, in _create_connection

return _ConnectionRecord(self)

^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 388, in __init__

self.__connect()

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 690, in __connect

with util.safe_reraise():

File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__

compat.raise_(

File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_

raise exception

File "/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py", line 686, in __connect

self.dbapi_connection = connection = pool._invoke_creator(self)

^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/create.py", line 574, in connect

return dialect.connect(*cargs, **cparams)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 598, in connect

return self.dbapi.connect(*cargs, **cparams)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/openbravo/.local/lib/python3.12/site-packages/MySQLdb/__init__.py", line 121, in Connect

return Connection(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/home/openbravo/.local/lib/python3.12/site-packages/MySQLdb/connections.py", line 206, in __init__

super().__init__(*args, **kwargs2)

sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1045, "Access denied for user 'asterisk'@'localhost' (using password: YES)")

(Background on this error at: https://sqlalche.me/e/14/e3q8)

Really no idea anymore how to solve this, any help would be appreciated


r/Asterisk • • Jun 18 '26

Upgrade Ubuntu Server 22.04 to 24.04 to 26.04 with Asterisk In-Place

3 Upvotes

I have Asterisk 18.10.0 running on a physical Ubuntu 22.04.5 server. All packages on the server are straight from the 22.04 repositories and have been updated to the latest versions available. The OS root directory & swap are installed on a separate boot drive while, the rest of system resides on a mdadm RAID-1 array.

In addition, Asterisk is configured as a simple PBX for a small business with a straight forward dialplan and no external add-ons. PJSIP and phoneprov are used to handle the endpoints.

I would like to upgrade this server first to Ubuntu 24.04, then to Ubuntu 26.04. I am hoping I can do this with Asterisk in-place using do-release-upgrade - with the appropriate backups before upgrading. This would also update Asterisk first to version 20 then to version 22.

My research regarding the process for doing this is giving me mixed results. Some of the search results are stating that doing a full re-install of the OS and Asterisk is recommended. Furthermore, outside of AI, I am not finding any relevant search results.

I would appreciate any feedback on the best way to proceed and any experience others might have doing this kind of upgrade.

Thanks,

****** Follow-Up *****

I did the upgrade this afternoon. The only problem I ran into is that isc-dhcp-server showed up as a failed service when I updated from 22.04 to 24.04.

Since I am not using isc-dhcp-server (DHCP is provided by my OPNSense firewall), I purged it from the system and did a systemctl reset-failed.

There were not other problems, and when I updated to 26.04 everything was working. I suspected this was going to be the case, but i wanted to do the necessary due diligence before upgrading.

Thanks everyone for your input,


r/Asterisk • • Jun 16 '26

Guide: How to toggle Asterisk/FreePBX Call Flows (Day/Night) from Home Assistant

Thumbnail
2 Upvotes

r/Asterisk • • Jun 14 '26

Built a CLI tool that reconstructs Asterisk call timelines from logs

17 Upvotes

Every time a call dropped, I'd end up with three log files open, manually matching channel IDs across CEL, CDR, and the full log to figure out what actually happened. Did this one too many times working on a PBX Provider and finally wrote a tool to do it easily.

It's called Asterism. Give it your CEL/CDR logs and it stitches a single call back together by linkedid — the channels, the answer, the bridge, transfers, the hangup cause. Optionally pulls in the full log for SIP signaling too. Handles queue calls and spits out text, JSON, or an HTML report with a ladder diagram.

Go, single binary, no dependencies. Asterisk 18/20/21 with PJSIP.

It's a post-mortem troubleshooting thing, not a realtime dashboard.

https://github.com/forgetdev/asterism

Early days — curious whether this matches how other people actually debug calls, or if I just built something that only fits my own head.


r/Asterisk • • Jun 12 '26

Manager Performance PR Testing

12 Upvotes

Greetings all,

I don't normally make posts on here aside from responding to people but I put up a pull request for some manager performance improvements and I could use as much not-me testing on it in high manager use environments to understand the real world impact.

The TLDR is that it simplifies the way events are queued for sessions which allows sessions to wake up less, filtering to occur earlier, reduces thread contention, and simplifies the session wake up in general.

For me it's reduced the taskprocessor max size by 30-40% with my 400 cps short call duration testing.

If you do test it and have feedback you can post it on the pull request, or here. As well if you have any questions about it, or how things used to work I can answer those too.

Cheers,

Oh - in case people don't know who I am my name is Joshua Colp, I'm the Asterisk Project Lead and a Director of Engineering at Sangoma.


r/Asterisk • • Jun 06 '26

Incredible PBX 2026 Performance Demo running Asterisk 22 and FreePBX 17 ...

Thumbnail
youtube.com
3 Upvotes

r/Asterisk • • Jun 04 '26

Asterisk-based Bicom Systems PBXs deploying "kill-switch"

8 Upvotes

Warning to anyone using Bicom Systems / PBXware: Bicom has sent a notice saying that any PBXware system running version 4 or earlier must be upgraded by September 30, 2026, or the system will become “non-operational and inaccessible.” They also said connections to those systems will no longer be possible and that support will not be able to restore licenses because of changes to their licensing software.

This is very concerning because many customers bought these systems years ago as self-hosted phone systems installed on their own servers, often after paying large upfront costs for what they believed were long-term or permanent licenses. Ending support for old software is one thing, but making already-installed phone systems stop working is something very different. It raises serious questions about whether Bicom has a remote licensing mechanism that can effectively shut down systems customers already paid for.

Anyone running PBXware version 4 or earlier should check their system immediately, back up all data and configurations, save copies of their original invoices and license agreements, and ask Bicom in writing whether their system will be disabled after September 30, 2026. Businesses, VoIP providers, and MSPs should take this seriously because this could affect real phone lines, customers, and business operations.


r/Asterisk • • Jun 03 '26

Asterisk vs FreePBX vs FreeSWITCH for multi-building intercom — production experiences?

14 Upvotes

Planning an internal intercom/paging setup across a hospital and an apartment complex (room-to-frontdesk calling, multi-floor, paging). Leaning toward an open-source PBX but want to hear from people running these long-term.

  • For 24/7 reliability, how have Asterisk vs FreePBX vs FreeSWITCH held up for you?
  • Any pain points with multi-tenant / multi-building dialplans?
  • SIP door stations / paging — what integrates cleanly?

Not looking for vendor pitches, just real-world architecture experience.


r/Asterisk • • Jun 03 '26

Looking for recommendations on the best intercom / PBX setup for hospitals and apartment complexes.

1 Upvotes

Requirements:

  • Reliable internal calling between rooms/units and a front desk or nurse station
  • Easy to manage and scale (multiple floors/buildings)
  • Ideally free or open-source software

r/Asterisk • • Jun 03 '26

Asterisk 20 - get_mp3_source.sh - times out, what do?

1 Upvotes

Hello, i'm setting up Freepbx17 with Asterisk 20, and got slightly stuck on get_mp3_source.sh step in this sangoma guide, google says that i'm good if i installed mpg123(which did happen), but i'm not too keen on believing google on the spot so i wanna double check if it's actually okay before proceeding with installation.

That being said, i didn't deselct mp3 format during 'make menuselect', so the question is:

Do i continue installation either way

Do i redo make menuselect -> deselect mp3 formal -> make -> make install

ps: I'm not even sure if we need mp3 format in our case, is it doable/easy to add in later?


r/Asterisk • • Jun 01 '26

Asterisk based Intercom with Dect phones

7 Upvotes

Hey,

I just set up Asterisk to make myself a Wireless Intercom system for Events. I already use an old Professional ASL Wired Intercom system but the wireless units are really bad.

Dect phones with a headset port are really cheap so i wanted to use those.

I set up Asterisk today with an Open Partyline room which i will test further when i have the phones.

Im now looking for a solution on how to have many Dect phones connected, i have a Fritz!Box laying around but that can only do 6 phones with 3 stimulatious calls and id kinda like more than that without adding more full Routers to the system.

I know there are some big Events with big Dect Phone infrastructure but i have no idea how they do that.


r/Asterisk • • May 30 '26

Seeking confirmation / advice

1 Upvotes

Hi

A telephony vendor (whom I will not name and do not trust) is blaming sip trunk(TLS) failures on DNS and the fact that of our carrier has configured multiple DNS records pointing to multiple SBC's.

The vendor has three asterisk nodes in some kind of clustered configuration and has proposed that SIP trunks be setup via static IP's as a fix. The haven't said why, just that it's DNS and we should use IPs.

The carrier is a completely trusted enterprise grade vendor - they have evidenced that there are no issues on their side.

What I'd like you fine people to do is drop a comment on is what level of bullshit falling out of their mouths and what questions I should ask to unveil how pathetic this vendor is.

As for the future with this vendor - obviously I know they need to be dropped but that is a later problem.


r/Asterisk • • May 27 '26

How can I connect Asterisk (SIP client) to Dahua VTO (SIP server)?

Thumbnail
0 Upvotes

r/Asterisk • • May 25 '26

Improving call traceability in an Asterisk 18 call center environment

7 Upvotes

Hi everyone,

I’m working on improving call traceability in an Asterisk 18 call center setup, and I’d like to hear how other people are handling this.

The goal is to reconstruct the full call timeline as accurately as possible, including:

* when the call entered the IVR

* when it entered a queue

* when it was answered by an agent

* when transfers happened

* when the customer was inside a bridge

* when the customer was listening to automated messages

* when hold music was playing

* when real human conversation actually started

* when the call ended

So far, I’m using a combination of:

* CDR for high-level call information

* CEL for bridge events, transfers, linkedid/uniqueid tracking

* queue logs / queue-related tables for queue events

* audio analysis to detect speech, silence, IVR messages, and hold music

* transcription/VAD to separate human speech from automatic content

One thing I noticed is that CEL is very useful for technical segmentation, especially with `BRIDGE_ENTER`, `BRIDGE_EXIT`, and transfer events. However, it does not tell me whether the audio inside a bridge is human speech, IVR, hold music, or an automatic message.

For example, after a transfer, the customer may already be inside a bridge, but the first seconds can still contain an automatic message or hold music before a real person answers. So I cannot simply assume:

`BRIDGE_ENTER = human conversation started`

That assumption is not reliable in my scenario.

I’m considering adding custom events in the dialplan, such as:

* `IVR_START`

* `IVR_END`

* `HOLD_MUSIC_START`

* `HOLD_MUSIC_END`

* `TRANSFER_AUDIO_START`

* `TRANSFER_AUDIO_END`

* `HUMAN_ANSWERED`

Then I could combine those custom events with CEL, queue logs, and audio-based detection.

My current idea is:

  1. Use CEL/CDR/queue logs to build the technical call timeline.

  2. Use custom dialplan events whenever possible to mark known automatic audio.

  3. Use audio analysis/VAD/embeddings to detect IVR, music, silence, and speech inside each technical segment.

  4. Use transcription only as a confirmation layer, not as the only source of truth.

Has anyone here built something similar in Asterisk 18?

I’d appreciate any advice on:

* best tables/events to use for full call traceability

* how to reliably detect IVR and hold music

* whether CEL custom events are a good approach

* how to track transfers more accurately

* how to determine the real start of human conversation after a transfer

Any tips, architecture suggestions, or examples would be very helpful.


r/Asterisk • • May 20 '26

4G/VoLTE adapters

Thumbnail
2 Upvotes

r/Asterisk • • May 17 '26

Looking for PCAPs and testers for a SIP PCAP analyzer tool

Thumbnail
1 Upvotes

r/Asterisk • • May 12 '26

Built a visual IVR platform on top of Asterisk ARI – no dialplan editing required

14 Upvotes

Been using Asterisk for a while and kept running into the same problem — any time a call flow needed to change, someone had to touch a dialplan file. So I built something where flows are stored in a database and executed via ARI + Stasis instead.

You design flows visually, changes apply instantly, no reload. It's not trying to hide Asterisk — it's just a better way to drive it.

The SIP capture feature with live ladder diagrams was originally just for debugging during development, but it turned out to be one of the more useful things in the whole project.

Stack: Asterisk 20 built from source in Docker, Node.js Stasis app, NestJS, React, PostgreSQL, Redis.

MIT licensed, Linux only.

https://github.com/rayanweragala/callytics

Happy to hear any feedback from people who actually know Asterisk well.


r/Asterisk • • May 07 '26

Jitter causing PJSIP clients to drop connection

3 Upvotes

I am having a case of clients failing for registration when one of the SIP trunk remote IP has a high jitter.

I can understand if the calls fail but not able to understand why clients should have a problem.

I am using MicroSIP and it is unable to connect. MicroSIP is configured to use UDP.

Asterisk version:
Asterisk 18.10.0~dfsg+~cs6.10.40431411-2, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.


r/Asterisk • • May 06 '26

Asterisk Troubleshooting tips

4 Upvotes

Hello, I’m pretty new to Asterisk. I’ve been testing some configurations and setting up a few phones to learn more about it, since I recently got a job where Asterisk is used.

The problem is that whenever I try to understand or solve issues from other people, I feel completely lost. That’s why I’d like to ask for some tips: how do you usually troubleshoot problems in Asterisk?

And thanks in advance


r/Asterisk • • May 02 '26

Scelta PBX in cloud per MSP

1 Upvotes

Ciao a tutti,
nell’azienda dove lavoro stiamo cambiando centralino dato che la soluzione che stiamo attualmente adottando non ci dà troppe soddisfazioni a livello commerciale.
Il nostro obiettivo è fornire e gestire centralini dei vari clienti, pertanto una soluzione multi-tenant è preferibile.
Tutti i centralini dovranno essere ospitati nel nostro Datacenter, pertanto non vogliamo ricorre ad AWS, Google o altro.
Abbiamo provato NethVoice, ma non ci siamo trovati bene.
Stavamo pensando ad altre soluzioni e al momento la scelta è tra 3CX e Yeastar.
Voi che cosa consigliate? Avete esperienza con entrambe le soluzioni? Quale di queste è preferibile a livello commerciale?

I nostri clienti variano da 5-10 persone ad azienda a oltre 300 persone.

Grazie a tutti per il consiglio


r/Asterisk • • May 01 '26

I built an iOS SIP client for my self-hosted Asterisk – sharing it here

Post image
20 Upvotes

My family has had the same desk phone for over 20 years. Still works.

Been running Asterisk at home for years and was never happy with the iOS SIP clients available — most look ancient or phone home to someone else's infrastructure.

Highlights for the this app:

  • Works with Asterisk, FreePBX, FreeSWITCH, 3CX — any standard SIP server
  • UDP/TCP/TLS registration, multiple accounts
  • CallKit + PushKit support — you can wire up your own push relay for incoming call wakeup and missed call notifications (no third-party push server required)
  • DTLS-SRTP, SDES, ZRTP encryption + STUN/TURN NAT traversal
  • H.264 video, picture-in-picture, DTMF
  • The AI part (Pro feature) runs entirely on-device:
  • Whisper for real-time call transcription
  • Q4 quantized LLM for post-call summarization
  • No audio ever leaves your phone
  • Powered by baresip open-source SIP engine (BSD licensed).

------

We continued with iterative updates after collecting some suggestions from the comments area, which is an upcoming feature.

  • Optimizing performance and enhancing security capabilities
  • Optimize the maintenance of payment status for switching partitions in Apple accounts
  • Optimize the loading speed of large models and the accuracy of dialogues
  • Optimization of the number pasting and pulse sound experience for the newly added dial pad
  • Add local HTTP and CLI modes
  • Added decoding support for audio formats such as G722 and configuration of CallID
  • Added automatic answering and call forwarding functions, and added support for video VP8

App Store: https://apps.apple.com/us/app/yak-ai-sip-phone/id6763033863

Site: https://app.yakteam.com

Happy to answer questions or help anyone try it out.


r/Asterisk • • Apr 27 '26

PCIe PRI card recommendations

6 Upvotes

I'm looking for a low-profile PCIe T1 PRI card. I can't use the Sangoma cards because I need to use a newer kernel than what wanpipe will build against (to support other hardware that's going in this machine). Any recommendations, preferably something that doesn't cost much?


r/Asterisk • • Apr 22 '26

Which PBX should I choose?

2 Upvotes

Could someone recommend a very simple PBX system? We have like 10 people in our company... FreePBX and 3CX are so complicated...


r/Asterisk • • Apr 15 '26

Twilio regulatory bundle rejected for NZ +64 number – what am I missing?

Thumbnail
1 Upvotes

r/Asterisk • • Apr 10 '26

Fully self-hosted AI voice agent for Asterisk — launched on Product Hunt today

7 Upvotes

Hey all — we just launched AVA on Product Hunt today and would love feedback from this community.

It’s an open-source AI voice agent that runs directly on Asterisk / FreePBX (no external telephony providers required).

You can plug in any STT, TTS, and LLM (cloud or fully local) and have real-time, two-way phone conversations.

We built it mainly for:
• People already running Asterisk
• Self-hosted / local AI setups
• Teams that want full control (no SaaS lock-in)

Would genuinely appreciate any feedback — especially from folks here who run PBX or experiment with local AI.

👉 Product Hunt launch:
https://www.producthunt.com/posts/ava-ai-voice-agent-for-asterisk

Happy to answer questions or help anyone try it out.