Ejemplo n.º 1
0
 public static function boot()
 {
     parent::boot();
     $nexmo = new NexmoAccount(Cache::get('NEXMO_KEY', getenv('NEXMO_KEY')), Cache::get('NEXMO_SECRET', getenv('NEXMO_SECRET')));
     static::created(function ($number) use($nexmo) {
         Pusherer::trigger('boom', 'add_number', $number);
         // set mo and voice callback url
         Queue::getIron()->addSubscriber('setupNumberCallbackUrl', array('url' => url('queue/receive')));
         Queue::push('Number@setupNumberCallbackUrl', array('nexmo_key' => $nexmo->nexmo_key, 'nexmo_secret' => $nexmo->nexmo_secret, 'country_code' => $number->country_code, 'number' => $number->number), 'setupNumberCallbackUrl');
     });
     static::updating(function ($number) use($nexmo) {
         if ($number->isDirty('voice_callback_type') || $number->isDirty('voice_callback_value')) {
             return $nexmo->updateNumber($number->country_code, $number->number, url('callback/mo'), array('voiceCallbackType' => $number->voice_callback_type, 'voiceCallbackValue' => $number->voice_callback_value, 'voiceStatusCallback' => url('callback/voice')));
         }
         return true;
     });
     static::deleting(function ($number) use($nexmo) {
         return $nexmo->cancelNumber($number->country_code, $number->number);
     });
     static::deleted(function ($number) {
         Pusherer::trigger('boom', 'remove_number', $number);
     });
 }