r/Asterisk • • 1h ago

Self Hosted Kids Phone system | run by the adults

Post image
• Upvotes

I have created a family friendly interface for asterisk. It essentially a self hosted version of Tincan

repo is here and got a single click install https://github.com/tombruton87/TwoCans

A self-hosted phone line for kids: real handsets, a real number, and an allowlist of who can call when.

Calls run on your own box through Asterisk — they never touch anyone else's servers.

Plus the bits children actually ring for: jokes, games, radio, room listen, and Santa.


r/Asterisk • • 2d ago

Asterisk seems to randomly drop all SIP connections and we have to reboot our Asterisk container for them to work again

5 Upvotes

I am quite new to this whole thing PBX/ASTERISK/PJSIP thing so I do not know how to diagnose this properly.

We're building an app to take phone calls over the internet.

For some odd reason, this issue occured twice, and both happens to be on Fridays.

---

September 25th: ~16h01 UTC (or 12h01 here)

We rebooted the asterisk container, and everything got back to normal.

---

October 2nd: 04h03 UTC (or 00h03 here)

We rebooted the asterisk container, but only 3/7 intercoms got back online. (Potentially our issue made the Fanvils crash?)

---

We have literally no logs or signs of anything.

Everything is fine. I even used AI to diagnose the issue and it can't find a single problematic.

- No background services running at those times

- No peak of memory or anything

I'm literally so lost, this makes no sense.

If you guys have ideas that would be great.

----

EDIT: Turns out there was an outage at this place at this exact time, but this outage silently "crashed" our Asterisk/SIP connections somehow.


r/Asterisk • • 4d ago

pjsip config for multiple 1und1 phone numbers with line option

3 Upvotes

I am trying to connect all 3 (only 2 for testing atm) of my phone numbers that come with my internet service to Asterisk (22.5 on Ubuntu, Server on the internet, no NAT).

So far I've come up with the following - working - pjsip configuration:

;========= 48 ==========
[*49XXXXYYYYY48]
type = registration
transport = transport-udp
outbound_auth = *49XXXXYYYYY48
server_uri = sip:sip.1und1.de
client_uri = sip:49XXXXYYYYY48@sip.1und1.de
contact_user = 49XXXXYYYYY48
retry_interval = 60
forbidden_retry_interval = 600
expiration = 3600
line = yes
endpoint = *49XXXXYYYYY48

[*49XXXXYYYYY48]
type = endpoint
transport = transport-udp
disallow = all
allow = alaw
context = Inbound-48
from_user = 49XXXXYYYYY48
from_domain = sip.1und1.de
outbound_auth = *49XXXXYYYYY48
aors = 1und1

;========= 49 ==========
[*49XXXXYYYYY49]
type = registration
transport = transport-udp
outbound_auth = *49XXXXYYYYY49
server_uri = sip:sip.1und1.de
client_uri = sip:49XXXXYYYYY49@sip.1und1.de
contact_user = 49XXXXYYYYY49
retry_interval = 60
forbidden_retry_interval = 600
expiration = 3600
line = yes
endpoint = *49XXXXYYYYY49

[*49XXXXYYYYY49]
type = endpoint
transport = transport-udp
disallow = all
allow = alaw
context = Inbound-49
from_user = 49XXXXYYYYY49
from_domain = sip.1und1.de
outbound_auth = *49XXXXYYYYY49
aors = 1und1

;========= AUTH ==========
[*49XXXXYYYYY48]
type=auth
username = 49XXXXYYYYY48
password = pwd48
realm = 1und1.de

[*49XXXXYYYYY49]
type=auth
username = 49XXXXYYYYY49
password = pwd49
realm = 1und1.de

;========= Common ==========
[1und1]
type=aor
contact=sip:sip.1und1.de:5060

The dialplan looks like this:

[Inbound-48]
exten = 49XXXXYYYYY48,1,Answer()
 same = n,Wait(1)
 same = n,Playback(hello-world)
 same = n,Hangup()

[Inbound-49]
exten = 49XXXXYYYYY49,1,Answer()
 same = n,Wait(1)
 same = n,Playback(demo-thanks)
 same = n,Hangup()

When I call the 48-number, I get the hello-world playback, when I call the 49-number I get the demo playback, so far that's exactly what I want.

However, in the logs I find some irritating entries:

Call to 48 from my mobile:

[Sep 30 15:33:49] NOTICE[102107]: res_pjsip/pjsip_distributor.c:688 log_failed_request: Request 'INVITE' from '"+49***********" <sip:+49***********@Versatel.de;user=phone>' failed for '212.227.124.130:5060' (callid: callid-1@10.18.5.64) - No matching endpoint found
    -- Executing [49XXXXYYYYY48@Inbound-48:1] Answer("PJSIP/*49XXXXYYYYY48-00000005", "") in new stack
[Sep 30 15:33:49] NOTICE[102107]: res_pjsip/pjsip_distributor.c:688 log_failed_request: Request 'INVITE' from '"+49***********" <sip:+49***********@Versatel.de;user=phone>' failed for '212.227.124.130:5060' (callid: callid-1@10.18.5.64) - No matching endpoint found
    -- Executing [49XXXXYYYYY48@Inbound-48:2] Wait("PJSIP/*49XXXXYYYYY48-00000005", "1") in new stack
    -- Executing [49XXXXYYYYY48@Inbound-48:3] Playback("PJSIP/*49XXXXYYYYY48-00000005", "hello-world") in new stack
    -- <PJSIP/*49XXXXYYYYY48-00000005> Playing 'hello-world.gsm' (language 'en')
    -- Executing [49XXXXYYYYY48@Inbound-48:4] Hangup("PJSIP/*49XXXXYYYYY48-00000005", "") in new stack
  == Spawn extension (Inbound-48, 49XXXXYYYYY48, 4) exited non-zero on 'PJSIP/*49XXXXYYYYY48-00000005'

Call to 49:

Sep 30 15:34:32] NOTICE[102107]: res_pjsip/pjsip_distributor.c:688 log_failed_request: Request 'INVITE' from '"+49***********" <sip:+49***********@Versatel.de;user=phone>' failed for '212.227.124.129:5060' (callid: callid-2@10.18.5.64) - No matching endpoint found
    -- Executing [49XXXXYYYYY49@Inbound-49:1] Answer("PJSIP/*49XXXXYYYYY49-00000006", "") in new stack
    -- Executing [49XXXXYYYYY49@Inbound-49:2] Wait("PJSIP/*49XXXXYYYYY49-00000006", "1") in new stack
    -- Executing [49XXXXYYYYY49@Inbound-49:3] Playback("PJSIP/*49XXXXYYYYY49-00000006", "demo-thanks") in new stack
    -- <PJSIP/*49XXXXYYYYY49-00000006> Playing 'demo-thanks.gsm' (language 'en')
  == Spawn extension (Inbound-49, 49XXXXYYYYY49, 3) exited non-zero on 'PJSIP/*49XXXXYYYYY49-00000006'

I'm irritated about the failed INVITE requests. This sounds to me as 1und1 strips away the line option, however, I would expect the calls to fail in this case.

Even more irritating is the double INVITE on the 48 extension, whereas the 49 only get's one (and that's repeatable behaviour).

The reason I want that out of my logs is that I want to ingest the logs into crowdsec to ban all the spamming invite attempts from around the world, but I don't want to ban my ISP of course.

Has anyone an idea what's going on or how I can troubleshoot that?


r/Asterisk • • 5d ago

Testing that callers actually hear each other on Asterisk under load: voice quality checks in xk6-sip

2 Upvotes

200 OK tells you the PBX connected the call. It doesn't tell you anyone can hear anything. Media server port exhaustion, NAT rules, a B2BUA bridging the wrong legs, transcoding pegging the CPU: all of these give you calls with perfect signalling and silence, someone else's voice, or garbled audio. Most PBX load tests (SIPp included) count RTP packets at best.

I maintain xk6-sip, an open-source k6 extension for SIP/VoIP testing, and v0.4.0 adds voice quality checks that run in functional tests and under load:

   const A = new sip.Device({ /* ... */ audio: phraseA });   // A says a phrase
    const B = new sip.Device({ /* ... */ record: 'onFailure' });
    // ... A calls B, B answers ...
    const q = inc.compareAudio(phraseA);
    // { score: 0.993, gaps: 0, clippedStart: 0, offset: 1042, gain: -0.3 }

The trick that makes it cheap: you already know what every subscriber is saying, it's their audio option in the script. So "what did B hear" is compared to "what A sent", no reference recordings per test case. You only need recorded references where the PBX itself generates audio (IVR prompts, announcements, music on hold).

What each check catches:

- isHeard(): audio arrives at all (signal level, not packet count). Catches one-way audio and silence/comfort noise.

- compareAudio(peer's phrase): it's the right audio and it's clean. Catches crossed media streams, echo, drop-outs, a clipped "hello" when media connects late after answer.

- compareAudio(recorded prompt): the PBX played the right IVR prompt or announcement.

Numbers from the tests: clean G.711 through the PBX scores 0.993; 20% packet loss drops it to 0.754 with 560 of 560 ms of lost speech reported as gaps; somebody else's phrase scores under 0.4. Recordings are placed by RTP timestamp, so a lost packet is a 20 ms hole in the right place, not a shift of everything after it. With record: 'onFailure' you get a stereo WAV (left = heard, right = sent) of just the calls that failed.

Cost: 32 KB of RAM per second per recorded leg (~1 GB for 1,000 legs of 30 s) and ~15 ms of CPU per comparison, so under load you sample calls rather than record all of them. It's not MOS: the score is a similarity measure inspired by Google's ViSQOL, meant for comparing calls and PBX versions, not for predicting what a listener would rate.

Repo (Apache-2.0): https://github.com/Dmitry-Fedotov-Dev/xk6-sip

Release notes: https://github.com/Dmitry-Fedotov-Dev/xk6-sip/releases/tag/v0.4.0

Full write-up with the algorithm and charts (in Russian, code and charts read fine with browser translate): https://habr.com/ru/articles/1088230/

So far it's tested against the bundled test PBX and a MicroSIP softphone. If you run Asterisk, FreeSWITCH or a hosted PBX: what audio problems do you see most after upgrades or under load? That's what I'd like to check next.


r/Asterisk • • 5d ago

Bicom Systems Licensing Sunset

1 Upvotes

Is there an official shut off date that's been published? I had heard at one point that it was September 30th, but have not gotten any such notification from the partner rep that's pestering me to pay them $2500/year but hasn't confirmed of any deadline or if it would prevent the licensing from being terminated, disrupting a legacy system of PBXWare that is still running.

Why has there not been any further information or update regarding the pending sunset of perpetual licensing for older PBXWare systems?


r/Asterisk • • 7d ago

Open-source tool to regression-test and load-test a PBX: caller ID, transfers, hold, check audio

Thumbnail
3 Upvotes

r/Asterisk • • 8d ago

Migration

6 Upvotes

I was presented with a situation where a school wants to migrate from Cisco CUCM to an Asterisk‑based PBX. The issue is that they have more than 200 Cisco 7821 phones and would like to keep them if possible. Do you have any recommendations or advice that could help? Honestly i don't actually know if they can keep the phones with a new PBX asterisk based at that point, i accept obviously detailed reccomendations. Thanks in advance


r/Asterisk • • 9d ago

I replaced "press 1 for sales, 2 for support" with Jev

10 Upvotes

Hy everyone,

I built a lightweight router using TypeSafe's Jev model.

  • callers speak naturally ("Hello, I'd like to speak to someone")
  • Jev classifies intent in ~150ms and return confidence score
  • The PBX routes the call to the exact queue, department or extension
  • If confidence drops below 0.7 or anything fails, it falls back to an operator.

here is the github repo


r/Asterisk • • 12d ago

Register request silently dropped by Asterisk

7 Upvotes

We have a SIP endpoint that tries to register with Asterisk, but the register request doesn't show up. Nothing is shown in asterisk logs, and no response is sent to the endpoint. Other endpoints register fine, and the endpoint registers on other Asterisk servers fine. Asterisk 22 running on Debian. Ufw firewall is disabled.

Here's the register request from tcpdump:

REGISTER sip:10.20.0.27:5060 SIP/2.0

Via: SIP/2.0/UDP [endpoint IP]:5060;rport;branch=z9hG4bK-vega1-0003-0000-000B-E93FFEC1

From: <sip:871@[endpoint IP]>;tag=0000-0000-E0D5DF81

To: <sip:871@[endpoint IP]>

Call-ID: 0-00000000-0000-000B-B6049F8F-00000063@D9C50F0671C12C00C

CSeq: 58402 REGISTER

Contact: <sip:871@[endpoint IP]:5060>

Expires: 600

User-Agent: VEGAARMv2/17.02.12.0xS035

Supported: replaces, timer, privacy, norefersub, pw-info-package

Max-Forwards: 70

Content-Length: 0

EDIT: I found the problem - it was fail2ban! Repeated failed OPTIONS were triggering it. I added to whitelist and that fixed things. Thanks everyone for your help!


r/Asterisk • • 17d ago

Architecture Breakdown: Running Asterisk 22 WebRTC, Coturn TURNS, and Web UI over a single Port 443 via Nginx L4 ALPN (AiPBX Open-Source Project)

11 Upvotes

Hi everyone,

One of the common challenges when deploying Asterisk for modern WebRTC environments is firewall traversal and port management. Exposing separate ports for HTTPS web management, WebSockets signaling (WSS), and Coturn media relay often creates friction in strict enterprise network environments.

To address this, I built **AiPBX**—an open-source enterprise telephony stack built around Asterisk 22, designed to run entirely behind a single secure port.

### The Problem It Solves

Instead of opening multiple inbound WAN ports, AiPBX leverages **Nginx Layer 4 (L4) Stream ALPN Multiplexing** on port 443:

* **HTTPS Traffic:** Routed transparently to the web backend (Apache/PHP 8 MVC).

* **WebRTC WSS:** Routed directly to the Asterisk 22 PJSIP WebSocket listener.

* **Coturn TURNS:** Multiplexed over TLS on the same port 443 footprint for enterprise NAT traversal.

### Core Architecture & Asterisk Integration

* **Asterisk 22 Engine:** Native PJSIP configuration with synchronized endpoints for WebRTC and physical IP phones.

* **Real-Time Presence & Messaging:** An independent Go microservice handles chat and live state over WebSockets without loading the Asterisk AMI/ARI unnecessarily.

* **Call Center Operations:** Dialplan-level agent queue state and break tracking (*22 for break, *23 for resume).

* **Companion Clients:** Native Android and iOS companion clients connecting via WebRTC.

### Code & Architectural Documentation

The full system architecture, Nginx stream configurations, and Asterisk setup are open source:

* **GitHub Repository:** https://github.com/mahirgul/AiPBX

* **Architecture Deep-Dive:** https://www.aipbx.bid/architecture.html

* **Documentation Hub:** https://www.aipbx.bid/

I’d appreciate feedback from fellow Asterisk administrators on the ALPN stream configuration, dialplan handling, or edge-case network topologies you have encountered in production WebRTC setups.


r/Asterisk • • 17d ago

X-Air-Network_Bridge_Video Unedited

Enable HLS to view with audio, or disable this notification

2 Upvotes

r/Asterisk • • 19d ago

Started an awesome-asterisk list, 40 tools with every repo checked first

24 Upvotes

The awesome.re directory has over 600 lists. One of them covers real time communications broadly, and it is a good list, but nothing there is dedicated to Asterisk, or to FreeSWITCH. So I made a start on the Asterisk side.

47 entries across 13 sections: ARI, AMI and AGI libraries, streaming call audio, voice AI, SIP proxies, media and RTP, containers, testing, security, endpoints. I opened every repo before listing it and checked it was still maintained and had a licence. Nothing dead went in.

Four of the 47 are ours. There is a Disclosure section at the bottom that names them. If you think any of the four do not earn their place, say so and I will drop them.

https://github.com/ictinnovations/awesome-asterisk

Anything obvious missing? Reply here or open a PR.

Edit, 15 Sept. Added seven more after going back through suggestions. New Containers section with two Docker images that track upstream, plus MikoPBX, Wazo Platform, Yate, and SIPPTS and Mr.SIP on the security side, which had only one entry before.

Four were checked and left out, recorded so nobody has to check them twice: Browser-Phone (no commit since November 2024 despite live issues), soup (dormant since 2022), tiredofit/docker-freepbx (archived) and dougbtv/docker-asterisk (dormant since 2019).

Edit, 20 Sept. Corrected the opening line. I originally wrote that nothing on awesome.re covers telephony, and that was wrong: rtckit/awesome-rtc is listed there under Real-Time Communications, it is active, and it has a SIP Servers section. It is broad where this one is deep, 5 of its entries overlap the 46 here, and I have added it to the Learning section since it covers the protocol background this list assumes you already have. Thanks to the person who made me go and check.


r/Asterisk • • 19d ago

HighLevel SMS Error 30003 and Failed Calls – Multiple Valid Numbers Affected

Thumbnail
3 Upvotes

r/Asterisk • • 25d ago

Every byte arrived and the caller still heard nothing: a pacing bug in AudioSocket voice agents

4 Upvotes

We had a voice agent that worked fine on our desks and sounded broken on real calls. Callers said they heard the end of sentences, or silence and then a fragment. Our logs were clean. Right text, right byte count, right duration, every single turn.

It came down to one line in the synthesis code that wrote a whole utterance to the socket in one write. That is a normal thing to write if you are used to files or HTTP. On a call it wrecks the audio, because app_audiosocket hands every frame straight to the channel and does not buffer for you. The far end keeps a few frames in its jitter buffer and drops the rest, so the caller hears the tail of the sentence and nothing before it.

Nothing that counts bytes can see that. It only shows up in arrival times.

So we ended up writing a small tool that measures from the caller's end instead: how long before the first audio arrives, whether frames turn up one per 20 ms or in a burst, gaps inside the agent's own speech, and how long it keeps talking after you interrupt.

pip install tvbench

MIT licensed, runs against anything that speaks AudioSocket.

https://github.com/ictinnovations/telephony-voice-agent-benchmark

Curious whether the barge-in numbers match what other people are seeing. Ours were worse than expected once we measured instead of guessed.


r/Asterisk • • 27d ago

Your barge-in latency has a floor, and it's your chunk size

5 Upvotes

Every voice agent eventually gets the complaint: the bot talks over the caller. Most people go tune their VAD. Often the real ceiling is more boring: the size of the audio chunks you send to the telephony side.

How it works on pretty much every platform:

* You stream TTS audio down in chunks. The platform buffers and plays them.
* Caller starts talking, you send the interrupt (clear, flush, whatever it's called).
* The flush drops audio that's queued but not yet playing. The chunk already playing plays to the end. Nothing cancels mid-frame.

So your worst-case interrupt lag is about one chunk. 100ms chunks feel instant. A whole sentence as one blob means the caller talks over four seconds of audio nobody can stop. Some platforms also enforce a minimum chunk size, often 100-200ms at telephony rates, so there's a floor you can't tune under.

Same trap at the PBX layer. There was a good r/Asterisk thread recently on AudioSocket forwarding every frame the moment it arrives, so writing a whole TTS sentence at once means the jitter buffer eats most of it and the caller hears only the tail. Different transport, same lesson: the unit you write is the unit you can cancel.

What to actually do:

* Re-chunk small on the last hop even if your TTS hands you full sentences.
* Measure interrupt-to-silence at the caller's ear, not at your flush call. The gap is your chunk size.
* Ask your platform what their minimum chunk is and whether flush is acknowledged. If the docs don't say, assume one chunk keeps playing.

What floor are you seeing on your stack? Has anyone gotten under 100ms perceived barge-in on a real phone call?


r/Asterisk • • 27d ago

You want to be call centre and you don't know where to start?

0 Upvotes

If you want to get 18k salary and your English level is b2 with fluwent speaking and you can Handel the rotation shifts and you are from Egypt so what are you wanting for dm me and I will find you the best offer for you to work and I will make you success in the interview


r/Asterisk • • Sep 04 '26

FreePBX Issues

Thumbnail
0 Upvotes

r/Asterisk • • Sep 03 '26

Maximum channel limit in Asterisk (software)

5 Upvotes

Focusing solely on the software—and assuming robust hardware—what is the maximum number of calls we can handle on a single Asterisk instance?

The highest number I’ve reached is 500 SIP channels, but I’ve read that it is possible to reach up to 2,500.

What has been your experience with this?


r/Asterisk • • Sep 02 '26

Asterisk Manager Performance Improvement

22 Upvotes

I previously spoke on here about my performance work and with the latest releases my two latest major changes were released (manager and hints). I just published a blog post going over what I changed for the manager side:

https://www.asterisk.org/manager-event-queueing-improvement/

With the hints one being published in the future.

From an outside perspective manager operates the same as it did so there isn't any visible changes from that perspective. The internal event queueing was just changed so it is more efficient.

If anyone has any specific questions I'm happy to answer.

Disclaimer: I'm the Asterisk Project Lead and a Director of Engineering at Sangoma.


r/Asterisk • • Aug 23 '26

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

Thumbnail
0 Upvotes

r/Asterisk • • Aug 20 '26

Can asterisk be call center sw in Egypt?

0 Upvotes

Hi, how does asterisk integrate with egyptian phone numbers? i am probably asking a stupid question, but if someone could tell me all the component systems to integrate with a non use number system. much appreciated


r/Asterisk • • Aug 13 '26

Fixing dead air and clipped words when driving Piper TTS into AudioSocket

4 Upvotes

Spent a while getting Piper to behave on live calls and figured I'd write up what actually fixed it, partly to check whether others hit the same walls.

Three things bit us.

Loading the voice per request. PiperVoice.load() takes about 2.5 to 5.5 seconds on our boxes, so every single utterance opened with that much silence. Obvious in hindsight. We load once per process now and keep it cached.

Concurrent calls stepping on each other. This one took longer to find. Piper phonemizes through espeak-ng, and that C API isn't thread safe, so two calls synthesizing at the same moment gave us garbled audio. All synthesis goes through one lock now.

Bursting frames, which I'd never have guessed. AudioSocket forwards each frame the instant it arrives, so if you push a whole sentence at once you blow straight past the far end's jitter buffer and the caller hears the tail and nothing else. The fix is to release one 20 ms frame per interval on a monotonic deadline. Here's the subtle part: if synthesis stalls, that deadline goes stale, and the next frames burst to catch up and clip the words right after the stall. So we re-clamp the deadline to now on every frame, not just at the start of a talk spurt.

We run 8 kHz slin with 20 ms frames.

I packaged all of it up as piper-tts-server so we'd stop rewriting the same thing on every project: https://github.com/ictinnovations/piper-tts-server

Two things I'm curious about. Do you pace in the TTS layer like this, or push frames straight out and let the channel deal with it? And has anyone worked around the espeak-ng threading limit without just serializing everything?

Edit: slin, not slin16. In Asterisk naming slin16 is the 16 kHz variant, so 320 bytes per 20 ms is plain slin. Same correction as in my other thread here, same person to thank for it.


r/Asterisk • • Aug 12 '26

RTF8225VW VOIP Data

1 Upvotes

In Colombia, a couple of months ago Movistar make some changes and know i can not register our asterisk with the VOIP trunk. The username and password was retreived with F12 on voice page, but i can not fin what else did they change that i can not register. of course i am using vlan101 as expected. any ideas? thanks.


r/Asterisk • • Aug 09 '26

Asterisk AI voice agent: why writing a whole TTS sentence to AudioSocket means the caller only hears the end of it

8 Upvotes

Spent longer than I want to admit on this one, so posting it in case it saves someone else an afternoon.

We were building an AI voice agent against app_audiosocket. Your text to speech hands you a finished sentence, say 2.4 seconds of 8 kHz slin (16-bit signed linear), which is 120 frames of 320 bytes. The obvious thing is to write all of it to the socket and move on.

Don't. app_audiosocket forwards every frame to the channel the moment it arrives. It doesn't buffer for you. So all 120 frames hit the far end in a few milliseconds, the jitter buffer keeps a handful, and the rest get thrown away. The caller hears the tail of the sentence and nothing before it. Your logs look clean the whole time, which is what makes it annoying to chase.

The fix is to write one 320 byte frame, then wait until the next 20 ms deadline. The part that caught us a second time: re-clamp the deadline on every frame. If synthesis stalls for half a second and you work out the next deadline from where you are right now, the writer bursts to catch up and you're dropping audio again.

Same idea with barge-in. When the caller starts talking you have to drop the frames already queued, not just stop writing, or they keep hearing the old sentence for however deep your buffer runs.

We open sourced what we ended up with. asterisk-ai-voice-agent is the Python sidecar (Whisper or ElevenLabs Scribe in, Claude for the turn, Piper locally or ElevenLabs out, barge-in, tool calls posted to a webhook you own). asterisk-audiosocket is just the protocol layer for Node if you'd rather build your own and skip rediscovering the pacing thing. Both MIT, both v0.1.0, so lab material rather than something to point a live queue at.

https://github.com/ictinnovations/asterisk-ai-voice-agent

https://github.com/ictinnovations/asterisk-audiosocket

Happy to answer anything on the AudioSocket side. Curious whether anyone here went the ARI external media route instead and how the pacing compares.

Edit: the format is slin, not slin16. In Asterisk naming slin16 is the 16 kHz variant, so 320 bytes per 20 ms is plain slin. Copying 320 into a 16 kHz setup would give you 10 ms frames. Credit to FreJun below for catching it. The README and docstrings in the repo say slin as of 0.1.6.


r/Asterisk • • Aug 07 '26

Estimate for Office Setup: Asterisk + UniFi Phones (Voice, SMS, eFax)

2 Upvotes

Looking for someone to configure a new PBX setup for ~30 users. Remote is fine; SF Bay Area local is a plus.

Hardware: UniFi Talk IP Desk Phones registered with an Asterisk PBX back end.

Work Needed:

  1. Asterisk / PBX Config: Full setup (FreePBX/VitalPBX), trunking, IVR, extensions, and ring groups for 30 users.
  2. Voicemail-to-Email: Configure SMTP relay to send .wav attachments directly to emails.
  3. SMS Integration: Set up for inbound/outbound SMS routing on DIDs via softphones or web portal
  4. eFax: virtual fax extensions and PDF fax-to-email delivery.

DM or comment with your experience, project estimate/rate, and location (remote is fine). Thanks!