Music on hold not playing during call transfers

Note: A similar topic is posted here, but it is from '06 and I’m using Asterisk 13.14

I’ve just set up some new phones (see below) and am using Asterisk 13.14. If I forcibly play hold music, either by setting an extension to play hold music or simply pressing “hold” on the phone, it plays perfectly.

The problem is when I try to set up an attended call transfer. Once I select transfer, the call goes silent and there is no hold music playing. Does anybody know what might cause this? I don’t even know where the problem might lie, so I don’t have many ideas on which .conf files to paste in here (let me know which .conf files would help!).

Phone hardware (see link for more details):
Unifi UVP

; musiconhold.conf:
[general]

[default]
mode = files
directory = moh

Thanks!

What is the actual SIP traffic and console output?

Executing [1102@from-twilio:1] Verbose("PJSIP/twilio-000000a5", "1, "Caller dialed an individual's extension rather than a department."") in new stack
  "Caller dialed an individual's extension rather than a department."
    -- Executing [1102@from-twilio:2] Dial("PJSIP/twilio-000000a5", "PJSIP/1102,20") in new stack
[May  5 18:06:48] CC[15627][C-00000057]: ccss.c:2446 ast_cc_call_init: Agent policy for PJSIP/twilio-000000a5 is 'never'. CC not possible
    -- Called PJSIP/1102
    -- PJSIP/1102-000000a6 is ringing
    -- PJSIP/1102-000000a6 answered PJSIP/twilio-000000a5
    -- Channel PJSIP/1102-000000a6 joined 'simple_bridge' basic-bridge <16880a63-06c3-468f-af7a-d084b63db001>
    -- Channel PJSIP/twilio-000000a5 joined 'simple_bridge' basic-bridge <16880a63-06c3-468f-af7a-d084b63db001>
       > Bridge 16880a63-06c3-468f-af7a-d084b63db001: switching from simple_bridge technology to native_rtp
       > Remotely bridged 'PJSIP/twilio-000000a5' and 'PJSIP/1102-000000a6' - media will flow directly between them
       > Remotely bridged 'PJSIP/twilio-000000a5' and 'PJSIP/1102-000000a6' - media will flow directly between them
       > 0x7f89d81468b0 -- Probation passed - setting RTP source address to 54.172.61.12:14230
       > 0x7f89d82670e0 -- Probation passed - setting RTP source address to 172.255.50.180:4012
    -- Started music on hold, class 'default', on channel 'PJSIP/twilio-000000a5'
       > 0x7f89d82670e0 -- Probation passed - setting RTP source address to 172.255.50.180:4012
       > 0x7f89d81468b0 -- Probation passed - setting RTP source address to 54.172.61.12:14230
       > 0x7f89d82670e0 -- Probation passed - setting RTP source address to 172.255.50.180:4012
    -- Stopped music on hold on PJSIP/twilio-000000a5
       > 0x7f89d82670e0 -- Probation passed - setting RTP source address to 172.255.50.180:4012
       > 0x7f89d81468b0 -- Probation passed - setting RTP source address to 54.172.61.12:14230
    -- Started music on hold, class 'default', on channel 'PJSIP/twilio-000000a5'
       > 0x7f89d81468b0 -- Probation passed - setting RTP source address to 54.172.61.12:14230
  == Setting global variable 'SIPDOMAIN' to '<__COMPANY PBX DOMAIN__>'
    -- Executing [1101@from-phones:1] Dial("PJSIP/1102-000000a7", "PJSIP/1101") in new stack
[May  5 18:07:17] CC[15633][C-00000058]: ccss.c:2446 ast_cc_call_init: Agent policy for PJSIP/1102-000000a7 is 'never'. CC not possible
    -- Called PJSIP/1101
    -- PJSIP/1101-000000a8 is ringing
[May  5 18:07:24] WARNING[15621]: channel.c:5630 set_format: Unable to find a codec translation path: (ulaw) -> (opus)
[May  5 18:07:24] WARNING[15621]: channel.c:5630 set_format: Unable to find a codec translation path: (opus) -> (ulaw)
    -- PJSIP/1101-000000a8 answered PJSIP/1102-000000a7
    -- Channel PJSIP/1101-000000a8 joined 'simple_bridge' basic-bridge <347a7b18-d289-4f70-a226-32f157e43d03>
    -- Channel PJSIP/1102-000000a7 joined 'simple_bridge' basic-bridge <347a7b18-d289-4f70-a226-32f157e43d03>
       > Bridge 347a7b18-d289-4f70-a226-32f157e43d03: switching from simple_bridge technology to native_rtp
       > Remotely bridged 'PJSIP/1102-000000a7' and 'PJSIP/1101-000000a8' - media will flow directly between them
       > Remotely bridged 'PJSIP/1102-000000a7' and 'PJSIP/1101-000000a8' - media will flow directly between them
       > 0x7f89d85d0aa0 -- Probation passed - setting RTP source address to 172.255.50.180:4014
    -- Channel PJSIP/1101-000000a8 left 'native_rtp' basic-bridge <347a7b18-d289-4f70-a226-32f157e43d03>
    -- Channel PJSIP/1102-000000a7 left 'native_rtp' basic-bridge <347a7b18-d289-4f70-a226-32f157e43d03>
  == Spawn extension (from-phones, 1101, 1) exited non-zero on 'PJSIP/1102-000000a7'
    -- Stopped music on hold on PJSIP/twilio-000000a5
    -- Channel PJSIP/twilio-000000a5 left 'native_rtp' basic-bridge <16880a63-06c3-468f-af7a-d084b63db001>
    -- Channel PJSIP/1102-000000a6 left 'native_rtp' basic-bridge <16880a63-06c3-468f-af7a-d084b63db001>
  == Spawn extension (from-twilio, 1102, 2) exited non-zero on 'PJSIP/twilio-000000a5'

From looking at this, my guess is that it has to do with the codec, but I don’t understand why it is looking for ulaw or opus when I have .wav files in the /var/lib/asterisk/moh folder

Sorry, a bit more context:

I called into the company phone from my personal mobile phone, connected to extension 1102, then used the phone at extension 1102 transfer the call to the phone with extension 1101