[asterisk-users] Hangup() not working for handsets using pls transport?

Ruisheng Peng rpeng at ifa.hawaii.edu
Wed Feb 3 20:11:59 CST 2021


Hi all,

  I managed to get tls transport going with asterisk 16.14.0, and set one
handset (SOFTPHONE_B) to use the transport.  I have set up a few other
handsets (both soft and hard) to use udp and tcp transports:

voip1*CLI> pjsip show endpoints


 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:  0000f30A0A01                                         Not in
use    0 of inf

     InAuth:  0000f30A0A01/0000f30A0A01

        Aor:  0000f30A0A01                                       1

      Contact:  0000f30A0A01/sip:0000f30A0A01 at 128.171.77.1 4800418965
NonQual         nan

  Transport:  transport-udp             udp      0      0  0.0.0.0:5060


 Endpoint:  0000f30B0B02                                         Not in
use    0 of inf

     InAuth:  0000f30B0B02/0000f30B0B02

        Aor:  0000f30B0B02                                       1

      Contact:  0000f30B0B02/sip:0000f30B0B02 at 128.171.77.4 615cc2a2c6
NonQual         nan

  Transport:  transport-udp             udp      0      0  0.0.0.0:5060


 Endpoint:  SOFTPHONE_A
Unavailable   0 of inf

     InAuth:  SOFTPHONE_A/SOFTPHONE_A

        Aor:  SOFTPHONE_A                                        2

  Transport:  transport-tcp             tcp      0      0  0.0.0.0:5060


 Endpoint:  SOFTPHONE_B                                          Not in
use    0 of inf

     InAuth:  SOFTPHONE_B/SOFTPHONE_B

        Aor:  SOFTPHONE_B                                        2

      Contact:  SOFTPHONE_B/sip:SOFTPHONE_B at 128.171.168.23 78257ab30a
NonQual         nan

  Transport:  transport-tls             tls      0      0  0.0.0.0:5061



Objects found: 4


voip1*CLI>

For testing, I have the following in /etc/asterisk/extensions.conf:

[globals]

; General internal dialing options used in context Dial-Users.

; Only the timeout is defined here. See the Dial app documentation for

; additional options.

INTERNAL_DIAL_OPT=,30

RP_Yealink = PJSIP/0000f30A0A01

RP_Cisco = PJSIP/0000f30B0B02

RP_HMBP = PJSIP/SOFTPHONE_A

RP_OMBP = PJSIP/SOFTPHONE_B


[sets]

exten => 100,1,Dial(${RP_Yealink},10,m)

same => n,Playback(vm-nobodyavail)

same => n,Hangup()


exten => 101,1,Dial(${RP_Cisco},10)

same => n,Playback(vm-nobodyavail)

same => n,Hangup()


exten => 102,1,Dial(${RP_HMBP})


exten => 103,1,Dial(${RP_OMBP},10)

same => n,Playback(vm-nobodyavail)

same => n,Hangup()


When using handsets with udp or tcp transports to dial ext 100, it'd hangup
after the no-one-arround message.  However, when using the handset with tls
transport, it doesn't hang up on its own if ext 100 is not answered.  I
have to click the hangup button to accomplish that.  Here's what asterisk
log shows:

  == Setting global variable 'SIPDOMAIN' to '128.171.77.23'

    -- Executing [100 at sets:1] Dial("PJSIP/SOFTPHONE_B-00000007", "
PJSIP/0000f30A0A01,10,m") in new stack

    -- Called PJSIP/0000f30A0A01

    -- Started music on hold, class 'default', on channel
'PJSIP/SOFTPHONE_B-00000007'

       > 0x7f0fa801ede0 -- Strict RTP learning after remote address set to:
128.171.168.233:7078

    -- PJSIP/0000f30A0A01-00000008 is ringing

    -- PJSIP/0000f30A0A01-00000008 is ringing

       > 0x7f0fa801ede0 -- Strict RTP switching to RTP target address
128.171.168.233:7078 as source

       > 0x7f0fa801ede0 -- Strict RTP learning complete - Locking on source
address 128.171.168.233:7078

    -- Nobody picked up in 10000 ms

    -- Stopped music on hold on PJSIP/SOFTPHONE_B-00000007

    -- Executing [100 at sets:2] Playback("PJSIP/SOFTPHONE_B-00000007", "
vm-nobodyavail") in new stack

    -- <PJSIP/SOFTPHONE_B-00000007> Playing 'vm-nobodyavail.slin' (language
'en')

    -- Executing [100 at sets:3] Hangup("PJSIP/SOFTPHONE_B-00000007", "") in
new stack

  == Spawn extension (sets, 100, 3) exited non-zero on
'PJSIP/SOFTPHONE_B-00000007'
voip1*CLI>

 Another quirk is when I use a phone with udp transport (RP_Yealink) to
call a phone with tls transport (RP_OMBP) it immediately jumps
the no-one-around message w/o ringing, then hang up.  The tls phone is
shown available but asterisk sees it busy:

  == Setting global variable 'SIPDOMAIN' to '128.171.77.23'

    -- Executing [103 at sets:1] Dial("PJSIP/0000f30A0A01-0000000d", "
PJSIP/SOFTPHONE_B,10") in new stack

    -- Called PJSIP/SOFTPHONE_B

  == Everyone is busy/congested at this time (1:0/1/0)

    -- Executing [103 at sets:2] Playback("PJSIP/0000f30A0A01-0000000d", "
vm-nobodyavail") in new stack

       > 0x7f0fa000c330 -- Strict RTP learning after remote address set to:
128.171.77.118:11790

       > 0x7f0fa000c330 -- Strict RTP switching to RTP target address
128.171.77.118:11790 as source

    -- <PJSIP/0000f30A0A01-0000000d> Playing 'vm-nobodyavail.slin'
(language 'en')

    -- Executing [103 at sets:3] Hangup("PJSIP/0000f30A0A01-0000000d", "") in
new stack

  == Spawn extension (sets, 103, 3) exited non-zero on
'PJSIP/0000f30A0A01-0000000d'

voip1*CLI>

  Suppose it's not cool to mix transports among your handsets? Any
suggestions?

  Thanks,

--Ruisheng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20210203/2fbecd6e/attachment.html>


More information about the asterisk-users mailing list