[Configuration] Advanced networking in MP (1 Viewer)

Would you like to have advanced networking available?

  • Absolutely YES! I've been waiting for this as long i know MP

    Votes: 3 60.0%
  • I really don't care, i just plugged MP in and it works

    Votes: 2 40.0%
  • Nah, useless junk for techies who wants to messup everything

    Votes: 0 0.0%
  • What? What is the network thingie all about?

    Votes: 0 0.0%

  • Total voters
    5

deltaflyer4747

Portal Member
July 17, 2010
11
0
Home Country
Czech Republic Czech Republic
Hi, i found BIG troubles setting up mediaportal on advanced networking solution.
For example:

There isn't option to assign external stream IP / hostname. Thus if the streaming server is behind NAT with IP 192.168.0.1 and external IP 1.2.3.4, you can route all ports you want, but the mediaportal gives you link rtsp://192.168.0.1/... - useless. Would be nice to have option to define this manually - either custom IP or hostname

I am unable to select 0.0.0.0 as the default server network thus allowing it to listen on all interfaces - if i have multiple network cards in the server, it is useless.

Database connection details - what if i want different settings for the server and different settings passed to users? Again impossible. Why? Because i have my streaming server connected to external database server with gigabit dedicated line but public access is "only" via 100Mbit shared line. I don't want to give additional load to public "slow" line when i have that fast one available. Please, separate it to make two standalone server and client settings if needed.

To make long story short - can you please make ALL networking items (not only those mentioned above) passed to clients available for user modification? Atleast in the server configfile (at first) if not directly from GUI... Shouldn't be so hard (imho) to load it from configfile instead of internal variable. And on ALL cases, please give us the option to use IP/hostname(DNS) / computername(WINS) by our discretion.
:D

edit: I almost forgot - would it be possible to make several user levels? aka one user can view tv and epg but cannot set tv recording (read only permissions), another user can do everything... could be done with different database access username
 

arion_p

Retired Team Member
  • Premium Supporter
  • February 7, 2007
    3,373
    1,626
    Athens
    Home Country
    Greece Greece
    Hi,

    The network configurations that you are referring to are pretty rare for HTPC usage, although some of them will be handled better in MP2. For MP1 however I believe these are quite extreme and some even impossible.

    There isn't option to assign external stream IP / hostname. Thus if the streaming server is behind NAT with IP 192.168.0.1 and external IP 1.2.3.4, you can route all ports you want, but the mediaportal gives you link rtsp://192.168.0.1/... - useless. Would be nice to have option to define this manually - either custom IP or hostname
    This is not as simple as it may sound. Even if you could configure TVServer with the external IP, TVServer would still need to somehow find out where the initial call came from (internally or external) to decide which IP to return. This detection is not possible AFAIK using .Net Remoting (which is what TVServer uses). Furthermore even if it were possible you would have to somehow configure some rules to help determine which IP addresses are internal. And even if we use a IP/Subnet mask as filter there will always be someone with a more complex net config (e.g. multiple subnets, multiple NAT gateways etc).
    Still the RTSP protocol requires that the streaming server address be passed in an SDP response, and the RTSP library (live555) cannot be configured to return the external address when the request comes from an external client (and again would require to do the same detection).

    I am unable to select 0.0.0.0 as the default server network thus allowing it to listen on all interfaces - if i have multiple network cards in the server, it is useless.
    This has been disabled on purpose, because the library (live555) used to implement RSTP had issues when listening to 0.0.0.0. It is not clear if the new version of the library has fixed those issues but there is an indication that it has. It would however need extensive testing to verify that re-enabling 0.0.0.0 does not break anything and certainly too risky for 1.1.0 at the stage it was when the library was updated to the new version. Provided enough test is performed, this could be re-enabled in the future (probably post 1.2.0).

    Database connection details - what if i want different settings for the server and different settings passed to users? Again impossible. Why? Because i have my streaming server connected to external database server with gigabit dedicated line but public access is "only" via 100Mbit shared line. I don't want to give additional load to public "slow" line when i have that fast one available. Please, separate it to make two standalone server and client settings if needed.
    Not sure what you mean by this. If you mean that your DB server has 2 IPs and you want clients to connect to one but TVServer to connect to the other, you don't need any more configuration options in TVServer. Just use split-DNS or hosts file in TVServer.

    edit: I almost forgot - would it be possible to make several user levels? aka one user can view tv and epg but cannot set tv recording (read only permissions), another user can do everything... could be done with different database access username

    Something of the sort is being considered for MP2 but a lot of the details and use cases need to be decided. Primary concern here is usability. We want to have a user management system that is both simple and effective to use as it is powerful enough to handle most user's needs.

    In general I don't like being negative, and these are all valid issues. However we always have to consider the percentage of the user base that will benefit from each feature vs the amount of work and risk involved in its implementation. The team's resources are rather limited and priorities have to be set.
     

    deltaflyer4747

    Portal Member
    July 17, 2010
    11
    0
    Home Country
    Czech Republic Czech Republic
    Thanks for your reply. I'll just add some small notes:

    This is not as simple as it may sound. Even if you could configure TVServer with the external IP, TVServer would still need to somehow find out where the initial call came from (internally or external) to decide which IP to return. This detection is not possible AFAIK using .Net Remoting (which is what TVServer uses).

    Is it mandatory to know where the request came from? Couldn't the server just send single IP / hostname as it does now? Just enable the option to manually define it instead of using interface address - if possible.

    This has been disabled on purpose...this could be re-enabled in the future (probably post 1.2.0).
    Thanks, will wait for it

    Not sure what you mean by this. If you mean that your DB server has 2 IPs and you want clients to connect to one but TVServer to connect to the other, you don't need any more configuration options in TVServer. Just use split-DNS or hosts file in TVServer.
    great idea, thanks, locally define hostname for the database server to use secondary inteface (yes, with different IP).

    Something of the sort is being considered for MP2 but a lot of the details and use cases need to be decided. Primary concern here is usability. We want to have a user management system that is both simple and effective to use as it is powerful enough to handle most user's needs.
    Again I will wait

    In general I don't like being negative, and these are all valid issues. However we always have to consider the percentage of the user base that will benefit from each feature vs the amount of work and risk involved in its implementation. The team's resources are rather limited and priorities have to be set.

    I completely understand this, the major problem for me is the first thing mentioned, others are not... I will TRY to write some plugin for it (if i learn how to, i know ATM only python), but if it would be easier for you, i'll be very glad for it. Thanks for you reply and for your effort you put in this project.
     

    arion_p

    Retired Team Member
  • Premium Supporter
  • February 7, 2007
    3,373
    1,626
    Athens
    Home Country
    Greece Greece
    This is not as simple as it may sound. Even if you could configure TVServer with the external IP, TVServer would still need to somehow find out where the initial call came from (internally or external) to decide which IP to return. This detection is not possible AFAIK using .Net Remoting (which is what TVServer uses).

    Is it mandatory to know where the request came from? Couldn't the server just send single IP / hostname as it does now? Just enable the option to manually define it instead of using interface address - if possible.
    What if there are both internal and external clients. If we support NAT transparency/traversal we should support all possible configurations.

    I completely understand this, the major problem for me is the first thing mentioned, others are not... I will TRY to write some plugin for it (if i learn how to, i know ATM only python), but if it would be easier for you, i'll be very glad for it. Thanks for you reply and for your effort you put in this project.

    Unfortunately I don't think this is possible to do from a plugin, at least not in TV server. It might be possible using an MP plugin that would intercept g_player.Play(), parse the url to determine if it is RTSP, replace the IP address with the external one and pass it on to the original g_player.Play(). But I am not sure if/how you can hook into g_player in such a way.
     

    deltaflyer4747

    Portal Member
    July 17, 2010
    11
    0
    Home Country
    Czech Republic Czech Republic
    What if there are both internal and external clients. If we support NAT transparency/traversal we should support all possible configurations.

    I see your point, but does it do now? IDTS... it sends internal IP, that option will just enable different IP (for all cases)

    Unfortunately I don't think this is possible to do from a plugin, at least not in TV server. It might be possible using an MP plugin that would intercept g_player.Play(), parse the url to determine if it is RTSP, replace the IP address with the external one and pass it on to the original g_player.Play(). But I am not sure if/how you can hook into g_player in such a way.

    sad news for me, but you saved me few hours, thanks.
     

    Users who are viewing this thread

    Top Bottom