예제 #1
0
        //private IDictionary<string, NetworkSetting> cache;
        //private ISettingsElement element;

        public VoipProviderSettingsWindow(SdpClient client, VoipProviders provider)
        {
            this.client   = client;
            this.provider = provider;

            //client.UpdateSettings += Client_UpdateSettings;

            InitializeComponent();

            //client.Send(new RequestSettings() { Category = providerNames[provider] });
        }
예제 #2
0
        public MainWindow(SdpClient client, VoipProviders provider, int lines, Role role)
        {
            this.provider = provider;
            Role          = role;
            Client        = client;

            InitializeComponent();

            Lines = new List <Line>();
            for (byte i = 0; i < lines; i++)
            {
                Lines.Add(new Line(i));
            }

            if (Role == Role.Screener)
            {
                Screener = new ScreenerElement(Client);
                Grid.SetRow(Screener, 0);
                Grid.SetColumn(Screener, 0);
                ScreenerFrame.Content = Screener;
            }

            if (Lines.Count > 0)
            {
                SelectLine(Lines[0]);
            }

            ConstructLineGrid(LineGrid, Lines, out elements);

            Client.Manager.InitializeLine   += Client_InitializeLine;
            Client.Manager.LineMetadata     += Client_LineMetadata;
            Client.Manager.LineStateChanged += Client_LineStateChanged;
            Client.Manager.Settings         += Client_Settings;

            /*Client.Send(new Settings()
             * {
             *  Key = "asterisk_hybrid_extensions",
             *  Category = "asterisk",
             * });*/

            HasConnection = true;
        }
예제 #3
0
        public static IVoipProvider Create(KeyDataCollection data)
        {
            string type = data["type"].Trim().ToLower();

            if (type == null)
            {
                throw new Exception("missing type value in Provider collection");
            }
            if (!TypeNames.ContainsKey(type))
            {
                throw new Exception("unsupported type value in Provider collection");
            }
            VoipProviders provider = TypeNames[type];

            switch (provider)
            {
            case VoipProviders.Asterisk:
                return(new AsteriskProvider(data));

            default:
                throw new NotImplementedException("VoipProviderFactory");
            }
        }
예제 #4
0
 public void ReadFrom(BinaryReader reader)
 {
     Lines    = reader.ReadByte();
     Provider = (VoipProviders)reader.ReadByte();
 }