3. Atomia Domain Registration configuration examples

3.1. Atomia Domain Registration configuration

The configuration of Atomia Domain Registration exists at /etc/domainreg.conf.

It starts with a global section, containing things like the database connectivity details, global config options for how the transactions are handled, for the WHOIS server, for Hosted DNSSEC, etc.

After the global section there is one or more <tld> sections that contain the details for connecting to the different registrys used to register and manage domains.

3.2. Atomia Domain Registration TLD configuration examples

3.2.2. .at through the AT plugin

<tld>
        name            = at
        registry_type   = at_epp

        supports_poll   = 1
        supports_dnssec = 1
        autorenew       = 1

        initial_years = 1

        epp_hostname    = epptest.nic.at
        epp_port        = 700
        epp_username    = EPP_USER
        epp_password    = EPP_PASS
        epp_timeout     = 10
        dri_driver      = AT

        default_idn_language = sv
        contact_id_generated_by_registry = 1
	transliterate_contact = 1
	domain_no_authinfo = 1

        <contact_defaults>
                state   = N/A
                fax     = +46.21123456
        </contact_defaults>

        <connection>
                process_name    = .AT OTE interactive
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
        </connection>
</tld>

3.2.3. .com through the CORE plugin

<tld>
        name            = com
        registry_type   = core_gw02

        supports_poll   = 1
        autorenew       = 1

        default_idn_language    = sv

        core_member_id          = CORE-MEMBER-ID
        core_all_time_password  = ALL-TIME-PASSWORD
        core_gateway_uri        = http://gateway02-eval.corenic.net/coregw/request
        core_gateway_timeout    = 19

        <connection>
                process_name    = .COM registration
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
        </connection>
</tld>

3.2.4. .com through the EPP plugin

<tld>
        name            = com
        registry_type   = epp

        supports_poll   = 1
        supports_dnssec = 1
        secdns_version  = 1.1
        autorenew       = 1
        thin_registry   = 1

        initial_years = 1

        epp_hostname    = EPP_HOSTNAME
        epp_username    = EPP_USERNAME
        epp_password    = EPP_PASSWORD
        epp_port        = 700
        epp_timeout     = 10
        epp_ssl_keyfile = /etc/com_key.pem
        epp_ssl_certfile = /etc/com_combined.pem
        dri_driver      = VNDS

        default_idn_language = swe

        <contact_defaults>
                state   = N/A
                fax     = +46.21123456
        </contact_defaults>

        <connection>
                process_name    = .COM interactive
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
        </connection>
</tld>

3.2.5. .fi through the FI plugin

<tld>
        name            = fi
        registry_type   = fi_epp

        epp_hostname    = epptest.ficora.fi
        epp_username    = username
        epp_password    = password
        epp_ssl_keyfile = /location_to_file/key.cert
        epp_ssl_certfile = /location_to_file/file.cert

        type_specific_contacts  = 1
        global_contact_authinfo =
        contact_id_generated_by_registry = 1
        successful_transfer_immediate = 1
        disable_disclose = 1

        epp_port        = 700
        epp_timeout     = 10

        #epp_logfile     = /var/log/atomiadomainreg.epp.log
        dri_driver      = FI

        <connection>
                process_name    = .FI interactive
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
        </connection>
</tld>

3.2.6. .com through the Joker plugin

<tld>
        name            = com
        registry_type   = joker

        joker_username = joker_username
        joker_password = joker_password
        joker_timeout = 60
        joker_uri = https://dmapi.joker.com/request/

        joker_domain-privacy-order_repeat = 0

        joker_domain-renew_sleep = 10
        joker_domain-renew_repeat = 6

        periodic_registry_plugin_task = 1

        <connection>
                process_name    = .COM Joker registration
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
        </connection>
</tld>

3.2.7. .nl through the NL plugin

<tld>
        name            = nl
        registry_type   = nl_epp

        supports_poll   = 1
        supports_dnssec = 1
        autorenew       = 1

        initial_years = 1

        epp_hostname    = testdrs.domain-registry.nl
        epp_port        = 700
        epp_username    = EPP_USER
        epp_password    = EPP_PASS
        epp_timeout     = 10
        dri_driver      = SIDN

        default_idn_language = sv
	contact_id_generated_by_registry = 1

        <contact_defaults>
                state   = N/A
                fax     = +46.21123456
        </contact_defaults>

        <connection>
                process_name    = .NL OTE interactive
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
        </connection>
</tld>

3.2.8. .no through the NO plugin

#Config example when renewals are sent from domainreg to Norid (Norid doesn't do automatic renewing).
<tld>
	name            = no
	registry_type   = no_epp

	initial_years = 1

	epp_hostname    = epp.test.norid.no
	epp_port        = 700
	epp_username    = <your_username>
	epp_password    = <your_password>
	epp_timeout     = 10
	dri_driver      = NO

	default_idn_language = no

	type_specific_contacts = 1
	periodic_registry_plugin_task = 1

	<connection>
		process_name    = .NO OTE interactive
		ratelimit       = 0
		handles         interactive
		handles         registration
		handles         renewal
		handles         periodic
	</connection>
</tld>

########
# Config example when Norid does automatic renewing. 
# This configuration tells domainreg to only renew domains locally since Norid will do the actual renewals.
# Important thing here to note is:
#	autoexpire_offset_days = 0
#	renew_domains_locally = 1
#
# Config option renew_domains_locally = 1 tells domainreg to renew domains locally.
# Config option autoexpire_offset_days = 0 is also important 
# because it tells domainreg when to send expire command, 
# if domainreg doesn't receive renew command (when renewal invoice is not paid, for example).
# If value set for autoexpire_offset_days is 0, then expiring of domain will be done on expire date.
# If this value is bigger than 0, then expiring will be done that amount of days after expire date.
# If it's less than 0, then it will be done that amount of days before expire date.
<tld>
	name            = no
	registry_type   = no_epp

	initial_years = 1

	autoexpire_offset_days = 0
	renew_domains_locally = 1
	
	epp_hostname    = epp.test.norid.no
	epp_port        = 700
	epp_username    = <your_username>
	epp_password    = <your_password>
	epp_timeout     = 10
	dri_driver      = NO

	default_idn_language = no

	type_specific_contacts = 1
	periodic_registry_plugin_task = 1

	<connection>
		process_name    = .NO OTE interactive
		ratelimit       = 0
		handles         interactive
		handles         registration
		handles         renewal
		handles         periodic
	</connection>
</tld>

3.2.9. .nu through the NU plugin

<tld>
        name            = nu
        registry_type   = nu_epp

        supports_poll   = 1
        supports_dnssec = 1
        autorenew       = 1

        supports_sync   = 1
        sync_web_auth_url = https://epptestwebv3.iis.se/auth/login
        sync_web_auth_user = WEBUSER
        sync_web_auth_pass = WEBPASS
        sync_web_export_url = https://epptestwebv3.iis.se/search/testdomains/name/asc/0

	epp_hostname    = epptestv3.iis.nu
	epp_username    = EPP_USER
	epp_password    = EPP_PASS
        epp_ssl_keyfile = /etc/se_key.pem
        epp_ssl_certfile = /etc/se_cert.pem

	use_free_shtml	= 1
	free_shtml_url = http://registrarfree.iis.nu/free?q=%domain

        epp_login_service_filter = (urn:ietf:params:xml:ns:(domain|contact|host|secDNS)-1.0|urn:se:iis:xml:epp:iis-1.2)

        <epp_extension_parameters>
                iis_extension_version = 1.2
        </epp_extension_parameters>

	epp_port        = 700
        epp_timeout     = 10

        dri_driver      = NU

        <connection>
                process_name    = .NU interactive
                ratelimit       = 600
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
                handles         local
        </connection>
</tld>

3.2.10. .com through the OpenSRS plugin

<tld>
        name            = com
        registry_type   = opensrs

        supports_poll   = 0
        autorenew       = 1

        dri_timeout     = 10
        dri_remote_url  = https://horizon.opensrs.net:55443/
        dri_username    = OpenSRS_USER
        dri_password    = OpenSRS_PASS

        dri_driver      = OpenSRS
        transliterate_contact = 1
        transfer_include_contacts = 1
        opensrs_bypass_confirm = 1
        opensrs_fast_lookup_timeout = 60
	
        periodic_registry_plugin_task = 1

        <epp_extension_parameters>
                opensrs_use_cookie = 0
        </epp_extension_parameters>

        <contact_defaults>
                state   = N/A
                fax     = +46.21123456
        </contact_defaults>

        <connection>
                process_name    = .COM registration
                ratelimit       = 0
                handles         interactive
                handles         registration
                handles         renewal
                handles         periodic
        </connection>

        map_domainsearch_to = com
</tld>

3.2.11. .com through the Openprovider plugin

# Explanation about Openprovider specific configuration. It is possible to define for every tld:
#	1. op_fields_to_send_<suffix> -> defines which fields to send as extension data. 
#		<suffix> can be letter c or letter d; c is for fields to be sent when creating contact, and d when registering a domain.
#		Value should be property names, separated with a comma(,).
#		Example: op_fields_to_send_c = vat,socialSecurityNumber,companyRegistrationNumber
#
#	2. op_condition_apply_<suffix> -> defines that there should be a condition applied for all the fields specified in op_fields_to_send_<suffix>
#		Value: Name of one of the contact properties
#		Example: op_condition_apply_c = country
#
#	3. op_condition_apply_<suffix>_<field> -> defines that there should be a condition applied for field <field> specified in op_fields_to_send_<suffix>
#		Value: Name of one of the contact properties. 
#		If left empty, field will be sent without condition(thus overriding any condition specified with op_condition_apply_<suffix> and op_condition_<suffix>)
#		Example: op_condition_apply_c_companyRegistrationNumber = org
#
#	4. op_condition_<suffix> -> specifies regex that should be applied to a field from op_condition_apply_<suffix>, before sending all of the fields.
#		Value: regex
#		Example: op_condition_c = ^SE$
#		this, together with 2. says that no fields should be sent unless country fulfils ^SE$ regex (which means country should be Sweden).
#
#	5. op_condition_<suffix>_<field> -> specifies regex that should be applied to a field from op_condition_apply_<suffix>_<field>, before sending <field> field.
#		Value: regex
#		Example: op_condition_c_companyRegistrationNumber = ^.+$
#		this, together with 3. says that companyRegistrationNumber should be sent only if org fulfils ^.+$ regex (means it shouldn't be empty).
#
#	6. op_copy_<suffix>_<field> -> specifies that value for the field <field> should be copied from a contact property.
#		Value: which contact property should be copied.
#		Example: op_copy_c_companyRegistrationNumber = orgno
#		puts orgno from contact into companyRegistrationNumber extension for contact
#
#	7. op_default_<suffix>_<field> -> defines default value to be sent for field <field>, when creating contact or domain (depends on <suffix>). 
#		This is used only if nothing was found in registry specific attributes, contact custom fields and op_copy_<suffix>_<field> was not defined (in that order).
#		Value: value to be sent by default, if nothing was found.
#		Example: op_default_d_useDomicile = true
#		this means that useDomicile will always be sent when registering domain. Value will be true if not set otherwise in other places. 

<tld>
       name            = com
       registry_type   = openprovider

       supports_poll   = 0
       
	   dri_timeout     = 60
	   dri_remote_url  = https://epp.cte.openprovider.eu/
	   dri_username    = atomia
	   dri_password    = qwerasdfzxcv

	   dri_driver      = Openprovider

	   global_contact_authinfo =

	   contact_id_generated_by_registry = 1
	   transfer_include_contacts = 1

	   periodic_registry_plugin_task = 0

	   initial_years = 1

	   domain_create_no_authinfo = 1
	   
	   # Custom fields(extensions) for contact #
	   # Meaning: Copy value from orgno to: socialSecurityNumber ext. if org is empty; companyRegistrationNumber ext. if org is not empty. #
	   # Also, copy vatno into vat extension for contact. #
	   op_fields_to_send_c = vat,socialSecurityNumber,companyRegistrationNumber

       op_condition_apply_c_socialSecurityNumber = org
       op_condition_c_socialSecurityNumber = ^$
       op_copy_c_socialSecurityNumber = orgno

       op_condition_apply_c_companyRegistrationNumber = org
       op_condition_c_companyRegistrationNumber = ^.+$
       op_copy_c_companyRegistrationNumber = orgno

       op_copy_c_vat = vatno

       <connection>
               process_name    = .COM OP registration
               ratelimit       = 0
               handles         interactive
               handles         registration
               handles         renewal
       </connection>
</tld>

3.2.12. .de through the Openprovider plugin

<tld>
       name            = de
       registry_type   = openprovider

       supports_poll   = 0
       
	   dri_timeout     = 60
	   dri_remote_url  = https://epp.cte.openprovider.eu/
	   dri_username    = atomia
	   dri_password    = qwerasdfzxcv

	   dri_driver      = Openprovider

	   global_contact_authinfo =

	   contact_id_generated_by_registry = 1
	   transfer_include_contacts = 1

	   periodic_registry_plugin_task = 0

	   initial_years = 1

	   domain_create_no_authinfo = 1

	   # Custom fields(extensions) for contact #
	   # Meaning: Copy value from orgno to: socialSecurityNumber ext. if org is empty; companyRegistrationNumber ext. if org is not empty. #
	   # Also, copy vatno into vat extension for contact. #
	   op_fields_to_send_c = vat,socialSecurityNumber,companyRegistrationNumber

       op_condition_apply_c_socialSecurityNumber = org
       op_condition_c_socialSecurityNumber = ^$
       op_copy_c_socialSecurityNumber = orgno

       op_condition_apply_c_companyRegistrationNumber = org
       op_condition_c_companyRegistrationNumber = ^.+$
       op_copy_c_companyRegistrationNumber = orgno

       op_copy_c_vat = vatno
	   
	   # Custom fields(extensions) for domain #
	   # Meaning: Send useDomicile if contact country not DE. Defalt value to send: true #
	   # So, trustee services will be used for all contacts outside of Germany with this configuration #
	   op_fields_to_send_d = useDomicile
       op_condition_apply_d_useDomicile = country
       op_condition_d_useDomicile = ^((?!DE).)*$
       op_default_d_useDomicile = true

       <connection>
               process_name    = .COM DE registration
               ratelimit       = 0
               handles         interactive
               handles         registration
               handles         renewal
       </connection>
</tld>

3.2.13. .com through the RRPProxy plugin

<tld>
       name            = com
       registry_type   = rrpproxy

       supports_poll   = 0
       autorenew       = 0

       epp_timeout     = 60
       epp_hostname  = epp-ote.rrpproxy.net
       epp_port = 1700
       dri_username    = atomia_ote
       dri_password    = summer2014

       dri_driver      = RRPProxy

       transliterate_contact = 1
       transfer_include_contacts = 1

        contact_id_generated_by_registry = 1

       <connection>
               process_name    = .COM RRPProxy registration
               ratelimit       = 0
               handles         interactive
               handles         registration
               handles         renewal
               handles         periodic
       </connection>
</tld>

3.2.14. .se through the RRPProxy plugin

# Explanation about RRPProxy specific configuration. It is possible to define for every tld:
#	1. rrpproxy_fields_to_send_<suffix> -> defines which fields to send as extension data. 
#		<suffix> can be letter c or letter d; c is for fields to be sent when creating contact, and d when registering a domain.
#		Value should be property names, separated with a comma(,).
#		Example: rrpproxy_fields_to_send_c = nicse-vatid,forceduplication
#
#	2. rrpproxy_condition_apply_<suffix> -> defines that there should be a condition applied for all the fields specified in rrpproxy_fields_to_send_<suffix>
#		Value: Name of one of the contact properties
#		Example: rrpproxy_condition_apply_c = country
#
#	3. rrpproxy_condition_apply_<suffix>_<field> -> defines that there should be a condition applied for field <field> specified in rrpproxy_fields_to_send_<suffix>
#		Value: Name of one of the contact properties. 
#		If left empty, field will be sent without condition(thus overriding any condition specified with rrpproxy_condition_apply_<suffix> and rrpproxy_condition_<suffix>)
#		Example: rrpproxy_condition_apply_c_nicse-vatid = country
#
#	4. rrpproxy_condition_<suffix> -> specifies regex that should be applied to a field from rrpproxy_condition_apply_<suffix>, before sending all of the fields.
#		Value: regex
#		Example: rrpproxy_condition_c = ^SE$
#		this, together with 2. says that no fields should be sent unless country fulfils ^SE$ regex (which means country should be Sweden).
#
#	5. rrpproxy_condition_<suffix>_<field> -> specifies regex that should be applied to a field from rrpproxy_condition_apply_<suffix>_<field>, before sending <field> field.
#		Value: regex
#		Example: rrpproxy_condition_c_nicse-vatid = ^SE$
#		this, together with 3. says that nicse-vatid should be sent only if country fulfils ^SE$ regex (which means country should be Sweden).
#
#	6. rrpproxy_copy_<suffix>_<field> -> specifies that value for the field <field> should be copied from a contact property.
#		Value: which contact property should be copied.
#		Example: rrpproxy_copy_c_nicse-vatid = vatno
#		puts vatno from contact into nicse-vatid extension for contact
#
#	7. rrpproxy_default_<suffix>_<field> -> defines default value to be sent for field <field>, when creating contact or domain (depends on <suffix>). 
#		This is used only if nothing was found in registry specific attributes, contact custom fields and rrpproxy_copy_<suffix>_<field> was not defined (in that order).
#		Value: value to be sent by default, if nothing was found.
#		Example: rrpproxy_copy_c_forceduplication = 1
#		this means that forceduplication will always be sent when creating contact. Value will be 1 if not set otherwise in other places like contact custom fields. 

<tld>
       name            = se
       registry_type   = rrpproxy

       supports_poll   = 0
       autorenew       = 0

       epp_timeout     = 60
       epp_hostname  = epp-ote.rrpproxy.net
       epp_port = 1700
       dri_username    = atomia_ote
       dri_password    = summer2014

       dri_driver      = RRPProxy

       transliterate_contact = 1
       transfer_include_contacts = 1

       contact_id_generated_by_registry = 1
        
       rrpproxy_fields_to_send_c = nicse-vatid
       rrpproxy_copy_c_nicse-vatid = vatno

       rrpproxy_fields_to_send_d = nicse-idnumber
       rrpproxy_copy_d_nicse-idnumber = orgno

       <connection>
               process_name    = .SE RRPProxy registration
               ratelimit       = 0
               handles         interactive
               handles         registration
               handles         renewal
               handles         periodic
       </connection>
</tld>

3.2.15. .se through the SE plugin

<tld>
        name            = se
        registry_type   = se_epp

        supports_poll   = 1
        supports_dnssec = 1
        autorenew       = 1

        supports_sync   = 1
        sync_web_auth_url = https://epptestwebv3.iis.se/auth/login
        sync_web_auth_user = webuser
        sync_web_auth_pass = webpass
        sync_web_export_url = https://epptestwebv3.iis.se/search/testdomains/name/asc/0

	epp_hostname    = epptestv3.iis.se
	epp_username    = EPP_USERNAME
	epp_password    = EPP_PASS
        epp_ssl_keyfile = /etc/se_key.pem
        epp_ssl_certfile = /etc/se_cert.pem
        epp_port        = 700
        epp_timeout     = 10
        dri_driver      = SE

        epp_login_service_filter = (urn:ietf:params:xml:ns:(domain|contact|host|secDNS)-1.0|urn:se:iis:xml:epp:iis-1.2)
        <epp_extension_parameters>
                iis_extension_version = 1.2
        </epp_extension_parameters>

        <connection>
                process_name    = .SE interactive
                ratelimit       = 40
                handles         interactive
        </connection>
        <connection>
                process_name    = .SE registration
                ratelimit       = 400
                handles         registration
        </connection>
        <connection>
                process_name    = .SE renewal
                ratelimit       = 40
                handles         renewal
        </connection>
        <connection>
                process_name    = .SE periodic
                ratelimit       = 0
                handles         periodic
                handles         local
        </connection>
</tld>