Closed

Fix a Perl script bug for didww_ordercreate DIDww API call

This project was awarded to cmax4u for $80 USD.

Get free quotes for a project like this
Employer working
Awarded to:
Skills Required
Project Budget
$30 - $250 USD
Total Bids
10
Project Description

I am in the process of creating a Perl script on Linux CentOS 6.3 that will make use of the [url removed, login to view] API which is documented here:

[url removed, login to view]

I am able to connect and use some of the function calls such as didww_getdidwwcountries and didww_getdidwwcities
but I am unable to find my way with didww_ordercreate.

The function call is documented here:

[url removed, login to view]

This is what I have up so far. I need that function to accept 4 parameters, make the call, and print to STDERR the
results that is being returned by their API. This API call presently doesn't work as it seems to be returning nothing
and I suspect that it is because of the way the %params array is defined and pass to the API. It can also be something else.

Apart from debugging this problem I also need error handling to be implemented. The errors codes are listed here:

[url removed, login to view]

It's just a matter of printing to STDERR the error code number when one is found.
So two little things to be done, here is the script. If there is a better way to do it
then I am fine with it.

-------------------------------- script -----------------------------
#!/usr/bin/perl

use SOAP::Lite;
use Digest::SHA1 qw(sha1_hex);
use Digest::MD5 'md5_hex';
use Data::Dumper qw(Dumper);

$username = '';
$key = '';

my $auth_string = sha1_hex($username.$key.'sandbox');
my $url = '[url removed, login to view]';

my $soap = SOAP::Lite->new();
my $service = $soap->service('[url removed, login to view]');


# Function that works well
sub DIDww_GetAllCountries() {

my @res = $service->didww_getdidwwcountries($auth_string,'');

foreach $e (@res) {
for $i (0 .. $#{$e}) {
print STDERR $e->[$i]->{country_name} . " ";
print STDERR $e->[$i]->{country_prefix} . " ";
print STDERR $e->[$i]->{country_iso} . "\n";
}
}
}


# Problematic function
sub DIDww_OrderDID() {

my ($orderid, $ISO, $cityprefix, $cityid) = @_;

my %params = ('map_type', 'URI',
'map_proto', 'SIP',
'map_detail', '[url removed, login to view]',
'map_pref_server', 0,
'map_itsp_id', '',
'cli_format', 'raw',
'cli_prefix', '');

my $res = $service->didww_ordercreate($auth_string, '64', $ISO, $cityprefix, 1, \%params, '0', md5_hex($orderid), $cityid, 1);

foreach $e (@res) {
for $i (0 .. $#{$e}) {
print STDERR $e->[$i]->{result} . " ";
print STDERR $e->[$i]->{country_name} . " ";
print STDERR $e->[$i]->{city_name} . " ";
print STDERR $e->[$i]->{did_number} . " ";
print STDERR $e->[$i]->{did_status} . " ";
print STDERR $e->[$i]->{did_timeleft} . " ";
print STDERR $e->[$i]->{did_expire_date_gmt} . " ";
print STDERR $e->[$i]->{order_id} . " ";
print STDERR $e->[$i]->{order_status} . " ";
print STDERR $e->[$i]->{did_mapping_format} . " ";
print STDERR $e->[$i]->{did_setup} . " ";
print STDERR $e->[$i]->{did_monthly} . " ";
print STDERR $e->[$i]->{did_period} . " ";
print STDERR $e->[$i]->{prepaid_balance} . "\n";
}
}
}

&DIDww_GetCountries();
&DIDww_OrderDID('1042','AT','1','444');

exit(0);

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online