/// <summary>
 ///     This constructor sets user defined values to connect to FreeSwitch using in-built message encoder/decoders
 /// </summary>
 /// <param name="address">FreeSwitch mod_event_socket IP address or hostname</param>
 /// <param name="port">FreeSwitch mod_event_socket Port number</param>
 /// <param name="connectionTimeout">Connection Timeout</param>
 /// <param name="password">FreeSwitch mod_event_socket Password</param>
 public OutboundChannelSession(string address, int port, TimeSpan connectionTimeout, string password)
 {
     Address                   = address;
     Port                      = port;
     ConnectionTimeout         = connectionTimeout;
     Password                  = password;
     MessageEncoder            = new FreeSwitchEncoder();
     MessageDecoder            = new FreeSwitchDecoder();
     FreeSwitchEventFilter     = "plain ALL";
     _authenticated            = false;
     _requestsQueue            = new ConcurrentQueue <CommandAsyncEvent>();
     _channel                  = new TcpChannel(new BufferSlice(new byte[65535], 0, 65535), MessageEncoder, MessageDecoder);
     _channel.MessageReceived += OnMessageReceived;
     _channel.Disconnected    += OnDisconnect;
     _channel.MessageSent     += OnSendCompleted;
     _args.Completed          += OnConnect;
     OnAuthentication         += SendAuthentication;
 }
 /// <summary>
 ///     Default constructor. It uses the default FreeSwitch mod_event_socket settings for connectivity
 /// </summary>
 public OutboundChannelSession()
 {
     Address                   = "127.0.0.1";
     Port                      = 8021;
     ConnectionTimeout         = TimeSpan.Zero;
     Password                  = "******";
     MessageEncoder            = new FreeSwitchEncoder();
     MessageDecoder            = new FreeSwitchDecoder();
     FreeSwitchEventFilter     = "plain ALL";
     _authenticated            = false;
     _requestsQueue            = new ConcurrentQueue <CommandAsyncEvent>();
     _channel                  = new TcpChannel(new BufferSlice(new byte[65535], 0, 65535), MessageEncoder, MessageDecoder);
     _channel.MessageReceived += OnMessageReceived;
     _channel.Disconnected    += OnDisconnect;
     _channel.MessageSent     += OnSendCompleted;
     _args.Completed          += OnConnect;
     OnAuthentication         += SendAuthentication;
 }