Upgrade 3CX to v18 and get it hosted free!

Asterisk Key System Emulation

Author image

Multi Phone Hold

We have a number of locals that dial more than one set and, on our legacy Nortel Meridian, the users used to be able to place the call on hold on one set, and pick it up on another. When we switched to Asterisk, this was the most complained about missing feature, so I came up with the following trickery to make our Polycoms emulate the same functionality.

extensions.conf

First, you need to create a couple of entries in your dialplan to handle the call:

exten => 9002,n,Macro(dnv-fake-sla,SIP/4010&SIP/4011&SIP/4012)

This line basically replaces the Dial() line in your existing setup. Next, we have the macro that gets called by this line:

[macro-dnv-fake-sla]
; ${ARG1} List of extensions
; ${ARG2} Timeout
; ${ARG3} Dial options

exten => s,1,Set(DialString=${ARG1})
exten => s,n,Set(TRANSFER_CONTEXT=fake-sla)
exten => s,n,Dial(${DialString},${ARG2},${ARG3}tT)

Here is the fake-sla context referred to above:

[fake-sla]
exten => ,1,Set(TIMEOUT(digit)=1)
exten => ,n,SIPAddHeader(Alert-Info: silent)
exten => ,n,Dial(${DialString},60,motT)
exten => ,n,SIPAddHeader(Alert-Info: default)
exten => ,n,Dial(${CUT(BLINDTRANSFER,-,-2)},,motT)

features.conf

The following line in the [general] section makes the transfer take as little time as possible:

transferdigittimeout => 1

sip.cfg

For the Alert-Info settings to work on Polycom phones, you need to add these lines to your sip.cfg, right under the existing <alertInfo/> entries:

<alertInfo voIpProt.SIP.alertInfo.3.value=”silent” voIpProt.SIP.alertInfo.3.class=”2″/>
<alertInfo voIpProt.SIP.alertInfo.3.value=”default” voIpProt.SIP.alertInfo.3.class=”1″/>

So, we now have a setup whereby a call to 9002 will call 3 phones. Any of these phones can answer the call, and press ‘#’ to place the call ‘on hold’. What actually happens is that the call gets resent to the same phones with a a silent ring. The caller hears music on hold until the call is answered by any of the three phones. If nobody picks up the call within 60 seconds, the call gets resent to the set that originally placed the call on ‘hold’, only this time it rings. This can be repeated ad infinitum.

phonexxxx.cfg

You can further enhance the ‘on hold’ experience on Polycom phones by mapping the blue ‘Hold’ button to send ‘#’ on the phones. This is done by adding the following line to the phone’s cfg file, between the <phone> tags:

<keys key.IP_500.10.function.prim=”DialpadPound” key.IP_600.40.function.prim=”DialpadPound”/>


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.
Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.