Virtual TAPI Device - delphi

I'm currently building an application that relies heavily on TAPI and allows users to make/receive calls. I was wondering if anyone had a virtual TAPI device or some way of simulating an incoming call, being on hold etc.
If it matters I have using the hbTAPI components for Delphi (Standard Edition).

Unfortunately developing against a simulator won't get you very far due to the nature of TAPI. I know no complete end-to-end simulators.
You can, with a little effort, setup your own simple simulation environment using Microsoft's H.323 Telephony Service provider and two or more computers on a network. There are also several TAPI SIP providers(Terasip,SIPTAPI) available which will let you test against production SIP servers.
I've not seen any TAPI compliant hardware simulators. There's too much variation among vendors to make a TAPI compliant hardware simulator that will give you realistic behavior.
Your best bet is to test against actual hardware and then provide a list of ones you will support to your clients. You can get pretty good results by purchasing some reliable voice modems with good support for Unimodem 5. You can then move up to TAPI compliant PBX equipment from there if that's the direction you're interested in heading.
Also you didn't indicate with version(s) of TAPI you're intending to target. TAPI 2.x requires language bindings to be accessed outside of C/C++ while TAPI 3.x uses COM interfaces but supports a more limited subset of the functionality provided by TAPI 2.x. It also has additional features not available in 2.x. Its not apparent from hbTAPI's documentation whether it supports 3.x or not.
Not all vendors support both APIs so this is a consideration as well.

This is a bit late, but there is a TAPI emulator now: https://www.tapimaster.eu/en/en_tools_tspemulator.html

Related

IOT with MEAN - Together

MEAN stack and IOT are the current trending hot topics. Can these two be used together? If yes then in what way?
How can these technologies be used together?
Sweta.
By saying MEAN.js you are including things that are not strictly in the IoT terrain. Angular for example has little to do with anything.
On the web front end you need to implement a javascript library like Paho.js that will use the MQTT protocol to connect to a broker and start aggregating messages from connected devices.
Express has little to do as well as you are not exposing a Restful interface but connecting low level through a broker. A good solution in Node.js is Mosca.
Mongo is good for dumping data from devices.
I have written a tutorial using Node.js and iOS so have a look and you might find it interesting.
Mean stack is the combination of the frontent web frameworks like angularjs,emberjs,knockoutjs,backbonejs , javascript's backend server called nodejs and using the mongodb at top. so using these frameworks and library will make a mean stack developer.
IoT pronounced as Internet of things. iot is recently used for connected electronics devices .basically it is a form of running your program inside the electronic chip and mostly trying to connect the devices.making control on devices using the programmed chip. there are separate IDE's are avaialble for developing and testing the programme on embeded chip.
you can use angularjs as a frontend(making your GUI) for your IoT'S application.
Yes, you can.
As a fact is has been done before. And in other frontend frameworks too. Here there is an example for home automation.
You can find even a yeoman generator for such projects here.
[Disclaimer: I work here] Netbeast started managing devices and creating a system of plugins on top
of a MEAN app and RESTful communications. (Now we use a MERN
stack, with react and MQTT over websockets to control networks and
update values in real time.)
To mention other places where you can find examples of current projects using MEAN to run IoT networks I encourage you to join angular, arduino and raspberry communities, as well as taking a tour over producthunt.com, hackster.io and other maker sites such as the previously mentioned Netbeast forum.
Yes you can make an IoT platform with the MEAN stack. Typically the sensors are low cost sensors and are constantly transmitting small amounts of data in MQTT or TCP protocols. With Node.js you can write, servers for such applications very easily.
Mongo is useful if you have unstructured data, which could happen if you work with multiple sensors. If you don't need unstructured data structures, SQL is sufficient.
All the data that you get from devices, finally needs to be consumed via applications. Express and Angular are great platforms to manage web applications.
You can read a little more about IoT platforms in MEAN at http://blog.yatis.io/scalable-iot-platform-mean-stack/

IDE vs Library vs SDK vs Framework vs Toolkit

Made a research before asking this but I couldn't really understand much of differences between what I'm asking above. In-depth information would be much appreciated. Thanks in advance.
API - a set of functions and structures (classes?) for performing a selected task (e.g. libcurl API for network requests)
A Framework is something you can build upon. Usually it is complete (or almost complete) to a point it can be started out of the box (but probably would`nt do anything useful) and provides APIs to override some functionality
a toolkit is a set of utilities/tools you can use for some task (e.g. Kali Linux is a network penetration toolkit)
SDK (Software Developer`s Kit) is a toolkit (usually official) that can be used to interact with/program some device/entity. It also may provide APIs and frameworks internally. (e.g. Android SDK allows to develop, build, test and deploy applications for, well, Android. it describes APIs accessible from different OS versions. )
A toolkit is a set of utilities/tools you can use for some task (e.g. Kali Linux is a network penetration toolkit)

Robotics Studio CCR/DSS and .NET Micro Framework Compatibility

I hope that I did my homework on this one, I'm basically asking for a second opinion.
My understanding is that the CCR and the DSS (and the rest of the MS RDS tools) cannot and will not run on a device that supports the .NET Micro Framework.
My goal is to, as much as possible, use the DSS to talk to devices but some of the devices that I would like to talk to (such as Camera modules) will be connected to a Panda II Micro Framework board. Therefore, unless I write a DSS-Compatible service on the Panda II board that publishes the camera, I will not be able to access the Camera's feed through most other means.
Frankly I find that the .NET MF does 50% of the solution great and MS RDS does the other 50% great - I just wish that I could have the DSS running on the .NET MF.
Am I mostly correct in my research? Have I missed something?
My project involves creating a home automation system and I find the MS RDS compatible devices either difficult to find (especially for some purposes) or very expensive. While .NET Micro Framework compatible devices will give me a humidity sensor for around $20 and other great capabilities for just as low a price. And I don't have the know-how to create a hardware solution, I just have ideas and I'd like to make a prototype.
You are correct.
The type safety built into the heart of CCR relies on generics which are, of course, not supported on .Net MF
It would be possible to write an interop layer for DSS, but if all you want is one camera that's a lot of work or not much benefit. An alternative approach would be to write a DSS service that implements the webcam contract and communicates to the camera on the panda board using a protocol that makes sense to you, either a custom protocol of your own devising, or just write a simple web server and use it as an ip camera (there is already an ip camera service)

Is DataSnap an appropriate solution to bring the data and business logic of an existing Windows app to mobile/web clients?

I need to take a huge Delphi XE application (backed by proprietary SQL server NexusDB) and begin providing my clients the ability to access the system in new ways:
Thinner Windows client for slow/VPN connections
Mobile/Tablet
Web
DataSnap appropriate for this or is introducing a middle tier the wrong way about providing remote/mobile access? Other solutions/ideas welcome.
(I have XE2 Enterprise but am stuck on XE Enterprise for awhile.)
DataSnap is being aggressively positioned by Embarcadero as a Multi-platform connectivity solution, where servers are written in Delphi, and mobile connectors are available (in XE2 and later) for a variety of mobile device platforms. So the quick answer is yes, it is suitable in general.
Is it suitable for you? You haven't said much that would help me answer that question; You are willing to buy Enterprise or Architect SKUs of Delphi, so I would guess yes.
If it was me, I'd look for a solution that implements a pure simple REST architecture that is available to every system out there, mobile or otherwise, no matter what language or platform, but I haven't got a suggested alternative because it seems to me that SOAP is nearly dead and that there is no universal replacement technology out there that does everything that soap client/server systems do. I'd be tempted to consider "roll your own REST+json" or evaluate Remobject's product offerings too, and select a path that makes sense for you, from a business and technical point of view.
Datasnap is fine, but it's not the only option. It's probably the simplest and most easy to roll out option currently available, and the only one "out of box" ready to go in XE2 if you want apple, android, and a few others, right away.
That depends on your security needs, and the way you're providing data to clients. As I often pointed out, dbExpress-Datasnap has big security flaws (while the DCOM version is not well suited outside a LAN, and does not offer out of the box mobile devices support).
A web application would have less issues because the datasnap-web server connection would be probaby internal, it would be up to the web application to ensure data protection.

Examples of production Erlang deployments

I am currently learning Erlang
Can SO users give interesting examples of any of their Erlang application deployments?
I want to gain some insight into common Erlang uses past telecomms, and any problems or unexpected benefits Erlang brought during development/deployment.
I hope this will give some broader context and whet the whistle for myself and anyone else jumping into Erlang!
Thanks in advance!
Who uses Erlang for product development:
Bluetail/Alteon/Nortel (distributed,
fault tolerant email system, SSL
accelerator)
Cellpoint (Location-based Mobile
Services)
Corelatus (SS7 monitoring).
dqdp.net (in Latvian) (Web Services).
Facebook (Facebook chat backend)
Finnish Meteorological Institute
(Data acquisition and real-time
monitoring)
IDT corp. (Real-time least-cost
routing expert systems)
Klarna (Electronic payment systems)
Mobilearts (GSM and UMTS services)
Netkit Solutions (Network Equipment
Monitoring and Operations Support
Systems)
Process-one (Jabber Messaging)
Schlund + Partner (Messaging and
Interactive Voice Response services)
Quviq (Software Test Tool)
RabbitMQ (AMQP Enterprise Messaging)
T-Mobile (previously one2one)
(advanced call control services)
Telia (a telecomms operator)
Vail Systems (Interactive Voice
Response systems)
Wavenet (SS7 and IVR applications)
Our first application was a web/sms social network and I wrote a long paper on the subject which can be read here.
We've built a web app based on an Erlang backend.
Erlang is in charge of the business logic, the security and data store.
The browser communicates exclusively through JSON services with it and do the rendering.
It will be in beta soon, and to give you an idea of the app there is a video here
There are as well some resources here and here about what we learned along the way.
Get to know the the release tools erlang/OTP already provides.
Erlang bootscripts are wonderful for ensuring that all the running applications needed are present and of the correct version. Working within the OTP framework for releases will be much easier than trying to invent your own. Erlang has lots of tools for making sure deployments can be done both live and without breaking running services. The language and runtime are designed for this so they've done a lot of the heavy lifting for you. I've found the tools useful even for small "non-enterprise" apps and deployments.
Of course there's always applications like wings3D which is for 3D modelling. It's not exactly a "deployment", because these sorts of programs are used anywhere from individuals to teams of artists in their pipeline. There are other projects for things like simulation, but I'm not sure how many companies are publicly stating that they use Erlang. As for me, I'm planning to adopt it for my company for industrial automation.

Resources