You don't say what happens when you start Asterisk, but I'll assume your 
registration with your provider is failing.  If you turn on SIP debug from CLI 
you can watch your registration attempts, and see the exact reason for failure. 
 (eg: unreachable vs credentials).  Post that output into the list email if you 
aren’t sure what to make of it.


The numerous similar stanzas have to do with pjsip.  Many of the older 
examples/guides reference a simpler (deprecated) SIP stack, with slightly 
different syntax.  If you google PJSIP + Asterisk config you'll send the 
purpose of all of those stanza's.  PJSIP adds a lot of complexity for the 
outlier use cases (99% of people don't need all of PJSIP's capabilities) - but 
you have to fill it all in.  There are some nice diagrams here 
 which explains it fairly well.


Please reply to the list only (so anyone can jump in and benefit from the 
discussion too)




-----Original Message-----

From: Steve Matzura [] 

Sent: Monday, May 22, 2023 12:15 PM

To: TTT <>

Subject: Re: [asterisk-users] Ready to throw up my hands in defeat


Thanks. Further reading and digging did in fact prove out that the RTP is a lot 
of what's been throwing me. I won't bother with that any longer.



I did make the "hello world" example from the Asterisk wiki work. It was 

simple enough--lift the example right out of the book, paste it into the 

appropriate files, install and configure Zoipr, restart Asterisk,  and 

it just worked. Good.



So now I'm branching out, ready to add my DID provider info and actually 

be able to call in from outside.



The following file contents come from my DID provider, The only 

thing I added was my specific DID registration info, which has been 

redacted here:








type = transport

protocol = udp

bind =



type = registration

transport = transport-udp

outbound_auth = voipms

client_uri = sip:******

server_uri =



type = auth

auth_type = userpass

username = ******

password = ******



type = aor

contact = sip:******



type = endpoint

transport = transport-udp

context = mycontext

disallow = all

allow = ulaw

; allow=g729                 ; uncomment if you support g729

from_user = ******

auth = voipms

outbound_auth = voipms

aors = voipms

; NAT parameters:

rtp_symmetric = yes

rewrite_contact = yes

send_rpid = yes



*** NOTE: I left those lines in because I am after all behind a home 

router so I thought I'd need it. ***




type = identify

endpoint = voipms

match =



Why so many stanzas all called 'voipms'? I see that they all have 

different types, so why not have everything in the same stanza?



Here's extensions.conf:




; Make sure to include inbound prior to outbound because the _NXXNXXXXXX 

handler will match the incoming call and create a loop

include => voipms-inbound

include => voipms-outbound



exten => _1NXXNXXXXXX,1,Dial(PJSIP/${EXTEN}@voipms)

exten => _1NXXNXXXXXX,n,Hangup()

exten => _NXXNXXXXXX,1,Dial(PJSIP/1${EXTEN}@voipms)

exten => _NXXNXXXXXX,n,Hangup()

exten => _011.,1,Dial(PJSIP/${EXTEN}@voipms)

exten => _011.,n,Hangup()

exten => _00.,1,Dial(PJSIP/${EXTEN}@voipms)

exten => _00.,n,Hangup()


; inbound context example for your DID numbers, do not add the number 1 

in front



exten => 3115552368,1,Answer() ; fake DID number



Now, I have the block of text from the hello-world wiki:




exten = 100,1,Answer()

same = n,Wait(1)

same = n,Playback(hello-world)

same = n,Hangup()



That's certainly clear enough.



My question is, how do I connect the two extensions.conf fragments? 

i.e., where's the routing from the system answering the inbound connect 

request to the actions in the extension 100 statements?



The book talks a lot about registering phones through SQL. Looking at 

pjsip.conf is a little bewildering--all those '[6001]' examples. Which 

ones do I absolutely need? I have two kinds of phones to register--one 

on my own LAN and one remote, presumably coming in with NAT'ing and 

definitely behind its own firewall on its own LAN.



On 5/22/2023 10:59 AM, TTT wrote:


> There are lots of little tweaks/adjustments overlooked in most guides/books.  
> The examples work most of the time, but even a small difference in your 
> environment might break them.


> I'm pretty sure the list will be able to answer questions to help you figure 
> it out.  If you break down your current problem into the basic step/task and 
> explain what's not working then you'll likely get a good explanation.


> If you're not sure where to start, just add one physical phone  and a 
> screaming monkeys entry in the dialplan (lots of examples out there).  If 
> that' doesn't work, post the CLI output with verbose turned up.


> In general stay away from realtime (I assume that is the SQL reference)



> -----Original Message-----

> From: asterisk-users [] On 
> Behalf Of Steve Matzura

> Sent: Monday, May 22, 2023 10:19 AM

> To: Asterisk Users Mailing List - Non-Commercial Discussion 
> <>

> Subject: [asterisk-users] Ready to throw up my hands in defeat


> I am not comfortable with admitting this on a public userlist [;-)] but after 
> over forty years in software development and manual-reading and 
> -interpretation, I've finally hit one that I can't get past.



> I've mention previously that I worked with Asterisk in older days--like in 
> around 2003--and never had any trouble understanding what to do and how to do 
> it in order to make it work. I am attempting to build what's probably the 
> world's most basic system--one incoming trunk from a DID provider going to 
> one internal extension that answers, plays a couple things, and possibly 
> takes a message. I'd also like to add two extensions with real physical 
> endpoints--phones--one local, one remote.

> I think I can manage that part. It's the initial SIP stuff that's making me 
> dizzy.



> The book I am now reading--"Asterisk, the Definitive Guide" by Madsen, Bryant 
> and Meggelin for Asterisk version 16-- assumes I have built an implementation 
> from source, and that includes SQL. There are tons of references to SQL 
> databases in the book which I understand, but having installed Asterisk from 
> a distribution package, that component is not part of the installation, so I 
> am presumably expected to supply the information by manually entering it into 
> configuration files. I'm OK with doing that, too. The part I'm having trouble 
> with is that the samples in the configuration files, particularly pjsip.conf, 
> offer several choices for some of the stanzas, like all the things defining 
> trunks and endpoints, and that's where I'm losing it. The book makes it sound 
> and look so easy--add a couple records to a couple SQL tables according to 
> your instruments and DID providers, and it probably works just that smoothly 
> and easily. But how does one make these choices when one has to manually edit 
> these configurations and choose the one that at least halfway looks like the 
> SQL stuff in the book?



> I think I need a little hand-holding and am willing to buy some from someone 
> who has the time and inclination to provide it. I'm a fast learner, I record 
> all such sessions, and I'm sure I can get what I need in a couple hours, most 
> likely less. if you're interested, or know someone who is, please contact me 
> off-list, with my eternal thanks in advance.



> --

> _____________________________________________________________________

> -- Bandwidth and Colocation Provided by --


> Check out the new Asterisk community forum at:


> New to Asterisk? Start here:



> asterisk-users mailing list

> To UNSUBSCRIBE or update options visit:




-- Bandwidth and Colocation Provided by --

Check out the new Asterisk community forum at:

New to Asterisk? Start here:

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:

Reply via email to