Bandwidth PHP SDK
  • Namespace
  • Class

Namespaces

  • Catapult
  • None

Classes

  • Catapult\Account
  • Catapult\AnswerCallEvent
  • Catapult\Application
  • Catapult\ApplicationCollection
  • Catapult\AudioMixin
  • Catapult\BaML
  • Catapult\BaMLAssert
  • Catapult\BaMLAttribute
  • Catapult\BaMLContainer
  • Catapult\BaMLGather
  • Catapult\BaMLGeneric
  • Catapult\BaMLHangup
  • Catapult\BaMLPlayAudio
  • Catapult\BaMLRedirect
  • Catapult\BaMLResource
  • Catapult\BaMLSendMessage
  • Catapult\BaMLSpeakSentence
  • Catapult\BaMLText
  • Catapult\BaMLTransfer
  • Catapult\BaMLVerb
  • Catapult\BaMLVerbGather
  • Catapult\BaMLVerbHangup
  • Catapult\BaMLVerbPlayAudio
  • Catapult\BaMLVerbRecord
  • Catapult\BaMLVerbRedirect
  • Catapult\BaMLVerbSendMessage
  • Catapult\BaMLVerbSpeakSentence
  • Catapult\BaMLVerbTransfer
  • Catapult\BaseResource
  • Catapult\BaseUtilities
  • Catapult\Bridge
  • Catapult\BridgeCollection
  • Catapult\Call
  • Catapult\Callback
  • Catapult\CallCollection
  • Catapult\CallCombo
  • Catapult\CallEvent
  • Catapult\CallEvents
  • Catapult\CallEventsCollection
  • Catapult\Cleaner
  • Catapult\Client
  • Catapult\ClientResource
  • Catapult\CollectionIterator
  • Catapult\CollectionObject
  • Catapult\CollectionSequence
  • Catapult\Conference
  • Catapult\ConferenceEventMixin
  • Catapult\ConferenceMember
  • Catapult\ConferenceMemberEvent
  • Catapult\ConferencePlaybackEvent
  • Catapult\Constructor
  • Catapult\Converter
  • Catapult\Credentials
  • Catapult\CredentialsUser
  • Catapult\DataPacket
  • Catapult\DataPacketCollection
  • Catapult\Date
  • Catapult\DependsObject
  • Catapult\DependsResource
  • Catapult\Domains
  • Catapult\DomainsCollection
  • Catapult\DTMF
  • Catapult\DtmfCallEvent
  • Catapult\Endpoints
  • Catapult\EndpointsCollection
  • Catapult\EndpointsCredentials
  • Catapult\EndpointsMulti
  • Catapult\EndpointsToken
  • Catapult\Ensure
  • Catapult\EnsureResource
  • Catapult\ErrorCallEvent
  • Catapult\Event
  • Catapult\EventAssert
  • Catapult\EventCollection
  • Catapult\EventResource
  • Catapult\EventType
  • Catapult\FileHandler
  • Catapult\Gather
  • Catapult\GatherCallEvent
  • Catapult\GatherCollection
  • Catapult\GenericResource
  • Catapult\HangupCallEvent
  • Catapult\Id
  • Catapult\IncomingCallEvent
  • Catapult\LoadsResource
  • Catapult\Locator
  • Catapult\Log
  • Catapult\Media
  • Catapult\MediaCollection
  • Catapult\MediaURL
  • Catapult\Message
  • Catapult\MessageCollection
  • Catapult\MessageEvent
  • Catapult\MessageMulti
  • Catapult\MetaResource
  • Catapult\Multi
  • Catapult\NumberInfo
  • Catapult\Page
  • Catapult\Parameters
  • Catapult\PathResource
  • Catapult\PhoneCombo
  • Catapult\PhoneNumber
  • Catapult\PhoneNumbers
  • Catapult\PhoneNumbersCollection
  • Catapult\PlaybackCallEvent
  • Catapult\PrototypeUtility
  • Catapult\Recording
  • Catapult\RecordingCallEvent
  • Catapult\RecordingCollection
  • Catapult\RejectCallEvent
  • Catapult\RemoveResource
  • Catapult\Resolver
  • Catapult\ResolverResource
  • Catapult\RESTClient
  • Catapult\SchemaResource
  • Catapult\Sentence
  • Catapult\SIP
  • Catapult\SIPRealm
  • Catapult\Size
  • Catapult\SpeakCallEvent
  • Catapult\StringifyResource
  • Catapult\SubfunctionObject
  • Catapult\SubFunctionResource
  • Catapult\TextMessage
  • Catapult\Timeout
  • Catapult\TimeoutCallEvent
  • Catapult\TitleUtility
  • Catapult\Transaction
  • Catapult\TransactionCollection
  • Catapult\Transcription
  • Catapult\TranscriptionCallEvent
  • Catapult\TranscriptionCollection
  • Catapult\Types
  • Catapult\URIResource
  • Catapult\UserError
  • Catapult\UserErrorCollection
  • Catapult\VerifyResource
  • Catapult\Voice
  • Catapult\XMLUtility
  • CatapultApiWarning

Interfaces

  • Catapult\API
  • Catapult\API_MODE
  • Catapult\BAML_SETTINGS
  • Catapult\BAML_VERBS
  • Catapult\BAML_XML_HANDLERS
  • Catapult\BAML_XML_METHODS
  • Catapult\BAML_XML_OPTIONS
  • Catapult\CALL_ERROR
  • Catapult\CALL_STATES
  • Catapult\CONFERENCE_MEMBER_STATES
  • Catapult\CONFERENCE_SPEAK_STATES
  • Catapult\CONFERENCE_STATES
  • Catapult\DEFAULTS
  • Catapult\EXCEPTIONS
  • Catapult\GATHER_REASONS
  • Catapult\GATHER_STATES
  • Catapult\MESSAGE_DIRECTIONS
  • Catapult\MESSAGE_STATES
  • Catapult\NUMBER_STATES
  • Catapult\PATHS
  • Catapult\PLAYBACK_STATES
  • Catapult\RECORDING_STATES
  • Catapult\RECORDING_STATUSES
  • Catapult\SPEAK_STATES
  • Catapult\TRANSCRIPTION_STATES
  • Catapult\WARNINGS

Exceptions

  • CatapultApiException

Functions

  • includeDir
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 
<?php
/**
 * @model Media
 * http://ap.bandwidth.com/docs/rest-api/media/
 *
 *
 * Storage for Catapult API. 
 *
 */
namespace Catapult;

final class Media extends GenericResource {
    /**
    * Construct a media object
    * where data must be a blob
    * in binary. Store in memory until
    * store/1 is called
    * if data is passed use this as object
    * otherwise initialize from passed id.
    * In rare cases when media is called only to list or create
    * disregard both data and id
    *
    *
    * Init Forms:
    * GET
    * Media('media-id')
    *
    * PUT
    * Media(array)
    *
    */
    public function __construct() {
      $data = Ensure::Input(func_get_args());
      parent::_init($data, new DependsResource,
        new LoadsResource(
          array("primary" => "GET", "id" => "content", "init" => "", "silent" => true)
        ),
        new SchemaResource(
          array("fields" => array("contentLength", "mediaName", "content"), "needs" => array("mediaName"))
        )
      );
    }

    /**
     * @param args: same as upload
     */
    public function create()
    { 
      $input  = Ensure::Input(func_get_args());
      return $this->upload($input->get());
    }

    /**
     * get/1 should find the
     * media contents and set in the contents
     *
     * see getMediaContents for the file fetching
     */
    public function get($mediaName=null) {
      $contents = $this->getMediaContents($mediaName);
      $this->setData($content);
    }
    /**
     * get the media contents
     *
     * TODO get/0 needs reimplementation
     * see: http://ap.bandwidth.com/docs/rest-api/media/#resource441
     *
     * @param mediaName a media you uploaded
     * @return the media content either wav/mp3
     */
    public function getMediaContents($mediaName) {
      $content = $this->client->get($this->path . "/" . $mediaName, array());
       
      $this->setData($content); 

      // return the content
      return $content;
    }
    /**
     * Upload new media.  
     * 
     * 
     * In remaking we need the url. As this is 
     * a PUT request no 'location' header would
     * be present [spec]
     *
     * we will need both the mediaName and url
     *
     * @param args
     * must contain fileName and file(path to file)
     */
    public function upload($args)
    {
      $args = Ensure::Input($args);
      $data = $args->get();

      $url = URIResource::Make($this->path, array($data["mediaName"]));

      if (isset($data['file'])) {
        $file = FileHandler::Read($data['file']);
      } else {
        $file = $this->data;
      }
      
      $this->client->put($url, $file);

      return Constructor::Make($this, array_merge(array("url" => $this->client->join($url)), $data));
    }

    /**
     * Set the data. 
     * Input needs raw string
     * usually called by recording
     *
     * @param data: binary contents
     */
    public function setData($data) 
    {
      $this->data = $data;
    }

    /**
     * Store media as file 
     * on the fs
     *
     * By default create a directory if not
     * currently available
     *
     * @param filename: full file name
     * @param extention: extention to save in 
     */
    public function store($filename, $filext=DEFAULTS::EXTENSION)
    {   
      return FileHandler::save($filename, $this->data);
    }
}
Bandwidth PHP SDK API documentation generated by ApiGen