One way audio only after picking up a parked call

Here’s my situation.
I have a central PBX system running in a data center. Using FreePBX 14.
I have 5 different remote sites all setup on the same PBX.
All 5 sites have their own Parking Lots using Parking Pro.
Only one site has this issue. When a call is picked up after being parked the audio come through to the user but the caller cannot hear any audio at all. The parking music can be heard just fine but after picking up there is no audio going out from the user that picked up the parked call.

One way audio is almost always NAT misconfig. In this case as it’s confined to a single site, I would concentrate your investigation on the router/firewall at that site. My wild guess is a SIP ALG that needs to be disabled.

I tried disabling the sip session helper on the firewall at the site but that didn’t change anything

Okay so it’s definitely something environmental. I provisioned a phone here at my desk to the same PBX and I’m using the same template (same parking lot) and the issue doesn’t occur. Also I changed their internet from their main provider over to a backup circuit and the problem of one way audio became global. All calls were one way audio after that not just after parking. I moved them back to the primary and the original problem is still there but this tells me that there is an issue at the site and not on the PBX.

On Chan-SCCP-B, when this happens it’s because of a codec switch. The call is on one codec, and the hold-music is on another. When the return from park happens, the codec doesn’t switch correctly.

Having said that, I remember we had a long discussion about this a few months ago, in that the call changed the outbound RTP port and didn’t pass along the information to the remote end (or something kind of like that).

Makes sense. So how do I fix this?

See if this sounds close:

Here’s log up to the point that the call is picked back up from park:

[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing 
[[email protected]:42] Set("SIP/25009-00008094", "CHANNEL(language)=en") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:2] Gosub("SIP/25009-00008094", "sub-record-check,s,1(parking,25009,25009)") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:1] GotoIf("SIP/25009-00008094", "0?initialized") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:2] Set("SIP/25009-00008094", "__REC_STATUS=INITIALIZED") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:3] Set("SIP/25009-00008094", "NOW=1549044702") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:4] Set("SIP/25009-00008094", "__DAY=01") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:5] Set("SIP/25009-00008094", "__MONTH=02") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:6] Set("SIP/25009-00008094", "__YEAR=2019") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:7] Set("SIP/25009-00008094", "__TIMESTR=20190201-121142") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:8] Set("SIP/25009-00008094", "__FROMEXTEN=25009") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:9] Set("SIP/25009-00008094", "__MON_FMT=wav") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:10] NoOp("SIP/25009-00008094", "Recordings initialized") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:11] ExecIf("SIP/25009-00008094", "0?Set(ARG3=dontcare)") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:12] Set("SIP/25009-00008094", "REC_POLICY_MODE_SAVE=") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:13] ExecIf("SIP/25009-00008094", "0?Set(REC_STATUS=NO)") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:14] GotoIf("SIP/25009-00008094", "7?checkaction") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx_builtins.c: Goto (sub-record-check,s,17)
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:17] GotoIf("SIP/25009-00008094", "1?sub-record-check,parking,1") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx_builtins.c: Goto (sub-record-check,parking,1)
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:1] NoOp("SIP/25009-00008094", "User 25009 picked up a parked call") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:2] Set("SIP/25009-00008094", "USER=25009") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:3] ExecIf("SIP/25009-00008094", "0?Set(USER=unknown)") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:4] Set("SIP/25009-00008094", "RECMODE=dontcare") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:5] ExecIf("SIP/25009-00008094", "0?Set(RECMODE=dontcare)") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:6] Gosub("SIP/25009-00008094", "recordcheck,1(dontcare,parked,25009)") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:1] NoOp("SIP/25009-00008094", "Starting recording check against dontcare") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:2] Goto("SIP/25009-00008094", "dontcare") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx_builtins.c: Goto (sub-record-check,recordcheck,3)
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:3] Return("SIP/25009-00008094", "") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:7] Return("SIP/25009-00008094", "") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:3] NoOp("SIP/25009-00008094", "PARKRETURNTO: ") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:4] GotoIf("SIP/25009-00008094", "0?backtosender") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:5] GotoIf("SIP/25009-00008094", "0?attemptpark") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:6] AGI("SIP/25009-00008094", "parkfetch.agi,101,parkinglot_6") in new stack
[2019-02-01 12:11:42] VERBOSE[26796][C-000063f8] res_agi.c: Launched AGI Script /var/lib/asterisk/agi-bin/parkfetch.agi
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] res_agi.c: parkfetch.agi,101,parkinglot_6: Found slot full with channel [SIP/BW-SIP-A-0000808a]
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] res_agi.c: <SIP/25009-00008094>AGI Script parkfetch.agi completed, returning 0
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:7] GotoIf("SIP/25009-00008094", "1?next") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx_builtins.c: Goto (macro-parked-call,s,9)
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:9] Set("SIP/25009-00008094", "CCSS_SETUP=TRUE") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:10] GotoIf("SIP/25009-00008094", "1?pcall") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx_builtins.c: Goto (macro-parked-call,s,17)
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:17] NoOp("SIP/25009-00008094", "User: "Robert Parent" <25009> attempting to pick up Parked Call Slot 101") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:18] GotoIf("SIP/25009-00008094", "0?privatelotcheckfinish2") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:19] ExecIf("SIP/25009-00008094", "0?Set(ARG2=):Set(ARG2=parkinglot_6)") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:20] NoOp("SIP/25009-00008094", "End Force Private Lot Detection") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:21] NoOp("SIP/25009-00008094", "PARKIE: SIP/BW-SIP-A-0000808a") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:22] Set("SIP/25009-00008094", "SHARED(PARKRETURNTO,SIP/BW-SIP-A-0000808a)=") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:23] Set("SIP/25009-00008094", "PARKOWNER=1") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] pbx.c: Executing [[email protected]:24] ParkedCall("SIP/25009-00008094", "parkinglot_6,101") in new stack
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] bridge_channel.c: Channel SIP/BW-SIP-A-0000808a left 'holding_bridge' parking-bridge <a55513ec-10d8-4749-8d95-25102bf6434b>
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] res_musiconhold.c: Stopped music on hold on SIP/BW-SIP-A-0000808a
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] bridge_channel.c: Channel SIP/BW-SIP-A-0000808a joined 'simple_bridge' basic-bridge <e24844d5-362c-4e1f-aa62-079d883ad6fc>
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] file.c: <SIP/25009-00008094> Playing 'beep.ulaw' (language 'en')
[2019-02-01 12:11:43] VERBOSE[26150][C-000063f5] file.c: <SIP/BW-SIP-A-0000808a> Playing 'beep.ulaw' (language 'en')
[2019-02-01 12:11:43] VERBOSE[26796][C-000063f8] bridge_channel.c: Channel SIP/25009-00008094 joined 'simple_bridge' basic-bridge <e24844d5-362c-4e1f-aa62-079d883ad6fc>

Here’s the log from the phone I provisioned for testing locally (The one that works) Notice the difference in the line “Stopped music on hold…”

[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:17] NoOp("SIP/25050-000080de", "User: "Raleigh Test" <25050> attempting to pick up Parked Call Slot 101") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:18] GotoIf("SIP/25050-000080de", "0?privatelotcheckfinish2") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:19] ExecIf("SIP/25050-000080de", "0?Set(ARG2=):Set(ARG2=parkinglot_6)") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:20] NoOp("SIP/25050-000080de", "End Force Private Lot Detection") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:21] NoOp("SIP/25050-000080de", "PARKIE: IAX2/Datacenter-22691") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:22] Set("SIP/25050-000080de", "SHARED(PARKRETURNTO,IAX2/Datacenter-22691)=") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:23] Set("SIP/25050-000080de", "PARKOWNER=1") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] pbx.c: Executing [[email protected]:24] ParkedCall("SIP/25050-000080de", "parkinglot_6,101") in new stack
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] bridge_channel.c: Channel IAX2/Datacenter-22691 left 'holding_bridge' parking-bridge <a55513ec-10d8-4749-8d95-25102bf6434b>
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] res_musiconhold.c: Stopped music on hold on IAX2/Datacenter-22691
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] bridge_channel.c: Channel IAX2/Datacenter-22691 joined 'simple_bridge' basic-bridge <008b113a-eaf2-427f-8a02-d73724e81d36>
[2019-02-01 12:35:28] VERBOSE[1035][C-00006418] file.c: <SIP/25050-000080de> Playing 'beep.ulaw' (language 'en')
[2019-02-01 12:35:28] VERBOSE[983][C-00006417] file.c: <IAX2/Datacenter-22691> Playing 'beep.ulaw' (language 'en')

Fixed! Here is what fixed it:

It was this setting Send RPID was set to “Send P-Asserted-Identity header” on each extension. I changed that to no and that fixed it.

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