Here in the Netherlands Caller ID is a mess, every provider uses a different implementation which means you have to make sure your device supports your provider. Even bigger problem is that most providers use DTMF which isn’t supported by most devices. I went through a few modems which I bought of Amazon and eBay only to find that the modem doesn’t work with my provider.
Untill I found the Artech AD101. A cheap device which supports all implementations of CID, just one problem, it works as a USB HID device and not a virtual COM port and thus it isn’t supported by SambaPOS.
This device can be found on eBay.
I’ve tried contacting the devs so I can implement my own but haven’t been lucky there, thus I’ve decided to hack something together. By using a program called com0com (a null-modem emulator) I’ve created 2 virtual com ports on my computer which are linked together.
On one comport I’ve created a program which takes the CID from the Artech and translated this to a format which is useable by SambaPOS. On the other end of-course is SambaPOS.
So to begin first download and install com0com, it can be found here.
If you’re on an x64 system I recommend you use 22.214.171.124 until they get driver signing sorted, if you’re on an x86 system you’re fine either way.
Install com2com and setup a port pair, I’ve used COM9 and COM10 on my machine but this might vary on your system depending on what devices use what.
By default the program connects to COM9, if you’ve setup something else using com0com you can right-click on the icon in the systemtray and go into settings.
From here open SambaPOS and configure a generic modem using the second com port (in my case COM10). More information can be found here, skip the first two steps.
This is something I’ve hacked together to suite my own purposes, unfortunately I do not have the time to support this. I’ve included the sourcecode so if there’s something wrong you can attempt to fix it or improve it yourself. I’m sharing this to help others who are also waiting on official support for this device.
If you’ve encountered a bug post in this thread and I will try to fix it, however the program is so small I don’t think there’s much to break.
Feel free to take this and make it your own, if you decide to distribute it or use it for commercial purposes you are restricted to ask any money for it.
The code is shit, I know, I’ve hacked this together very quickly. If you want to improve it feel free todo so.