Initiating call and receiving call in web browser using freeswitch - sip

I have a requirement, i have a web site in which i want to implement outgoing call and incoming call functionality. I am using freeswitch on windows as sip server, currently i am able to initiate call on local extensions using verto, how can i initiate outbound calls to mobile phone directly from browser and also able to receive the calls using browser.

Freeswitch has webrtc support, which means you can use SIP-webRTC client to register from browser and do IN/OUT calls.
SIP-webRTC client
Open source libs like JsSIP, sipJS, sipml5
SIP-Flash client
red5, flash phoner.
Paid libs which support both is Plivo,Twilio websdk.

Related

What protocol is used when user is interacting with node-red dashboard

I am using MQTT and node red in a wireless plug project.
Question:
what is the protocol used when the user interface with the GUI (dashboard)?? when the user clicks on a switch or view the data published by mqtt on the webApp how this is internally handled ? through Web-sockets or what??
Assuming you are talking about the node-red-dashboard nodes.
Then the page is loaded via HTTP and the updates (both to and from) are sent via WebSockets using the socket.io library.
If you mean the Node-RED Editor (where flows are created/edited) then again the page is loaded over HTTP and the updates (the Node Status and the messages in the debug sidebar) are sent over a WebSocket connection.
Flow Deploys are sent as a HTTP POST

Zebra FX7500. Using HTTP POST to send data from reader to url

I bought a zebra FX 7500 fixed rfid reader. I have connected it to my work laptop. I want to transfer the read data of the tags from the reader to a web application hosted on my localhost. The application is hosted on http://127.0.0.1:8000 using a django server. How can I POST data to a specific URL of my web app with this configuration?
You could:
Upgrade to the latest firmware ([3.10.30.0])1 which is free and use the IoT Connector service to use the HTTP POST method to send the tag data.
Buy a license for the FX7500 service "FX Connect" to use the HTTP POST method to send the tag data.
Both are done in the web GUI of the reader.
The FX7500 SDK is here: https://www.zebra.com/us/en/support-downloads/software/developer-tools/fx7500-series-sdk.html and supports applications in both C & Java. You would need to write an application in one of those two lanaguages to post the received data to your web app.

Block other xmpp client from accessing my ejabberd server

I developed chat application for mobile platform which uses eJabberd xmpp chat server configured in my public Ubuntu machine.
To make the server connection i used https://mydomainname.com:5280/http-bind so how to protect this to access only by my client application not others.
Now my serverĀ is accessible by any client like pidgin, adium etc How to block this.
You can modify ejabberd to have a custom authentication that integrate a variation from the specification and implement that in your client. That way, unmodified standard client will not be able to read it.
However, as your client is Javascript and code is visible, it will still be possible to patch existing client to implement your variation, but there is not way around this. The approach of "shared secret" means that if the secret is found, other clients could find a way to connect. The secret is even less difficult to find when your code is public (even if obfuscated).

SIP registration api

Does anyone know if any SIP providers provides an API allowing users to register directly from the iPhone application. As a user register with my application, they should be registered with the sip provider(a sip account) as-well. Is this possible.
Once you have a SIP account at a specific provider, all standard SIP providers allows you to register via the standard SIP protocol. It is a HTTP like protocol and you can assemble the messages directly. But most likely you will need something like called SIP client that creates the messages, handles the call state, etc. There are plenty of open source SIP clients with open APIs out there even for iPhone. One very popular such client is called pjsip, it might be interesting for you.
I've never come across a SIP provider that has an API that duplicates a SIP registration. It's actually a bit of a strange request since the purpose of a SIP registration is to let the server know that the SIP client is available and where it can be contacted. If you perform that function outside of SIP can you be sure that the SIP client is available? And if so will you always know what address it can be contacted on especially considering that contact addresses used in SIP often get mangled due to NAT?
What a lot of providers do offer is the ability to set up static SIP URI forwards, for example you could set a rule that states all incoming calls should be forwarded to SIP URI sip:me#somewhere.com. Setting up that kind of rule can remove the need to register in a lot of cases since the provider will now always forward calls to that SIP URI irrespective of whether any devices are registered on the account or not.

How to create a link that will dial a SIP address on a VoIP application on an iPhone

I want to properly markup all the phone numbers on my website so that they are clickable.
The solution has been offered on SO: in general and specifically for an iPhone.
However when targeting the iPhone this evokes the normal phone application.
Is it possible to have a link that invokes the SIP VoIP application if one is installed( I guess on pc's a tel link always invokes a VoIP application, because they simply don't have regular phones built in...)
It's possible, but with some limitations.
Any application can register custom URL scheme. But this URL scheme "must" be unique. For example my-cool-sip-app:..., another application can have scheme like super-duper-sip-app:, etc. You can check if an application with selected URL scheme is installed or not (UIApplication, canOpenURL:).
Or, several applications can have same custom URL scheme, in your case sip:... for example. But if you have 2 or more applications with the same scheme installed, you can't say which one should handle sip:... URL. Apple's documentation:
If your URL type includes a scheme
that is identical to one defined by
Apple, the Apple-provided application
is launched instead of your
application. If multiple third-party
applications register to handle the
same URL scheme, it is undefined as to
which of the applications is picked to
handle URLs of that type.
Valid SIP URLs are:
SIP:someone#10.1.2.3 SIP URL with IP
address.
SIP:someone#example.com;transport=TCP SIP
URL with transport specified as TCP.
The default transport is UDP if none
is specified.
SIP:someone#example.com Basic SIP
URL.
SIP:+12225550189#example.com;user=phone SIP
URL with global phone number and
specified gateway.
SIP:+1 206
555-0146#10.2.3.4;user=phone SIP URL
with global phone number format and
specified gateway.
So, if you have a SIP application installed, you should try one of the mentioned SIP URLs. Any SIP application should support it.
Here's an Acrobits Softphone application where you can read (in description) that it supports asoftphone:number URL scheme. It's good if you want to use just this application, but it's bad for the end user, because other developers are not willing to go through AppStore and add support for all custom URL schemes other than sip:...
My answer is - try sip:... and if you have good SIP application, it should handle these links flawlessly.