{"action":"created","issue":{"url":"https://api.github.com/repos/siacs/Conversations/issues/962","labels_url":"https://api.github.com/repos/siacs/Conversations/issues/962/labels{/name}","comments_url":"https://api.github.com/repos/siacs/Conversations/issues/962/comments","events_url":"https://api.github.com/repos/siacs/Conversations/issues/962/events","html_url":"https://github.com/siacs/Conversations/issues/962","id":56528794,"number":962,"title":"Settling the \"custom port/IP/hostname\" issue once and for all","user":{"login":"wiseoldman95","id":5030488,"avatar_url":"https://avatars.githubusercontent.com/u/5030488?v=3","gravatar_id":"","url":"https://api.github.com/users/wiseoldman95","html_url":"https://github.com/wiseoldman95","followers_url":"https://api.github.com/users/wiseoldman95/followers","following_url":"https://api.github.com/users/wiseoldman95/following{/other_user}","gists_url":"https://api.github.com/users/wiseoldman95/gists{/gist_id}","starred_url":"https://api.github.com/users/wiseoldman95/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiseoldman95/subscriptions","organizations_url":"https://api.github.com/users/wiseoldman95/orgs","repos_url":"https://api.github.com/users/wiseoldman95/repos","events_url":"https://api.github.com/users/wiseoldman95/events{/privacy}","received_events_url":"https://api.github.com/users/wiseoldman95/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-02-04T13:55:08Z","updated_at":"2015-02-05T12:12:55Z","closed_at":null,"body":"***Note to Devs:*** This is not yet another “please implement custom IP/port/hostname” issue, please do not close without consideration. I have read the [relevant part in the faqs](https://github.com/siacs/Conversations#where-can-i-set-up-a-custom-hostname--port), and I have read the countless closed issues regarding the subject. -which are listed below-\r\n\r\nThe purpose of this issue is to:\r\n- Consolidate all the closed issues into a single, thorough post. (Which could be linked to from the FAQ in the future)\r\n- Hopefully end the endless stream of repetitive requests by providing a definitive, detailed answer.\r\n- Attempt to convince the developers that SRV records are not always the right solution, and that an alternative is needed. I am more than open to be proven wrong.\r\n\r\n\r\nFor those who have no idea what I'm talking about, please read the preface / background.\r\n\r\n# Preface / Background\r\nEver since the inception of Conversations, the same feature request had been popping again and again: Some people have their own custom servers, often without a proper DNS address, and often on a non-standard port. They want to be able to connect to them. Other clients such as Xabber provide those users the ability to specify a custom IP address / port to connect to. However, Conversations does not provide this in the UI. Those people cannot connect to their servers unless they setup SRV records.\r\n\r\nThis request popped up numerous times:\r\n#960 #942 #917 #911 #861 #935 #689 #583 #541 #482 #106\r\n\r\n## The current solution\r\nThe current solution is setting up SRV records.\r\n\r\nThere are also some exotic, alternative hacky solutions such as modifying Android's `/etc/hosts`.\r\n\r\n## The proposed solution\r\nThe main solution that was proposed in all the closed issues is identical: Add a \"custom host/port\" field in the UI, just like Xabber. The developers were not too keen about this idea, implying that this is not necessary, and that a proper setup should include SRV records and would not really require this.\r\n\r\n\r\n# Disadvantages of SRV's\r\nIn this section, I list the shortcomings of SRV records and argue that they are not always the right solution, and that in fact we do need a \"custom host/port\" option in Conversations, I am more than open to be proven wrong. Also, if I missed a disadvantage, please tell me about it and it will be added.\r\n\r\n- Not everyone has purchased a domain name. This is especially true for small private servers.\r\n- For those who haven't purchased and domain name, setting up SRV records requires some custom DNS server witchcraft, which is much more complex than just typing a custom host/port in Conversations and is not always feasible.\r\n- On many home XMPP servers, this solution alone is not viable due to NAT loopback issues. e.g. I can connect to myHomeXmppServer.example.com from the outside world (WAN), but not from my own house (LAN), because the DNS resolution returns my external IP. \r\n- People who setup external ports that map to different internal ports cannot use the server from the LAN side. (Unless conversation provides them a custom host/port option)\r\n\r\n# Disadvantages of a \"custom host/port\"\r\nThis section has arguments against adding a \"custom host/port\" field into the Conversations UI. If I missed a disadvantage, please tell me about it, and it will be added.\r\n\r\n- If not correctly designed, UX could suffer from menu clutter and might confuse non tech-savvy users. this is resolvable via proper UI design.\r\n\r\n\r\n# Other\r\n>Conversations allows you to enter 'something@ip'.\r\n\r\nSome servers reject this though.\r\n"},"comment":{"url":"https://api.github.com/repos/siacs/Conversations/issues/comments/73036861","html_url":"https://github.com/siacs/Conversations/issues/962#issuecomment-73036861","issue_url":"https://api.github.com/repos/siacs/Conversations/issues/962","id":73036861,"user":{"login":"SamWhited","id":512573,"avatar_url":"https://avatars.githubusercontent.com/u/512573?v=3","gravatar_id":"","url":"https://api.github.com/users/SamWhited","html_url":"https://github.com/SamWhited","followers_url":"https://api.github.com/users/SamWhited/followers","following_url":"https://api.github.com/users/SamWhited/following{/other_user}","gists_url":"https://api.github.com/users/SamWhited/gists{/gist_id}","starred_url":"https://api.github.com/users/SamWhited/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SamWhited/subscriptions","organizations_url":"https://api.github.com/users/SamWhited/orgs","repos_url":"https://api.github.com/users/SamWhited/repos","events_url":"https://api.github.com/users/SamWhited/events{/privacy}","received_events_url":"https://api.github.com/users/SamWhited/received_events","type":"User","site_admin":false},"created_at":"2015-02-05T12:12:55Z","updated_at":"2015-02-05T12:12:55Z","body":"I can not imagine a situation where you'd have to run your own DNS just to setup SRV records. If you're using one of the many popular XMPP providers out there, they already have them (if they don't, they're doing it wrong and you shouldn't be using them). If you're running your own server with your own domain, then you're knowledgeable enough to setup your own SRV records (and if your DNS provider doesn't allow SRV records, they're also doing something wrong and you shouldn't be using them; there are plenty of free DNS providers out there who support SRV records).\r\n\r\nThe other arguments I've seen for why this feature are \"necessary\" don't make sense to me either. If you're in an internal corporate environment where everything is host-name based, you should just be using that host name directly (so you don't need SRV records). Why even bother using a different host name for your JID? \"you@internalcompanyserverhostname\" should work just fine (and if not, complain to your server administrator... either get them to fix the XMPP server, or use DNS in a sane fashion). &lt;/rant&gt;\r\n\r\n> People who like to toy around are most likely to help with bug fixing and development. You don't want to send them away.\r\n\r\nThey're also the ones who should know how to do things properly. Why add an entire new UI / feature just for \"toying around\"?"}}