Click here to Skip to main content
15,922,427 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I have to develop a data base for calling center, they have a software provided by the company. when ever they get a call the number of caller is shown in a minor screen inside that calling program.

I have to take that caller ID as input for my database in order to save and search the address and other information about user.
A friend told me about Auto IT that you can take this type of input but i want to create it in c #, i dont even know what to search for it. can someone direct me to right direction ? or share some example
Posted
Comments
Sarath kumar.N 25-Aug-15 2:04am    
How will u get the caller ID from that software ?
Dark Commet 25-Aug-15 2:10am    
this is the problem that how could i get that caller id from that software screen, I dont want user to input it manually but i want to automate that that process with simple click of a button.
Sarath kumar.N 25-Aug-15 2:26am    
That's not possible unless they willing to give. I think that software is third party application, so we can't expect the caller ID from that site. Without the Caller Id how can u save and search the info on DB?
Dark Commet 25-Aug-15 2:41am    
ya exactly, that is a third party application, so no way we can get the caller id from their software,
Sarath kumar.N 25-Aug-15 2:46am    
Then you have to enter the caller Id manually. Then other thinks are very easy.

1 solution

If I understood you problem correctly: let's imagine there is a worker somewhere in the office and he or she receives a call in some sort of 3rd part video/audio conversation program (and that program shows some call id you need to retrieve). Usually number can be written down by the worker to retrieve info from database, but that's where you wan't to automate this part. So if you can't alter that 3rd party program and that 3rd party program does not have any public api to get that caller id, there is only one solution to automate this process - scraping data. This can be done in most likely 3 ways:

1) Scraping using image pattern analysis and recognition. Basically you have to analyze the image of the program depending on what you know about it. Maybe the caller id is shown in the same place of the program, or at some defined place or you can see some 'rules' where and how it's displayed. Then use optical character recognition for parsing that number from image. For best result including performance I would suggest to write your own implementation depending on that program (collect images and analyze them). Or you can use vectorial optical recognition (something similar to fingerprint recognition), this is less accurate taking one particular case, but more abstract and could be used on different fonts, sizes, wights and etc.

2) Scraping using win api. If the 3rd program is written using default windows components, you can use spyxx.exe ( https://msdn.microsoft.com/en-us/library/aa242713(v=vs.60).aspx[^] ) to understand programs structure and then finding where in the windows children is that caller id. If program uses some graphical rendering to display that caller id, this approach won't help in any way. Otherwise if you can reach the label, textbox (or some other component) of that window and retrieve data from it, cool, it's the simple and the fastest way to scrape it. Retrieving that caller if (not including exception handling and SOLID programming) probably would take around 50 code lines.

3) Injecting into process and overtaking windows messages to catch when the caller id is shown/rendered or whatever and get it. This is the invasive and most likely would break some EULAs or contracts. In simple words it's hacking.

And in all these cases you should be aware that the structure of that 3rd part program might change in the future and your scraping method won't work anymore.

Martynas A.
 
Share this answer
 
Comments
Dark Commet 26-Aug-15 1:15am    
thanks dear, i really appreciate the help

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900