Intelligent Call Distributor

Introduction

Currently you need Zaptel installed to compile ICD because the conferencing application relies on Zaptel timers. You may or may not need Zaptel hardware as well.

Description of what ICD is, what it’s capable of and so on should be HERE!

To enable ICD please configure CallWeaver with the following flags:

--with-app_icd=yes

ICD Examples

Defining agents

Place this in icd_config/icd_agents.conf:

[bob]
agent_id=1
passwd=1234
channel=SIP/bob

[john]
agent_id=2
passwd=0039
channel=SIP/john

[ryan]
agent_id=3
passwd=5678
channel=SIP/ryan

Defining a queue

In icd_config/icd_queues.conf add the following to define the pizza_express queue:

[pizza_express]
agents=bob,john,ryan
dist=fifo

This queue has three agents (bob, john and ryan). Calls to this queue are answered like in a waiting line.

Calling a queue

The following dialplan example will place the caller in the pizza_express queue:

exten => 22225555,1,ICDCustomer(name=Pizza Express Customer,info=HOT pizzas,queue=pizza_express)

ICD Dialplan applications

The following applications are used with ICD. I have no clue how. If someone does please help fix this page.

ICDCustomer

Description

Syntax

ICDCustomer(queue=[queueid][,option])

ICDQueue

Synonym for ICDCustomer

ICDAgent

Description

Logs an agent into an ICD queue or icd queues. While logged in, the agent can receive calls.

The option string may contain zero or more of the following: queue=[queueid or space separated list of queues]—which queues the agent should be a member off priority=[priority]—the priority in the queue of the agent (for priority ditribution = priority) noauth=[1 or 0] – if we should authenticate the agent dunamic=[yes or no]—if this is a dynamically created agent

Definitions in the dialplan override definitions in the icd_agent.conf file

Syntax

ICDAgent(agent=[agentid or dynamic][,option])

ICDLogout

Description

Syntax

ICDLogout(agent=[agentid])

ICDAddMember

Description

Syntax

ICDAddMember

ICDRemoveMember

Description

Syntax

ICDRemoveMember

ICDAgentCallback

Description

Syntax

ICDAgentCallback

ICDCustomerCallback

Description

Syntax

ICDCustomerCallback