How to get public IP in RTMP URL in broadcast object? - webrtc

When calling get broadcast object rest API, the RTMP Url in response shows private IP instead of public IP like below
"rtmpURL": "rtmp://172.58.0.1/LiveApp/test",
Is there anyway we can get public IP address?

Thank you for this question.
You can get the public IP by declaring globalIp
Please go to <AMS_DIR>/conf/red5.properties
i.e., /usr/local/antmedia/conf/red5.properties
Edit the properties file and Set useGlobalIp=true
save the settings
restart AMS with sudo service antmedia restart
Thank you
antmedia.io

Related

How to use machine name instead of localhost:9200 through API call in elastic search

I'm doing API call with url: http://localhost:9200/index/type/_search?q=searchdata. Now I want to call through machine/computer name instead of localhost. How can I implement this ?
You don't need to implement nothing,
use the next URL:
http://computer_name:9200/index/type/_search?q=searchdata
If it's not working be sure that the port not blocking by firewall or something like this
You need to make sure that Elasticsearch is listening on the network interface you want to connect to. By default Elasticsearch listens only on localhost. You can configure the network.host setting to change this.

Fiware Instance Status Error

Hi I've been trying to try out the Fiware service.
I've setup an POI Instance in the Waterford Region.
I've followed the instructions and assigned a floating IP.
On the Instance page I have no IP address and an Status Error.
Under the security page -> Floating IP tab there is an IP address assigned. The Instance is blank. When I try and associate an IP to the instance i get a 400 error:
undefined. Cause: 400 Error
{"badRequest": {"message": "No nw_info cache associated with instance", "code": 400}}
Has anyone had the same problem?
Have you used the 'Allocate IP to project' menu under the Security Tab first ?
If you have a floating IP available it should be connected to the instance you've created using the Associate IP -Action under the Security/Floating IP's. Remember to also allocate and connect the keys and open relevant ports as described here: http://catalogue.fiware.org/enablers/poi-data-provider/creating-instances
There has been some resource (floating IPs) limitations in the FILAB cloud servers so this may be also the reason if you have followed all the above.
Currently, there seems to be some problems with the POI GE image in the Fiware Cloud. Currently a working choice is to start an Ubuntu 14.04 image and install the POI GE according to http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/POI_Data_Provider_-_Installation_and_Administration_Guide .

Setting up XSockets on Windows Server 2003 R2, IIS6

I am looking for some guidance on setting up an MVC/XSockets project on our servers running Windows Server 2003, R2 with IIS6.
Our team is developing a webapp that uses XSockets 3.x to dynamically display data in real time. We are using our time entry system to show current time entries on a "dashboard." Employees enter their times via a separate app, and the dashboard app is supposed to show most recent activity updates.
The project is made using the MVC4 framework. This works great when testing from my development machine, separate from the server. The ws server instance is setup on ws://x.x.x.x:4502, where x.x.x.x is the server's IP. The XSockets components are integrated in the same project.
After pushing my local project onto the server and doing some setup, everything works okay except the XSockets functionality. The XSockets server cannot be accessed from outside the server. When I test from within the server, meaning opening up a browser and going to the webapp, it works fine as it does on my dev machine.
I have tried following the custom configuration setup outlined on xsockets.net, but I am a little confused as to how to define the ws server instance. Do I use the server's IP? The localhost IP (127.0.0.1)? I tried both, but it won't work. I tried adding this custom config settings:
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://dashboard.ourdomain.com:4502/"), new Uri("ws://x.x.x.x:4502")) { }
}
From javascript I access the XSocket through the "ws://dashboard.ourdomain.com:4502/" connection, but it didn't work when I tested it after deploying to the server. I also tried:
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://x.x.x.x:4502")) { }
}
or
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://127.0.0.1:4502")) { }
}
I did enable the server firewall to let traffic through port 4502. Again, everything works great on my local machine, so this leaves me to believe it is either a setting on the server, or a config setting for XSockets.
What is the proper way of achieving a client-server connection on IIS 6? Pointers and suggestions are greatly appreciated as my several-day search has yielded no effective results yet.
Okay so I have finally figured it out. It was after all a firewall issue. I had to configure the firewall to allow traffic on the public ip and port and to forward that traffic to the private ip and port. My XSockets configuration ended up looking like this:
//http://xsockets.net/docs/configuration#public--private-endpoint
public class XSocketsConfig : ConfigurationSetting
{
public XSocketsConfig() : base(new Uri("ws://x.x.x.x:4502/"), new Uri("ws://y.y.y.y:4502")) { }
}
Where x.x.x.x is the server's public IP address and y.y.y.y the private IP address on the LAN. On the client side (js) I then do:
var conn = new XSockets.WebSocket('ws://x.x.x.x:4502/Activity');
That took a serious amount of troubleshooting but I am glad I got it figured out.

VB.NET Get Website IP Address Using HTTPWebRequest?

Is it possible to obtain the website's IP address that you are connecting to on a HTTPWebRequest session?
I'm looking to do this for an authentication check in a licensing class to prevent people from chainging their hosts.etc file and sending false replies to crack my software.
When retrieving URL via HttpWebRequest, can I see the IP address of the destination server?
Check out the thread about this might help you
Cheers
Truez
Above thread was correct, code used below:
For Each IP In Dns.GetHostEntry("website.com").AddressList
If IP.ToString() <> "websiteip" Then
MessageBox.Show("Not connecting to correct IP address")
Exit Sub
End If
Next

moved net.tcp WCF services from localhost to IP address on new site, services won't load

I have a website running 2 WCF services. Working awesome until I needed to move them from the "Default Web Site" in IIS7 to a dedicated website with a new IP address. Now I get the error message:
"...could not be loaded because more than one endpoint configuration for that contract was found. Please indicate the preferred endpoint configuration section by name"
ALL I did was change:
net.tcp://localhost/...
TO:
net.tcp://10.1.2.204/...
I have changed every spot in my configs which once used localhost to specified IP address. The new website is setup exactly the same with the proper net.tcp bindings and it is bound to the single IP address of 10.1.2.204.
I cannot seem to figure out what is going on. I am looking at the svc trace logs and all I get is a bunch of the same.
My new website is called "core" whereas previously I was hosting on "Default Web Site". I added a new FQDN/public IP to route to this new site (backwards to the mentioned private IP address). Now my services are busted.
I know baseAddress is ignored when using IIS/WAS hosting, so I am not sure what else to check. I changed absolutely nothing else in the configs.
What else can I provide to help troubleshoot this?
--
I am also seeing this in the service trace viewer:
Activity Name Receive bytes on connection 'Listen at 'net.tcp://hole.myserver.com/...'.'.
...but the WCF services are actually hosted on that new "core" website which translates to my new private IP address. I have change FQDN names for the example. To make it clear:
I used to have 1 FQDN on this server using Default Web Site.
I now added a 2nd FQDN to this server, new website, second IP. It seems to me that the listening should be directed towards: net.tcp://core.myserver.com instead of net.tcp://hole.myserver.com. Let's pretend the server name is hole.myserver.com and my new website is core.myserver.com on the same server.
Hopefully this is not confusing and you can make sense of it.
I'm using the default net.tcp port of 808 and binding of 808:*
--
This is the first exception thrown that I can tell:
The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:10'.
--
None of these combos will activate the service and all produce the same exception:
net.tcp://localhost
net.tcp://localhost:808
net.tcp://10.1.2.204
net.tcp://10.1.2.204:808
even using a different port which I have done before without issue:
net.tcp://localhost:75
net.tcp://10.1.2.204:75
none of these work. :(
Thanks so much!
Its rights issue. Right click on your new website --> then Edit Permissions. On properties window click security tab and Edit button. Then Add IIS_IUSRS and give Read & Execute, List folder contents, Read permissions. Now iisreset and start to host and connect net tcp on new website.