SMS::Send::KR::APIStore - An SMS::Send driver for the SMS

    version 0.003

        use SMS::Send;

        # create the sender object
        my $sender = SMS::Send->new('KR::APIStore',
            _id            => 'keedi',
            _api_store_key => 'XXXXXXXX',
            _from          => '01025116893',

        # send a message
        my $sent = $sender->send_sms(
            text  => 'You message may use up to 80 chars and must be utf8',
            to    => '01012345678',

        unless ( $sent->{success} ) {
            warn "failed to send sms: $sent->{reason}\n";

            # if you want to know detail more, check $sent->{detail}
            use Data::Dumper;
            warn Dumper $sent->{detail};

        # Of course you can send LMS
        my $sender = SMS::Send->new('KR::APIStore',
            _id            => 'keedi',
            _api_store_key => 'XXXXXXXX',
            _type          => 'lms',
            _from          => '01025116893',

        # You can override _from or _type

        # send a message
        my $sent = $sender->send_sms(
            text     => 'You LMS message may use up to 2000 chars and must be utf8',
            to       => '01025116893',
            _from    => '02114',             # you can override $self->_from
            _type    => 'LMS',               # you can override $self->_type
            _subject => 'This is a subject', # subject is optional & up to 40 chars

        # check the result
        my $result = $sender->report("20130314163439459");
        printf "success:     %s\n", $result->{success} ? 'success' : 'fail';
        printf "reason:      %s\n", $result->{reason};
        printf "call_status: %s\n", $result->{call_status};
        printf "dest_phone:  %s\n", $result->{dest_phone};
        printf "report_time: %s\n", $result->{report_time};
        printf "cmid:        %s\n", $result->{cmid};
        printf "umid:        %s\n", $result->{umid};

        # you can use cmid of the send_sms() result
        my $sent = $sender->send_sms( ... );
        my $result = $sender->report( $sent->{detail}{cmid} );

        # or you can use the send_sms() result itself
        my $sent = $sender->send_sms( ... );
        my $result = $sender->report($sent);

        # set caller id

        # set caller id only
        my $ret = $sender->cid( "0XXXXXXXXX" );

        # set caller id and its description
        my $ret = $sender->cid( "0XXXXXXXXX", "Office #201" );

        # get caller id list
        my $ret = $sender->cid;
        if ( $ret->{success} ) {
            my $cids = $ret->{number_list};
            my $idx = 0;
            for my $cid (@$cids) {
                say "$idx:";
                say "     client_id: " . $cid->{client_id};
                say "       comment: " . ( $cid->{comment} || q{} );
                say "    sendnumber: " . $cid->{sendnumber};
        else {
            say "failed to get cid info: $ret->{reason}"

    SMS::Send driver for sending SMS messages with the APIStore SMS service
    <>. Current
    version of APIStore SMS service DOES NOT support HTTPS, so you have to
    use this module at your own risk.

    DO NOT change this value except for testing purpose. Default is

    The agent value is sent as the "User-Agent" header in the HTTP requests.
    Default is "SMS-Send-KR-APIStore/#.###".

    HTTP request timeout seconds. Default is 3.

    Required. APIStore API id for REST API.

    Required. APIStore API key for REST API.

    Required. Source number to send sms.

    Type of sms. Currently "SMS" and "LMS" are supported. Default is "SMS".

    Delay second between sending sms. Default is 0.

    This constructor should not be called directly. See SMS::Send for

    Available parameters are:

    *   _url

    *   _agent

    *   _timeout

    *   _from

    *   _type

    *   _delay

    *   _id

    *   _api_store_key

    This method should not be called directly. See SMS::Send for details.

    Available parameters are:

    *   text

    *   to

    *   _from

    *   _type

    *   _delay

    *   _subject

    *   _epoch

    This method checks the result of the request.

    This method gets/sets the caller id information.

    *   SMS::Send

    *   SMS::Send::Driver

    *   APIStore REST API

  Bugs / Feature Requests
    Please report any bugs or feature requests through the issue tracker at
    <>. You will be
    notified automatically of any progress on your issue.

  Source Code
    This is open source software. The code repository is available for
    public review and contribution under the terms of the license.


      git clone

    κΉ€λ„ν˜• - Keedi Kim <>

    Hyungsuk Hong <>

    This software is copyright (c) 2017 by Keedi Kim.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.