Call disconnection after 32 seconds in whatsapp sip calling integration with asterisk

try it using my pjsip.conf. it will work

i am using odbc and all these configurations are done in database

ok then change it over there it work same

can you share your endpoint details using cli command if possible
pjsip show endpoint <endpoint_name>
just as i have shared above

i just used sdes but facing same problem there also

Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
    I/OAuth:  <AuthId/UserName...........................................................>
        Aor:  <Aor............................................>  <MaxContact>
      Contact:  <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..>
  Transport:  <TransportId........>  <Type>  <cos>  <tos>  <BindAddress..................>
   Identify:  <Identify/Endpoint.........................................................>
        Match:  <criteria.........................>
    Channel:  <ChannelId......................................>  <State.....>  <Time.....>
        Exten: <DialedExten...........>  CLCID: <ConnectedLineCID.......>
==========================================================================================

 Endpoint:  whatsapp-279291-91XXXXXXX                        Not In Use   0 of inf
        Aor:  whatsapp-279291-91XXXXXXXX                      1
  Transport:  transport-tls             tls      0      0  0.0.0.0:5061
   Identify:  whatsapp-279291-91XXXXXX/whatsapp-279291-91XXXXXXXXX
        Match: 0.0.0.0/0


 ParameterName                      : ParameterValue
 ===================================================================================================
 100rel                             : yes
 accept_multiple_sdp_answers        : false
 accountcode                        : 
 acl                                : 
 aggregate_mwi                      : true
 allow                              : (opus)
 allow_overlap                      : true
 allow_subscribe                    : true
 allow_transfer                     : true
 allow_unauthenticated_options      : false
 aors                               : whatsapp-279291-91XXXXXXXX
 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                            : from-meta
 cos_audio                          : 0
 cos_video                          : 0
 device_state_busy_at               : 0
 direct_media                       : true
 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                         : active
 dtls_verify                        : No
 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                          : 
 g726_non_standard                  : false
 geoloc_incoming_call_profile       : 
 geoloc_outgoing_call_profile       : 
 ice_support                        : false
 identify_by                        : username,ip
 ignore_183_without_sdp             : false
 inband_progress                    : false
 incoming_call_offer_pref           : local
 incoming_mwi_mailbox               : 
 language                           : 
 mailboxes                          : 
 max_audio_streams                  : 1
 max_video_streams                  : 1
 media_address                      : 
 media_encryption                   : sdes
 media_encryption_optimistic        : false
 media_use_received_transport       : false
 message_context                    : 
 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                      : 
 outbound_proxy                     : 
 outgoing_call_offer_pref           : remote_merge
 overlap_context                    : 
 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                      : false
 rtp_timeout                        : 0
 rtp_timeout_hold                   : 0
 sdp_owner                          : -
 sdp_session                        : Asterisk
 security_mechanisms                : 
 security_negotiation               : no
 send_aoc                           : false
 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                        : no
 stir_shaken_profile                : 
 sub_min_expiry                     : 0
 subscribe_context                  : 
 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                          : transport-tls
 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

tried with this config also but issue not resolved

Transport:  transport-tls             tls      0      0  0.0.0.0:5061

 ParameterName               : ParameterValue
 ========================================================
 allow_reload                : true
 allow_wildcard_certs        : No
 async_operations            : 1
 bind                        : 0.0.0.0:5061
 ca_list_file                : /etc/certs/asterisk_ca.pem
 ca_list_path                : 
 cert_file                   : /etc/certs/fullchain.pem
 cipher                      : 
 cos                         : 0
 domain                      : 
 external_media_address      : 20.196.26.154
 external_signaling_address  : 20.196.26.154
 external_signaling_port     : 0
 local_net                   : 10.8.0.0/255.255.255.0
 method                      : tlsv1_2
 password                    : 
 priv_key_file               : /etc/certs/privkey.pem
 protocol                    : tls
 require_client_cert         : No
 symmetric_transport         : false
 tcp_keepalive_enable        : false
 tcp_keepalive_idle_time     : 30
 tcp_keepalive_interval_time : 1
 tcp_keepalive_probe_count   : 5
 tos                         : 0
 verify_client               : No
 verify_server               : No
 websocket_write_timeout     : 100


Although i have set the signalling and media address here but still contact header is still showing private ip

Call disconnected after 30 seconds

This doesn’t match your own local address!

i have changed it before sharing
just wanted to share that it doesnt have any effect

whenever i specify media and signaling address and local_net asterisk crashes when call comes after the dialplan execution
actually i am using external media for streaming rtp
also contact header is not taking my public ip it shows private ip only

Not on every call but crash happens frequently
Also the 30 second call termination issue is still there

If you really mean crash, you need to provide the backtrace, although, for a real crash, you should report it as a github issue, with sufficient supporting information.

If you are using “crash” loosely, you need to be more precise.

Hi,
This problem is solved .There was some problem with azure vm where we got private ip in eth0 which was causing problem if nat not resolved properly.
Now we are using digitalocean vm which do not have such issues so that problem of ACK lost and call cut after 32 seconds is resolved.

Now we are facing a problem that whatsapp sending invite during incoming call
then sometimes it reaches to correct endpoint (i.e endpoint is identified) and sometimes it doesn’t and throws 401 unauthorised

Although i have tried different methods setting the order to prefer auth_username.. in global config of pjsip.conf
..
Also i tried using match header in ps_identify_id_ips matching Authorization header but it is not working

auth_username won’t work unless they respond correctly to 401, as the only way to get them to offer it is to challenge them for authentication; it is part of the authentication details.

401 Challenge is sent in both cases and they reply with correct auth username and the invite is somewhat same in both cases but in one case it correctly reaches to execute dialplan while in other case asterisk throws another 401 unauthorised

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