Added basic one-way Cross-Cluster-Communication feature

Added ccc_lead_info API function
If phone entry fullname and cidnumber are empty, don't populate a callerid conf line in ADMIN_keepalive_ALL.pl script

git-svn-id: svn://192.168.202.10@2776 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2017-06-09 20:13:55 +00:00
parent 260949e98b
commit 796544f446
8 changed files with 827 additions and 25 deletions
@@ -1,7 +1,59 @@
CROSS-CLUSTER COMMUNICATION Started: 2011-05-27 Updated: 2017-01-01
CROSS-CLUSTER COMMUNICATION Started: 2011-05-27 Updated: 2017-06-09
!!!!! THIS FEATURE DOES NOT EXIST, THIS IS FOR PLANNING PURPOSES ONLY !!!!!
--------------------------------
SIMPLER IMPLEMENTED OPTION: implemented in SVN/trunk revision 2776
--------------------------------
Below is a description of a simple cross-cluster option, which is to send lead data in one direction from one cluster to another as a phone call is sent over.
- A call to be sent from one cluster to another should leave its callerIDname as the Caller Code, the 20-character code that includes the lead_id
- This call will go through an IAX trunk between the two systems into an internal DID on the destination cluster
Set up an IAX "carrier" on the originating cluster and an IAX "phone" on the destination cluster to link the two together.
(Note: the phone entry on the destination cluster must have the Outbound CallerID and Fullname fields blank)
The destination phone entry needs to use "trunkinbound" as it's phone and exten context
- At the DID, the call will get sent to a Call Menu where the call will go through an AGI script
Set the prompt to "wait-moment|cm_sc_ccc_lookup_insert.agi,ccc_test---8199"
# Flag Options: (separated by triple-pipe: "---")
# 1- container_id for settings container with URL to send
# 2- local list_id to insert lead into(if not populated, will use external system's list_id for the lead)
- The AGI script will use parameters defined in a Settings Container for the URL of the originating system's Non-Agent API and credentials
The originating server will need to set up a user of level 8 with view reports and Agent API abilities, and the ccc_lead_info API function enabled
You will need to add a Settings Container to hold the URL for the originating system to look up the lead data, something like this:
http://server/vicidial/non_agent_api.php?user=6666&pass=1234&source=test&function=ccc_lead_info&call_id=--A--call_id--B--
- That AGI script will look up the lead on the originating system using the Non-Agent API and credentials set in a Settings Container
- The originating system will validate that the caller_code was a valid recent call before sending any data(within last 10 hours)
- If there is a match, then the AGI script will gather the default lead information, insert the information into the new system and change the callerIDname with the destination system's lead_id included
- The call will then go to option "A" and should probably be routed to an In-Group with the handle method set to "CLOSER" so it can go to an agent
NOTES:
# If lead is not found on external system, call will go to the 'B' option in the call menu
# If container is not found, call will go to the 'C' option in the call menu
# If call_id is not defined, call will go to the 'D' option in the call menu
BELOW THIS LINE ARE THE OLD PLANNING NOTES FOR A MUCH MORE COMPLEX CROSS-CLUSTER SETUP DESIGN
---------------------------------------------------------------------------------------------------------------------------------------------
!!!!! THIS FEATURE DOES NOT EXIST AS DESCRIBED BELOW, THIS IS FOR PLANNING PURPOSES ONLY !!!!!
This is a planning document for how different vicidial clusters can communicate
@@ -103,13 +155,3 @@ cluster_server_status:
--------------------------------
SIMPLER ALTERNATIVE OPTION:
--------------------------------
Below is a description of a more simple option, which is to send lead data from one cluster to another as the lead is sent over.
- A call to be sent from one cluster to another should leave its callerIDname as the Caller Code, the 20-character code that includes the lead_id
- This call will go into an internal DID on the other cluster through an IAX trunk between the two
- At the DID, the call will get sent to a Call Menu where the call will go through an AGI script
- That AGI script will look up the lead_id on the originating system using the Non-Agent API and credentials set in a Settings Container
- If there is a match, then the AGI script will gather the default lead information, insert the information into the new system and change the callerIDname with the new system's lead_id included
- The call will then go to an In-Group with that lead_id set so it can then go on to an agent