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.