| Reseller Help: Reseller Tools Help : Installing Client Code | |
| What client implementations are available for the OpenSRS system? | |
| How do I install the Client Code on my server? | |
| Is the official Perl client distribution compatible with mod_perl? | |
| My domain lookups take a long time, how do I speed them up? | |
| Is there a way to selectively save or immediately process my orders? | |
| What is a bulk transfer and how to use it? | |
| Is there a way to check the transfer state using the API? | |
Q:What client implementations are available for the OpenSRS system?![]() | |
A:OpenSRS officially supports a Perl-based client which includes a client library (http://opensrs.com/resources/clientcode/ ) and a set of CGIs. There are also various unofficial and third-party implementations in Perl, Java, C++ and PHP hosted on SourceForge: http://sourceforge.net/search/ just search for opensrs. | |
![]() | |
Q:How do I install the Client Code on my server?![]() | |
A:We have extensive documentation available that covers the installation comprehensively. You can find the documentation on the Documentation page: http://opensrs.com/resources/documentation | |
![]() | |
Q:Is the official Perl client distribution compatible with mod_perl? ![]() | |
A:Yes. We recommend using mod_perl (http://perl.apache.org/) for faster page serving. | |
![]() | |
Q:My domain lookups take a long time, how do I speed them up? ![]() | |
A:First, make sure that your web server is optimized for performance. If you are using Apache web server, check out this page: http://httpd.apache.org/docs/misc/perf-tuning.html. We recommend to use some kind of web server caching techniques, such as mod_perl to achieve the best performance. Next, check if there are any bottlenecks in the network between your web site and OpenSRS servers. There are many tools available to investigate the network issues: e.g. traceroute. If everything looks good so far, please check 'lookup_all_tlds' in your OpenSRS.conf. If this option is set, then the client code may issue several lookup commands to the server - even though you wanted to do a single lookup. Here is the default configuration from OpenSRS.conf: # flag for lookup_all_tlds and # array ref of array refs of related TLDs: see the # lookup_domain() # and getRelatedTlds() methods in XML_Client. # a TLD must not be repeated in more than one array. # RELATED_TLDS really only comes into play when "lookup_all_tlds" # is set to 1 (ie. true). # # ps. be careful when registering a mix of domains when # the different TLDs have different period years restrictions lookup_all_tlds => 1, # lookup related available domains RELATED_TLDS => [ [ ".ca" ], [ ".com", ".net", ".org" ], [ ".co.uk", ".org.uk" ], [ ".vc" ], [ ".cc" ], # with this array, you can provide suggestions # for catchy suffixes to domain names. # [ ".com", ".net", ".org", # "online.com", "wired.com", "plugged.com", # "online.net", "wired.net", "plugged.net", # "online.org", "wired.org", "plugged.org" ], ], ); Depending on your setup, you may want to set 'lookup_all_tlds' to 0 to disable multiple lookups. Also, be aware that the registry responsiveness is a large factor in the speed of the lookup call: OpenSRS asks the appropriate registry for each lookup command; some registries are slower than others. The typical OpenSRS overhead is about 100ms for a single lookup. Here are OpenSRS lookup round trip timings for most registries (measured with the standard perl client, ping time to the server was within 1ms, measurements taken between 12 and 6pm Eastern): Registry: Full round trip, client/client, in ms ================================ Verisign (.com/.net): 200-400 Verisign (.cc): 400-600 Afilias (.info): 250-350 Neulevel (.biz): 250-350 CIRA (.ca): 200-300 Nominet (.uk): 350-500 Dot TV (.tv): 1,250-1,750 These timings fluctuate during the day: registry performance can degrade significantly during landrush periods or drop names periods. To further optimize domain lookup performance, we are looking into introducing a 'bulk lookup' API call: the client code would submit several domains in one API call: this would cut down network overhead. There are also other options for submitting a large number of domain lookups: if you don't need the real-time accuracy and can live with up to 24 hours stale information, then you can use NameBrain (http://www.namebrain.com) - this is only available for .com/.net/.org domains. | |
![]() | |
Q:Is there a way to selectively save or immediately process my orders?![]() | |
A:API calls 'sw_register' and 'renew' support the 'handle' parameter, it has 2 possible values: 'save' and 'process'. If you set this parameter, then your default order behaviour (as specified in the RWI settings) will be overriden. Using this paramater, you can flexibly control the way your orders are processed: for example you can set up in the RWI for all orders to be immediately executed, but use 'handle => 'save'' for orders over $100 dollars - in order to minimize the fraud risk - you can later check pending orders in the RWI and manually process them. $request = { 'object' => 'domain', 'action' => 'sw_register', 'attributes' => { 'handle' => 'save', # or 'process' ... } }; | |
![]() | |
Q:What is a bulk transfer and how to use it?![]() | |
A:Sometimes, a registrant owns a large number of domains and would like to transfer them to OpenSRS. If using the normal transfer process, they would receive an individual email message and have to confirm each domain transfer individually - which can be very tedious. OpenSRS supports a transfer bulk operation: if you submit a bulk transfer request, then the list of domains will be grouped by the admin contact email address and one email message will be sent to each address: it will contain the list of domains and one transfer request key only. The registrant can then confirm (or deny) the transfer with just one visit to the transfer confirmation web page. Here is how to use from the API: my $request = { action => 'bulk_transfer', object => 'domain', registrant_ip => undef, attributes => { affiliate_id => undef, domain_list => ['one.com', 'two.com', ... ], reg_domain => undef, reg_username => 'john123', reg_password => 'password', custom_tech_contact => 0, contact_set => { ... }, }, }; | |
![]() | |
Q:Is there a way to check the transfer state using the API?![]() | |
A:Yes, use 'check_transfer' API call: my $request = { action => 'check_transfer', object => 'domain', attributes => { domain => 'one.com' }, }; Here is a sample response: { is_success => 1, response_text => 'Query successful', response_code => 200, attributes => { status => 'pending_owner', type => 'REG2REG', unixtime' => '1015339610', timestamp => 'Tue Mar 5 09:46:50 2002' transferrable => 0, reason => 'Transfer in progress', }, }; Please read the API document for the explanation of all attributes. Note that you will only get 'status', 'type', 'unixtime' and 'timestamp' attributes if the transfer was initiated by you: 'check_transfer' calls for transfers from other resellers will only have 'transferrable' and 'reason' attributes. | |
![]() | |