TCP Client implementation for AMI.
PHP Version 5
- Class name: ClientImpl
- Namespace: PAMI\Client\Impl
- This class implements: PAMI\Client\IClient
private \PAMI\Client\Impl\Logger $logger
PSR-3 logger.
- Visibility: private
private string $host
Hostname
- Visibility: private
private integer $port
TCP Port.
- Visibility: private
private string $user
Username
- Visibility: private
private string $pass
Password
- Visibility: private
private integer $cTimeout
Connection timeout, in seconds.
- Visibility: private
private string $scheme
Connection scheme, like tcp:// or tls://
- Visibility: private
private \PAMI\Message\Event\Factory\Impl\EventFactoryImpl $eventFactory
Event factory.
- Visibility: private
private integer $rTimeout
R/W timeout, in milliseconds.
- Visibility: private
private resource $socket
Our stream socket resource.
- Visibility: private
private resource $context
Our stream context resource.
- Visibility: private
private array<mixed,\PAMI\Listener\IEventListener> $eventListeners
Our event listeners
- Visibility: private
private array<mixed,\PAMI\Message\IncomingMessage> $incomingQueue
The receiving queue.
- Visibility: private
private string $currentProcessingMessage
Our current received message. May be incomplete, will be completed eventually with an EOM.
- Visibility: private
private string $lastActionId
This should not happen. Asterisk may send responses without a corresponding ActionId.
- Visibility: private
void PAMI\Client\IClient::open()
Opens a tcp connection to ami.
- Visibility: public
- This method is defined by PAMI\Client\IClient
string PAMI\Client\IClient::registerEventListener(mixed $listener, \PAMI\Client\Closure|null $predicate)
Registers the given listener so it can receive events. Returns the generated id for this new listener. You can pass in a an IEventListener, a Closure, and an array containing the object and name of the method to invoke. Can specify an optional predicate to invoke before calling the callback.
- Visibility: public
- This method is defined by PAMI\Client\IClient
- $listener mixed
- $predicate PAMI\Client\Closure|null
void PAMI\Client\IClient::unregisterEventListener(string $listenerId)
Unregisters an event listener.
- Visibility: public
- This method is defined by PAMI\Client\IClient
- $listenerId string - <p>The id returned by registerEventListener.</p>
array<mixed,\string> PAMI\Client\Impl\ClientImpl::getMessages()
Reads a complete message over the stream until EOM.
- Visibility: protected
void PAMI\Client\IClient::process()
Main processing loop. Also called from send(), you should call this in your own application in order to continue reading events and responses from ami.
- Visibility: public
- This method is defined by PAMI\Client\IClient
\PAMI\Message\Response\ResponseMessage PAMI\Client\Impl\ClientImpl::findResponse(\PAMI\Message\IncomingMessage $message)
Tries to find an associated response for the given message.
- Visibility: protected
- $message PAMI\Message\IncomingMessage - <p>Message sent by asterisk.</p>
void PAMI\Client\Impl\ClientImpl::dispatch(\PAMI\Message\IncomingMessage $message)
Dispatchs the incoming message to a handler.
- Visibility: protected
- $message PAMI\Message\IncomingMessage - <p>Message to dispatch.</p>
\PAMI\Message\Response\ResponseMessage PAMI\Client\Impl\ClientImpl::messageToResponse(string $msg)
Returns a ResponseMessage from a raw string that came from asterisk.
- Visibility: private
- $msg string - <p>Raw string.</p>
\PAMI\Message\Event\EventMessage PAMI\Client\Impl\ClientImpl::messageToEvent(string $msg)
Returns a EventMessage from a raw string that came from asterisk.
- Visibility: private
- $msg string - <p>Raw string.</p>
\PAMI\Message\IncomingMessage PAMI\Client\Impl\ClientImpl::getRelated(\PAMI\Message\OutgoingMessage $message)
Returns a message (response) related to the given message. This uses the ActionID tag (key).
- Visibility: protected
- $message PAMI\Message\OutgoingMessage
\PAMI\Message\Response\ResponseMessage PAMI\Client\IClient::send(\PAMI\Message\OutgoingMessage $message)
Sends a message to ami.
- Visibility: public
- This method is defined by PAMI\Client\IClient
- $message PAMI\Message\OutgoingMessage - <p>Message to send.</p>
void PAMI\Client\IClient::close()
Closes the connection to ami.
- Visibility: public
- This method is defined by PAMI\Client\IClient
void PAMI\Client\IClient::setLogger(\PAMI\Client\Psr\Log\LoggerInterface $logger)
Sets the logger implementation.
- Visibility: public
- This method is defined by PAMI\Client\IClient
- $logger PAMI\Client\Psr\Log\LoggerInterface - <p>The PSR3-Logger</p>
mixed PAMI\Client\Impl\ClientImpl::__construct(array<mixed,string> $options)
Constructor.
- Visibility: public
- $options array<mixed,string> - <p>Options for ami client.</p>