Wednesday, October 19, 2011

Blind Transfer and Ring back in Elastix

The followings apply to Elastix 2.0.0-36 &  Asterisk on CentOS release 5.5.

In Elastix, we can perform blind transfer and ring back us if the transferee does not answer.  Note that here assumes you are transferring call using Asterisk feature, not the IP phone's own transfer function.  

Firstly, we have to setup a TRANSFER_CONTEXT.  Dialplan execution will jump to here on transfer.

TRANSFER_CONTEXT = blindxfer_ringback

Next, we make use of the BLINDTRANSFER variable to ring back in the context [blindxfer_ringback]

; the destination ext should not have vm enabled
exten => _X.,1,NOOP(${BLINDTRANSFER})
exten => _X.,n,set(timeoutd=15) ; set timeout in seconds to dial the transferee
exten => _X.,n,set(extLeng=${LEN(${EXTEN})})
exten => _x.,n,dial(local/${EXTEN}@from-internal,${timeoutd})
exten => _X.,n,Gotoif($["${DIALSTATUS}" = "ANSWER"]?hangup:callback)
; strip the 'SIP/' and ring back
exten => _X.,n(callback),dial(local/${BLINDTRANSFER:4:${extLeng}}@from-internal,,tr)
exten => _X.,n(hangup),hangup()

How does it work
  1. During a conversation, when you want to transfer caller, you press '##' followed by the transferee extension and '#'.
  2. You can hangup your phone.
  3. The caller now hears music while being connected to the transferee.
  4. If the transferee does not answer, Asterisk will ring back you.
Asterisk feature
The '##' is the key sequence to initiate blind transfer in Asterisk.  You can verify the actual sequence defined in your Elastix.

  1. PBX>PBX Configuration>Feature Codes
  2. Or you can check it in CLI.
*CLI> features show
Builtin Feature           Default Current
---------------           ------- -------
Pickup                    *8      *8
Blind Transfer            #       ##

Friday, October 07, 2011

Tips of using Elastix in Business Center/Virtual Office

Business center usually gives its client a business contact number to receive inbound calls.  Caller is greeted properly using the client's name and then forwarded to the client who is probably located remotely.
It is desirable that the agent can identify which client is being called before picking up the phone.
Here describes the steps taken to accomplish it using Elastix.
The scenario applies to Elastix 2.0.0-36 and most common IP Phones with LCD display.  The business center subscribes a T1 trunk (bundled with 200 local numbers) from a local telephone provider.  The local numbers are allocated to its clients.
1.    Create a queue of agents
PBX > PBX Configuration > Inbound Call Control > Queues
You can simply enter the agent extensions in the 'Static Agents' field.
2.    Add inbound route
PBX > PBX Configuration > Inbound Call Control > Inbound Routes
Input the 'DID Number' and the corresponding company name in the 'CID name prefix' field.  The DID number is the business contact number that is given to the client.


Direct incoming call to the call queue created above.

Create inbound route for each DID number you assigned to clients.
What would the agent see?
When a call comes in, the agent can see the corresponding company name on the phone LCD display.  Note that the display length varies with phone models.