text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: BaseUserService.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Client_ClientAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Client/ClientAbstract.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseUserService/GetQuotaInformationResponse.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseUserService/ChangeQuotaPoolResponse.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseUserService/GetAccountBalanceResponse.php';

/**
 * @see Zend_Service_DeveloperGarden_BaseUserService_AccountBalance
 */
require_once 'Zend/Service/DeveloperGarden/BaseUserService/AccountBalance.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation
 */
require_once 'Zend/Service/DeveloperGarden/Request/BaseUserService/GetQuotaInformation.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool
 */
require_once 'Zend/Service/DeveloperGarden/Request/BaseUserService/ChangeQuotaPool.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance
 */
require_once 'Zend/Service/DeveloperGarden/Request/BaseUserService/GetAccountBalance.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_BaseUserService extends Zend_Service_DeveloperGarden_Client_ClientAbstract
{
    /**
     * wsdl file
     *
     * @var string
     */
    protected $_wsdlFile = 'https://gateway.developer.telekom.com/p3gw-mod-odg-admin/services/ODGBaseUserService?wsdl';

    /**
     * wsdl file local
     *
     * @var string
     */
    protected $_wsdlFileLocal = 'Wsdl/ODGBaseUserService.wsdl';

    /**
     * Response, Request Classmapping
     *
     * @var array
     *
     */
    protected $_classMap = array(
        'getQuotaInformationResponse' =>
            'Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse',
        'changeQuotaPoolResponse' =>
            'Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse',
        'getAccountBalanceResponse' =>
            'Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse',
        'AccountBalance' =>
            'Zend_Service_DeveloperGarden_BaseUserService_AccountBalance',
    );

    /**
     * array with all QuotaModuleIds
     *
     * @var array
     */
    protected $_moduleIds = array(
        'SmsProduction'            => 'SmsProduction',
        'SmsSandbox'               => 'SmsSandbox',
        'VoiceCallProduction'      => 'VoiceButlerProduction',
        'VoiceCallSandbox'         => 'VoiceButlerSandbox',
        'ConferenceCallProduction' => 'CCSProduction',
        'ConferenceCallSandbox'    => 'CCSSandbox',
        'LocalSearchProduction'    => 'localsearchProduction',
        'LocalSearchSandbox'       => 'localsearchSandbox',
        'IPLocationProduction'     => 'IPLocationProduction',
        'IPLocationSandbox'        => 'IPLocationSandbox'
    );

    /**
     * returns an array with all possible ModuleIDs
     *
     * @return array
     */
    public function getModuleIds()
    {
        return $this->_moduleIds;
    }

    /**
     * checks the moduleId and throws exception if not valid
     *
     * @param string $moduleId
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return void
     */
    protected function _checkModuleId($moduleId)
    {
        if (!in_array($moduleId, $this->_moduleIds)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('moduleId not valid');
        }
    }

    /**
     * returns the correct module string
     *
     * @param string $module
     * @param integer $environment
     * @return string
     */
    protected function _buildModuleString($module, $environment)
    {
        $moduleString = $module;
        switch($environment) {
            case self::ENV_PRODUCTION :
                $moduleString .= 'Production';
                break;
            case self::ENV_SANDBOX :
                $moduleString .= 'Sandbox';
                break;
            default:
                require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
                throw new Zend_Service_DeveloperGarden_Client_Exception(
                    'Not a valid environment supplied.'
                );
        }

        if (!in_array($moduleString, $this->_moduleIds)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception(
                'Not a valid module name supplied.'
            );
        }

        return $moduleString;
    }

    /**
     * returns the request object with the specific moduleId
     *
     * @param string $moduleId
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    protected function _getRequestModule($moduleId)
    {
        return new Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation(
            $moduleId
        );
    }

    /**
     * returns the request object with the specific moduleId and new quotaMax value
     *
     * @param string $moduleId
     * @param integer $quotaMax
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    protected function _getChangeRequestModule($moduleId, $quotaMax)
    {
        return new Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool(
            $moduleId,
            $quotaMax
        );
    }

    /**
     * returns the Quota Information for SMS Service
     *
     * @param int $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    public function getSmsQuotaInformation($environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('Sms', $environment);
        $request  = $this->_getRequestModule($moduleId);
        return $this->getQuotaInformation($request);
    }

    /**
     * returns the Quota Information for VoiceCall Service
     *
     * @param int $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    public function getVoiceCallQuotaInformation($environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('VoiceButler', $environment);
        $request  = $this->_getRequestModule($moduleId);
        return $this->getQuotaInformation($request);
    }

    /**
     * returns the Quota Information for SMS ConferenceCall
     *
     * @param int $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    public function getConfernceCallQuotaInformation($environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('CCS', $environment);
        $request  = $this->_getRequestModule($moduleId);
        return $this->getQuotaInformation($request);
    }

    /**
     * returns the Quota Information for LocaleSearch Service
     *
     * @param int $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    public function getLocalSearchQuotaInformation($environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('localsearch', $environment);
        $request  = $this->_getRequestModule($moduleId);
        return $this->getQuotaInformation($request);
    }

    /**
     * returns the Quota Information for IPLocation Service
     *
     * @param int $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    public function getIPLocationQuotaInformation($environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('IPLocation', $environment);
        $request  = $this->_getRequestModule($moduleId);
        return $this->getQuotaInformation($request);
    }

    /**
     * returns the quota information
     *
     * @param Zend_Service_DeveloperGarden_Request_BaseUserService $request
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetQuotaInformationResponse
     */
    public function getQuotaInformation(
        Zend_Service_DeveloperGarden_Request_BaseUserService_GetQuotaInformation $request
    ) {
        $this->_checkModuleId($request->getModuleId());
        return $this->getSoapClient()
                    ->getQuotaInformation($request)
                    ->parse();
    }

    /**
     * sets new user quota for the sms service
     *
     * @param integer $quotaMax
     * @param integer $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
     */
    public function changeSmsQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('Sms', $environment);
        $request  = $this->_getChangeRequestModule($moduleId, $quotaMax);
        return $this->changeQuotaPool($request);
    }

    /**
     * sets new user quota for the voice call service
     *
     * @param integer $quotaMax
     * @param integer $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
     */
    public function changeVoiceCallQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('VoiceButler', $environment);
        $request  = $this->_getChangeRequestModule($moduleId, $quotaMax);
        return $this->changeQuotaPool($request);
    }

    /**
     * sets new user quota for the IPLocation service
     *
     * @param integer $quotaMax
     * @param integer $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
     */
    public function changeIPLocationQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('IPLocation', $environment);
        $request  = $this->_getChangeRequestModule($moduleId, $quotaMax);
        return $this->changeQuotaPool($request);
    }

    /**
     * sets new user quota for the Conference Call service
     *
     * @param integer $quotaMax
     * @param integer $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
     */
    public function changeConferenceCallQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('CCS', $environment);
        $request  = $this->_getChangeRequestModule($moduleId, $quotaMax);
        return $this->changeQuotaPool($request);
    }

    /**
     * sets new user quota for the Local Search service
     *
     * @param integer $quotaMax
     * @param integer $environment
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
     */
    public function changeLocalSearchQuotaPool($quotaMax = 0, $environment = self::ENV_PRODUCTION)
    {
        self::checkEnvironment($environment);
        $moduleId = $this->_buildModuleString('localsearch', $environment);
        $request  = $this->_getChangeRequestModule($moduleId, $quotaMax);
        return $this->changeQuotaPool($request);
    }

    /**
     * set new quota values for the defined module
     *
     * @param Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool $request
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_ChangeQuotaPoolResponse
     */
    public function changeQuotaPool(
        Zend_Service_DeveloperGarden_Request_BaseUserService_ChangeQuotaPool $request
    ) {
        $this->_checkModuleId($request->getModuleId());
        return $this->getSoapClient()
                    ->changeQuotaPool($request)
                    ->parse();
    }

    /**
     * get the result for a list of accounts
     *
     * @param array $accounts
     * @return Zend_Service_DeveloperGarden_Response_BaseUserService_GetAccountBalanceResponse
     */
    public function getAccountBalance(array $accounts = array())
    {
        $request = new Zend_Service_DeveloperGarden_Request_BaseUserService_GetAccountBalance(
            $accounts
        );
        return $this->getSoapClient()
                    ->getAccountBalance($request)
                    ->parse();
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Credential.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Credential
{
    /**
     * Service Auth Username
     *
     * @var string
     */
    protected $_username = null;

    /**
     * Service Password
     *
     * @var string
     */
    protected $_password = null;

    /**
     * Service Realm - default t-online.de
     *
     * @var string
     */
    protected $_realm = 't-online.de';

    /**
     * constructor to init the internal data
     *
     * @param string $username
     * @param string $password
     * @param string $realm
     * @return Zend_Service_DeveloperGarden_Credential
     */
    public function __construct($username = null, $password = null, $realm = null)
    {
        if (!empty($username)) {
            $this->setUsername($username);
        }
        if (!empty($password)) {
            $this->setPassword($password);
        }
        if (!empty($realm)) {
            $this->setRealm($realm);
        }
    }

    /**
     * split the password into an array
     *
     * @param string $password
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setPassword($password = null)
    {
        if (empty($password)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Empty password not permitted.');
        }

        if (!is_string($password)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Password must be a string.');
        }

        $this->_password = $password;
        return $this;
    }

    /**
     * returns the current configured password
     *
     * @return string
     */
    public function getPassword()
    {
        return $this->_password;
    }

    /**
     * set the new login
     *
     * @param string $username
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setUsername($username = null)
    {
        if (empty($username)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Empty username not permitted.');
        }

        if (!is_string($username)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Username must be a string.');
        }

        $this->_username = $username;
        return $this;
    }

    /**
     * returns the username
     *
     * if $withRealm == true we combine username and realm like
     * username@realm
     *
     * @param bool $withRealm
     * @return string|null
     */
    public function getUsername($withRealm = false)
    {
        $retValue = $this->_username;
        if ($withRealm) {
            $retValue = sprintf(
                '%s@%s',
                $this->_username,
                $this->_realm
            );
        }
        return $retValue;
    }

    /**
     * set the new realm
     *
     * @param string $realm
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setRealm($realm = null)
    {
        if (empty($realm)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Empty realm not permitted.');
        }

        if (!is_string($realm)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Realm must be a string.');
        }

        $this->_realm = $realm;
        return $this;
    }

    /**
     * returns the realm
     *
     * @return string|null
     */
    public function getRealm()
    {
        return $this->_realm;
    }
}

repo_name: michael-romer/zf-boilerplate

repo_language: PHP

mime_type: text/html


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: SmsValidation.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Client_ClientAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Client/ClientAbstract.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers
 */
require_once 'Zend/Service/DeveloperGarden/Request/SmsValidation/GetValidatedNumbers.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/SmsValidation/GetValidatedNumbersResponse.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber
 */
require_once 'Zend/Service/DeveloperGarden/Response/SmsValidation/ValidatedNumber.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword
 */
require_once 'Zend/Service/DeveloperGarden/Request/SmsValidation/SendValidationKeyword.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/SmsValidation/SendValidationKeywordResponse.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_SmsValidation_Validate
 */
require_once 'Zend/Service/DeveloperGarden/Request/SmsValidation/Validate.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/SmsValidation/ValidateResponse.php';

/**
 * @see Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate
 */
require_once 'Zend/Service/DeveloperGarden/Request/SmsValidation/Invalidate.php';

/**
 * @see Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/SmsValidation/InvalidateResponse.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_SmsValidation extends Zend_Service_DeveloperGarden_Client_ClientAbstract
{
// @codeCoverageIgnoreStart
    /**
     * wsdl file
     *
     * @var string
     */
    protected $_wsdlFile = 'https://gateway.developer.telekom.com/p3gw-mod-odg-sms-validation/services/SmsValidationUserService?wsdl';

    /**
     * wsdl file local
     *
     * @var string
     */
    protected $_wsdlFileLocal = 'Wsdl/SmsValidationUserService.wsdl';

    /**
     * Response, Request Classmapping
     *
     * @var array
     *
     */
    protected $_classMap = array(
        'getValidatedNumbersResponse'   => 'Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse',
        'ValidatedNumber'               => 'Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber',
        'sendValidationKeywordResponse' => 'Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse',
        'validateResponse'              => 'Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse',
        'invalidateResponse'            => 'Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse',
    );

    /**
     * validate the given number with the keyword
     *
     * @param string $keyword
     * @param string $number
     * @return Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse
     */
    public function validate($keyword = null, $number = null)
    {
        $request = new Zend_Service_DeveloperGarden_Request_SmsValidation_Validate(
            $this->getEnvironment(),
            $keyword,
            $number
        );

        return $this->getSoapClient()
                    ->validate($request)
                    ->parse();
    }

    /**
     * invalidate the given number
     *
     * @param string $number
     * @return Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse
     */
    public function inValidate($number = null)
    {
        $request = new Zend_Service_DeveloperGarden_Request_SmsValidation_Invalidate(
            $this->getEnvironment(),
            $number
        );

        return $this->getSoapClient()
                    ->invalidate($request)
                    ->parse();
    }

    /**
     * this function sends the validation sms to the given number,
     * if message is provided it should have to placeholder:
     * #key# = the validation key
     * #validUntil# = the valid until date
     *
     * @param string $number
     * @param string $message
     * @param string $originator
     * @param integer $account
     *
     * @return Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeywordResponse
     */
    public function sendValidationKeyword($number = null, $message = null, $originator = null, $account = null)
    {
        $request = new Zend_Service_DeveloperGarden_Request_SmsValidation_SendValidationKeyword(
            $this->getEnvironment()
        );
        $request->setNumber($number)
                ->setMessage($message)
                ->setOriginator($originator)
                ->setAccount($account);

        return $this->getSoapClient()
                    ->sendValidationKeyword($request)
                    ->parse();
    }

    /**
     * returns a list of validated numbers
     *
     * @return Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse
     */
    public function getValidatedNumbers()
    {
        $request = new Zend_Service_DeveloperGarden_Request_SmsValidation_GetValidatedNumbers(
            $this->getEnvironment()
        );
        return $this->getSoapClient()
                    ->getValidatedNumbers($request)
                    ->parse();
    }
// @codeCoverageIgnoreEnd
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: IpAddress.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Validate_Ip
 */
require_once 'Zend/Validate/Ip.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_IpLocation_IpAddress
{
    /**
     * the ip version
     * ip v4 = 4
     * ip v6 = 6
     *
     * @var integer
     */
    private $_version = 4;

    /**
     * currently supported versions
     *
     * @var array
     */
    private $_versionSupported = array(
        4,
        //6, not supported yet
    );

    private $_address = null;

    /**
     * create ipaddress object
     *
     * @param string $ip
     * @param integer $version
     *
     * @return Zend_Service_Developergarde_IpLocation_IpAddress
     */
    public function __construct($ip, $version = 4)
    {
        $this->setIp($ip)
             ->setVersion($version);
    }

    /**
     * sets new ip address
     *
     * @param string $ip
     * @throws Zend_Service_DeveloperGarden_Exception
     * @return Zend_Service_DeveloperGarden_IpLocation_IpAddress
     */
    public function setIp($ip)
    {
        $validator = new Zend_Validate_Ip();

        if (!$validator->isValid($ip)) {
            $message = $validator->getMessages();
            require_once 'Zend/Service/DeveloperGarden/Exception.php';
            throw new Zend_Service_DeveloperGarden_Exception($message['notIpAddress']);
        }
        $this->_address = $ip;
        return $this;
    }

    /**
     * returns the current address
     *
     * @return string
     */
    public function getIp()
    {
        return $this->_address;
    }

    /**
     * sets new ip version
     *
     * @param integer $version
     * @throws Zend_Service_DeveloperGarden_Exception
     * @return Zend_Service_DeveloperGarden_IpLocation_IpAddress
     */
    public function setVersion($version)
    {
        if (!in_array($version, $this->_versionSupported)) {
            require_once 'Zend/Service/DeveloperGarden/Exception.php';
            throw new Zend_Service_DeveloperGarden_Exception('Ip Version ' . (int)$version . ' is not supported.');
        }

        $this->_version = $version;
        return $this;
    }

    /**
     * returns the ip version
     *
     * @return integer
     */
    public function getVersion()
    {
        return $this->_version;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: ClientAbstract.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Client_Soap
 */
require_once 'Zend/Service/DeveloperGarden/Client/Soap.php';

/**
 * @see Zend_Service_DeveloperGarden_Credential
 */
require_once 'Zend/Service/DeveloperGarden/Credential.php';

/**
 * @see Zend_Service_DeveloperGarden_SecurityTokenServer
 */
require_once 'Zend/Service/DeveloperGarden/SecurityTokenServer.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
abstract class Zend_Service_DeveloperGarden_Client_ClientAbstract
{
    /**
     * constants for using with the odg api
     */
    const ENV_PRODUCTION = 1; // Production Environment
    const ENV_SANDBOX    = 2; // Sandbox Environment, limited access to the api
    const ENV_MOCK       = 3; // Api calls are without any functionality

    const PARTICIPANT_MUTE_OFF = 0; // removes mute from participant in a conference
    const PARTICIPANT_MUTE_ON  = 1; // mute participant in a conference
    const PARTICIPANT_RECALL   = 2; // recalls the participant in a conference

    /**
     * array of all possible env types
     *
     * @var int
     */
    static protected $_consts = null;

    /**
     * Available options
     *
     * @var array available options
     */
    protected $_options = array();

    /**
     * The service id to generate the auth service token
     *
     * @var string
     */
    protected $_serviceAuthId = 'https://odg.t-online.de';

    /**
     * Variable that holds the Zend_Service_DeveloperGarden env value
     *
     * @var int
     */
    protected $_serviceEnvironment = Zend_Service_DeveloperGarden_Client_ClientAbstract::ENV_PRODUCTION;

    /**
     * wsdl file
     *
     * @var string
     */
    protected $_wsdlFile = null;

    /**
     * the local wsdlFile
     *
     * @var string
     */
    protected $_wsdlFileLocal = null;

    /**
     * should we use the local wsdl file?
     *
     * @var boolean
     */
    protected $_useLocalWsdl = true;

    /**
     * class with credentials
     *
     * @var Zend_Service_DeveloperGarden_Credential
     */
    protected $_credential = null;

    /**
     * The internal Soap Client
     *
     * @var Zend_Soap_Client
     */
    protected $_soapClient = null;

    /**
     * array with options for classmapping
     *
     * @var array
     */
    protected $_classMap = array();

    /**
     * constructor
     *
     * @param array $options Associative array of options
     */
    public function __construct(array $options = array())
    {
        $this->_credential = new Zend_Service_DeveloperGarden_Credential();

        while (list($name, $value) = each($options)) {
            switch (ucfirst($name)) {
                case 'Username' :
                    $this->_credential->setUsername($value);
                    break;
                case 'Password' :
                    $this->_credential->setPassword($value);
                    break;
                case 'Realm' :
                    $this->_credential->setRealm($value);
                    break;
                case 'Environment' :
                    $this->setEnvironment($value);
            }
        }

        if (empty($this->_wsdlFile)) {
            require_once 'Zend/Service/DeveloperGarden/Exception.php';
            throw new Zend_Service_DeveloperGarden_Exception('_wsdlFile not set for this service.');
        }

        if (!empty($this->_wsdlFileLocal)) {
            $this->_wsdlFileLocal = realpath(dirname(__FILE__) . '/../' . $this->_wsdlFileLocal);
        }

        if (empty($this->_wsdlFileLocal) || $this->_wsdlFileLocal === false) {
            require_once 'Zend/Service/DeveloperGarden/Exception.php';
            throw new Zend_Service_DeveloperGarden_Exception('_wsdlFileLocal not set for this service.');
        }
    }

    /**
     * Set an option
     *
     * @param  string $name
     * @param  mixed $value
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setOption($name, $value)
    {
        if (!is_string($name)) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception('Incorrect option name: ' . $name);
        }
        $name = strtolower($name);
        if (array_key_exists($name, $this->_options)) {
            $this->_options[$name] = $value;
        }

        return $this;
    }

    /**
     * get an option value from the internal options object
     *
     * @param  string $name
     * @return mixed
     */
    public function getOption($name)
    {
        $name = strtolower($name);
        if (array_key_exists($name, $this->_options)) {
            return $this->_options[$name];
        }

        return null;
    }

    /**
     * returns the internal soap client
     * if not allready exists we create an instance of
     * Zend_Soap_Client
     *
     * @final
     * @return Zend_Service_DeveloperGarden_Client_Soap
     */
    final public function getSoapClient()
    {
        if ($this->_soapClient === null) {
            /**
             * init the soapClient
             */
            $this->_soapClient = new Zend_Service_DeveloperGarden_Client_Soap(
                $this->getWsdl(),
                $this->getClientOptions()
            );
            $this->_soapClient->setCredential($this->_credential);
            $tokenService = new Zend_Service_DeveloperGarden_SecurityTokenServer(
                array(
                    'username'    => $this->_credential->getUsername(),
                    'password'    => $this->_credential->getPassword(),
                    'environment' => $this->getEnvironment(),
                    'realm'       => $this->_credential->getRealm(),
                )
            );
            $this->_soapClient->setTokenService($tokenService);
        }

        return $this->_soapClient;
    }

    /**
     * sets new environment
     *
     * @param int $environment
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setEnvironment($environment)
    {
        self::checkEnvironment($environment);
        $this->_serviceEnvironment = $environment;
        return $this;
    }

    /**
     * returns the current configured environemnt
     *
     * @return int
     */
    public function getEnvironment()
    {
        return $this->_serviceEnvironment;
    }

    /**
     * returns the wsdl file path, a uri or the local path
     *
     * @return string
     */
    public function getWsdl()
    {
        if ($this->_useLocalWsdl) {
            $retVal = $this->_wsdlFileLocal;
        } else {
            $retVal = $this->_wsdlFile;
        }

        return $retVal;
    }

    /**
     * switch to the local wsdl file usage
     *
     * @param boolen $use
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setUseLocalWsdl($use = true)
    {
        $this->_useLocalWsdl = (boolean) $use;
        return $this;
    }

    /**
     * sets a new wsdl file
     *
     * @param string $wsdlFile
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setWsdl($wsdlFile = null)
    {
        if (empty($wsdlFile)) {
            require_once 'Zend/Service/DeveloperGarden/Exception.php';
            throw new Zend_Service_DeveloperGarden_Exception('_wsdlFile not set for this service.');
        }
        $this->_wsdlFile = $wsdlFile;
        return $this;
    }

    /**
     * sets a new local wsdl file
     *
     * @param string $wsdlFile
     * @return Zend_Service_DeveloperGarden_Client_ClientAbstract
     */
    public function setLocalWsdl($wsdlFile = null)
    {
        if (empty($wsdlFile)) {
            require_once 'Zend/Service/DeveloperGarden/Exception.php';
            throw new Zend_Service_DeveloperGarden_Exception('_wsdlFileLocal not set for this service.');
        }
        $this->_wsdlFileLocal = $wsdlFile;
        return $this;
    }

    /**
     * returns an array with configured options for this client
     *
     * @return array
     */
    public function getClientOptions()
    {
        $options = array(
            'soap_version' => SOAP_1_1,
        );
        if (!empty($this->_classMap)) {
            $options['classmap'] = $this->_classMap;
        }
        $wsdlCache = Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::getWsdlCache();
        if ($wsdlCache !== null) {
            $options['cache_wsdl'] = $wsdlCache;
        }
        return $options;
    }

    /**
     * returns the internal credential object
     *
     * @return Zend_Service_DeveloperGarden_Credential
     */
    public function getCredential()
    {
        return $this->_credential;
    }

    /**
     * helper method to create const arrays
     * @return null
     */
    static protected function _buildConstArray()
    {
        $r = new ReflectionClass(__CLASS__);
        foreach ($r->getConstants() as $k => $v) {
            $s = explode('_', $k, 2);
            if (!isset(self::$_consts[$s[0]])) {
                self::$_consts[$s[0]] = array();
            }
            self::$_consts[$s[0]][$v] = $k;
        }
    }

    /**
     * returns an array of all available environments
     *
     * @return array
     */
    static public function getParticipantActions()
    {
        if (empty(self::$_consts)) {
            self::_buildConstArray();
        }
        return self::$_consts['PARTICIPANT'];
    }

    /**
     * checks if the given action is valid
     * otherwise it @throws Zend_Service_DeveloperGarden_Exception
     *
     * @param int $action
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return void
     */
    static public function checkParticipantAction($action)
    {
        if (!array_key_exists($action, self::getParticipantActions())) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception(
                'Wrong Participant Action ' . $action . ' supplied.'
            );
        }
    }

    /**
     * returns an array of all available environments
     *
     * @return array
     */
    static public function getEnvironments()
    {
        if (empty(self::$_consts)) {
            self::_buildConstArray();
        }
        return self::$_consts['ENV'];
    }

    /**
     * checks if the given environemnt is valid
     * otherwise it @throws Zend_Service_DeveloperGarden_Client_Exception
     *
     * @param int $environment
     * @throws Zend_Service_DeveloperGarden_Client_Exception
     * @return void
     */
    static public function checkEnvironment($environment)
    {
        if (!array_key_exists($environment, self::getEnvironments())) {
            require_once 'Zend/Service/DeveloperGarden/Client/Exception.php';
            throw new Zend_Service_DeveloperGarden_Client_Exception(
                'Wrong environment ' . $environment . ' supplied.'
            );
        }
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Exception.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * Zend_Service_Exception
 */
require_once 'Zend/Service/DeveloperGarden/Exception.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Client_Exception extends Zend_Service_DeveloperGarden_Exception
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Soap.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Soap_Client
 */
require_once 'Zend/Soap/Client.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Client_Soap extends Zend_Soap_Client
{
    /**
     * class with credential interface
     *
     * @var Zend_Service_DeveloperGarden_Credential
     */
    private $_credential = null;

    /**
     * WSSE Security Ext Namespace
     *
     * @var string
     */
    const WSSE_NAMESPACE_SECEXT = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';

    /**
     * WSSE Saml Namespace
     *
     * @var string
     */
    const WSSE_NAMESPACE_SAML = 'urn:oasis:names:tc:SAML:2.0:assertion';

    /**
     * Security Element
     *
     * @var string
     */
    const WSSE_SECURITY_ELEMENT = 'Security';

    /**
     * UsernameToken Element
     *
     * @var string
     */
    const WSSE_ELEMENT_USERNAMETOKEN = 'UsernameToken';

    /**
     * Usernae Element
     *
     * @var string
     */
    const WSSE_ELEMENT_USERNAME = 'Username';

    /**
     * Password Element
     *
     * @var string
     */
    const WSSE_ELEMENT_PASSWORD = 'Password';

    /**
     * Password Element WSSE Type
     *
     */
    const WSSE_ELEMENT_PASSWORD_TYPE = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText';

    /**
     * is this client used by the token service
     *
     * @var Zend_Service_DeveloperGarden_SecurityTokenServer
     */
    protected $_tokenService = null;

    /**
     * Perform a SOAP call but first check for adding STS Token or fetch one
     *
     * @param string $name
     * @param array  $arguments
     * @return mixed
     */
    public function __call($name, $arguments)
    {
        /**
         * add WSSE Security header
         */
        if ($this->_tokenService !== null) {
            // if login method we addWsseLoginHeader
            if (in_array('login', $arguments)) {
                $this->addWsseLoginHeader();
            } elseif ($name == 'getTokens') {
                $this->addWsseTokenHeader($this->_tokenService->getLoginToken());
            } else {
                $this->addWsseSecurityTokenHeader($this->_tokenService->getTokens());
            }
        }
        return parent::__call($name, $arguments);
    }

    /**
     * sets the internal handling for handle token service
     *
     * @param Zend_Service_DeveloperGarden_SecurityTokenServer $isTokenService
     * @return Zend_Service_DeveloperGarden_Client_Soap
     */
    public function setTokenService(Zend_Service_DeveloperGarden_SecurityTokenServer $tokenService)
    {
        $this->_tokenService = $tokenService;
        return $this;
    }

    /**
     * returns the currently configured tokenService object
     *
     * @return Zend_Service_DeveloperGarden_SecurityTokenServer
     */
    public function getTokenService()
    {
        return $this->_tokenService;
    }

    /**
     * Sets new credential callback object
     *
     * @param Zend_Service_DeveloperGarden_Credential $credential
     * @return Zend_Service_DeveloperGarden_Client_Soap
     */
    public function setCredential(Zend_Service_DeveloperGarden_Credential $credential)
    {
        $this->_credential = $credential;
        return $this;
    }

    /**
     * returns the internal credential callback object
     *
     * @return Zend_Service_DeveloperGarden_Credential
     */
    public function getCredential()
    {
        return $this->_credential;
    }

    /**
     * creates the login header and add
     *
     * @return SoapHeader
     */
    public function getWsseLoginHeader()
    {
        $dom = new DOMDocument();

        /**
         * Security Element
         */
        $securityElement = $dom->createElementNS(
            self::WSSE_NAMESPACE_SECEXT,
            'wsse:' . self::WSSE_SECURITY_ELEMENT
        );
        $securityElement->setAttribute('mustUnderstand', true);

        /**
         * Username Token Element
         */
        $usernameTokenElement = $dom->createElementNS(
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_ELEMENT_USERNAMETOKEN
        );

        /**
         * Username Element
         */
        $usernameElement = $dom->createElementNS(
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_ELEMENT_USERNAME,
            $this->_credential->getUsername(true)
        );

        /**
         * Password Element
         */
        $passwordElement = $dom->createElementNS(
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_ELEMENT_PASSWORD,
            $this->_credential->getPassword()
        );
        $passwordElement->setAttribute('Type', self::WSSE_ELEMENT_PASSWORD_TYPE);

        $usernameTokenElement->appendChild($usernameElement);
        $usernameTokenElement->appendChild($passwordElement);

        $securityElement->appendChild($usernameTokenElement);
        $dom->appendChild($securityElement);

        $authSoapVar = new SoapVar(
            $dom->saveXML($securityElement),
            XSD_ANYXML,
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_SECURITY_ELEMENT
        );

        $authSoapHeader = new SoapHeader(
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_SECURITY_ELEMENT,
            $authSoapVar,
            true
        );

        return $authSoapHeader;
    }

    /**
     * creates the token auth header for direct calls
     *
     * @param Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse $token
     * @return SoapHeader
     */
    public function getWsseTokenHeader(
        Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse $token
    ) {
        $format = '<wsse:%s xmlns:wsse="%s" SOAP-ENV:mustUnderstand="1">%s</wsse:%s>';
        $securityHeader = sprintf(
            $format,
            self::WSSE_SECURITY_ELEMENT,
            self::WSSE_NAMESPACE_SECEXT,
            $token->getTokenData(),
            self::WSSE_SECURITY_ELEMENT
        );

        $authSoapVar = new SoapVar(
            $securityHeader,
            XSD_ANYXML,
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_SECURITY_ELEMENT
        );

        $authSoapHeader = new SoapHeader(
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_SECURITY_ELEMENT,
            $authSoapVar,
            true
        );

        return $authSoapHeader;
    }

    /**
     * creates the security token auth header for direct calls
     *
     * @param Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse $token
     * @return SoapHeader
     */
    public function getWsseSecurityTokenHeader(
        Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse $token
    ) {
        $format = '<wsse:%s xmlns:wsse="%s" SOAP-ENV:mustUnderstand="1">%s</wsse:%s>';
        $securityHeader = sprintf(
            $format,
            self::WSSE_SECURITY_ELEMENT,
            self::WSSE_NAMESPACE_SECEXT,
            $token->getTokenData(),
            self::WSSE_SECURITY_ELEMENT
        );

        $authSoapVar = new SoapVar(
            $securityHeader,
            XSD_ANYXML,
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_SECURITY_ELEMENT
        );

        $authSoapHeader = new SoapHeader(
            self::WSSE_NAMESPACE_SECEXT,
            self::WSSE_SECURITY_ELEMENT,
            $authSoapVar,
            true
        );

        return $authSoapHeader;
    }

    /**
     * adds the login specific header to the client
     *
     * @return Zend_Service_DeveloperGarden_Client_Soap
     */
    public function addWsseLoginHeader()
    {
        return $this->addSoapInputHeader($this->getWsseLoginHeader());
    }

    /**
     * adds the earlier fetched token to the header
     *
     * @param Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse $token
     * @return Zend_Service_DeveloperGarden_Client_Soap
     */
    public function addWsseTokenHeader(
        Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse $token
    ) {
        return $this->addSoapInputHeader($this->getWsseTokenHeader($token));
    }

    /**
     * adds the earlier fetched token to the header
     *
     * @param Zend_Service_DeveloperGarden_Response_SecurityTokenServer_SecurityTokenResponse $token
     * @return Zend_Service_DeveloperGarden_Client_Soap
     */
    public function addWsseSecurityTokenHeader(
        Zend_Service_DeveloperGarden_Response_SecurityTokenServer_GetTokensResponse $token
    ) {
        return $this->addSoapInputHeader($this->getWsseSecurityTokenHeader($token));
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: ResponseAbstract.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_Exception
 */
require_once 'Zend/Service/DeveloperGarden/Response/Exception.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
abstract class Zend_Service_DeveloperGarden_Response_ResponseAbstract
{
    /**
     * errorCode
     *
     * @var string
     */
    public $errorCode = null;

    /**
     * errorMessage
     *
     * @var string
     */
    public $errorMessage = null;

    /**
     * parse the token data and throws exceptions
     *
     * @throws Zend_Service_DeveloperGarden_Response_Exception
     * @return Zend_Service_DeveloperGarden_Response_ResponseAbstract
     */
    public function parse()
    {
        if ($this->hasError()) {
            throw new Zend_Service_DeveloperGarden_Response_Exception(
                $this->getErrorMessage(),
                $this->getErrorCode()
            );
        }

        return $this;
    }

    /**
     * returns the error code
     *
     * @return string|null
     */
    public function getErrorCode()
    {
        return $this->errorCode;
    }

    /**
     * returns the error message
     *
     * @return string
     */
    public function getErrorMessage()
    {
        return $this->errorMessage;
    }

    /**
     * returns true if the errorCode is not null and not 0000
     *
     * @return boolean
     */
    public function isValid()
    {
        return ($this->errorCode === null
             || $this->errorCode == '0000');
    }

    /**
     * returns true if we have a error situation
     *
     * @return boolean
     */
    public function hasError()
    {
        return ($this->errorCode !== null
                && $this->errorCode != '0000');
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Exception.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * Zend_Service_DeveloperGarden_Exception
 */
require_once 'Zend/Service/DeveloperGarden/Exception.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_Exception
    extends Zend_Service_DeveloperGarden_Exception
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: BaseType.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_ResponseAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/ResponseAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_BaseType
    extends Zend_Service_DeveloperGarden_Response_ResponseAbstract
{
    /**
     * the status code
     *
     * @var string
     */
    public $statusCode = null;

    /**
     * the status message
     *
     * @var string
     */
    public $statusMessage = null;

    /**
     * parse the result
     *
     * @throws Zend_Service_DeveloperGarden_Response_Exception
     * @return Zend_Service_DeveloperGarden_Response_ResponseAbstract
     */
    public function parse()
    {
        if ($this->hasError()) {
            throw new Zend_Service_DeveloperGarden_Response_Exception(
                $this->getStatusMessage(),
                $this->getStatusCode()
            );
        }

        return $this;
    }

    /**
     * returns the error code
     *
     * @return string|null
     */
    public function getStatusCode()
    {
        return $this->statusCode;
    }

    /**
     * returns the error message
     *
     * @return string
     */
    public function getStatusMessage()
    {
        return $this->statusMessage;
    }

    /**
     * returns true if the errorCode is not null and not 0000
     *
     * @return boolean
     */
    public function isValid()
    {
        return ($this->statusCode === null
             || $this->statusCode == '0000');
    }

    /**
     * returns true if we have a error situation
     *
     * @return boolean
     */
    public function hasError()
    {
        return ($this->statusCode !== null
             && $this->statusCode != '0000');
    }

    /**
     * returns the error code (statusCode)
     *
     * @return string|null
     */
    public function getErrorCode()
    {
        if (empty($this->errorCode)) {
            return $this->statusCode;
        } else {
            return $this->errorCode;
        }
    }

    /**
     * returns the error message
     *
     * @return string
     */
    public function getErrorMessage()
    {
        if (empty($this->errorMessage)) {
            return $this->statusMessage;
        } else {
            return $this->errorMessage;
        }
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: RegionType.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_IpLocation_RegionType
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     * country code
     * @var string
     */
    public $countryCode = null;

    /**
     * region code
     * @var string
     */
    public $regionCode = null;

    /**
     * region Name
     * @var string
     */
    public $regionName = null;

    /**
     * @return string
     */
    public function getCountryCode()
    {
        return $this->countryCode;
    }

    /**
     * @return string
     */
    public function getRegionCode()
    {
        return $this->regionCode;
    }

    /**
     * @return string
     */
    public function getRegionName()
    {
        return $this->regionName;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: GeoCoordinatesType.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     *
     * @var float
     */
    public $geoLatitude = null;

    /**
     *
     * @var float
     */
    public $geoLongitude = null;

    /**
     * @return float
     */
    public function getLatitude()
    {
        return $this->geoLatitude;
    }

    /**
     * @return float
     */
    public function getLongitude()
    {
        return $this->geoLongitude;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: LocateIPResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponse
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     * internal data object array of
     * elements
     *
     * @var array
     */
    public $ipAddressLocation = array();

    /**
     * constructor
     *
     * @param Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType $response
     */
    public function __construct(
        Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType $response
    ) {
        if ($response->ipAddressLocation instanceof Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType) {
            if (is_array($response->ipAddressLocation)) {
                foreach ($response->ipAddressLocation as $location) {
                    $this->ipAddressLocation[] = $location;
                }

            } else {
                $this->ipAddressLocation[] = $response->ipAddressLocation;
            }
        } elseif (is_array($response->ipAddressLocation)) {
            $this->ipAddressLocation = $response->ipAddressLocation;
        }

        $this->errorCode     = $response->getErrorCode();
        $this->errorMessage  = $response->getErrorMessage();
        $this->statusCode    = $response->getStatusCode();
        $this->statusMessage = $response->getStatusMessage();
    }

    /**
     * implement own parsing mechanism to fix broken wsdl implementation
     */
    public function parse()
    {
        parent::parse();
        if (is_array($this->ipAddressLocation)) {
            foreach ($this->ipAddressLocation as $address) {
                $address->parse();
            }
        } elseif ($this->ipAddressLocation instanceof Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType) {
            $this->ipAddressLocation->parse();
        }

        return $this;
    }

    /**
     * @return array
     */
    public function getIpAddressLocation()
    {
        return $this->ipAddressLocation;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: IPAddressLocationType.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     * @var Zend_Service_DeveloperGarden_Response_IpLocation_RegionType
     */
    public $isInRegion = null;

    /**
     * @var Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType
     */
    public $isInGeo = null;

    /**
     * @var Zend_Service_DeveloperGarden_Response_IpLocation_CityType
     */
    public $isInCity = null;

    /**
     * @var integer
     */
    public $ipType = null;

    /**
     * @var string
     */
    public $ipAddress = null;

    /**
     * @var integer
     */
    public $radius = 0;

    /**
     * @return Zend_Service_DeveloperGarden_Response_IpLocation_RegionType
     */
    public function getRegion()
    {
        return $this->isInRegion;
    }

    /**
     * @return Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType
     */
    public function getGeoCoordinates()
    {
        return $this->isInGeo;
    }

    /**
     * @return Zend_Service_DeveloperGarden_Response_IpLocation_CityType
     */
    public function getCity()
    {
        return $this->isInCity;
    }

    /**
     * @return integer
     */
    public function getIpType()
    {
        return $this->ipType;
    }

    /**
     * @return string
     */
    public function getIpAddress()
    {
        return $this->ipAddress;
    }

    /**
     * @return integer
     */
    public function getRadius()
    {
        return $this->radius;
    }

    /**
     * implement parsing
     *
     */
    public function parse()
    {
        parent::parse();
        if ($this->isInCity === null) {
            require_once 'Zend/Service/DeveloperGarden/Response/IpLocation/CityType.php';
            $this->isInCity = new Zend_Service_DeveloperGarden_Response_IpLocation_CityType();
        }

        if ($this->isInRegion === null) {
            require_once 'Zend/Service/DeveloperGarden/Response/IpLocation/RegionType.php';
            $this->isInRegion = new Zend_Service_DeveloperGarden_Response_IpLocation_RegionType();
        }

        if ($this->isInGeo === null) {
            require_once 'Zend/Service/DeveloperGarden/Response/IpLocation/GeoCoordinatesType.php';
            $this->isInGeo = new Zend_Service_DeveloperGarden_Response_IpLocation_GeoCoordinatesType();
        }

        return $this;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: LocateIPResponseType.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_IpLocation_LocateIPResponseType
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     * internal data object array of
     * elements
     *
     * @var array|Zend_Service_DeveloperGarden_Response_IpLocation_IPAddressLocationType
     */
    public $ipAddressLocation = array();
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: CityType.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_IpLocation_CityType
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     * @var string
     */
    public $countryCode = null;

    /**
     * @var string
     */
    public $cityCode = null;

    /**
     * @var string
     */
    public $cityName = null;

    /**
     * @return string
     */
    public function getCountryCode()
    {
        return $this->countryCode;
    }

    /**
     * @return string
     */
    public function getCityCode()
    {
        return $this->cityCode;
    }

    /**
     * @return string
     */
    public function getCityName()
    {
        return $this->cityName;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: InvalidateResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SmsValidation_ValidateResponse
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: ValidateResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SmsValidation_InvalidateResponse
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: SendValidationKeywordResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SmsValidation_SendValidationKeywordResponse
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: GetValidatedNumbersResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_BaseType
 */
require_once 'Zend/Service/DeveloperGarden/Response/BaseType.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SmsValidation_GetValidatedNumbersResponse
    extends Zend_Service_DeveloperGarden_Response_BaseType
{
    /**
     * array of validated numbers
     *
     * @var array of Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber
     */
    public $validatedNumbers = null;

    /**
     * returns the internal array of validated numbers
     *
     * @return array of Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber
     */
    public function getNumbers()
    {
        return (array) $this->validatedNumbers;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: ValidatedNumber.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SmsValidation_ValidatedNumber
{
    /**
     * the number
     * @var string
     */
    public $number = null;

    /**
     * is valid until this date
     * @var string
     */
    public $validUntil = null;

    /**
     * returns the number
     *
     * @return number
     */
    public function getNumber()
    {
        return $this->number;
    }

    /**
     * returns the valid until date
     *
     * @return string
     */
    public function getValidUntil()
    {
        return $this->validUntil;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: SendFlashSMSResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/SendSms/SendSmsAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SendSms_SendFlashSMSResponse
    extends Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: SendSmsAbstract.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_ResponseAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/ResponseAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
abstract class Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract
    extends Zend_Service_DeveloperGarden_Response_ResponseAbstract
{
    /**
     * the return from the sms request
     *
     * @var stdClass
     */
    public $return = null;

    /**
     * parse the response data and throws exceptions
     *
     * @throws Zend_Service_DeveloperGarden_Response_Exception
     * @return Zend_Service_DeveloperGarden_Response_ResponseAbstract
     */
    public function parse()
    {
        if ($this->hasError()) {
            require_once 'Zend/Service/DeveloperGarden/Response/Exception.php';
            throw new Zend_Service_DeveloperGarden_Response_Exception(
                $this->getErrorMessage(),
                $this->getErrorCode()
            );
        }

        return $this;
    }

    /**
     * returns the error code
     *
     * @return string|null
     */
    public function getErrorCode()
    {
        $retValue = null;
        if ($this->return instanceof stdClass) {
            $retValue = $this->return->status;
        }
        return $retValue;
    }

    /**
     * returns the error message
     *
     * @return string
     */
    public function getErrorMessage()
    {
        $retValue = null;
        if ($this->return instanceof stdClass) {
            $retValue = $this->return->description;
        }
        return $retValue;
    }

    /**
     * returns true if the errorCode is not null and not 0000
     *
     * @return boolean
     */
    public function isValid()
    {
        return ($this->return === null
                || $this->return->status == '0000');
    }

    /**
     * returns true if we have a error situation
     *
     * @return boolean
     */
    public function hasError()
    {
        $retValue = false;
        if ($this->return instanceof stdClass
            && $this->return->status != '0000'
        ) {
            $retValue = true;
        }
        return $retValue;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: SendSMSResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/SendSms/SendSmsAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_SendSms_SendSMSResponse
    extends Zend_Service_DeveloperGarden_Response_SendSms_SendSmsAbstract
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: NewCallSequencedResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse
 */
require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/NewCallResponse.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallSequencedResponse
    extends Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse
{
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: CallStatusResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/VoiceButlerAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_VoiceButler_CallStatusResponse
    extends Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
{
    /**
     * returns the session id
     * @return string
     */
    public function getSessionId()
    {
        if (isset($this->return->sessionId)) {
            return $this->return->sessionId;
        }
        return null;
    }

    /**
     * returns the connection time for participant a
     *
     * @return integer
     */
    public function getConnectionTimeA()
    {
        if (isset($this->return->connectiontimea)) {
            return $this->return->connectiontimea;
        }
        return null;
    }

    /**
     * returns the connection time for participant b
     *
     * @return integer
     */
    public function getConnectionTimeB()
    {
        if (isset($this->return->connectiontimeb)) {
            return $this->return->connectiontimeb;
        }
        return null;
    }

    /**
     * returns the description time for participant a
     *
     * @return string
     */
    public function getDescriptionA()
    {
        if (isset($this->return->descriptiona)) {
            return $this->return->descriptiona;
        }
        return null;
    }

    /**
     * returns the description time for participant b
     *
     * @return string
     */
    public function getDescriptionB()
    {
        if (isset($this->return->descriptionb)) {
            return $this->return->descriptionb;
        }
        return null;
    }

    /**
     * returns the reason time for participant a
     *
     * @return integer
     */
    public function getReasonA()
    {
        if (isset($this->return->reasona)) {
            return $this->return->reasona;
        }
        return null;
    }

    /**
     * returns the reason time for participant b
     *
     * @return integer
     */
    public function getReasonB()
    {
        if (isset($this->return->reasonb)) {
            return $this->return->reasonb;
        }
        return null;
    }

    /**
     * returns the state time for participant a
     *
     * @return string
     */
    public function getStateA()
    {
        if (isset($this->return->statea)) {
            return $this->return->statea;
        }
        return null;
    }

    /**
     * returns the state time for participant b
     *
     * @return string
     */
    public function getStateB()
    {
        if (isset($this->return->stateb)) {
            return $this->return->stateb;
        }
        return null;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: VoiceButlerAbstract.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_ResponseAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/ResponseAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
abstract class Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
    extends Zend_Service_DeveloperGarden_Response_ResponseAbstract
{
    /**
     * the return from the sms request
     *
     * @var stdClass
     */
    public $return = null;

    /**
     * returns the return object
     *
     * @return stdClass
     */
    public function getReturn()
    {
        return $this->return;
    }

    /**
     * parse the response data and throws exceptions
     *
     * @throws Zend_Service_DeveloperGarden_Response_Exception
     * @return Zend_Service_DeveloperGarden_Response_ResponseAbstract
     */
    public function parse()
    {
        if ($this->hasError()) {
            throw new Zend_Service_DeveloperGarden_Response_Exception(
                $this->getErrorMessage(),
                $this->getErrorCode()
            );
        }

        return $this;
    }

    /**
     * returns the error code
     *
     * @return string|null
     */
    public function getErrorCode()
    {
        $retValue = null;
        if ($this->return instanceof stdClass) {
            $retValue = $this->return->status;
        }
        return $retValue;
    }

    /**
     * returns the error message
     *
     * @return string
     */
    public function getErrorMessage()
    {
        $retValue = null;
        if ($this->return instanceof stdClass) {
            $retValue = $this->return->err_msg;
        }
        return $retValue;
    }

    /**
     * returns true if the errorCode is not null and not 0000
     *
     * @return boolean
     */
    public function isValid()
    {
        return ($this->return === null
                || $this->return->status == '0000');
    }

    /**
     * returns true if we have a error situation
     *
     * @return boolean
     */
    public function hasError()
    {
        $retValue = false;
        if ($this->return instanceof stdClass
            && $this->return->status != '0000'
        ) {
            $retValue = true;
        }
        return $retValue;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: TearDownCallResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/VoiceButlerAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_VoiceButler_TearDownCallResponse
    extends Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
{
    /**
     * returns the session id
     * @return string
     */
    public function getSessionId()
    {
        if (isset($this->return->sessionId)) {
            return $this->return->sessionId;
        }
        return null;
    }
}


text:
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: NewCallResponse.php 23775 2011-03-01 17:25:24Z ralph $
 */

/**
 * @see Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
 */
require_once 'Zend/Service/DeveloperGarden/Response/VoiceButler/VoiceButlerAbstract.php';

/**
 * @category   Zend
 * @package    Zend_Service
 * @subpackage DeveloperGarden
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @author     Marco Kaiser
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_DeveloperGarden_Response_VoiceButler_NewCallResponse
    extends Zend_Service_DeveloperGarden_Response_VoiceButler_VoiceButlerAbstract
{
    /**
     * returns the session id
     * @return string
     */
    public function getSessionId()
    {
        if (isset($this->return->sessionId)) {
            return $this->return->sessionId;
        }
        return null;
    }

    /**
     * prints the session on casting to string
     *
     * @return string
     */
    public function __toString()
    {
        return $this->getSessionId();
    }
}