How to create Asterisk Queues and Agents on Debian 12

To Create Queues And Agents On Debian 12.

Introduction:

Asterisk agents are professionals skilled in harnessing the power of Asterisk, an open-source telephony platform renowned for its versatility in handling voice and data communications. These experts are vital in configuring, managing, and optimizing Asterisk-based systems, ensuring smooth and efficient operations within call centers and telecommunications environments. Their expertise encompasses everything from setting up automated response systems to fine-tuning call routing strategies, making them indispensable in delivering reliable and tailored communication solutions.

Procedure:

Step 1: Check the OS version by using following command.

root@linuxhelp:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Step 2: Go to the following location by using following command.

root@linuxhelp:~# cd /etc/asterisk/

Step 3: Edit queues.conf file to make queues agents by using following command.

root@linuxhelp:/etc/asterisk# vim queues.conf
[queue1]
strategy = ringall
timeout = 15
member => PJSIP/110
member => PJSIP/111
member => Agent/1001

Step 4: Edit the extensions.conf file to make the dialplan by using following command.

root@linuxhelp:/etc/asterisk# vim extensions.conf
[internal]
exten => 110,1,Dial(PJSIP/110)
exten => 110,n,Hangup()

exten => 111,1,Queue(queue1)
exten => 111,n,Hangup()
exten => 112,1,Dial(PJSIP/112)
exten => 112,n,Hangup()

Step 5: Login to the Asterisk console by using following command.

root@linuxhelp:/etc/asterisk# asterisk  -rvvvvvvvvvvvvvvvvv
Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 20.4.0 currently running on linuxhelp (pid = 1110)
linuxhelp*CLI> 

Step 6: Reload the modules by using following command.

linuxhelp*CLI> core reload
    -- Reloading module 'extconfig' (Configuration)
    -- Reloading module 'logger' (Logger)
 Asterisk Queue Logger restarted
    -- Reloading module 'cdr' (CDR Engine)
[Jun 18 05:45:15] NOTICE[3619]: cdr.c:4568 cdr_toggle_runtime_options: CDR simple logging enabled.
    -- Reloading module 'cel' (CEL Engine)
    -- CEL logging disabled.
    -- Reloading module 'dnsmgr' (DNS Manager)
    -- Reloading module 'dsp' (DSP)
    -- Reloading module 'enum' (ENUM Support)
    -- Reloading module 'features' (Call Features)
    -- Reloading module 'http' (Built-in HTTP Server)
    -- Reloading module 'indications' (Indication Tone Handling)
    -- Reloading module 'acl' (Named ACL system)
    -- Reloading module 'manager' (Asterisk Manager Interface)
    -- Reloading module 'plc' (PLC)
    -- Reloading module 'udptl' (UDPTL)
    -- Reloading module 'res_pjproject.so' (PJPROJECT Log and Utility Support)
    -- Reloading module 'res_pjsip.so' (Basic SIP resource)
[Jun 18 05:45:15] NOTICE[3501]: sorcery.c:1348 sorcery_object_load: Type 'system' is not reloadable, maintaining previous values
    -- Reloading module 'res_pjsip_authenticator_digest.so' (PJSIP authentication resource)
    -- Reloading module 'res_pjsip_endpoint_identifier_ip.so' (PJSIP IP endpoint identifier)
    -- Reloading module 'res_musiconhold.so' (Music On Hold Resource)
    -- Reloading module 'res_rtp_asterisk.so' (Asterisk RTP Stack)
    -- Reloading module 'res_pjsip_outbound_publish.so' (PJSIP Outbound Publish Support)
    -- Reloading module 'res_pjsip_mwi.so' (PJSIP MWI resource)
    -- Reloading module 'res_pjsip_publish_asterisk.so' (PJSIP Asterisk Event PUBLISH Support)
    -- Reloading module 'res_pjsip_notify.so' (CLI/AMI PJSIP NOTIFY Support)
    -- Reloading module 'res_pjsip_outbound_registration.so' (PJSIP Outbound Registration Support)
    -- Reloading module 'app_confbridge.so' (Conference Bridge Application)
    -- Reloading module 'cdr_custom.so' (Customizable Comma Separated Values CDR Backend)
    -- Reloading module 'app_playback.so' (Sound File Playback Application)
    -- Reloading module 'app_voicemail.so' (Comedian Mail (Voicemail System))
    -- Reloading module 'pbx_config.so' (Text Extension Configuration)
    -- Time to scan old dialplan and merge leftovers back into the new: 0.000002 sec
    -- Time to restore hints and swap in new dialplan: 0.000004 sec
    -- Time to delete the old dialplan: 0.000002 sec
    -- Total time merge_contexts_delete: 0.000008 sec
    -- pbx_config successfully loaded 1 contexts (enable debug for details).
    -- Reloading module 'app_queue.so' (True Call Queueing)
[Jun 18 05:45:15] NOTICE[3619]: app_queue.c:9528 reload_queue_rules: queuerules.conf has not changed since it was last loaded. Not taking any action.
    -- Reloading module 'app_agent_pool.so' (Call center agent pool applications)

Step 7: Reload the dialplan by using following command.

linuxhelp*CLI> dialplan reload
Dialplan reloaded.
    -- Time to scan old dialplan and merge leftovers back into the new: 0.000003 sec
    -- Time to restore hints and swap in new dialplan: 0.000004 sec
    -- Time to delete the old dialplan: 0.000003 sec
    -- Total time merge_contexts_delete: 0.000010 sec
    -- pbx_config successfully loaded 1 contexts (enable debug for details).

Step 8: Test by using softphone applications as shown in below image.

    -- Added contact 'sip:111@192.168.6.105:52209;transport=TCP;ob' to AOR '111' with expiration of 300 seconds
    -- Removed contact 'sip:111@192.168.6.104:65290;transport=TCP;ob' from AOR '111' due to remove existing
  == Contact 111/sip:111@192.168.6.104:65290;transport=TCP;ob has been deleted
  == Endpoint 111 is now Unreachable
  == Endpoint 111 is now Reachable
    -- Contact 111/sip:111@192.168.6.105:52209;transport=TCP;ob is now Reachable.  RTT: 3.072 msec
    -- Added contact 'sip:110@192.168.6.104:65285;transport=TCP;ob' to AOR '110' with expiration of 300 seconds
    -- Removed contact 'sip:110@192.168.6.105:52211;transport=TCP;ob' from AOR '110' due to remove existing
  == Contact 110/sip:110@192.168.6.105:52211;transport=TCP;ob has been deleted
  == Endpoint 110 is now Unreachable
  == Endpoint 110 is now Reachable
    -- Contact 110/sip:110@192.168.6.104:65285;transport=TCP;ob is now Reachable.  RTT: 1.467 msec
    -- Added contact 'sip:111@192.168.6.104:65290;transport=TCP;ob' to AOR '111' with expiration of 300 seconds
    -- Contact 111/sip:111@192.168.6.104:65290;transport=TCP;ob is now Reachable.  RTT: 1.229 msec
    -- Removed contact 'sip:111@192.168.6.105:52209;transport=TCP;ob' from AOR '111' due to remove existing
  == Contact 111/sip:111@192.168.6.105:52209;transport=TCP;ob has been deleted
    -- Executing [111@internal:1] Queue("PJSIP/112-00000003", "queue1") in new stack
    -- Started music on hold, class 'default', on channel 'PJSIP/112-00000003'
    -- Called PJSIP/110
    -- Called PJSIP/111
    -- PJSIP/111-00000005 connected line has changed. Saving it until answer for PJSIP/112-00000003
    -- PJSIP/110-00000004 connected line has changed. Saving it until answer for PJSIP/112-00000003
    -- PJSIP/110-00000004 is ringing
    -- PJSIP/111-00000005 is ringing
    -- Added contact 'sip:112@192.168.6.104:65296;transport=TCP;ob' to AOR '112' with expiration of 300 seconds
    -- Removed contact 'sip:112@192.168.6.105:52219;transport=TCP;ob' from AOR '112' due to remove existing
  == Contact 112/sip:112@192.168.6.105:52219;transport=TCP;ob has been deleted
  == Endpoint 112 is now Unreachable
  == Endpoint 112 is now Reachable
    -- Contact 112/sip:112@192.168.6.104:65296;transport=TCP;ob is now Reachable.  RTT: 1.450 msec
    -- Added contact 'sip:110@192.168.6.105:52211;transport=TCP;ob' to AOR '110' with expiration of 300 seconds
    -- Removed contact 'sip:110@192.168.6.104:65285;transport=TCP;ob' from AOR '110' due to remove existing
  == Contact 110/sip:110@192.168.6.104:65285;transport=TCP;ob has been deleted
  == Endpoint 110 is now Unreachable
  == Endpoint 110 is now Reachable
    -- Contact 110/sip:110@192.168.6.105:52211;transport=TCP;ob is now Reachable.  RTT: 4.258 msec
    -- Nobody picked up in 15000 ms
    -- Nobody picked up in 15000 ms
    -- Stopped music on hold on PJSIP/112-00000003
  == Spawn extension (internal, 111, 1) exited non-zero on 'PJSIP/112-00000003'
linuxhelp*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups

Step 9: Edit the agents.conf file by using following command.

root@linuxhelp:/etc/asterisk# vim agents.conf
[gerenal]
[agents]
agent => 1001,4321,110

Step 10: Edit the queues.conf file and make the entry of agent id by using following command.

root@linuxhelp:/etc/asterisk# vim queues.conf
[queue1]
strategy = ringall
timeout = 15
member => PJSIP/110
member => PJSIP/111
member => Agent/1001

Conclusion:

We have reached the end of this article. In this guide, we have walked you through the steps required to create Asterisk Queues and Agents on Debian 12. Your feedback is much welcome.

FAQ
Q
What are the career prospects for Asterisk agents?
A
Career opportunities for Asterisk agents include roles in telecommunications companies, call centers, IT departments of large organizations, and as consultants specializing in Asterisk implementations. With the increasing demand for efficient and flexible telephony solutions, skilled Asterisk agents are highly valued in the job market.
Q
How does Asterisk benefit businesses?
A
Asterisk offers cost-effective telephony solutions through its open-source nature, allowing businesses to build customized communication systems tailored to their needs. It enhances operational efficiency by providing features like call routing, voicemail, and integration with CRM systems, thereby improving customer service and organizational productivity.
Q
What are the skills required to become an Asterisk agent?
A
To excel as an Asterisk agent, one needs proficiency in telecommunications concepts, understanding of VoIP (Voice over IP) technologies, knowledge of Linux and scripting languages (e.g., Bash, Python), and strong problem-solving abilities. Customer service skills are also crucial for managing interactions effectively.
Q
What roles and responsibilities do Asterisk agents typically have?
A
Asterisk agents are responsible for tasks such as configuring IVR (Interactive Voice Response) systems, managing call queues, handling voicemail, troubleshooting technical issues related to telephony, and customizing Asterisk configurations to meet specific business needs.
Q
What is an Asterisk agent?
A
An Asterisk agent is a professional skilled in configuring and managing Asterisk, an open-source framework for building communication applications. They specialize in setting up and maintaining telephony systems, often within call centers, to handle inbound and outbound calls efficiently.