/** * Connect to ARI and optionally AMI * * @param string $ariAddress * @param string|null $amiAddress */ public function connect($ariAddress, $amiAddress = null) { $this->eventLoop = \React\EventLoop\Factory::create(); $this->ariClient = new AriClient($this->eventLoop, $this->logger); $this->ariClient->connect($ariAddress); $this->wsClient = $this->ariClient->getWsClient(); $this->stasisApplicationName = $this->ariClient->getStasisApplicationName(); if ($amiAddress !== null) { $this->amiClient = new AmiClient($this->ariClient->getWsClient(), $this->eventLoop, $this->logger); $this->amiClient->connect($amiAddress)->done(); } }
/** * @param string $event */ public function removeAllListeners($event = null) { if ($event !== null) { if (isset($this->listeners[$event])) { unset($this->listeners[$event]); $this->client->getWsClient()->removeAllListeners($event); } } else { foreach ($this->listeners as $event => $listeners) { $this->client->getWsClient()->removeAllListeners($event); } $this->listeners = []; } }