Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
4.4 Beta Discussion Thread
Version 4.4 has been released, so this thread is closed, and just left around for archival purposes.
Dean Roddey
Explorans limites defectum
I started the earliest experiments today of roughing in some SIP client agent support. Since it does share the underlying parser core with HTTP, I won't do anything for a now that would require changing the common parser core. If I hit any non-trivial changes required there, I'll leave it for a bit until we are solidly into the beta phase, so as not to potentially destablize anything until we get a 4.3 followup release or so out. But probably nothing significant will be required. The SIP code itself is not in use so it can't hurt anything. I'll be working for a while with just some small test programs to get the functionality worked out.
Dean Roddey
Explorans limites defectum
Well, one immediately obvious thing that SIP brings up is that the parser has to work in terms of both TCP and UDP because SIP often uses UDP. So I had to abstract the data source for the parser, which is easy enough. There's a wee bit of risk but not much.

With a stream socket it will just read more data until hits the end (if no content-len) or hits the indicated bytes. For a datagram, it does a single read to get a datagram within the timeout period. If so, that becomes the only available data to feed the parser.

Unfortunately you can't do both of them wyere you just read all the data first and feed a memory buffer to the parser, because in the stream scenario if no content-len is present (or it's zero) you have to just read till the other side closes the socket.
Dean Roddey
Explorans limites defectum
Now you have made a start with gestures, could you have a look at putting scroll bars/swipe on the Overlay container - user selectable to show/hide the on screen scroll bars. It should be able to load a template that is larger than the overlay size with the origins aligned and then allow the user to move left/right or up/down.

This would be a great help in creating interfaces that work in a similar fashion to Win8 apps.

To take that one step further, you really need to also address this in the editor. You need similar ability to design interfaces wider or taller than the display of the computer being utilized for editing. ie: the ability to design a 1600x900 GUI on a 1280x720 capable computer/display.

In real laymen's terms: the ability to scroll the interface around that is being designed in the editor.
Dave Bruner
You already can scroll the interface around in the editor.
Dean Roddey
Explorans limites defectum
I went back to SIP for today. I'm slowly starting to see more light. It's definitely not a simple system, despite the fact that it does the least amount by far in the overall call operation, and it's presented as a simple protocol. I guess it probably is simple compared to the other protocols that it is replacing. But it's pretty complex.

Still, I'm starting to see it. A SIP agent has to manage multiple simultaneous calls, each call has to handle multiple dialogs, each dialog is composed of transactions which involve the exchange of msgs. There's a fairly complicated scheme of multi-layered ids that allow the msgs flowing back and forth to be matched up to their respective transactions, dialogs, and calls. Each call, dialog and transaction is driven by a state machine that keeps up with how it should react to msgs, and how to deal with timeouts and retransmissions and such (though the later are only done on UDP, and that's another complication, since it can use different transports and they impose different rules.) And various bits of info having to be copied from requests back into replies and vice versa, depending on the current state of the conversation.

So everything is going to end up quite asynchronous with separate threads sending out msgs that are queued up, and handing off incoming calls to their respective transaction, dialog, and call to drive their state machines.

And all that is just to allow the two ends of the conversation to agree to talk to each other. It has nothing to do with actually transferring the data.
Dean Roddey
Explorans limites defectum
Finally it really hit me that, to support SIP, other than in some highly specialized trivial client side only application, what you are really doing is creating a protocol stack. I'd read this so many times but it hadn't really stuck that it is really very much like a TCP/IP stack, though less complex.

So it's going to need multiple layers, each with separate threads to drive things at that level. At the bottom, there will need to be pluggable transport layers (for TCP, UDP, etc...) TCP will need the usual listener socket/thread and thread farm to enqueue incoming connections and send outgoing queued msgs, and the UDP one will need a thread of its own to send (and resend failed) queued msgs, and enqueue incoming msgs.

Above that will have to be a transaction type layer that will grab incoming msgs, find their related transactions, update them, and push them back up to the layer above, and to grab transactions queued by the layer above and create the appropriate msgs, and push them down to the correct transport handler.

Above that will have to be a sort of 'dialog' layer with its own thread to manage the state of dialogs by queuing up new transactions based on state and grabbing replies from completed transactions, matching them to the appopriate dialog, and updating the state of those dialogs and then pushing them back up to the layer above again to process.

Above that would be a 'call session' type layer where the outside world can queue up new call sessions, and it would watch the state of the session's associated dialogs to decide what to do, and would make the state of the sessions available to the client code, along with returned info where appropriate.

Of course that's a lot easier to type than do. A tricky part is how to handle that top layer and how it interfaces to the outside world. Do they have to register an object and get called back with status? Probably that's the most reasonable scheme I guess, since they sometimes have to pass judgement on what to do next, and whether returned information is useful to them and so forth.
Dean Roddey
Explorans limites defectum
Glad you are making progress on the SIP functionality. I think the potential integration with SIP phones is going to be great.

Along those lines, I was able to play with the Grandstream GXP2200 Android phone first hand today. It is a really nice phone with all the features one is usually looking for in a SIP phone. Plus, it runs the Android OS, so you could put the Android RIVA client on the phone and build templates to control the system via the touchscreen. The potential is really high with these phones. I want to place several around our house.

Now if Dean's hard work pays off and we can get CQC to talk with the phone via SIP, it will be even better because I can have CQC make announcements via the intercom feature on the phone. This will be much easier and cleaner than having to install speakers for the purpose of CQC announcements.

[Image: gxp2200-7.png]
Brian - a long time user that rarely messes with the system now
Other systems used:
SageTV w/ cablecard tuner & multiple extenders for viewing
BlueIris and IP cameras for CCTV
Incredible PBX for home phone
+1 what Brian said!

Possibly Related Threads…
Thread Author Replies Views Last Post
  6.x Beta Release Discussions Thread gReatAutomation 29 5,167 10-05-2022, 05:54 PM
Last Post: Shaky
  Official 5.5 Beta Release Thread Dean Roddey 46 16,777 09-23-2021, 03:32 PM
Last Post: jokermac
  Official 6.x Beta Release Thread Dean Roddey 2 1,361 04-16-2021, 05:55 AM
Last Post: Dean Roddey
  5.5 Beta Discussions Thread Dean Roddey 291 82,124 04-05-2021, 04:10 PM
Last Post: Dean Roddey
  6.X Discussions Thread gReatAutomation 1 1,147 04-01-2021, 03:23 PM
Last Post: Dean Roddey
  Official 5.4 Beta Discussion Thread Dean Roddey 441 179,500 06-15-2019, 02:33 AM
Last Post: Bugman
  Official 5.4 Beta Release Thread Dean Roddey 55 33,204 06-07-2019, 07:02 PM
Last Post: Dean Roddey
  Official 5.3 Beta Discussion Thread Dean Roddey 815 393,459 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.3 Release Thread Dean Roddey 27 20,757 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.2 Beta Discussion Thread Dean Roddey 244 157,775 10-14-2017, 07:57 PM
Last Post: Dean Roddey

Forum Jump:

Users browsing this thread: 1 Guest(s)