COMET USB Caller ID Setup Issue

I totally understand you emre, it’s NOT EASY to develop a patch while not able to test or reproduce the defect.
You don’t have to trust me or either putty log, you should trust the Telco STANDARDS for CALLER ID.
I rewrite below for your convenience the 2 TYPES of packed DATA available WORLDWIDE and their structure . If you implement the SMDF you CANNOT mistake, is standard
From Wikipedia

There are two types of caller ID, number only and name+number. Number-only caller ID is called Single Data Message Format (SDMF), which provides the caller’s telephone number, the date and time of the call. Name+number caller ID is called Multiple Data Message Format (MDMF), which in addition to the information provided by SDMF format, can also provide the directory listed name for the particular number. Caller ID readers which are compatible with MDMF can also read the simpler SDMF format, but an SDMF caller ID reader will not recognize an MDMF data stream, and will act as if there is no caller ID information present, e.g. as if the line is not equipped for caller ID.

STANDARDS
Multiple data message format (MDMF)
The one you Handle PERFECTLY:

the multiple data message format (MDMF), is more complex and versatile than the SDMF.
It is capable of delivering more data concerning an incoming call, such
as the name of a calling party. Although both formats share some
features in common such as the message type and the message length
parameters, the structure of the MDMF is more flexible and more readily
accommodates the development of new provider services.
As with SDMF, the message type parameter is the first byte of an MDMF
formatted packet. Since MDMF is designed to provide a wider variety of
information than SDMF, six message type values are specified for it
instead of the three defined for SDMF. The message type value
identifying a Caller ID data block is 0x80, 128 decimal. The message
length parameter, the next byte in the frame, specifies the number of
bytes that follow in the data block. It is after the message length
parameter, that the structure of an MDMF packet differs from that of a
SDMF.
At this point, the message block is broken up into smaller messages
called parameter messages. Each parameter message is composed of
a parameter type value, a parameter length value, and an accompanying
data block that contains a specific type of information, such as the
number of an incoming call. Each piece of information that is transmitted
in an MDMF formatted packet, such as the time and date, calling
number, and the calling name, is packaged within its own parameter
message. This encapsulation of data enables a service provider to
selectively add to or omit information from Caller ID transmissions.
As its name suggests, the parameter type value is used to identify the
type of data contained in a parameter message. Currently, 17 parameter
type values are defined for MDMF. The values of most interest to Caller
ID capable equipment are 0x01, 0x02, and 0x07 which identify a time
and date, number, and name parameter message respectively. This
parameter is followed by the parameter length value which contains the
remaining number of bytes in a parameter message’s data block.

Single data message format (SDMF) The one your DLL NOT HANDLE

The message assembly layer forms an SDMF formatted packet by
prepending a 2-byte header to a Caller ID data packet. The first byte of
the header is the packet’s message type parameter value. This value
alerts a Caller ID device as to the type of information that is contained in
the accompanying data block. There are currently three values defined
for the message type parameter of SDMF formatted packets. A packet
with a message type value of 0x04 contains the number of a calling
party, a value of 0x06 indicates a message waiting indicator packet, and
a value of 0x0B has been reserved for future applications. The next byte
in the header is the message length parameter. This parameter, as its
name suggests, contains the number of bytes of Caller ID data that
remain in a block.The message assembly layer also specifies the arrangement of
information within the data portion of a frame. The data portion of an
SDMF frame consists of ASCII codes arranged in three fields
representing the date, time, and number of an incoming call.
The date field which is the first piece of information in the data
block, consists of 4 bytes. The first two bytes are ASCII codes for
the digits representing the month and the other two represent the
day. Any months or days that can be represented by a single digit,
are preceded by a zero.
• The next 4 bytes are ASCII codes for digits representing the time.
The first two bytes are the ASCII codes for the digits representing
the hour and the remaining two represent the minutes. The values
in the hour field are allowed to range from 0 to 23, while the
minutes can range from 0 to 59.
• The remaining 10 ASCII codes represent the digits of the
telephone phone number of the incoming call. If the incoming call
is a local call and lacks an area code, the area code portion of the
number field is filled by default with the ASCII codes for three
zeroes.

Thanks for your time.
Regards.

OK. I already wasted hours while trying to validate it. I’m rolling back and compile your code. Please stay tuned until I finish my work.

THANKS… you rock!

Just try to handle “our patch” in the ELSE statement (that today you ignore)
Many thanks.

1 Like

While this is all above my experiance level, this doesnt make sence to me,if Samba was not configured acording to the standards of caller ID how would the hundreds of other people using caller id device be doing so?

Because it might be faster for you than waiting ;), since it seems this is very urgent, and like you say …

Ok, I don’t pretend you to read all above again, but probably the 99% of SambaPos Users are located in USA or EU Where TELCO STANDARD Bell UK included USE MDMF Standard. And SambaPOS handle PERFECTLY!

Here in ASIA (Thailand specifically) The TELCO provider send CALLER ID as SMDF STANDARD and Samba DOES NOT HANDLE. Probably we are the first customers handling Caller ID in ASIA with SambaPos?
That’s why most of your user has CallerId module work perfectly. Does make sense now? :slight_smile:
Cheers

3 Likes

Here is the compiled dll.

Samba.Addon.CalleridDevices.dll.zip (12.9 KB)

5 Likes

WHAT A GOOD NEWS !
We tried your DLL and now the Caller ID ShowUp perfectly!!
After more than 4 months we figured out!
Maybe you can introduce these change in the next release of SambaPos. THANKS for your support, and finally we can have SambaPos works as expected!
Glad to try to help you find and optimize Samba Module!

Cheers!

4 Likes

Hi emre,

I’m seeing similar issue with CTI COMET Caller ID device. I’m not sure what is going on, I initially thought the issue was with faulty CTI COMET device so i ordered a another unit for testing but I’m seeing same issue/behaviour with new unit. I believe the issue started after updating to one of the BETA version 5.1.6x at that time I thought the issue was due to faulty unit so I do not raise the issue. Nothing new changed with my telephone line/ provider, I have always tested the Caller ID device on the same phone line and did not come across this issue before for the last 2/3 years. My testing environment has not changed. I have double checked the caller ID feature and its active on the Telephone line (BT). This issue has been going since January.

Below is screen captures of what is displayed by SAMBAPOS when call is received , corrupted phone number displayed, COMET CID error or no pop up message at all.

Corrupted number/text:

COMET CID error

Actual RealTerm: Serial Capture when phone is dialed

2017-02-22_20-55-24-RealTerm Serial Capture.zip (65.7 KB)

Output from Putty when call received

Tested with different Baud rate settings.

I have also tried updated BETA version.

Original Diagnostics check: 21 January 2017

Note: I have also tested with the compiled dll,. no luck.

would be interesting to see any other members in UK have come across this issue.

I am reading that and seeing that putty is not showing number as expected either? is that correct?
If putty isnt getting number as expected samba wont either…

correction, putty display the number when speed set to 1200

Below is the output from putty with below settings - Speed 9600

CTI comet correct speed settings: 1200 - number is displayed.

If putty isn’t getting good output samba has no chance.
If putty has issue its not samba related…

not sure what is going on its working on Sambapos now… I will need to do more testing with both units

I have tried with below settings before and it was playing up.

Did you checked how it works with 5.1.60?

I have uninstalled version 5.1.61 and then reinstalled 5.1.60 to test…getting following error message when trying to load.


[General Info]

Application: SambaPOS
Version: 5.1.60
Region: en
DB: SQ
Machine: NUC1
User: main
Date: 23/02/2017
Time: 23:42

User Explanation:

main said “”

[Exception Info 1]

Top-level Exception
Type: System.Reflection.ReflectionTypeLoadException
Message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Source: mscorlib
Stack Trace: at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at System.ComponentModel.Composition.Hosting.AssemblyCatalog.get_InnerCatalog()
at System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetEnumerator()
at System.Linq.Enumerable.d__16`2.MoveNext()
at Microsoft.Practices.Prism.MefExtensions.DefaultPrismServiceRegistrar.GetRequiredPrismPartsToRegister(AggregateCatalog aggregateCatalog)
at Microsoft.Practices.Prism.MefExtensions.DefaultPrismServiceRegistrar.RegisterRequiredPrismServicesIfMissing(AggregateCatalog aggregateCatalog)
at Microsoft.Practices.Prism.MefExtensions.MefBootstrapper.RegisterDefaultTypesIfMissing()
at Microsoft.Practices.Prism.MefExtensions.MefBootstrapper.Run(Boolean runWithDefaultConfiguration)
at Samba.Presentation.App.RunInReleaseMode()


[Assembly Info]

mscorlib, Version=4.0.0.0
Samba.Services, Version=1.0.0.0
Samba.Domain, Version=1.0.0.0
Samba.Infrastructure.Data, Version=1.0.0.0
System.ComponentModel.Composition, Version=4.0.0.0
System.Core, Version=4.0.0.0
PresentationCore, Version=4.0.0.0
DevExpress.Xpf.LayoutControl.v14.1, Version=14.1.13.0
System.Xml, Version=4.0.0.0
DevExpress.Xpf.Grid.v14.1, Version=14.1.13.0
System, Version=4.0.0.0
DevExpress.Xpf.Grid.v14.1.Core, Version=14.1.13.0
WindowsBase, Version=4.0.0.0
System.Xaml, Version=4.0.0.0
PresentationFramework, Version=4.0.0.0
Samba.Infrastructure, Version=1.0.0.0
Microsoft.Practices.Prism, Version=4.0.0.0
System.Runtime.Serialization, Version=4.0.0.0
Microsoft.Practices.Prism.MefExtensions, Version=4.0.0.0
DevExpress.Xpf.Core.v14.1, Version=14.1.13.0
Samba.Presentation.Services, Version=1.0.0.0
System.Windows.Forms, Version=4.0.0.0
System.Drawing, Version=4.0.0.0
Stateless, Version=1.0.0.0
Samba.Persistance, Version=1.0.0.0
PropertyTools, Version=2012.4.14.1
Samba.Localization, Version=1.0.0.0
ReachFramework, Version=4.0.0.0
EntityFramework, Version=6.0.0.0
FluentValidation, Version=3.4.0.0
Omu.ValueInjecter, Version=2.3.0.0
Microsoft.Practices.ServiceLocation, Version=1.0.0.0
Microsoft.CSharp, Version=4.0.0.0


[System Info]

Operating System
-Microsoft Windows 10 Pro
–CodeSet = 1252
–CSDVersion =
–CurrentTimeZone = 0
–FreePhysicalMemory = 6696828
–OSArchitecture = 64-bit
–OSLanguage = 2057
–ServicePackMajorVersion = 0
–ServicePackMinorVersion = 0
–Version = 10.0.14393

Machine
-NUC1


After uninstall delete all remaining files under installation folder and re-install.

Just wanna mention here that Whozz Calling Caller ID Devices work REALLY Well.

http://callerid.com/

After uninstall delete all remaining files under installation folder and re-install.

I have tried that and it did work… so as a test I carried out fresh installation of o/s and Sambapos on a different unit to isolate every thing and I was still seeing the same issue with caller ID.

Now getting the phone line checked with Phone Line provider (BT), they have acknowledged there was an issue on the line and currently investigating