Exemple #1
0
        // https://www.assembla.com/spaces/ibox-processing/wiki/Linux_I_GPRS-connection_I_configuration
        /// <summary>
        ///     Меняем настройку модема - в консоли  cp /etc/chatscript/life-connect /etc/chatscript/mts-connect
        ///     но пишем весь файл
        /// </summary>
        /// <param name="ModelModem"></param>
        public static void CreateScriptFile(this GprsProvider provider, ModelModem modelModem, int tryIndex)
        {
            var file = provider.LinuxScriptFile(true);

            {
                var filePreconfig = file + '-' + modelModem.ShortName();
                if (File.Exists(filePreconfig))
                {
                    File.Copy(filePreconfig, file, true);
                    return;
                }
            }
            using (var writer = new StreamWriter(file, false))
            {
                writer.WriteLine("TIMEOUT 45");
                writer.WriteLine("ABORT 'NO ANSWER'");
                writer.WriteLine("ABORT 'BUSY'");
                writer.WriteLine("ABORT 'NO CARRIER'");
                writer.WriteLine("SAY 'Starting " + provider.ProviderName() + " GPRS connection\\n'");
                writer.WriteLine("ABORT ERROR");
                writer.WriteLine("'' 'ATZ'");
                writer.WriteLine("OK 'ATE1'");
                var addCmd = provider.AdditionalInitCommand(modelModem);
                if (!string.IsNullOrEmpty(addCmd))
                {
                    writer.WriteLine("OK '{0}'", addCmd);
                }
                writer.WriteLine("OK 'ATD{0}'", provider.CallNumber(tryIndex));
                writer.WriteLine("CONNECT c");
            }
        }
Exemple #2
0
        /// <summary>
        ///     Настраиваем бридж cp /etc/ppp/peers/life /etc/ppp/peers/mts
        ///     Открываем для редактирования nano -w /etc/ppp/peers/mts
        ///     Меняем connect '/usr/sbin/chat -v -f /etc/chatscript/life-connect'   на connect '/usr/sbin/chat -v -f
        ///     /etc/chatscript/mts-connect'
        ///     ( в начале открывшегося файла должен быть указан порт, по которому подключен модем скорее всего dev/ttyS0 )
        ///     но пишем весь файл
        /// </summary>
        public static void CreateBridgeFile(this GprsProvider provider, ModelModem modelModem, string ttyDevice,
                                            int speed)
        {
            var file = provider.LinuxBridgeFile(true);

            {
                var filePreconfig = file + '-' + modelModem.ShortName();
                if (File.Exists(filePreconfig))
                {
                    File.Copy(filePreconfig, file, true);
                    ShellConsole.WriteInfo("Modem.CreateBridgeFile: Copy {0} to {1}", filePreconfig, file);
                    return;
                }
            }
            try
            {
                using (var writer = new StreamWriter(file, false))
                {
                    ShellConsole.WriteInfo("Modem.CreateBridgeFile: WriteFile {0}", file);

                    writer.Write(ttyDevice); // tty device
                    writer.Write(" ");
                    writer.WriteLine(speed); // Serial port line speed
                    var preconfig = ReadPreconfig(modelModem);
                    writer.Write(preconfig);
                    writer.WriteLine("connect '/usr/sbin/chat -e -v -f " + provider.LinuxScriptFile(true) + "'");

                    if (modelModem == ModelModem.Wavecom && preconfig.Contains("user ibox"))
                    {
                        try
                        {
                            using (var writer2 = new StreamWriter("/etc/ppp/pap-secrets", false))
                            {
                                writer2.WriteLine("# Secrets for authentication using PAP");
                                writer2.WriteLine("# client server  secret          IP addresses");
                                writer2.WriteLine("ibox * 1 *");
                            }
                        }
                        catch (Exception ex)
                        {
                            ShellConsole.WriteInfo("Modem. CreateBridgeFile: WriterPapSecr: " + ex.Message);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ShellConsole.WriteInfo("Modem. CreateBridgeFile: WriteFileError: " + ex.Message);
            }
        }