Asterisk config generator

Build the files between your SIP trunk and Voice AI runtime.

Enter the trunk, network, dialplan, and media details. The generator creates 6 inspectable files and never asks for a SIP or ARI password.

secret-safePasswords are not collected or placed in the URL. Generated files keep explicit placeholders.
Carrier and identity
Network and media
Dialplan and ARI

The URL stores only codec, transport, and port choices. It does not store carrier IDs, network addresses, caller ID, or usernames.

generated bundle

Review every line before production

6 files ready
generated filepjsip.conf
[transport-udp-nat]
type=transport
protocol=udp
bind=0.0.0.0:5060
local_net=10.0.0.0/8
external_signaling_address=203.0.113.10
external_media_address=203.0.113.10

[carrier-registration]
type=registration
transport=transport-udp-nat
outbound_auth=carrier-auth
server_uri=sip:sip.provider.example
client_uri=sip:account-id@sip.provider.example
contact_user=voice-ai
retry_interval=60

[carrier-auth]
type=auth
auth_type=userpass
username=sip-user
password=<SIP_PASSWORD>

[carrier-aor]
type=aor
contact=sip:sip.provider.example:5060
qualify_frequency=30

[carrier-endpoint]
type=endpoint
transport=transport-udp-nat
context=from-carrier
disallow=all
allow=ulaw
outbound_auth=carrier-auth
aors=carrier-aor
direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes

[carrier-identify]
type=identify
endpoint=carrier-endpoint
match=198.51.100.0/24
generated fileextensions.conf
[from-carrier]
exten => voice-ai,1,NoOp(Inbound Voice AI call)
 same => n,Answer()
 same => n,Stasis(voice-ai)
 same => n,Hangup()

[voice-ai-outbound]
exten => _+X.,1,NoOp(Outbound Voice AI call to ${EXTEN})
 same => n,Set(CALLERID(num)=+12025550123)
 same => n,Dial(PJSIP/${EXTEN}@carrier-endpoint,45)
 same => n,Hangup()
generated filertp.conf
[general]
rtpstart=10000
rtpend=20000
generated filehttp.conf
[general]
enabled=yes
bindaddr=127.0.0.1
bindport=8088
generated fileari.conf
[general]
enabled=yes
pretty=no

[voice-ai-app]
type=user
read_only=no
password_format=crypt
password=<CRYPT_PASSWORD_HASH>
generated fileexternal-media.txt
POST /ari/channels/externalMedia
  ?app=voice-ai
  &external_host=127.0.0.1%3A60000
  &format=ulaw

Treat generated files as a checked starting point

Carrier authentication, inbound DID routing, firewall rules, TLS, SRTP, codec negotiation, and module availability still depend on your provider and Asterisk build.

credentialsAdd secrets on the server

Replace both password placeholders outside source control.

networkOpen the exact RTP range

Match the host firewall, upstream NAT, and rtp.conf.

verificationTrace one real call

Confirm registration, dialplan entry, ARI events, SDP, and two-way audio.