What is the difference between SIP and H.323, I mean what are the salient features between them?
To start with ,
SIP is text based while H.323 is binary.
SIP is by IETF while H.323 by ITU.
SIP is basically request-response based like HTTP, while H.323 is not like that(is based on session).
What were the motivating factors which led to SIP's development?
How is one advantageous from other?
Both are relatively the same on the technical side - there are differences, but you can use both to run a VoIP service.
They both started at about the same time to develop, with H.323 gaining more traction in the beginning and SIP taking center stage in the past several years.
The main advantages of H.323 is the level of interoperability it provides in existing video conferencing equipment - something that can't be matched by SIP today (yet), and the fact that it holds most of the deployments of video conferencing in enterprises.
The main advantages of SIP is a larger ecosystem and dominance in voice calls and PBX systems. And the fact that it is viewed as the future of VoIP (at least to some extent).
I also wrote about it in the past in my company's blog: http://blog.radvision.com/voipsurvivor/2011/03/24/ask-an-expert-which-protocol-do-you-prefer-sip-or-h323/
H323 is familiar to telecommunications people. It reuses many concepts, terms and protocols from ISDN.
SIP is familiar to internet people. It's a lot like HTTP, re-uses all the response codes and standards like URI-s, uses the DNS well, etc.
Related
I have a couple of questions concerning BLE beacons:
1) Are beacons based on nRF51822 chip the best solution? Or are there any other chips better than nRF51822? I want to take up BLE beacon development and struggling to find the right hardware for these needs. As a novice developer I want the beacon to be as cheap as possible in order not to waste money in case of a failure.
2) Is it possible to buy pure Eddystone beacon (not iBeacon)? The reason for choosing Eddystone is that Eddystone is capable of broadcasting URLs that are essential for me.
The second question stems from my failed attempts to find a pure Eddystone beacon on Chinese electronics sites like alibaba.com or aliexpress.com where the only firmware available is iBeacon. But iBeacon is not an option because it can't broadcast URL the way Eddystone does.
Apart from the above questions It would be great if someone wrote a quick guide for taking up BLE development with Eddystone and covered basic topics like: chip to use, beacon model, best website to buy beacons at, etc.
Thanks in advance,
Pavel
1) I've worked with Estimote beacons and Chinese beacons from Amazon and in my opinion, they do not differ in terms of accuracy too much. Especially for prototyping, I'd buy cheaper ones to test if your use case can be satisfied with BLE beacons. If it is too inaccurate with Chinese beacons, chances are that it won't work with more expensive ones either.
2) Why do you need the URL broadcast? If the app is going to use the url, it would have to be connected to the internet. Therefore, you can just query the beacon's IDs to a web service to get back an URL and use that. Personally, I think this is a better approach as you can configure the web service from anywhere to change the url for beacons where as if you want to change the URL of the Eddystone, you have to go to the beacon to configure it.
The nRF51822 is a common implementation, is flexible, well understood and can be very inexpensive. Be aware though that development costs, add on circuitry for power and/or peripherals, and packaging can easily eclipse the Bluetooth chip when you get to production cost savings.
If you want to buy an off the shelf beacon, most models supporting Eddystone also support iBeacon, simply because supporting both adds no additional hardware cost. Newer Radius Networks and Estimote beacons all support both. And, yes, cheaper generic Chinese suppliers often have bulk manufactured inventory from before Eddystone existed at only support iBeacon.
I am wondering what the benefit of a WebRTC based P2P system would be?
Is the performance improved?
Is the security stronger?
... as opposed to a traditional vanilla P2P solution in, fx, Java.
The benefit of WebRTC/RTCWeb (first is the implementation and w3c API, second is the ietf standard) is in its name: Web. It does not have anything special, it's just an standard inspired by SIP whose implementation is shared by all the main browsers. The benefit is that you don't have to code a client for it because it's already embedded in the browser next to GetUserMedia which enables you to easily capture video and audio streams from the devices.
Performance is determined mostly by the codecs and they use open source codecs you could use in your own implementation. It is also secure, but you can make any p2p connection secure through encryption.
It is just an standard meant to make web developers' lifes easier when dealing with p2p real time voice, video and data streaming.
I need a SIP server, hopefully simpler, more efficient and more secure than Asterisk or other full-featured PBX, to just terminate SIP calls and play audio, based on the incoming number. This would be in a linux environment.
I'm concerned about long-term support, and much-reduced attack surface. I'm a programmer but a no0b in the SIP world. I want to avoid the tons of security hassles of a full-featured PBX, let alone the crazy big bills after a hacker gets into it. Thanks in advance!
Personally I would build one with pjsip. Assuming you do not need built in registration server all calls would be handled by so called local account. You can use command-line pjsua with auto-answer and auto-play options for initial tests and then add some logic for audio wave selection and perhaps audio player allocation/deallocation (audio players could be active all the time and shared by multiple calls for efficiency if they e.g. contain something like background music).
For security disable not needed parts (TCP, TLS transports, not needed codecs?) and use port other than 5060. In my application I'm also using kind of application-level firewall that blocks requests from hosts that generate suspicious traffic (registrations, malformed SIP requests).
Hi I need some information on how to implement Voip (RTP) audio conference. I need an algorithm description. Can someone point me to relevant resource on web.
FreeSWITCH is a open source, which has a support for Audio conferencing upto 10,000 simultaneous calls (may be more). You may not find any conferencing algorithm lying open. Search for white papers on audio mixing.
The RFCs are the obvious starting points.
https://www.rfc-editor.org/rfc/rfc3550
https://www.rfc-editor.org/rfc/rfc3551
I'm not sure what algorithms you are asking for, but the RFCs contains algorithms for RTCP and other things.
I'm doing a grad-school software engineering project and I'm looking for the protocol that governs communications between ATMs and bank networks.
I've been googling for quite a while now, and though I'm finding all sorts of interesting information about ATMs, I'm surprised to find that there seems to be no industry standard for high-level communications.
I'm not talking about 3DES or low-level transmission protocols, but something along the lines of an Interface Control Document; something that governs the sequence of events for various transactions: verify credentials, withdrawal, check balance, etc.
Any ideas? Does anything like this even exist?
I can't believe that after all this time the banks and ATM manufacturers are still just making this up as they go.
A shorter question: if I wanted to go into the ATM software manufacturing business, where would I start looking for standards?
Well, there are lots of interbank networks. I would guess that each of them communicate differently. The stickers on the ATM (Cirrus, STAR, Pulse, etc...) identify which network the machine participates in. I do believe, though, that the "structure" of the message is dictated by an ISO standard. Cirrus is a Mastercard owned network and PLUS is a Visa owned network... I'd scour their sites to see if they publish any API details.
Edit, by request:
Have a look at the following ISOs 15022, 20022, 9362 and 4217 -- http://en.wikipedia.org/wiki/Category:Financial_routing_standards
ISO 8583 is dominant.
Also, take a look at EMV.
The ATM to bank link can be proprietary or standard. It is only upstream where inter-organisation wire level interoperability is needed, that standards become always necessary.
ISO 15022 definitely doesn't cover ATM to bank. So far, it covers further upstream. And is now superseded by ISO 20022 - "originally named ISO 15022 2nd edition".
ISO 20022 covers the total scope of financial services, and acts as a super forum for ISO financial services protocols.
There are two basic protocols, ISO8563 and IFX (a financial XML subset) but many banks us protocols supplied by the vendor, because these include Device driver protocols that drive the ATM 'States', There is also a reporting protocol where the ATM reports its cash and usage statii.