[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