Хочу уточнить некоторые моменты по командам.
Группа команд
encode позволяет присвоить имя абоненту на кириллице. Есть три варианта:
1. encode name <extention> (или <station> — почему-то разные параметры для 2000IPS и SV8300
).
Тут всё просто: вводится один единственный номер абонента и ему присваивается имя. Если вы хотите стереть имя абонента, то используется аргумент командной строки, который передаётся в конце команды и предваряется двумя знаками тире "--". В качестве значения аргумента используется любое слово на ваш выбор (на английском или русском), которое для программы будет маркером, что мы хотим именно стереть имя, а не присвоить его абоненту. Аргумент — это опция, используется, если только нужно.
Пример, чтобы было понятнее. Допустим, мы хотим стереть имя абонента для номера 200:
[192.168.1.36]# encode name 200 --стереть
Name [БОРИС]: стереть
[192.168.1.36]# encode name 200
Name []:
[192.168.1.36]#
2. encode names
Здесь в бесконечном цикле запрашиваются имена абонентов, после чего выводится текущее имя и запрашивается новое. Соответственно, нам надо решить два вопроса: как стереть имя (если стоит такая задача) и как выйти из цикла.
По аналогии с п. 1 здесь для этих целей также используются аргументЫ (во множественном числе) командной строки. Первый служит маркером для программы для удаления имени, а второй — для выхода из цикла. Аргументы разделяются вертикальной чертой "|". В качестве аргументов можно, опять-таки, использовать любые доступные символы. Для данной команды аргументы обязательны (их нельзя пропускать) и их значения должны быть разными. Важно: выйти из цикла можно только в тот момент, когда вы находитесь при просмотре имени абонента.
Посмотрим как всё это выглядит на примере:
[192.168.1.36]# encode names --стереть|конец
Extention: 200
200`s name []:
Extention: 201
201`s name []:
Extention: 200
200`s name []: босс
Extention: 201
201`s name []: босс-молокосос
Extention: 200
200`s name [БОСС]:
Extention: 201
201`s name [БОСС-МОЛОКОСОС]:
Extention: 201
201`s name [БОСС-МОЛОКОСОС]: стереть
Extention: 201
201`s name []:
Extention: 201
201`s name []: конец
[192.168.1.36]#
3. encode list
Импортирует список абонентов из *.CSV файла, проверяет его и присваивает имена абонентам. Выбор файла запрашивается графически, после чего есть опции сразу запустить скрипт, отменить, или вывести на экран список (настоятельно рекомендую в первую очередь именно этот вариант, т. к. могут быть проблемы с кодировкой, а затем уже нажимать "y"). Вот как это приблизительно выглядит:
[192.168.1.36]# encode list
# using file 'names.csv'
Ready to assign 4 name(s); continue? [y/n/l]: l
202: леонид
203: Р±РѕСЂРёСЃ
204: михаил
205: жора
Ready to assign 4 name(s); continue? [y/n/l]: n
[192.168.1.36]#
(опа, у нас проблема с кодировкой - нажимаем "n" и исправляем кодировку в файле ("правильная" кодировка — виндовая 1251; повторяем команду)
[192.168.1.36]# encode list
# using file 'names.csv'
Ready to assign 4 name(s); continue? [y/n/l]: l
202: леонид
203: борис
204: михаил
205: жора
Ready to assign 4 name(s); continue? [y/n/l]: y
[executing...]
[192.168.1.36]#
(проверяем)
[192.168.1.36]# encode names --e|x
Extention: 202
202`s name [ЛЕОНИД]:
Extention: 203
203`s name [БОРИС]:
Extention: 204
204`s name [МИХАИЛ]:
Extention: 205
205`s name [ЖОРА]: x
[192.168.1.36]#
Разделителем значений пары имя-номер может быть как запятая, так и точка с запятой, порядок следования столбцов тоже не важен (программа использует алгоритмы ИИ
). Здесь важно "подсунуть" программе хоть что-то напоминающее список, иначе (как я заметил) вылезет ошибка и программа аварийно завершится.
Во всех случаях вводить имена можно в любом регистре, программа автоматически преобразует их при необходимости в верхий.