// 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"); } }
/// <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); } }