<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:10pt">Anthony, thanks a lot for your explanations. I will try to put this together into a Wiki article.<br><br>I also searched through the C code, and indeed, many modules resort to the "domain" global variable if they don't find the domain in the command arguments.<br><br>switch_ivr_set_user() parses the user@domain string, finds the user, and sets two channel variables, "user_name" and "domain_name".<br>Some modules use this when they create a channel (such as incoming INVITE in mod_sofia).<br>But I could not find any C code which uses "domain_name" channel variable. I guess the intent is to use the variable in matching conditions in the dialplan.<br><br>Also, I saw both "domain" and "domain_name" event headers in event creation and processing, but didn't yet have time to figure out where they are used. <br><br>So, it looks like $${domain}
 global variable is required in vars.xml for general FreeSWITCH stability (it would probably coredump in some occasions if it's undefined). But $${domain_name} is obsolete and can be skipped if no other parts in the dialplan refer to it.<br><br>Then, the channel variable ${domain_name} is the right place to indicate the user's realm. It would be used to look up the user in the directory and for the realm part in SIP messages.<br><br>am I right in my considerations? If so, I will prepare a Wiki text for approval.<br><br>thanks<br>stan<br><br><div><span><br></span></div><div><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding-left: 5px;">  <div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <hr size="1">  <font face="Arial" size="2"> <b><span
 style="font-weight:bold;">From:</span></b> Anthony Minessale &lt;anthony.minessale@gmail.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> FreeSWITCH Users Help &lt;freeswitch-users@lists.freeswitch.org&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, August 24, 2013 3:03 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Freeswitch-users] domain vs. domain_name variables<br> </font> </div> <div class="y_msg_container"><br><div id="yiv8396158910"><div dir="ltr"><div>It took me like an hour to compose this explanation.....I hope it at least gives you an idea.</div><div><br></div>"domain" is a core variable its used as a fallback in certain situations when its defined and no other value is specified for domain.<div>
It's also used in the default configuration as a pre-processor substitution with the $${domain} notation which is substituted into the sofia profiles and conference etc.<br></div><div><div><br></div><div><br></div><div>
"domain_name" is a variable that only exists in the scope of the demo dialplan. &nbsp;Its set initially as a global in vars.xml to whatever domain is set to as a base value.</div><div>>From there its only set on a per-call basis to override and used in per call dialplan logic.</div>
<div><br></div><div>Its is not true that domain must be an IP. &nbsp;It defaults to the same value as local_ip_v4 to make sure the system works on any box without any configuration.</div><div>If you have a working FQHN that points to your box, you should set that value in your domain var instead of the ip if you want things to reference the actual domain name.</div>
<div><br></div><div><br></div><div>I think once you learn that way the config files are setup in the default distribution are purely arbitrary the more sense it may begin to make.</div><div><br></div><div><br></div><div>The thing that made your head hurt is trying to explain that in SIP there is a separation from the host portion of a URI and the IP its sending the packet to.</div>
<div>Because of PROXIES etc you can easily send a SIP packet to a specific address that contains a request URI or To: header with a different host name or ip.</div><div><br></div><div><br></div><div>think of domain as referring to the host portion of a user@host concept. &nbsp;The same notion of a REALM in radius. &nbsp;In SIP and in FS that can be an IP or a FQHN and it need not exist in the TLD dns on the internet or it can match one that exists and function on its own because it's not directly tied to dns. &nbsp;(For the sake of sanity do not use a real domain name that is not yours even if it works).</div>
<div><br></div><div>Basically the path of least resistance is to keep all these names aligned.. This is what the default config does for you because you set the domain variable once and its pre-processed into all the key places in the config that have domains so they are the same everywhere. &nbsp;</div>
<div><br></div><div>Say you set it to <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a></div><div><br></div><div>* The default directory will have a domain defined called <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> with the default 1000-1019 extensions.</div>
<div>* The internal sip profile will associate the internal profile with <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> and force any registrations etc to find that domain for auth.</div><div>* The conferences will use <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> for presence etc.</div>
<div><br></div><div>Then it uses domain_name in the extensions etc as a clone of that <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> domain that you can change at runtime on a per call basis. &nbsp;Most likely in the default config with no changes this value will remain <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> the whole time and there is no difference.</div>
<div><br></div><div>Why? &nbsp;</div><div><br></div><div>Because people love multi-home stuff and they want to configure all of these things separately and once they start doing this, the config still is usable.</div><div><br>
</div><div>So:</div><div><br></div><div>FS never resolves domains to the IP and vice versa for you like it might in your unix environment or in a web browser. &nbsp;IP and FQHN have the same significance in sip packets as a unique realm string. &nbsp;It's only because you are binding the SIP UA to ${local_ip_v4} that your sip works on the IP.</div>
<div><br></div><div>The way SIP was designed to work, you would define a SRV record for the host name used in your sip uri and then that IP would be used in place of a default A record lookup. &nbsp;We can just as easily override that in a client by forcing the fields for the proxy address and domains.</div>
<div><br></div><div><br></div><div>Say you used <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> like I mentioned above and your valid IP was 200.8.8.8</div><div><br></div><div>You could change domain=<a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> and restart FS and it would still come up.</div>
<div><br></div><div>Then you could go take a sip soft phone and play with the advanced settings and set the proxy addr to 200.8.8.8 and set the host or domain field to <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> and configure it to always send calls to the proxy addr.</div>
<div><br></div><div>Now you can use <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> in your phones all day long even though its not really your domain because its just saying that in the packets and you explicitly showed it what server to use.</div>
<div><br></div><div>Next, instead of <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> you could use 1.2.3.4 (or some real ip) as the domain even though it's obviously silly.</div><div><br></div><div>If you turn on the siptrace you'll see the packets hit your box and using those values like 1.2.3.4 and <a rel="nofollow" target="_blank" href="http://example.com/">example.com</a> in the host portion and talk to your client over the actual IP of the server.</div>
<div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>&nbsp;</div><div><br></div>
<div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>
<div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><br></div><div><br></div><div><br></div><div>&nbsp;</div><div><br></div><div><br><div><br></div><div><br></div></div>
</div></div><div class="yiv8396158910gmail_extra"><br><br><div class="yiv8396158910gmail_quote">On Fri, Aug 23, 2013 at 4:55 PM, Karl Schmidt <span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:karl@xtronics.com" target="_blank" href="mailto:karl@xtronics.com">karl@xtronics.com</a>&gt;</span> wrote:<br>
<blockquote class="yiv8396158910gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="yiv8396158910HOEnZb"><div class="yiv8396158910h5">On 08/23/2013 03:28 PM, Stanislav Sinyagin wrote:<br>
&gt; What is the difference between ${domain} and ${domain_name} variables? Both are used in the source<br>
&gt; code, and example configs set them to the same value.<br>
&gt;<br>
&gt; What is the design consideration behind?<br>
&gt;<br>
&gt; Why not merging them into one variable?<br>
&gt;<br>
<br>
</div></div>This is an issue that has me a bit puzzled as well.<br>
<br>
domain in vars.xml is supposed to be an IP address ( IMO Should have been called domain_ip )<br>
domain_name is supposed to be a FQDN I think. grepping the configs tells me domain_name is never<br>
used in the default config so you can probably ignore it.<br>
<br>
What is also not clear is the multiple uses of the term domain:<br>
<br>
<br>
&nbsp;From the wiki -<br>
<a rel="nofollow" target="_blank" href="https://wiki.freeswitch.org/wiki/Sofia.conf.xml#The_Relationship_Between_SIP_Profiles_and_Domains">https://wiki.freeswitch.org/wiki/Sofia.conf.xml#The_Relationship_Between_SIP_Profiles_and_Domains</a> :<br>

<br>
&nbsp;&gt; The domains inside the XML registry are completely different from the domains on the internet and<br>
&nbsp;&gt; again completely different from domains in sip packets. The profiles are again entirely different<br>
&nbsp;&gt; from any of the above. Its up to you to align them if you so choose.<br>
<br>
OK that made my head hurt.<br>
<br>
In some places in FS 'domain' = domain_IP_address<br>
<br>
Here it says that SIP profile domain != IP-domain != SIP packet domain.<br>
<br>
So I know what it isn't, but it might also help if I knew what it IS!<br>
<br>
So, I think the domain definition in sofia MIGHT be a grouping of profiles? Then as you read on, it<br>
tells us that a domain is a domain.<br>
<br>
" FreeSWITCH works off the concept of users and domains just like email."<br>
<br>
The books nor the wiki nor googling the mailing list makes this clear.<br>
<br>
Both the internal and external profiles set the name of the sofia-domain to all and $ sofia status<br>
gives the names as internal and external (after the directory? ).<br>
<br>
<br>
<br>
<br>
--------------------------------------------------------------------------------<br>
Karl Schmidt &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;EMail <a rel="nofollow" ymailto="mailto:Karl@xtronics.com" target="_blank" href="mailto:Karl@xtronics.com">Karl@xtronics.com</a><br>
Transtronics, Inc. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WEB <a rel="nofollow" target="_blank" href="http://secure.transtronics.com/">http://secure.transtronics.com</a><br>
3209 West 9th Street &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ph <a href="" rel="nofollow">(785) 841-3089</a><br>
Lawrence, KS 66049 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FAX <a href="" rel="nofollow">(785) 841-0434</a><br>
<br>
Reality isn't fair, but that it is where I live. -kps<br>
--------------------------------------------------------------------------------<br>
<br>
_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a rel="nofollow" ymailto="mailto:consulting@freeswitch.org" target="_blank" href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a rel="nofollow" target="_blank" href="http://www.freeswitchsolutions.com/">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a rel="nofollow" target="_blank" href="http://www.cudatel.com/">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a rel="nofollow" target="_blank" href="http://www.freeswitch.org/">http://www.freeswitch.org</a><br>
<a rel="nofollow" target="_blank" href="http://wiki.freeswitch.org/">http://wiki.freeswitch.org</a><br>
<a rel="nofollow" target="_blank" href="http://www.cluecon.com/">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a rel="nofollow" ymailto="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank" href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a rel="nofollow" target="_blank" href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a rel="nofollow" target="_blank" href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a rel="nofollow" target="_blank" href="http://www.freeswitch.org/">http://www.freeswitch.org</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a rel="nofollow" target="_blank" href="http://www.freeswitch.org/">http://www.freeswitch.org/</a><br>ClueCon <a rel="nofollow" target="_blank" href="http://www.cluecon.com/">http://www.cluecon.com/</a><br>
Twitter: <a rel="nofollow" target="_blank" href="http://twitter.com/FreeSWITCH_wire">http://twitter.com/FreeSWITCH_wire</a><br><br>AIM: anthm<br><a rel="nofollow" ymailto="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank" href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a rel="nofollow" ymailto="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank" href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a rel="nofollow" target="_blank" href="http://irc.freenode.net/">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a rel="nofollow" ymailto="mailto:sip%3A888@conference.freeswitch.org" target="_blank" href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br><a rel="nofollow" ymailto="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank" href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>
pstn:+19193869900
</div></div><br>_________________________________________________________________________<br>Professional FreeSWITCH Consulting Services:<br><a ymailto="mailto:consulting@freeswitch.org" href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br><a href="http://www.freeswitchsolutions.com/" target="_blank">http://www.freeswitchsolutions.com</a><br><br>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br><a href="http://www.cudatel.com/" target="_blank">http://www.cudatel.com</a><br><br>Official FreeSWITCH Sites<br><a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org</a><br><a href="http://wiki.freeswitch.org/" target="_blank">http://wiki.freeswitch.org</a><br><a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com</a><br><br>FreeSWITCH-users mailing list<br><a ymailto="mailto:FreeSWITCH-users@lists.freeswitch.org"
 href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br><a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org</a><br><br><br></div> </div> </div> </blockquote></div>   </div></body></html>