Problem to identify endpoint by match_header

Hi,
I have a pjsip endpoint configured to be identified by header only. The identify entity is configured in this way:

01fdd3b4dca3*CLI> pjsip show identify by_username_6436d017cb2c40001fe4fee6 
 endpoint      : 6436d017cb2c40001fe4fee6
 match         : 
 match_header  : Authorization: /Digest username="6436d017cb2c40001fe4fee6_9529",/
 srv_lookups   : false

The problem: Sometimes the INVITE is received, 401 Unautourized is replied and Voip provider send the Authorized header and the endpoint matches successfully, but sometimes (no configuration changes, just calling again and again), the Voip provider send the INVITE with no Authorization header and endpoint is identified even if the header don’t exists in this INVITE. So why the first INVITE is matched sometimes, if no Authorization header exists?


Invite coming_


Dialplan incoming, using the identified endpoint_

Endpoint configuration:

ParameterName                      : ParameterValue
 ===================================================================================================
 100rel                             : yes
 accept_multiple_sdp_answers        : false
 accountcode                        : 
 acl                                : deny/permit
 aggregate_mwi                      : true
 allow                              : (alaw|ulaw)
 allow_overlap                      : true
 allow_subscribe                    : true
 allow_transfer                     : true
 allow_unauthenticated_options      : false
 aors                               : 6436d017cb2c40001fe4fee6
 asymmetric_rtp_codec               : false
 auth                               : 
 bind_rtp_to_media_address          : false
 bundle                             : false
 call_group                         : 
 callerid                           : <unknown>
 callerid_privacy                   : allowed_not_screened
 callerid_tag                       : 
 codec_prefs_incoming_answer        : prefer:pending, operation:intersect, keep:all, transcode:allow
 codec_prefs_incoming_offer         : prefer:pending, operation:intersect, keep:all, transcode:allow
 codec_prefs_outgoing_answer        : prefer:pending, operation:intersect, keep:all, transcode:allow
 codec_prefs_outgoing_offer         : prefer:pending, operation:union, keep:all, transcode:allow
 connected_line_method              : invite
 contact_acl                        : 
 context                            : trunkin
 cos_audio                          : 0
 cos_video                          : 0
 device_state_busy_at               : 1
 direct_media                       : false
 direct_media_glare_mitigation      : none
 direct_media_method                : invite
 disable_direct_media_on_nat        : false
 dtls_auto_generate_cert            : No
 dtls_ca_file                       : 
 dtls_ca_path                       : 
 dtls_cert_file                     : 
 dtls_cipher                        : 
 dtls_fingerprint                   : SHA-256
 dtls_private_key                   : 
 dtls_rekey                         : 0
 dtls_setup                         : actpass
 dtls_verify                        : Yes
 dtmf_mode                          : rfc4733
 fax_detect                         : false
 fax_detect_timeout                 : 0
 follow_early_media_fork            : true
 force_avp                          : false
 force_rport                        : true
 from_domain                        : 
 from_user                          : 9529
 g726_non_standard                  : false
 ice_support                        : false
 identify_by                        : header
 ignore_183_without_sdp             : false
 inband_progress                    : false
 incoming_call_offer_pref           : local
 incoming_mwi_mailbox               : 
 language                           : pt-br
 mailboxes                          : 
 max_audio_streams                  : 1
 max_video_streams                  : 1
 media_address                      : 
 media_encryption                   : no
 media_encryption_optimistic        : false
 media_use_received_transport       : true
 message_context                    : textmessages
 moh_passthrough                    : false
 moh_suggest                        : default
 mwi_from_user                      : 
 mwi_subscribe_replaces_unsolicited : no
 named_call_group                   : 
 named_pickup_group                 : 
 notify_early_inuse_ringing         : false
 one_touch_recording                : false
 outbound_auth                      : 6436d017cb2c40001fe4fee6
 outbound_proxy                     : sip:sip_proxy_udp:5060;lr
 outgoing_call_offer_pref           : remote_merge
 pickup_group                       : 
 preferred_codec_only               : false
 record_off_feature                 : automixmon
 record_on_feature                  : automixmon
 refer_blind_progress               : true
 rewrite_contact                    : false
 rpid_immediate                     : false
 rtcp_mux                           : true
 rtp_engine                         : asterisk
 rtp_ipv6                           : false
 rtp_keepalive                      : 0
 rtp_symmetric                      : true
 rtp_timeout                        : 120
 rtp_timeout_hold                   : 0
 sdp_owner                          : -
 sdp_session                        : Asterisk
 send_connected_line                : yes
 send_diversion                     : true
 send_history_info                  : false
 send_pai                           : false
 send_rpid                          : false
 set_var                            : 
 srtp_tag_32                        : false
 stir_shaken                        : off
 stir_shaken_profile                : 
 sub_min_expiry                     : 0
 subscribe_context                  : subscriptions
 suppress_q850_reason_headers       : false
 t38_bind_udptl_to_media_address    : false
 t38_udptl                          : false
 t38_udptl_ec                       : none
 t38_udptl_ipv6                     : false
 t38_udptl_maxdatagram              : 0
 t38_udptl_nat                      : false
 timers                             : yes
 timers_min_se                      : 90
 timers_sess_expires                : 1800
 tone_zone                          : 
 tos_audio                          : 0
 tos_video                          : 0
 transport                          : udp-transport
 trust_connected_line               : yes
 trust_id_inbound                   : false
 trust_id_outbound                  : false
 use_avpf                           : false
 use_ptime                          : false
 user_eq_phone                      : false
 voicemail_extension                : 
 webrtc                             : no

Asterisk: 18.11.2
S.O: Centos 7
PJSIP version: 2.10

Maybe I am misunderstanding something here. It seems that your problem occurs with a local connection (172…). I don’t think that you need explicit identification settings in this case. I have them only for outbound registrations and I match only the endpoint and a proxy name (which usually resolves to a bunch of IPs). The rest is up to Asterisk/PJSIP.

You probably need to post the entire PJSIP configuration, since you are mentioning the VoIP provider and that would point to an outbound registration.

Thanks for replying.
I found the problem: line support was enable in outbound registration pjsip entity. So sometimes the identification matches from line support (when problem occurs), and sometimes by the identify pjsip entity. I disable the line support and works for me.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.