I do something like this for a customer call center. For anyone interested, here is a trick.
You can use the IVR to verify the customer PIN numbers.
The call center verifies customer PIN using the ISSABEL IVR.
Each customer PIN number is just an IVR entry, and points to a queue if entered properly.
Insted of just using digits 0-9 you can use pretty much any digit length you want.
IVR - "Please enter your pin number"
0 = go to operator
558939 = customer #1 support
443223 = customer #2 support
993828 = customer #83 support
746236 = customer #154 support
After 3 failed tries it hangsup.
The callcenter administrators manually enters/removes PIN numbers using the issabel GUI.
But they also automate it.
I don't have their full Linux bash script, but I have the important command to add something to the database bys script.
Here is the example of the statement that will add someone to the IVR.
Issabel stores all PBX GUI related information in the MySQL database name "asterisk".
All IVR data is stored in the table "ivr_entries".
In the example below, this shows the IVR entries.
0= play phonebooook
12244 = Customer #12244 send call to queue#2001 (support gold queue)
MariaDB [asterisk]> select * from ivr_entries;
+--------+-----------+-------------------------------+---------+
| ivr_id | selection | dest | ivr_ret |
+--------+-----------+-------------------------------+---------+
| 3 | 0 | app-pbdirectory,pbdirectory,1 | 0 |
| 3 | 12244 | ext-queues,2001,1 | 0 |
+--------+-----------+-------------------------------+---------+
2 rows in set (0.00 sec)
If you wanted to automate adding customers, you could do it with a MYSQL command below.
This will add the customer pin 45657 into the IVR id#3 and send it to queue# 2001
Syntax
insert into TABLENAME
(Column 1 name
,Column 2 name
,Column 3 name
,Column 4 name
) values (IVRID,CustomerPIN,'DESTINATION',"RETURN-IVR");
So adding a customer number of "45657" would look like this:
insert into `ivr_entries` (`ivr_id`,`selection`,`dest`,`ivr_ret`) values (3,45657,'ext-queues,2001,1',0);
EXAMPLE;
MariaDB [asterisk]> insert into `ivr_entries` (`ivr_id`,`selection`,`dest`,`vr_ret`) values (3,45657,'ext-queues,2001,1',0);
Query OK, 1 row affected (0.00 sec)
MariaDB [asterisk]> select * from ivr_entries;
+--------+-----------+-------------------------------+---------+
| ivr_id | selection | dest | ivr_ret |
+--------+-----------+-------------------------------+---------+
| 3 | 45657 | ext-queues,2001,1 | 0 |
| 3 | 0 | app-pbdirectory,pbdirectory,1 | 0 |
| 3 | 12244 | ext-queues,2001,1 | 0 |
+--------+-----------+-------------------------------+---------+
3 rows in set (0.00 sec)
The above example shows entering that data in from a sql statement.
Customer 45657 is now entered into the IVR
This will also update in the PBX GUI if you look at it with your web browser.