You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Somewhere in my PCAP files there are calls made to link the Comelit extender to a relay, and that relay to another relay etc. It's all very unclear how and why all these bytes are supposed to be set.
Questions to answer:
Do both CTPP and CSPB channels need to be open? → No.
What's the purpose of the CSPB channel, since I see almost no calls being made to that channel? → Nothing
How are these requests formed, is there a generic format?
In my apartment complex there are two camera's and two doors. How does the CTPP request know which of the doors I'm opening and which of the camera's I'm looking at?
Nice to have questions:
What are these abbreviations for?
Data
The "handshake":
This is data, with speculation about what these bytes could mean. All the requests have been stripped off the footer part, as it's the same for all CTPP requests, and I found it therefore not relevant to show.
The CTPP channel always starts with the same type of handshake request, in the three PCAP captures I have I see the following initial group of bytes being written to the intercom:
The empty spaces (__) are randomly (?) set and there's no consistency to it from what I can see. The 00 11 00 40 is fixed, and I have no idea what that means. However, they feel static because they are also present in the icona-bridge client.
The application will then proceed to read from the stream until it receives a message starting with 60:
The c0 request resets the 4 bytes completely, it ignores the previous one's and there's not a recognizable pattern to discover here.
The 00 28 00 01 remains consistent among all three requests
The 00 00 01 20 remains consistent among all three requests.
They all end on 49 49 which at the icona bridge client they don't.
The response that's read holds true to the previous random byte rule, and should probably be used for the next request that's made. I feel like breaking that pattern will probably get you kicked from the CTPP channel 😬
In some of the traces I noticed more c0-requests, sometimes because I let a trace run for longer periods of time.
The 00 28 00 01 and 00 00 01 20 still hold true in these requests.
I'm still super confused about the four random bytes that follow right after 00 00 01 20 and I still can't explain the double 49.
Another discovery 🎉
When mixing in the "open channel" requests/responses with the CTPP responses, something interesting happens. It all of a sudden explains a different byte sequence.
Right after the c0-request (Which might or might not open the door). Two channels are opened:
UDPM
RTPC
Some of the 0x40-requests to the CTPP channel take the channel-type of the RTPC channel. Like such (Blue = write, Yellow = read):
Notice that the channel bytes are passed as arguments
The text was updated successfully, but these errors were encountered:
grdw
changed the title
Demystify the CTPP / CBSP calls
Demystify the CTPP / CSPB calls
Jan 28, 2023
Somewhere in my PCAP files there are calls made to link the Comelit extender to a relay, and that relay to another relay etc. It's all very unclear how and why all these bytes are supposed to be set.
Questions to answer:
Nice to have questions:
Data
The "handshake":
This is data, with speculation about what these bytes could mean. All the requests have been stripped off the footer part, as it's the same for all CTPP requests, and I found it therefore not relevant to show.
The CTPP channel always starts with the same type of handshake request, in the three PCAP captures I have I see the following initial group of bytes being written to the intercom:
If you strip it to the consistent bits and inconsistent bits:
The empty spaces (
__
) are randomly (?) set and there's no consistency to it from what I can see. The00 11 00 40
is fixed, and I have no idea what that means. However, they feel static because they are also present in the icona-bridge client.The application will then proceed to read from the stream until it receives a message starting with
60
:If we replace all the actuators with
__
, we get:A couple of facts:
For the
60
-requests the following also holds true:00 11 00 40
turns into00 10 00 41
10 0e
is dropped from the response. The10 0e
is also present in the icona client.Acknowledgements:
After this process is over, follow two acks (stripping the actuator again with
__
):The acks are (what it looks like) based on the initial response from the handshake. They are essentially two writes where:
Probably this one opens the door
Next follows another c0 request (I stripped all the actuators from the bytes, and replaced them with
__
):Things to notice:
00 28 00 01
remains consistent among all three requests00 00 01 20
remains consistent among all three requests.In some of the traces I noticed more
c0
-requests, sometimes because I let a trace run for longer periods of time.The
00 28 00 01
and00 00 01 20
still hold true in these requests.I'm still super confused about the four random bytes that follow right after
00 00 01 20
and I still can't explain the double 49.Another discovery 🎉
When mixing in the "open channel" requests/responses with the CTPP responses, something interesting happens. It all of a sudden explains a different byte sequence.
Right after the
c0
-request (Which might or might not open the door). Two channels are opened:UDPM
RTPC
Some of the 0x40-requests to the CTPP channel take the channel-type of the RTPC channel. Like such (Blue = write, Yellow = read):
Notice that the channel bytes are passed as arguments
The text was updated successfully, but these errors were encountered: