Transport 'transport-udp' is not fully reloadable, not reloading: protocol, bind, TLS, TCP, ToS, or CoS options

Hi
Reloading my pjsip.conf is not able. I am constantly getting message:
[Jan 13 06:17:36] WARNING[16531]: res_pjsip/config_transport.c:559 transport_apply: Transport ‘transport-udp’ is not fully reloadable, not reloading: protocol, bind, TLS, TCP, ToS, or CoS options.
[Jan 13 06:17:36] NOTICE[16531]: sorcery.c:1348 sorcery_object_load: Type ‘system’ is not reloadable, maintaining previous values

and this is pjsip.conf:
[global]

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

;[transport-tls]
;type=transport
;protocol=tls
;bind=0.0.0.0
;cert_file=/home/asterisk/certs/self-signed.crt
;priv_key_file=/home/asterisk/certs/self-signed.key

[SOFTPHONE_A]
type=endpoint
aors=SOFTPHONE_A
auth=SOFTPHONE_A-auth
allow=ulaw
callerid=“First Extension” <SOFTPHONE_A>
ice_support=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
dtmf_mode=rfc4733

[SOFTPHONE_A-auth]
type=auth
auth_type=userpass
password=iwouldnotifiwereyou
username=SOFTPHONE_A

[SOFTPHONE_A]
type=aor
max_contacts=1
remove_existing=yes
qualify_frequency=60

[101]
type=endpoint
aors=101
auth=101-auth
allow=ulaw
context=to-callcentric
callerid=“Second Extension” <101>
ice_support=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
dtmf_mode=rfc4733

[101-auth]
type=auth
auth_type=userpass
password=PASSWORD
username=101

[101]
type=aor
max_contacts=1
remove_existing=yes
qualify_frequency=60

I am trying to register one endpoint, so I can connect it with soft phone Zoiper.
When I uncomment tls at the beginning, that will be added to transports so pjsip loads but does not want endpoints.

I intentionally put SoftphoneA which is already a aor, and additional one 101.
Thank you in advance

Those messages mean exactly what they say, you can’t fully reload a transport, and you can’t reload the system type. Those are normal messages.

You’d need to show what is actually happening.

I have followed the book Asterisk 5 edition, and now I have to connect my two soft phones with asterisk.
There are no explanations in book how to connect it with particular soft phone, so I tried by myself.
I have found on internet that to register new soft phone, I have to add it firstly in sip.conf or in my case pjsip.conf. On that way it will be registered and it can be connected with softphone.
I have changed pjsip as explained and that did not register new endpoint or aor.
Command reload does not work, so I have typed
module reload res_pjsip.so, but I did not get new register endpoints that can be connected with softphone.

dule reload res_pjsip.so
Module ‘res_pjsip.so’ reloaded successfully.
– Reloading module ‘res_pjsip.so’ (Basic SIP resource)
[Jan 13 06:17:36] WARNING[16531]: res_pjsip/config_transport.c:559 transport_apply: Transport ‘transport-udp’ is not fully reloadable, not reloading: protocol, bind, TLS, TCP, ToS, or CoS options.
[Jan 13 06:17:36] NOTICE[16531]: sorcery.c:1348 sorcery_object_load: Type ‘system’ is not reloadable, maintaining previous values

The basic starting point for any SIP phone, whether hard or soft, is:

Although not strictly necessary, best practice is to explicitly specify the transport to be used. Also note that the sample includes disallow. Without that or “allow !all”, you can expect things to go wrong during call setup.

For particular soft phones, you need to understand the configuration of the phone, and how it maps to SIP, not the Asterisk configuration. Same for hard phones.

chan_pjsip seems to have inherited a trend from chan_sip of enabling every available protocol violation (and for chan_sip, security relaxation) on offer. Whilst this is mainly harmless for valid traffic, there was a case only a couple of days ago where someone was breaking things with one of these options. Note that none of these are included in the baseline configuration, referenced above. Before using them you should understand what they do, and what problem you are trying to solve by enabling them.

That appears to be a successful configuration reload.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

[mytrunk]
type=endpoint
transport=transport-udp
context=from-external
disallow=all
allow=ulaw
outbound_auth=mytrunk_auth
aors=mytrunk
force_rport=yes
direct_media=no
ice_support=yes

[mytrunk]
type=aor
contact=sip:192.168.000.230:5060

[mytrunk]
type=identify
endpoint=mytrunk
match=192.168.000.230
match=192.168.000.230
match=192.168.000.230:5061/24

;[transport-tls]
;type=transport
;protocol=tls
;bind=0.0.0.0
;cert_file=/home/asterisk/certs/self-signed.crt
;priv_key_file=/home/asterisk/certs/self-signed.key

[7001]
type=endpoint
context=phones
disallow=allow
allow=ulaw
transport=transport-udp
auth=7001
aors=7001

[7001]
type=auth
auth_type=userpass
password=123494
username=7001

[7001]
type=aor
contect=sip:7001@192.168.0.230

This is my pjsip. conf now.
Even though I went trough git-resources that you shared and changed necessary, when I reload there is again problem.
Yes, it appears that module has successful configured after command - module reload res_pjsip.so
But when I run command pjsip show endpoints, there is no new endpoint 7001 that was specified in pjsip.conf file again.

Is there anything additional that should be done so my new endpoint can be visible, so I can connect it with my softphone.

Also when I try to connect zoiper with this endpoint using these informations:

I got an error:
[Jan 13 09:41:55] NOTICE[19078]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request ‘REGISTER’ from ‘sip:7001@192.168.0.230’ failed for ‘192.168.0.21:53803’ (callid: ZTlmZDA5M2QxZjhmNDU5NDUwMjU3ZjQ3YTc0MmMxMWY.) - No matching endpoint found

The GIT resource is just the same file as is included with the Asterisk sources, and should be included with any asterisk package. This is the primary documentation for configuring Asterisk!

There is no “contect” parameter, and setting a contact parameter conflicts with having the value set by means of a registration. You’ve tried to tell asterisk that 7001 doesn’t register, and that outbound calls to it should be sent via your trunk.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

;[transport-tls]
;type=transport
;protocol=tls
;bind=0.0.0.0
;cert_file=/home/asterisk/certs/self-signed.crt
;priv_key_file=/home/asterisk/certs/self-signed.key

[7001]
type=endpoint
context=phones
disallow=allow
allow=ulaw
transport=transport-udp
auth=7001
aors=7001

[7001]
type=auth
auth_type=userpass
password=123494
username=7001

[7001]
type=aor
contact=7001@192.168.0.230

;[SOFTPHONE_A]
;type=endpoint
;context=phones
;disallow=allow
;allow=ulaw
;transport=transport-udp
;auth=SOFTPHONE_A
;aors=SOFTPHONE_A

Again if I try this to reload (with or without trunk)
I will get
[Jan 13 10:41:58] NOTICE[19857]: sorcery.c:1348 sorcery_object_load: Type ‘system’ is not reloadable, maintaining previous values
And nothing will be changed and no endpoints will be added
Is there something additional that should be done in order to add endpoints or just can be using pjsip.conf?

Does this problem just mean that something with pjsip.conf is not okay, so it is not reloadable?
Or there is something else that also should be checked.

If by “the problem”, you mean the message in the subject, it doesn’t mean there is anything wrong, but simply that some of the things you are setting might need a restart, rather than a reload. It is almost certainly based on what is set, not whether it has changed, so it might not even require a restart, and that, I think is true in your case.

Your type=aor section is still for one with a static address corresponding to the trunk, not for the ability to register a dynamic address. Maybe the example in res_pjsip Configuration Examples - Asterisk Project - Asterisk Project Wiki which doesn’t have optional, commented out, bits, will help. (This one relies on the defaulting rules for transports, although I still think it is safer to be explicit.

Looking at the Asterisk log at startup when the PJSIP configuration is loaded is also needed. If a config file is unchanged, then reloading configuration won’t do anything.

I belive it should be

disallow=all
1 Like

[modules]
autoload=yes
preload => res_odbc.so
preload => res_config_odbc.so
noload => chan_sip.so

This is my module.conf, I think that it is okay.
Other files that I have are
asterisk.conf extensions.conf modules.conf pjsip.conf res_odbc.conf sorcery.conf
extconfig.conf logger.conf modules.conf.save pjsip_wizard.conf sip.conf
Do you want so see another?

You said that if config file is unchanged…, but when I try to edit it, it has saved changes from previous time. Did you mean that?

I tried /etc/init.d/asterisk restart several times, but that did not help.

It is almost certainly based on what is set, not whether it has changed, so it might not even require a restart, and that, I think is true in your case. – I did not understand this, what should I do?

I tried this, so my pjsip.conf is

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

;[transport-tls]
;type=transport
;protocol=tls
;bind=0.0.0.0
;cert_file=/home/asterisk/certs/self-signed.crt
;priv_key_file=/home/asterisk/certs/self-signed.key

[7001]
type=endpoint
context=phones
disallow=all
allow=ulaw
transport=transport-udp
auth=7001
aors=7001

[7001]
type=auth
auth_type=userpass
password=123494
username=7001

[7001]
type=aor
contact=7001@192.168.0.230

;[SOFTPHONE_A]
;type=endpoint
;context=phones
;disallow=allow
;allow=ulaw
;transport=transport-udp
;auth=SOFTPHONE_A
;aors=SOFTPHONE_A

But that did not add new endpoint, that can be register on softphone.

The type=aor section has still not been corrected, and still specifies a non-dynamic address on the gateway, rather than allowing registration.

It was corrected, but I changed like it was before because it did not make something new.
Probably I did not write it well, can you please use my pjsip.conf that I have shared here and change it like you think it should look like, so I can copy that in mine.

I am new one to Asterisk, so it is sometimes hard to understand.

Correcting forum markup:

[7001]
type=aor
maxcontacts=1

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

;[transport-tls]
;type=transport
;protocol=tls
;bind=0.0.0.0
;cert_file=/home/asterisk/certs/self-signed.crt
;priv_key_file=/home/asterisk/certs/self-signed.key

[7001]
type=endpoint
context=phones
disallow=all
allow=ulaw
transport=transport-udp
auth=7001
aors=7001

[7001]
type=auth
auth_type=userpass
password=123494
username=7001

[7001]
type=aor
maxcontacts=1

;[SOFTPHONE_A]
;type=endpoint
;context=phones
;disallow=allow
;allow=ulaw
;transport=transport-udp
;auth=SOFTPHONE_A
;aors=SOFTPHONE_A

;[SOFTPHONE_A]
;type=auth
;auth_type=userpass
;password=123494
;username=username

Again if I try:
localhost*CLI> module reload res_pjsip.so
Module ‘res_pjsip.so’ reloaded successfully.
– Reloading module ‘res_pjsip.so’ (Basic SIP resource)
[Jan 16 18:27:16] NOTICE[3565]: sorcery.c:1348 sorcery_object_load: Type ‘system’ is not reloadable, maintaining previous values

And when typing pjsip show endpoints, there will not be new endpoint.

But thank you David for your help, I think there is problem with other .conf files.