Specify music in Parking, different from queue

This seems to be an ongoing issue, and I just cannot get a solution that works for me, so I have come for advice. FreePBX 14.0.5.2.

I want to place incoming callers straight into a queue, which has reception phones ringing, and a MOH file playing a ring-tone, then a welcome announcement, then nice music, then a çontinue to hold’ message, then more music etc. That part is fine so far. Then, if reception answers and then places the call in a parking slot, they should just hear nice music. Instead, they only ever hear the same (inherited) MOH file they have just heard in the queue, beginning with the ringtone and the welcome message. which is confusing. It should be possible to specify which music they hear when waiting on hold in Parking.

It seems from this forum that the problem lies within Asterisk itself, and the best solution I have come across so far is this: http://forums.asterisk.org/viewtopic.php?f=1&t=89529&p=197315
which says to use mohsuggest=default in the sip.conf file.

My question is: Can anyone tell me where that line would actually go to take effect? I am guessing it should be in sip_additional.conf or sip_general_additional.conf…but where should that go, and is there further syntax/commands/lines required? (completely betraying my lack of skill in that area-I do most everything through the GUI)

Finally, I am actually using a PJSIP channel for my incoming calls, so do I need to set this feature, or something similar, in one of the pjsip.conf files?

Thanks for your patient understanding.

Which version of parking and Asterisk are you using?

Asterix 13.19.1
parking: the one that came with this distro.
I can’t see any way of setting MOH for Parking. Is that a possibility? Or does it always just inherit?
That would solve the problem.

They’re hiding it in plain sight on the Parking page.

2 Likes

Parked Music Class

This is the music class to play to callers who are waiting in the parking lot. If a specific music class has been previously set for the caller prior to being parked, such as if the call came through a Queue that set the music, then this selection will be ignored in favor of the music class that was previously set for the call.

Problem is, the queue MOH is made up of ringtones and messages that aren;t suitable for the parked caller to hear again. I can’t work out how to over-ride the queue MOH and play a different MOH for the parked call.

As stated in another MoH thread, MoH applies to the channel it is on. So when the call is in the queue, that channel has the queue’s MoH applied to it. When the call is answered by the agent and the agent puts that call on hold, it will look to see if the channel that is holding the call (agents) has a MoH class assigned to it and will use that, if not it uses the default.

Now when they park that call, they are parking the channel that came from the queue and still has the queue’s MoH class assigned to it. That’s why the parked call isn’t using the agent’s MoH and it’s not applying the park MoH because it already sees a MoH class assigned to the channel.

Queues do allow you to trigger GoSubs/Macro’s on calls for both the member (caller) and the agent (user) after the call is connected to the agent. You could use the member option to clear the MoH class off the channel or set the MoH class you want before going to the parking lot. That should allow the parked call to use the MoH class you want.

Downside, there is nothing in the standard versions of the Queues in FreePBX that let you do this. You would have to inject custom code/configs for the queue to do this or get the pro version which offers this feature in the GUI.

Thanks.
So back to fiddling with the config files: not my strength. And can anyone tell me this: should mohsuggest=xxx be the key, and where should I put it?

Its interesting that if the call gets answered from a ring-group, and then put on hold, the caller hears the default MOH set in the inbound route. Not so with the queues.

Not really. Ring Groups are not an actual thing, it is a method of calling a bunch of devices in a particular method. Everything that happens on the Ring Group happens on the channel the call came in on. It just creates the new channels and sends the calls along.

The queue is a different beast as it is doing something with the caller, holding the caller, tracking. The queue is what calls the agents and then bridges them with the caller. You’re basically comparing apples and oranges.

1 Like

Hey Peter, so I think I understand what you’re saying but please let me know if I’m incorrect. An incoming call goes to a queue and you have a specific hold message that plays, when the call gets answered by reception if they park the call then you still have the same hold music from the queue?

I think I may have a solution that could work for you. How do you currently park the calls right now? transfer to a specific extension or is there a park button on the phone? If so are you able to modify the extension for the park button?

You are correct about the sequence of events. The MOH for the queue is a compiled file that includes a recorded ring tone and then a welcome message, and then music etc. This is all so that the receptionists can hear ringing, and answer the call, at any moment once the caller is in the system. Using announcements does not allow that.

They park the call using one of 4 BLF buttons, that have labels *8571 to *8574.
The call can then be retrieved from those slots by anyone with a phone. Yealink phones. Fully (mostly) modifiable.

If you can tell me how my callers can hear nice music rather than the compiled file they have already heard, I would be most grateful. Thanks!

Is the “Parked Music Class” in the Parking module manager not working?

@petecat1

Sorry about the wait. I had to think about the best way to do this as I just realized you specify which Parking Lot to put them in with each of those buttons…

Alright so…

Go to Admin > Custom Destinations

Fill it out like above (you can change 2071 to an other extension/number you want that’s available)

Repeat this 3 other times creating a custom destination for

phones,2071,1
phones,2072,1
phones,2073,1
phones,2074,1

Id recommend calling them Park1, Park2, Park3, and Park4

Now add this to your extensions_custom.conf

[phones]
exten => 2071,1,NoOP
same => n,Answer()
same => n,Set(CHANNEL(musicclass)=changeThisToYourMOHClass)
same => n,Set(__PARKINGEXTEN=71)
same => n,Park(default)
same => n,Hangup()

exten => 2072,1,NoOP
same => n,Answer()
same => n,Set(CHANNEL(musicclass)=changeThisToYourMOHClass)
same => n,Set(__PARKINGEXTEN=72)
same => n,Park(default)
same => n,Hangup()

exten => 2073,1,NoOP
same => n,Answer()
same => n,Set(CHANNEL(musicclass)=changeThisToYourMOHClass)
same => n,Set(__PARKINGEXTEN=73)
same => n,Park(default)
same => n,Hangup()

exten => 2074,1,NoOP
same => n,Answer()
same => n,Set(CHANNEL(musicclass)=changeThisToYourMOHClass)
same => n,Set(__PARKINGEXTEN=74)
same => n,Park(default)
same => n,Hangup()

Change the

image

to match the other music on hold class that you want the callers to hear when they are parked for each 270X extension.

If you changed the 207X numbers in the custom destination change that here to match it as well

Save that and now go to Applications > Misc Applications

Now create 4 of these as well. (The feature code matching whats listed in the "exten => " line)
and point them to the corresponding custom destination you created.

Then go to Admin > Asterisk CLI and type in

fwconsole restart

and you should be good to go.

Set the phones up and when you transfer to each of these extensions they will go to the corresponding parking lot (71,72,73,74) and play the music on hold you specify.

Dave, Parked Music Class is working as advertised. But I want to over-ride the MOH that it inherits from the queue.

Robert, thanks very much for your ideas.
I have set that up, with the BLF’s set up for extension 2701 to 2704 labeled Park 1 to Park 4. (previously they had the value *8571 to *8574)
Now, it works up to a point: a call is taken out of the queue, and press “Park 1”. The caller then hears the correct MOH. Which is great progress.
Now the problem is, how do I retrieve the call from that slot? When the Park 1 button on the reception phone is pressed again, instead of retrieving the call, the receptionist is placed in another park (with the voice reading out the number) and also hears the hold music.

Any ideas on which settings can make it behave more like a traditional Park?

Out of interest, I have seen that the Parking config is found in Features.conf, or a variation on that.
Could that be a factor here? But I can’t find anything very relevant in those files.

Thanks for all of your help.

@petecat1

Add this back in to the extensions_custom.conf . Change the musicclass to your music on hold class. I set it to cisco because I was testing it on my end.

[phones]
exten => 2071,1,NoOP
same => n,GotoIf($[ ${DEVICE_STATE(park:71@parkedcalls)} =NOT_INUSE ] ?3:8)
same => 3,Answer()
same => n,Set(CHANNEL(musicclass)=cisco)
same => n,Set(__PARKINGEXTEN=71)
same => n,Park(default)
same => n,Hangup()
same => 8,ParkedCall(default,71)

exten => 2072,1,NoOP
same => n,GotoIf($[ ${DEVICE_STATE(park:71@parkedcalls)} =NOT_INUSE ] ?3:8)
same => 3,Answer()
same => n,Set(CHANNEL(musicclass)=cisco)
same => n,Set(__PARKINGEXTEN=72)
same => n,Park(default)
same => n,Hangup()
same => 8,ParkedCall(default,72)

exten => 2073,1,NoOP
same => n,GotoIf($[ ${DEVICE_STATE(park:71@parkedcalls)} =NOT_INUSE ] ?3:8)
same => 3,Answer()
same => n,Set(CHANNEL(musicclass)=cisco)
same => n,Set(__PARKINGEXTEN=73)
same => n,Park(default)
same => n,Hangup()
same => 8,ParkedCall(default,73)

exten => 2074,1,NoOP
same => n,GotoIf($[ ${DEVICE_STATE(park:71@parkedcalls)} =NOT_INUSE ] ?3:8)
same => 3,Answer()
same => n,Set(CHANNEL(musicclass)=cisco)
same => n,Set(__PARKINGEXTEN=74)
same => n,Park(default)
same => n,Hangup()
same => 8,ParkedCall(default,74)

I forgot to mention once you add that you must go to Admin > Asterisk CLI run the fwconsole restart for the changes to take affect!

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