Integrating BILLmanager with DNSmanager
Integration for providing custom services
Once you have integrated BILLmanager with DNSmanager, two types of users can be created: with private name servers (a certain IP address will be assigned to user) and with provider's name servers.
Private name servers
To enable your clients to provide a domain name for their NS server, select the "Private name servers" check box in the service package edit form. When ordering a service, the client will be able to specify his domain name, such as "ns.mynameserver.com".
If the service set up based on DNSmanager 5, created server can be used as master name server for domains with zone transfer.
Provider name servers
This option can be used only if the server was configured with reseller permissions and check box "Private name server" must be cleared. When the customer orders a service, he won't be asked to provide a domain name.
When creating a user account in DNSmanager, the domain name specified in View field of the server configuration form.
This option enables to IP addresses.
Integration for providing additional services
Integration with DNSmanager enables you to manage services' add-ons of the "Name server" type (the "ns" internal name). Depending on the package or service selected by user, either private or provider name servers will be created.
Consult our Documentation page for more information on how to add and configure a service package
Complete the following steps:
- Go to the "Integration with DNSmanager" module to add new or existing servers running DNSmanager. Specify whether they will be used for private or provider name servers. Besides, provide the maximum number of domain names per account a client will be allowed to add in DNSmanager.
- Enable the "Use integration with DNSmanager" for the server where the service will be hosted. Once completed, BILLmanager will start managing the servers.
Currently, BILLmanager can process "Name server" add-ons for the following control panels:
- VDSmanager (be advised to disable integration with name servers in DNSmanager)
Operations that BILLmanager performs when processing services
There can be there scenarios if a user orders the service with the "Name server" add-on:
- The client cancels the name server. In this case integration with DNSmanager is ignored and the service is processed in a usual way.
- The client orders private name servers. BILLmanager selects the first server with DNSmanager that is assigned to the same project as the service package and that can use private name server. Once the main service is processed, BILLmanager creates a user account in DNSmanager. Provide a domain name of the service as a name space. Account access details are saved in the BILLmanager database and can be used in the service setup message.
- The client orders a name server on provider's name servers. In this case accounts are created on all the servers running DNSmanager assigned to the same project as the service package and for which the service processing option "Provider name server" is set. Accounts are also saved into the BILLmanager database.
In the second and third cases for VDSmanager and VMmanager control panels the integration module is trying to configure support for name servers in ISPmanager, if it is installed on the virtual server. If private name servers are used, in ISPmanager the domain naame ns2.service_domain_name is created that will be used as a slave name server for all the domains that are added in ISPmanager. As default names servers in ISPmanager name servers specified in the project edit form are provided, for provider name server and name servers in the virtual server's domain for private name servers.
Once accounts for connecting to DNSmanager are created in ISPmanager, BILLmanager will synchronize the domain names configured in ISPmanager with a list of domains in DNSmanager. The operation is performed in the same way as though the user clicked the "Update" icon in the "Domain names" module in ISPmanager.
If ISPmanager is not installed on the virtual server or if BILLmanager failed to access it, the client will receive the message and a ticket with DNSmanager access details (in version 188.8.131.52 and later the message will be sent in any case).
When modifying the "Name server" add-on once the service is processes the following situations may occur:
- The client does not order name server. The service will be processed as described above.
- The client orders name servers of a different type. In this case the previous accounts are deleted from DNSmanager and new ones with required type are created.
Depending on the control panel that is used for the main service, the format of the DNSmanager user can be as follows:
- VDSmanager - pXX.XX.XX.XX, where XX.XX.XX.XX is the main IP address of the virtual server in VDSmanager. This allows for compatibility with DNSmanager integration configured in VDSmanager and switch from one scheme into the other.
- VMmanager/VEmanager - similar to the virtual server name.
Steps you need to perform when transferring integration functions from DNSmanager and VDSmanager to BILLmanager
To make BILLmanager "know" the server types when managing accounts, you need to specify in the database information about the type of accounts that are currentky used. Execute the following requests to the database:
insert into item2server (item, username, dnsserver, nstype) select distinct i.id, concat('p', v.ip), dns.pid, 'dnsprovider' from item i left join vds v on v.pid = i.id left join pricelist p on p.id = i.price left join server s on s.id = i.server left join dnsserver dns on dns.project = p.project and dns.useforprovider = 1 where dns.pid is not null and i.status in (2,3,5) and i.parent is null and i.id in (select parent from item where enumitem = (select id from enumerationitem where internalname = 'dnsprovider')) and p.type in (select id from itemtype where module = 'vds') and i.id not in (select item from item2server) and s.cpmodule = 'cpvdsmgr' and v.ip is not null order by i.id; - for provider name servers
insert into item2server (item, username, dnsserver, nstype) select distinct i.id, concat('p', v.ip), dns.pid, 'dnsprivate' from item i left join vds v on v.pid = i.id left join pricelist p on p.id = i.price left join server s on s.id = i.server left join dnsserver dns on dns.project = p.project and dns.useforprivate = 1 where dns.pid is not null and i.status in (2,3,5) and i.parent is null and i.id in (select parent from item where enumitem = (select id from enumerationitem where internalname = 'dnsprivate')) and p.type in (select id from itemtype where module = 'vds') and i.id not in (select item from item2server) and s.cpmodule = 'cpvdsmgr' and v.ip is not null order by i.id; - for private name servers