Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tbd:mass_virtual_domains [2009/04/29 00:35] janakj |
tbd:mass_virtual_domains [2009/04/29 15:46] (current) janakj |
||
---|---|---|---|
Line 3: | Line 3: | ||
**Contact**: | **Contact**: | ||
+ | ===== Abstract ===== | ||
+ | The goal of this work is to add support for dynamically configured mass | ||
+ | virtual hosting to the sip-router server. Dynamically configured virtual | ||
+ | hosting is a way of hosting a large number of virtual SIP domains on a | ||
+ | single server without the need to change the configuration of the server. | ||
+ | Such a server can figure out whether it is reponsible for a particular | ||
+ | virtual SIP domain from DNS, adding support for a new SIP virtual domain | ||
+ | requires no manual intervention by the server administrator. | ||
+ | |||
+ | ===== State of the Art ===== | ||
The sip-router server can be configured with support for multiple virtual | The sip-router server can be configured with support for multiple virtual | ||
- | domains hosted on the same server. | + | domains hosted on the same server. |
- | list of all supported domains. | + | be configured. |
- | Currently, the domain module stores the list of all supported | + | The first possibility is to list all supported domains in the configuration |
- | in the database. The table named ' | + | file, something along the following lines: |
- | supported by the sip server. | + | < |
- | administrator | + | alias=" |
+ | alias=" | ||
+ | alias=" | ||
+ | </ | ||
+ | The biggest disadvantage | ||
+ | restarted for the changes to take effect. Thus, adding | ||
+ | virtual domain requires a restart | ||
- | This is often not necessary, because we can try to figure out whether a domain | + | The second option |
- | is local by consulting | + | the list of all supported virtual domains in the database. The table named |
- | for a domain | + | 'domain' contains |
- | module can lookup the SRV record | + | support |
- | to the server itself then the server | + | new domain to the table. |
- | case the domain module will add the domain to the list of supported domains | + | |
- | automatically. | + | |
- | The advantage of this approach | + | This is better then the first approach, because the contents of the table can |
- | of the database | + | be reloaded on the fly, there is no need restart the server. But still, |
+ | administrator | ||
+ | manually and from time to time he/she has to check if the contents of the table | ||
+ | matches domain names configured in DNS. | ||
- | The goal of this work is to extend | + | ===== Goals ===== |
- | dynamically configured virtual domains that have not been pre-configured | + | The goal of this work is to make this process fully automatic, without the need |
- | the database, but have been obtained from DNS instead. | + | to change the configuration file or the entries in the database. |
+ | |||
+ | If the sip-router server receives a request for a domain that is not on the | ||
+ | list of supported domains then the domain module | ||
+ | _sip._udp (or other supported SRV records) | ||
+ | the server itself then the server | ||
+ | the domain module will add the domain to the list of supported domains | ||
+ | automatically. | ||
- | In version 2 the domain module should | + | ==== Deliverables ==== |
- | delete | + | * We will extend |
- | the server anymore. | + | * We will modify the domain module to add missing entries into its internal memory cache of supported virtual domains. |
+ | * We can enhance the module and make it synchronize the contents of the internal memory cache with the contents of the database. Newly added virtual domain (dynamically | ||
+ | * We can implement a periodic house-keeping function to disable or remove | ||
+ | appear | ||
+ | * Devise a system for storing additional configuration information about virtual domains in the DNS zone of a domain. The additional information we might want to store in the DNS zone comes in form of attribute-value pairs, it can be used, for example, to configure the unique id of the virtual domain, peering policy, various options related to digest authentication, | ||
+ | ===== Reading List ===== | ||
+ | * The domain module [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// |