You might have seen my earlier post on the file formats you need for audio files for Lync and Exchange.
From firmware release 2.1.x, the UX family of PSTN Gateways now support the direct provision of Music On Hold (MOH).
“The Music On Hold feature allows you to play music or other audio while a call is on hold and is available to all call types (SIP, ISDN, CAS).”
This enhancement saves you the hassle of pushing to and maintaining a MOH audio file on your users’ PCs (which has to date been required). Now, when the Gateway sees a message from Lync to indicate the call is on hold, it breaks the audio path to inject its local music source.
If you have an FXS interface card in your UX you can instead stream a live feed into the call, say from a radio, MP3 player or other source.
Keep your MOH *fresh* – or do it live!
Unlike “old world” MOH, the file plays from the start each time someone’s put on hold. That gives you an opportunity to record a suitable intro message and start your caller on their exciting hold journey, rather than dumping them unceremoniously into the loop at any point. Of course this will quickly become quite tedious for repeat callers to the organisation who’ll hear the same “your call is important to us” intro and song EVERY time they call, so I strongly recommend you look at refreshing the music source frequently! If you have lots of recurrent callers who spend *any* time on hold, consider instead taking the music inject path and going with a radio station or local MP3 you can change easily. If they’re on hold and don’t want to be there (or are waiting for extended times), you don’t want to do anything to piss them off more than they already are!
The valid audio file types are listed below, but BEWARE – if your UX isn’t licenced for transcoding you can only play a file that’s encoded the same way as your trunks. (Thus, an a-Law file for us here in the banana republic of AU).
- .wav file
- 16-bit linear PCM (Little endian)
- G.711 μ-law
- G.711 a-law
- .pcma file
- .pcmu file
- .pcm file
- .g726 file
All audio files must be sampled at 8KHz and be mono. There’s a maximum file size limit of 1M for the 1000 and 4M for the 2000.
In my testing I used a standard WAV file, and the UX is generally clever enough to determine if it’s not the right format and reject it (see below).
If you’re using GoldWave for your sound editing, here’s the “save-as” format you need for Oz – just make sure you’ve resampled it to 8k (Effect / Resample) first!
If you’re blessed with Audition (nee Cool Edit), this image shows the formatting required. (Choose a- or mu- as appropriate at the pop-up of course).
It’s as easy as 1, 2, 3…5!
I was impressed at how easy it was to implement MOH on the UX:
- Navigate to Settings / Media / Media System Configuration
- Click the “Upload Music File” link at the top left of the page to upload the file
Whoops! OK, let’s try a different file:
- If that’s gone OK, now navigate to Settings / System / DSPs and confirm that the DSPs like your file
- Navigate to Lync’s Signalling Group and enable MOH
- Done! Now TEST it to make sure it’s working.
(I was able to able to upload a “.pcma” file I’d deliberately corrupted and it played VERY loud white noise to my caller! This is not the fault of the gateway of course: WAV files have a descriptive header that lets it review the content and check its suitability, which other file formats do not, so it relies upon you doing the right thing).
How It Works
When your call is placed on hold, Lync politely sends a (re)INVITE message to the Gateway to let it know that the call’s in a held state.
m=audio 5388 RTP/AVP 0 8 101 c=IN IP4 192.168.xx.yyy a=rtcp:5389 a=sendonly a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16
The SDP section of the invite includes the crucial attribute “a=sendonly” (where it would normally say “a=sendrecv” – which indeed it does when we “un-hold” the call), and that’s the trigger for the UX to re-switch the speech-path to the music source.
When a call is parked, the SDP in the (re)INVITE initially comes in as “a=inactive”, and then settles down to “a=sendonly” in a subsequent message when the caller is connected to the Call Park service.
Inclusions / Exclusions
Not every call placed in a “hold” state will be eligible to receive music from the Gateway.
- Calls placed on hold by the Attendant or a normal Lync client
- Calls placed on hold by the Aries phones (e.g. CX600)
- Calls transferred to the Parking lot
- Calls in the process of being transferred (e.g. consultative transfers by the Lync client, an Aries or Tanjay phone)
- Calls to a Response Group waiting for a free agent. (These receive the music source configured in the Workflow)
- Calls placed on hold by the Polycom SoundPoint phones (e.g. IP560) running the Lync firmware. In this scenario the held party hears silence. (Edit 2/Aug/2012: fingers crossed this will change with the SoundPoint firmware update due later this month. Stay tuned)
- Calls between users. (OK, pretty obvious, but I thought I’d spell it out in case you’ve not had your morning coffee yet)
Here in Oz you have 2 options for sourcing MOH. You’re welcome to play licenced music, but you need to pay APRA for the rights to do this. It’s not prohibitively expensive and a relatively easy process.
Alternatively, you should seek out some royalty-free music. You pay for this up-front, and in so doing the composer and performer are waiving their rights to seek further royalty payments. North Supply is one of the prominent providers of MOH production in Australia, and has a comprehensive catalog of royalty-free music from which to choose.