Agentnumber - this is an optional argument. If you set the agent number here, during the login process you won’t be asked to enter agent number, just the password for this agent. The agent number has to be created in the agents.conf file. options - There is only one possible option. If you set the letter s, the system won’t play an announce file that the login is successful. If you leave this space blank, the Asterisk, will play the announce file after the entering of a the agent’s password and extension. exten - The option allows you to set the extension, to which the agent has to be connected. If you skip this option, during the login process you will be asked to enter a new extension. Usually this is an extension, which contains the Dial application. This application will connect the agent with an registered user. @context - this is the context in extensions.conf, where the extension takes place.
Purpose and usage
The purpose of this application is to allow you to log in an agent into a queue. The application allows you to skip the entering of the agent number, during the login process, by setting it as argument of the application. You can also choose the extension to which the agent to be connected and the context, where this extension is situated.
The most important feature and the main difference between this application and the AgentLogin application is that with the AgentLogin you have to keep the phone receiver open. Otherwise, if you hang up the phone, the agent will be logged off from the queue. With the AgentCallbackLogin application, you are allowed to hang up the phone when the login process is finished and the user won’t be removed from the queue.
To see how the application works we recommend to use our IAX softphone Idefisk. You can download it from here. Please also read our tutorial to learn how to configure it to work with Asterisk PBX.
Asterisk PBX configurations
NOTE: This is only an example of one of the uses of this application. Of course you can use it and for other things.
iax.conf and sip.conf Configurations
We need one registered user in the iax.conf file and also another one in the sip.conf file. This is because we are going to use the IAX2 and the SIP channels. If you want to use other protocol such as MGCP, you have to do the configurations below respectively in mgcp.conf.
1) iax.conf
2)sip.conf
So, we have registered the user user1 in the iax.conf file and the user operator in the sip.conf file.
Type=friend means that this user can make and receive calls. Host=dynamic means that the IP is not static but dynamic through a DHCP server. Allow=all means that the line which this user will use, could support all audio codecs. Context=test - this shows that this user is working with the extensions in this context of the configuration file extensions.conf.
In the sip.conf file you can see the following option: disallow=all. This means that the line will not support any codecs. However, below this option we have allow=ulaw, allow=alaw and allow=gsm. This means that the line will support these three codecs - ulaw, alaw and gsm. It is important to write the options exactly in this order. First you write the disallow=all option and then the allow options. Otherwise, if you write the disallow option after the allow options, no codecs will be supported by the line.
queues.conf Configurations
In this file you have to say which users or agents will participate in your queue. In other words, which users or agents will be responsible for the answer of an incoming call. More about the features of this configuration file, you can learn in our tutorial about the queues.conf file.
There are two possible ways to configure the settings in this file.
The first one, is the so called "static" way. For this configuration you do not need the agents.conf file.
You will say directly, which users to answer the incoming call. In our example, we have created a context with the name [test]. In this context we have written the following: member => SIP/operator. This means that this user(operator) will be responsible for the answering of the incoming calls in the queue test. In the same way you can add even more than one user, which you would like to answer in this queue. However in our case we will have only one user. The advantage of this method, is that you do not have to use the AgentLogin or the AgentCallbackLogin applications in order to log the user in the queue. It will be logged in automatically, when it turns on its phone. The disadvantage is that this user can use, only the phone, on which it is registered. That is why the method is called "static". You can see a screenshot below
The other way is the so called "dynamic" way. For this configuration you will need the agents.conf file.
In the section agents.conf Configurations we will show you the configurations in it and here we will explain you the configurations in queue.conf file.
Unlike the static method, here we have to write not the name of the user, but the number of the agent, as written in the agents.conf file. In our example we have written the following: member => Agent/8888. This means that we want the agent with number 8888, to answer the incoming calls in the queue test. If you decide to use this method you have to add in your dial plan either the AgentLogin or the AgentCallbackLogin application. This is necessary, because unlike the "static" method, here is not enough just to turn on your phone. The user has to log in itself in the queue, manually. The advantage of this method is that the user could log in from any place and phone, which is connected with the Asterisk PBX.You can see a screenshot below.
agents.conf Configurations
As we have mentioned above, we have to use this configuration file, if we decide to use the "dynamic" method. In this file, we have to create one or more agents. We will use them to answer the incoming calls in our queue.
The way of creating an agent is the following: agent => agentnumber,agentpassword,agentname. In our case we have written the following: agent => 8888,8888,operator. This means that we have registered an agent with number 8888, password 8888 and username operator. The agent is set in the [agents] context. The agent number will be used in the queues.conf file. Please, take a look at section queues.conf Configurations above, to learn how to do this.
We have one extension with the number 112. It contains the Queue application. Due to it the incoming call will be attached to the queue [test], created in the queues.conf file.
However, in order to be answered the incoming call, we need an logged in agent. For the purpose we will use the AgentCallbackLogin application.
We have to create a new extension with this application. In our case this will be the extension with number 110. As arguments in its brackets we have written the following: 8888,,@test. 8888 is the agent’s number as it is written in agents.conf file. If you skip this argument, during the login process the system will ask you to enter an agent number. Because we have set the number, as an argument of the application, the system won’t ask us for it. The Asterisk will ask us directly to enter the password for this agent(8888). Then we have a blank space, because we did not want any options. Also we have skipped the argument for extension. So after entering the password, we will be asked to enter a new extension. In our case we will enter the number 111. If you take a look at the screen shot, you will see that this extension contains the Dial application. This is necessary in order to connect the agent with an existing and registered user. In our case this is the user operator which is reachable through the SIP channel. In other words the user operator will become responsible for the answering of the incoming calls into the queue. @test is the context in extensions.conf file, where the extension with the Dial application is situated.
So in conclusion - AgentCallbackLogin is an application through which we could log in our agents into the queue. In our case when somebody dials the extension with this application, it will be considered as agent 8888, it will be asked for password and then for a new extension. The caller has to enter the extension 111 in order to connect the agent number with the user operator. Then the caller can hang up the phone. Now the agent is in the queue. The queue in our case is [test].
When there is an incoming call in the queue [test], the phone of the user operator will ring.
To log off an agent from the queue, you have to dial again the number with the AgentCAllbackLogin application. In our case 110. Then when the system ask you to enter a new extension - just press the pound key(#). This will cause the logging off of the agent.
NOTE: The difference between the AgentLogin application and the AgentCallbackLogin application is that with the first one you have to keep the phone receiver open. If you hang up the phone, the agent will be logged off from the queue. With the second application, you are allowed to hang up the phone after the login process is finished.
2. Screenshots of what you can see on the CLI of the Asterisk PBX
1) Agent login
2) Call queue
3) Agent log off
3. Additional information
For more information about extensions.conf you can check here.
For more information about iax.conf you can check here.
This application is tested with our IAX softphone Idefisk. You can download it from here. For more information about this softphone please read our tutorial.
If you would like to test this application with the SIP channel you can read our tutorials about the SIP Softphones to learn how to configure them to work with Asterisk PBX
fahad (sfali at itimsystems dot com) 28 November 2007 06:32:59 hello thxx for greate help i want to knw one more thing that as if i provide all the parameter agent number extention the agentcallbacklogin will just ask for pwd if i want that pwd also provided as a defult parameter.. how this can be achive