Hi guys
I’ve an issue with a configuration generated by pjsip_wizard and I don’t know whether it’s a bug or by design.
I use pjsip_wizard to generate all the pjsip objects and I’m running asterisk 20.11.1.
I have two trunks, which are configured for outbound auth. The trunks are called “2Node8” and “2Node9”. When I look at the generated pjsip objects with “pjsip export config_wizard primitives to”, I only see one registration section “2Node9-reg-0”. The second registration section is not created.
If I rename the trunks to “1Node8” and “2Node9” or “toNode8” and “toNode9”, everything works as expected and two registration sections are generated. It seems that pjsip wizard somehow has an issue with equal leading digits.
Is this somehow a feature which I didn’t know yet or an issue? To me, it feels like an issue…
Regards
Mathias
CLI> pjsip export config_wizard primitives to
[2Node9-oauth]
type = auth
username = toNode7
@pjsip_wizard = 2Node9
auth_type = userpass
nonce_lifetime = 32
[2Node8-oauth]
type = auth
username = toNode7
@pjsip_wizard = 2Node8
auth_type = userpass
nonce_lifetime = 32
[2Node9]
type = endpoint
rpid_immediate = false
webrtc = no
ignore_183_without_sdp = false
send_aoc = false
device_state_busy_at = 0
t38_udptl_maxdatagram = 400
codec_prefs_incoming_answer = prefer:pending, operation:intersect, keep:all, transcode:allow
security_negotiation = no
dtls_rekey = 0
direct_media_method = invite
send_rpid = false
sdp_session = Asterisk
dtls_verify = No
record_on_feature = automixmon
dtls_fingerprint = SHA-256
outgoing_call_offer_pref = remote_merge
timers_sess_expires = 3600
media_encryption_optimistic = false
suppress_q850_reason_headers = false
aors = 2Node9
identify_by = auth_username,ip
callerid_privacy = allowed_not_screened
mwi_subscribe_replaces_unsolicited = no
cos_audio = 0
follow_early_media_fork = true
context = sip-trunk-incoming-from-2Node9
rtp_symmetric = false
transport = transport-udp
moh_suggest = default
t38_udptl = true
fax_detect = true
t38_bind_udptl_to_media_address = false
tos_video = 0
srtp_tag_32 = false
refer_blind_progress = true
max_audio_streams = 1
bundle = false
use_avpf = false
send_connected_line = yes
fax_detect_timeout = 0
sdp_owner = -
force_rport = true
rtp_timeout_hold = 0
suppress_moh_on_sendonly = false
@pjsip_wizard = 2Node9
use_ptime = false
rtp_timeout = 0
stir_shaken = no
preferred_codec_only = false
force_avp = false
record_off_feature = automixmon
send_diversion = true
send_history_info = false
t38_udptl_ipv6 = false
language = en
allow_subscribe = true
rtp_ipv6 = false
callerid = <unknown>
moh_passthrough = false
cos_video = 0
dtls_auto_generate_cert = No
asymmetric_rtp_codec = false
ice_support = false
aggregate_mwi = true
one_touch_recording = false
codec_prefs_outgoing_answer = prefer:pending, operation:intersect, keep:all, transcode:allow
allow = (alaw|ulaw|gsm|speex|g726)
rewrite_contact = false
user_eq_phone = false
rtp_engine = asterisk
notify_early_inuse_ringing = false
incoming_call_offer_pref = local
allow_unauthenticated_options = false
direct_media_glare_mitigation = none
trust_id_inbound = false
bind_rtp_to_media_address = false
disable_direct_media_on_nat = false
media_encryption = no
media_use_received_transport = false
allow_overlap = true
dtmf_mode = rfc4733
outbound_auth = 2Node9-oauth
tos_audio = 184
dtls_setup = active
connected_line_method = invite
g726_non_standard = false
100rel = yes
timers = yes
direct_media = false
timers_min_se = 600
trust_id_outbound = false
sub_min_expiry = 0
rtcp_mux = false
max_video_streams = 1
accept_multiple_sdp_answers = false
codec_prefs_incoming_offer = prefer:pending, operation:intersect, keep:all, transcode:allow
codec_prefs_outgoing_offer = prefer:pending, operation:union, keep:all, transcode:allow
trust_connected_line = yes
send_pai = false
rtp_keepalive = 0
t38_udptl_ec = redundancy
t38_udptl_nat = false
allow_transfer = true
inband_progress = false
[2Node8]
type = endpoint
rpid_immediate = false
webrtc = no
ignore_183_without_sdp = false
send_aoc = false
device_state_busy_at = 0
t38_udptl_maxdatagram = 400
codec_prefs_incoming_answer = prefer:pending, operation:intersect, keep:all, transcode:allow
security_negotiation = no
dtls_rekey = 0
direct_media_method = invite
send_rpid = false
sdp_session = Asterisk
dtls_verify = No
record_on_feature = automixmon
dtls_fingerprint = SHA-256
outgoing_call_offer_pref = remote_merge
timers_sess_expires = 3600
media_encryption_optimistic = false
suppress_q850_reason_headers = false
aors = 2Node8
identify_by = auth_username,ip
callerid_privacy = allowed_not_screened
mwi_subscribe_replaces_unsolicited = no
cos_audio = 0
follow_early_media_fork = true
context = sip-trunk-incoming-from-2Node8
rtp_symmetric = false
transport = transport-udp
moh_suggest = default
t38_udptl = true
fax_detect = true
t38_bind_udptl_to_media_address = false
tos_video = 0
srtp_tag_32 = false
refer_blind_progress = true
max_audio_streams = 1
bundle = false
use_avpf = false
send_connected_line = yes
fax_detect_timeout = 0
sdp_owner = -
force_rport = true
rtp_timeout_hold = 0
suppress_moh_on_sendonly = false
@pjsip_wizard = 2Node8
use_ptime = false
rtp_timeout = 0
stir_shaken = no
preferred_codec_only = false
force_avp = false
record_off_feature = automixmon
send_diversion = true
send_history_info = false
t38_udptl_ipv6 = false
language = en
allow_subscribe = true
rtp_ipv6 = false
callerid = <unknown>
moh_passthrough = false
cos_video = 0
dtls_auto_generate_cert = No
asymmetric_rtp_codec = false
ice_support = false
aggregate_mwi = true
one_touch_recording = false
codec_prefs_outgoing_answer = prefer:pending, operation:intersect, keep:all, transcode:allow
allow = (alaw|ulaw|gsm|speex|g726)
rewrite_contact = false
user_eq_phone = false
rtp_engine = asterisk
notify_early_inuse_ringing = false
incoming_call_offer_pref = local
allow_unauthenticated_options = false
direct_media_glare_mitigation = none
trust_id_inbound = false
bind_rtp_to_media_address = false
disable_direct_media_on_nat = false
media_encryption = no
media_use_received_transport = false
allow_overlap = true
dtmf_mode = rfc4733
outbound_auth = 2Node8-oauth
tos_audio = 184
dtls_setup = active
connected_line_method = invite
g726_non_standard = false
100rel = yes
timers = yes
direct_media = false
timers_min_se = 600
trust_id_outbound = false
sub_min_expiry = 0
rtcp_mux = false
max_video_streams = 1
accept_multiple_sdp_answers = false
codec_prefs_incoming_offer = prefer:pending, operation:intersect, keep:all, transcode:allow
codec_prefs_outgoing_offer = prefer:pending, operation:union, keep:all, transcode:allow
trust_connected_line = yes
send_pai = false
rtp_keepalive = 0
t38_udptl_ec = redundancy
t38_udptl_nat = false
allow_transfer = true
inband_progress = false
[2Node9]
type = aor
minimum_expiration = 60
default_expiration = 3600
qualify_timeout = 2.000000
support_path = false
remove_unavailable = false
@pjsip_wizard = 2Node9
max_contacts = 0
authenticate_qualify = false
contact = sip:10.64.0.9:5070
maximum_expiration = 7200
qualify_frequency = 60
remove_existing = false
[2Node8]
type = aor
minimum_expiration = 60
default_expiration = 3600
qualify_timeout = 2.000000
support_path = false
remove_unavailable = false
@pjsip_wizard = 2Node8
max_contacts = 0
authenticate_qualify = false
contact = sip:10.64.0.8:5070
maximum_expiration = 7200
qualify_frequency = 60
remove_existing = false
[2Node8-identify]
type = identify
match = 10.64.0.8/255.255.255.255
srv_lookups = true
@pjsip_wizard = 2Node8
endpoint = 2Node8
[2Node9-identify]
type = identify
match = 10.64.0.9/255.255.255.255
srv_lookups = true
@pjsip_wizard = 2Node9
endpoint = 2Node9
[2Node9-reg-0]
type = registration
max_retries = 10
client_uri = sip:toNode7@10.64.0.9:5070
security_negotiation = no
auth_rejection_permanent = true
server_uri = sip:10.64.0.9:5070
max_random_initial_delay = 10
support_path = false
retry_interval = 60
expiration = 3600
transport = transport-udp
line = false
@pjsip_wizard = 2Node9
forbidden_retry_interval = 0
outbound_auth = 2Node9-oauth
fatal_retry_interval = 0
support_outbound = no
pjsip_wizard.conf
[global_options](!)
type = wizard
endpoint/allow = !all
endpoint/allow = alaw
endpoint/allow = ulaw
endpoint/allow = gsm
endpoint/allow = speex
endpoint/allow = g726
endpoint/dtmf_mode = rfc4733
endpoint/fax_detect = yes
endpoint/identify_by = auth_username,ip
endpoint/language = en
endpoint/t38_udptl = yes
endpoint/t38_udptl_maxdatagram = 400
endpoint/t38_udptl_ec = redundancy
endpoint/timers = yes
endpoint/timers_min_se = 600
endpoint/timers_sess_expires = 3600
endpoint/direct_media = no
endpoint/tos_audio = ef
endpoint/allow_transfer = yes
[charact_trunk_standard](!)
type = wizard
aor/qualify_timeout = 2
aor/qualify_frequency = 60
[2Node8](global_options,charact_trunk_standard)
transport = transport-udp
endpoint/context = sip-trunk-incoming-from-2Node8
outbound_auth/username = toNode7
outbount_auth/auth_type = userpass
sends_auth = yes
sends_registrations = yes
remote_hosts = 10.64.0.8:5070
identify/match = 10.64.0.8
[2Node9](global_options,charact_trunk_standard)
transport = transport-udp
endpoint/context = sip-trunk-incoming-from-2Node9
outbound_auth/username = toNode7
outbount_auth/auth_type = userpass
sends_auth = yes
sends_registrations = yes
remote_hosts = 10.64.0.9:5070
identify/match = 10.64.0.9