DTMF Tones not heard on 3CX phone

I am attempting to send DTMF dial tones to a 3CX phone via a channel command.

The call works, waits, but the tones do reach the phone. Logs look good and a capture at 3CX reveals the rtp traffic is received.

The 3CX trunk has uses PCMU,PCMA, & G729 codecs

Config details below:

pjsip.conf:

[acdc-xx-3cx]
type=endpoint
transport=transport-udp
context=send-dtmf-after-answer
disallow=all
allow=ulaw
dtmf_mode=inband
from_user=9875
send_pai=yes
send_rpid=yes
aors=acgc-mn-3cx

extensions.conf:

exten => 9875,1,Set(PJSIP_HEADER(add,P-Asserted-Identity)=sip:9875@3CXPiublicIP)
exten => 9875,n,Dial(PJSIP/acgc-mn-3cx/sip:9875@3CXPiublicIP)
exten => 9875,n,Wait(2) ; Adjust if needed to ensure the call is connected
exten => 9875,n,SendDTMF(#0) ; Replace 1234 with the required tones
exten => 9875,n,Hangup()

logs:

Call-ID: b3d99b2f-9e64-4df8-963c-9aba8c949c3f
CSeq: 18170 INVITE
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, INFO, REFER
Supported: 100rel, timer, replaces, norefersub, histinfo
Session-Expires: 1800;refresher=uac
Min-SE: 90
P-Asserted-Identity: sip:9875@AsteriskPrivateIP
Remote-Party-ID: sip:9875@AsteriskPrivateIP;party=calling;privacy=off;screen=no
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Type: application/sdp
Content-Length: 173

v=0
o=- 18201349 18201350 IN IP4 AsteriskPrivateIP
s=Asterisk
c=IN IP4 AsteriskPrivateIP
t=0 0
m=audio 14090 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=maxptime:140
a=sendrecv

Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029710, ts 000160, len 000160)
> 0x7d8a7c0481e0 – Strict RTP switching to RTP target address 3CXPublicIP:9394 as source
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044569, ts 75691686, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029711, ts 000320, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044570, ts 75691846, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029712, ts 000480, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044571, ts 75692006, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029713, ts 000640, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044572, ts 75692166, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029714, ts 000800, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044573, ts 75692326, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044574, ts 75692486, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044575, ts 75692646, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044576, ts 75692806, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044577, ts 75692966, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044578, ts 75693126, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044579, ts 75693286, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044580, ts 75693446, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044581, ts 75693606, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044582, ts 75693766, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044583, ts 75693926, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044584, ts 75694086, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044585, ts 75694246, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029715, ts 002960, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044586, ts 75694406, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029716, ts 003120, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044587, ts 75694566, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029717, ts 003280, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044588, ts 75694726, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029718, ts 003440, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044589, ts 75694886, len 000160)
Sent RTP packet to 3CXPublicIP:9394 (type 00, seq 029719, ts 003600, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044590, ts 75695046, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044591, ts 75695206, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044592, ts 75695366, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044593, ts 75695526, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044594, ts 75695686, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044595, ts 75695846, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044596, ts 75696006, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044597, ts 75696166, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044598, ts 75696326, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044599, ts 75696486, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044600, ts 75696646, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044601, ts 75696806, len 000160)
Got RTP packet from 3CXPublicIP:9394 (type 00, seq 044602, ts 75696966, len 000160)
– Executing [9875@send-dtmf-after-answer:5] Hangup(“PJSIP/acgc-mn-3cx-00000002”, “”) in new stack
== Spawn extension (send-dtmf-after-answer, 9875, 5) exited non-zero on ‘PJSIP/acgc-mn-3cx-00000002’
<— Transmitting SIP request (465 bytes) to UDP:3CXPublicIP:5060 —>
BYE sip:8971503369@3CXPublicIP:5060 SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPj09a1fe72-098e-4605-bbe1-ec6d26dcbeed
From: “Anonymous” sip:9875@anonymous.invalid;tag=afeb6c0e-775e-4f2e-a478-a287bdb60fa4
To: sip:9999@3CXPublicIP;tag=1594eb10
Call-ID: b3d99b2f-9e64-4df8-963c-9aba8c949c3f
CSeq: 18171 BYE
Reason: Q.850;cause=21
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Length: 0

The dialplan, and Dial, doesn’t work like that. Dial calls a destination and if answered bridges it to the caller by default. Dialplan at that point stops, so your Wait and SendDTMF would not execute. Where did you get that logic from? What is the specific scenario you are trying to achieve? If you just want to call the target and send DTMF upon answer before connecting to the caller you can use the D option[1].

[1] Dial - Asterisk Documentation

My config and approach were from searching documentation, forums, and ChatGPT. I have not worked with Asterisk otherwise. The wait command is working when the call is answered. The call is made via the following: channel originate PJSIP/acgc-mn-3cx/sip:9999@3CXPublic IP extension 9875@send-dtmf-after-answer callerid “9875” <9875>

Okay, show the actual complete console output and not pieces of it. I would also ask you to state exactly what you are wanting to achieve.

This is the first step of the project. Ultimately, we need our 3CX school districts to be able to auto-dial specific Bogen Intercom zones when playing bell tones and recorded audio. A call will be made from an intergrated scheduler to an extension configured on the Asterisk box. Asterisk will then relay the call to an ATA directly attached to the Bogen unit and append the correct dial code for the desired zone.

Here is the full console output:

SC3CX-Asterisk*CLI> channel originate PJSIP/acdc-mn-3cx/sip:9999@3CXPublicIP extension 9875@send-dtmf-after-answer callerid “9875” <9875>
– Called acdc-mn-3cx/sip:9999@3CXPublicIP
<— Transmitting SIP request (878 bytes) to UDP:3CXPublicIP:5060 —>
INVITE sip:9999@3CXPublicIP SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPj221f5373-e1c0-49fb-8e3f-aac3dcca44ea
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
To: sip:9999@3CXPublicIP
Contact: sip:9875@AsteriskPrivateIP:5060
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6267 INVITE
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, INFO, REFER
Supported: 100rel, timer, replaces, norefersub, histinfo
Session-Expires: 1800
Min-SE: 90
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Type: application/sdp
Content-Length: 175

v=0
o=- 826084990 826084990 IN IP4 AsteriskPrivateIP
s=Asterisk
c=IN IP4 AsteriskPrivateIP
t=0 0
m=audio 13434 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=maxptime:140
a=sendrecv

<— Received SIP response (454 bytes) from UDP:3CXPublicIP:5060 —>
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport=5060;branch=z9hG4bKPj221f5373-e1c0-49fb-8e3f-aac3dcca44ea;received=AsteriskPublicIP
Contact: sip:Trunkauthid@3CXPublicIP:5060
To: sip:9999@3CXPublicIP;tag=f9497a28
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6267 INVITE
User-Agent: 3CXPhoneSystem 20.0.2.715 (715)
Content-Length: 0

-- PJSIP/acdc-mn-3cx-00000004 is ringing

<— Received SIP response (846 bytes) from UDP:3CXPublicIP:5060 —>
SIP/2.0 200 OK
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport=5060;branch=z9hG4bKPj221f5373-e1c0-49fb-8e3f-aac3dcca44ea;received=AsteriskPublicIP
Require: timer
Contact: sip:Trunkauthid@3CXPublicIP:5060
To: sip:9999@3CXPublicIP;tag=f9497a28
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6267 INVITE
Session-Expires: 1800;refresher=uac
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REGISTER, SUBSCRIBE, NOTIFY, REFER, INFO, MESSAGE, UPDATE
Content-Type: application/sdp
Supported: replaces, timer
User-Agent: 3CXPhoneSystem 20.0.2.715 (715)
Content-Length: 182

v=0
o=3cxPS 13070646959407104 24752420697407489 IN IP4 3CXPublicIP
s=3cxPS Audio call
c=IN IP4 3CXPublicIP
t=0 0
m=audio 9420 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv

   > 0x7d8a7000b1e0 -- Strict RTP learning after remote address set to: 3CXPublicIP:9420

<— Transmitting SIP request (440 bytes) to UDP:3CXPublicIP:5060 —>
ACK sip:Trunkauthid@3CXPublicIP:5060 SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPj03b68f16-3ad1-4676-b3bb-71c6aafebbec
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
To: sip:9999@3CXPublicIP;tag=f9497a28
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6267 ACK
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Length: 0

-- PJSIP/acdc-mn-3cx-00000004 answered
-- Executing [9875@send-dtmf-after-answer:1] Set("PJSIP/acdc-mn-3cx-00000004", "PJSIP_HEADER(add,P-Asserted-Identity)=sip:9875@AsteriskPublicIP") in new stack
-- Executing [9875@send-dtmf-after-answer:2] Dial("PJSIP/acdc-mn-3cx-00000004", "PJSIP/acdc-mn-3cx/sip:9875@3CXPublicIP") in new stack
-- Called PJSIP/acdc-mn-3cx/sip:9875@3CXPublicIP

<— Transmitting SIP request (880 bytes) to UDP:3CXPublicIP:5060 —>
INVITE sip:9875@3CXPublicIP SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPj6b80f700-4cc9-42ea-ae89-baaad7cd5c62
From: “Anonymous” sip:9875@anonymous.invalid;tag=18cab972-455d-4131-804f-5e3c644f8c11
To: sip:9875@3CXPublicIP
Contact: sip:9875@AsteriskPrivateIP:5060
Call-ID: 8f71d7cc-d11e-4791-aa6b-0a07d1ee0ab5
CSeq: 8363 INVITE
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, INFO, REFER
Supported: 100rel, timer, replaces, norefersub, histinfo
Session-Expires: 1800
Min-SE: 90
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Type: application/sdp
Content-Length: 177

v=0
o=- 1879258594 1879258594 IN IP4 AsteriskPrivateIP
s=Asterisk
c=IN IP4 AsteriskPrivateIP
t=0 0
m=audio 17114 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=maxptime:140
a=sendrecv

<— Transmitting SIP request (1036 bytes) to UDP:3CXPublicIP:5060 —>
INVITE sip:Trunkauthid@3CXPublicIP:5060 SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPja60ab48c-f020-41c2-b0dd-203ce2b26ecf
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
To: sip:9999@3CXPublicIP;tag=f9497a28
Contact: sip:9875@AsteriskPrivateIP:5060
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6268 INVITE
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, INFO, REFER
Supported: 100rel, timer, replaces, norefersub, histinfo
Session-Expires: 1800;refresher=uac
Min-SE: 90
P-Asserted-Identity: sip:9875@AsteriskPrivateIP
Remote-Party-ID: sip:9875@AsteriskPrivateIP;party=calling;privacy=off;screen=no
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Type: application/sdp
Content-Length: 175

v=0
o=- 826084990 826084991 IN IP4 AsteriskPrivateIP
s=Asterisk
c=IN IP4 AsteriskPrivateIP
t=0 0
m=audio 13434 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=maxptime:140
a=sendrecv

<— Received SIP response (509 bytes) from UDP:3CXPublicIP:5060 —>
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport=5060;branch=z9hG4bKPj6b80f700-4cc9-42ea-ae89-baaad7cd5c62;received=AsteriskPublicIP
Proxy-Authenticate: Digest nonce=“414d5359673644dd92:5c06152686af92c16f23f01b73bb18e0”,algorithm=MD5,realm=“3CXPhoneSystem”
To: sip:9875@3CXPublicIP;tag=56ea8819
From: “Anonymous” sip:9875@anonymous.invalid;tag=18cab972-455d-4131-804f-5e3c644f8c11
Call-ID: 8f71d7cc-d11e-4791-aa6b-0a07d1ee0ab5
CSeq: 8363 INVITE
Content-Length: 0

<— Transmitting SIP request (429 bytes) to UDP:3CXPublicIP:5060 —>
ACK sip:9875@3CXPublicIP SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPj6b80f700-4cc9-42ea-ae89-baaad7cd5c62
From: “Anonymous” sip:9875@anonymous.invalid;tag=18cab972-455d-4131-804f-5e3c644f8c11
To: sip:9875@3CXPublicIP;tag=56ea8819
Call-ID: 8f71d7cc-d11e-4791-aa6b-0a07d1ee0ab5
CSeq: 8363 ACK
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Length: 0

[Nov 14 12:43:41] ERROR[25447]: res_pjsip_outbound_authenticator_digest.c:450 digest_create_request_with_auth: Endpoint: ‘acdc-mn-3cx’: There were no auth ids available
== Everyone is busy/congested at this time (1:0/0/1)
– Executing [9875@send-dtmf-after-answer:3] Wait(“PJSIP/acdc-mn-3cx-00000004”, “2”) in new stack
<— Received SIP response (361 bytes) from UDP:3CXPublicIP:5060 —>
SIP/2.0 100 Trying
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport=5060;branch=z9hG4bKPja60ab48c-f020-41c2-b0dd-203ce2b26ecf;received=AsteriskPublicIP
To: sip:9999@3CXPublicIP;tag=f9497a28
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6268 INVITE
Content-Length: 0

<— Received SIP response (846 bytes) from UDP:3CXPublicIP:5060 —>
SIP/2.0 200 OK
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport=5060;branch=z9hG4bKPja60ab48c-f020-41c2-b0dd-203ce2b26ecf;received=AsteriskPublicIP
Require: timer
Contact: sip:Trunkauthid@3CXPublicIP:5060
To: sip:9999@3CXPublicIP;tag=f9497a28
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6268 INVITE
Session-Expires: 1800;refresher=uac
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REGISTER, SUBSCRIBE, NOTIFY, REFER, INFO, MESSAGE, UPDATE
Content-Type: application/sdp
Supported: replaces, timer
User-Agent: 3CXPhoneSystem 20.0.2.715 (715)
Content-Length: 182

v=0
o=3cxPS 13070646959407104 24752420697407490 IN IP4 3CXPublicIP
s=3cxPS Audio call
c=IN IP4 3CXPublicIP
t=0 0
m=audio 9420 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendrecv

   > 0x7d8a7000b1e0 -- Strict RTP learning after remote address set to: 3CXPublicIP:9420

<— Transmitting SIP request (440 bytes) to UDP:3CXPublicIP:5060 —>
ACK sip:Trunkauthid@3CXPublicIP:5060 SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPjcee95f47-f9cb-483d-a6f1-e952ac1dcc38
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
To: sip:9999@3CXPublicIP;tag=f9497a28
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6268 ACK
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Length: 0

-- Executing [9875@send-dtmf-after-answer:4] SendDTMF("PJSIP/acdc-mn-3cx-00000004", "#0") in new stack

Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029376, ts 000160, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029377, ts 000320, len 000160)
> 0x7d8a7000b1e0 – Strict RTP switching to RTP target address 3CXPublicIP:9420 as source
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054017, ts 1925625565, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029378, ts 000480, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054018, ts 1925625725, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029379, ts 000640, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054019, ts 1925625885, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029380, ts 000800, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054020, ts 1925626045, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054021, ts 1925626205, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054022, ts 1925626365, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054023, ts 1925626525, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054024, ts 1925626685, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054025, ts 1925626845, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054026, ts 1925627005, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054027, ts 1925627165, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054028, ts 1925627325, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054029, ts 1925627485, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054030, ts 1925627645, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054031, ts 1925627805, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054032, ts 1925627965, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054033, ts 1925628125, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029381, ts 002960, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054034, ts 1925628285, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029382, ts 003120, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054035, ts 1925628445, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029383, ts 003280, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054036, ts 1925628605, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029384, ts 003440, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054037, ts 1925628765, len 000160)
Sent RTP packet to 3CXPublicIP:9420 (type 00, seq 029385, ts 003600, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054038, ts 1925628925, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054039, ts 1925629085, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054040, ts 1925629245, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054041, ts 1925629405, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054042, ts 1925629565, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054043, ts 1925629725, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054044, ts 1925629885, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054045, ts 1925630045, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054046, ts 1925630205, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054047, ts 1925630365, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054048, ts 1925630525, len 000160)
Got RTP packet from 3CXPublicIP:9420 (type 00, seq 054049, ts 1925630685, len 000160)
– Executing [9875@send-dtmf-after-answer:5] Hangup(“PJSIP/acdc-mn-3cx-00000004”, “”) in new stack
== Spawn extension (send-dtmf-after-answer, 9875, 5) exited non-zero on ‘PJSIP/acdc-mn-3cx-00000004’
<— Transmitting SIP request (464 bytes) to UDP:3CXPublicIP:5060 —>
BYE sip:Trunkauthid@3CXPublicIP:5060 SIP/2.0
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport;branch=z9hG4bKPj8fb41800-87ff-49fb-9771-647ea2cc810c
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
To: sip:9999@3CXPublicIP;tag=f9497a28
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6269 BYE
Reason: Q.850;cause=21
Max-Forwards: 70
User-Agent: Asterisk PBX 20.6.0~dfsg+~cs6.13.40431414-2build5
Content-Length: 0

<— Received SIP response (446 bytes) from UDP:3CXPublicIP:5060 —>
SIP/2.0 200 OK
Via: SIP/2.0/UDP AsteriskPrivateIP:5060;rport=5060;branch=z9hG4bKPj8fb41800-87ff-49fb-9771-647ea2cc810c;received=AsteriskPublicIP
Contact: sip:Trunkauthid@3CXPublicIP:5060
To: sip:9999@3CXPublicIP;tag=f9497a28
From: “Anonymous” sip:9875@anonymous.invalid;tag=b6dd8790-d89b-44c3-bf26-3cdcd5011f00
Call-ID: f59167a1-3c13-415e-98b7-df2a383ada84
CSeq: 6269 BYE
User-Agent: 3CXPhoneSystem 20.0.2.715 (715)
Content-Length: 0

SC3CX-Asterisk*CLI>

Does anyone have an idea on the direction to look for a fix?

Combining these two doesn’t make sense! The first one is asking for Asterisk to control this header. The second one is trying to set it manually. as a non-standard header.

You need to explain the purpose of this line. It seems to have nothing to do with any DTMF, so even if needed in the final version, it serves no purpose for debugging the DTMF handling. In any case, it is failing, as the SIP entity at 3CXPublicIP is challenging for a proxy password, and Asterisk does not have one to give.

I’d try replacing the wait with two seconds of explicit silence, as it looks to me as though the 3CX isn’t handling the delayed start of the media properly.

Ok. I will address that when I am on location, Wednesday. The 3cx trunk does not require a proxy, so what should I modify on the asterisk side of the config or channel command?

Requesting proxy authentication probably really means it doesn’t recognize your public address (NATted) address as being that of a valid client. I suspect you need to change something on the 3CX!

Why are you accessing it via it’s public address on the B side, but its private address on the A side?

The Asterisk box is on our local cloud. The 3cx box is located at a member school district. I won’t have access to either till Wednesday. I have tried many configs, and guessing the proxy is still set on the 3cx side. One of the many changes I made based on logs I was seeing while troubleshooting.

To clarify: the servers communicate via their public ips.

In that case, you haven’t specified the correct external address in the transport.

Ok. I will look into that. Chatgpt indicated I should declare that in rtp.conf

Why do you use ChatGPT for such questions. It has a very poor reputation here as most or all answers reported here are wrong.

I have no idea what chat gbt’s reputation is on the Asterisk forum. However, I will say I was in search of a solution to pass dial codes to school district intercom systems and simultaneously send the same page to a ring group. Something that is not working in 3cx version 20 right now. Chat GBT provided direction and instructed me that asterisks was the solution I was looking for. It got me this far, but, yes, I am stuck and don’t know how to get any further and apparently neither does chat. Gbt.
I do appreciate your responses and help that others have provided on this forum
.

The configuration for when you are behind NAT and want to access a public address is given here:

It is in pjsip.conf, not rtp.conf. The ;'s need to be removed and sample values replaced by actual ones. The transport needs to be associated with the endpoint, etc.

I will modify my config with information you provided tomorrow. Thank you for your help!

I learned today that DTMF tones become RTPEvents and cannot be heard on a 3CX phone because DTMF is out of band. The RTPEvents via Asterisk do appear on the 3CX nic, so it seems the ATA attached to the Bogen intercom can convert them back to DTMF. At this time, my current Asterisk config is working as expected.

Thank you for the help!