Теперь рассмотрим конкретно заданную ситуацию. Например, имеется два офиса, находящихся в разных зданиях. Здания могут находиться как рядом друг с другом, так и в двух противоположных точках земного шара. Этот пункт повлияет только на то, будет ли нужен выход в интернет для связи между астерисками, или достаточно будет объединить две сети этих зданий, например, маршрутизатором, если бы они находились рядом.
Предположим, что два офиса находятся рядом. В каждом офисе стоит свой сервер с Астериском, дабы разделить нагрузку двух этих офисов. В каждом офисе имеется некое количество работников, которые желают общаться между собой по телефону. Все они разбиты по группам в разные кабинету. Например, в первом здании есть кабинет бухгалтеров, кабинет менеджеров, кабинет директора с секретарем, пункт охраны и вахта. Во втором здании имеется кабинет технической поддержки, и кабинет системных администраторов.
Теперь необходимо посчитать количество телефонов, чтобы создать нужное число пользователей Астериска. Все эти пользователи прописываются в файле «sip.conf».
[basic-options](!) - шаблон базовых опций;
dtmfmode=rfc2833 - задаем способ передачи DTMF сигналов;
context=incoming-sip - задаем контекст диалплана для маршрутизации;
type=friend - задаем тип пользователя;
host=dynamic - задаем тип хоста;
[my-codecs](!) - шаблон используемых кодков;
disallow=all -запрещаем все
allow=gsm разрешаем кодек;
allow=g729
allow=g723=ulaw
[1101](my-codecs,basic-options) - описываем пользователей=buhgalter1
[1102](my-codecs,basic-options)=buhgalter2
[1103](my-codecs,basic-options)=buhgalter3
[1201](my-codecs,basic-options)=manager1
[1202](my-codecs,basic-options)=manager2
[1203](my-codecs,basic-options)=manager3
[1301](my-codecs,basic-options)=ohrana
[1001](my-codecs,basic-options)=vahta
[1401](my-codecs,basic-options)=zam.directora
[1402](my-codecs,basic-options)=director
В контексте «general» прописываются все необходимые настройки для возможности связи с Астериском через SIP протокол. В основном, эти настройки уже заданы изначально при установке астериска и в изменении не нуждаются. Во всяком случае, если Вам придется что-нибудь там изменить, то там имеются комментарии к командам, которые дадут Вам понять, что они означают. Здесь они описываться не будут.
Как видно из кода, синтаксис позволяет использование шаблонов. То есть мы можем написать какой-то набор команд, назвать их каким-то образом (например, [my-codecs]), а затем, поставив рядом восклицательный знак в круглых скобках, вот так (!), мы превращаем данный набор команд в шаблон, который потом легко использовать. Чтобы каждому пользователю не прописывать заново одни и те же команды, достаточно рядом с именем пользователя в круглых скобках указать через запятую имена шаблонов. Теперь в описании пользователя имеется только команда задания пароля - secret.
Для примера, было решено в первом здании создать записи для 10 пользователей телефонии. За каждым пользователем скрывается телефонный аппарат. Людей, естественно, может быть больше чем этих телефонов. Количество пользователей можно наращивать сколь угодно много, просто создавая еще один набор команд. В качестве имен в данном примере использованы номера, по которым будут дозваниваться до пользователей другие абоненты сети. Это сделано для удобства перенаправления в диалплане. Можно задавать различные имена, никак не связанные с номером телефона.
Итак, пользователи имеются, осталось настроить диалплан. Он настраивается путем добавления нужных команд в файл «extensions.conf».
[incoming-datacard]=> s,1,Answer()=> s,n,Background(/home/company2)=> s,n,WaitExten()=> _11XX,1,Dial(SIP/1101&SIP/1102&SIP/1103)=> _11XX,n,Hangup()=> _12XX,1,Dial(SIP/1201&SIP/1202&SIP/1203)=> _12XX,n,Hangup()=> _13XX,1,Dial(SIP/1301&SIP/1302)=> _13XX,n,Hangup()=> _14XX,1,Dial(SIP/1401)=> _14XX,n,Hangup()=> i,1,Hangup()=> t,1,Hangup()
[incoming-sip]=> _8932XXXXXXX,1,Dial(Datacard/megafon/${EXTEN},60)=> _8922XXXXXXX,1,Dial(Datacard/megafon/${EXTEN},60)=> _8912XXXXXXX,1,Dial(Datacard/mts/${EXTEN},60)=> _8982XXXXXXX,1,Dial(Datacard/mts/${EXTEN},60)=> _8965XXXXXXX,1,Dial(Datacard/beeline/${EXTEN},60)
; локальные номера:=> _1XXX,1,Dial(SIP/${EXTEN},20)=> _1XXX,n,Hangup()=> _2XXX,1,Dial(IAX2/office1:pass4office1@office2/${EXTEN},20)
Теперь по порядку. Команда «еxten» это синтаксис добавочного номера (extension - числовой идентификатор, присвоенный линии, идущей к конкретному телефону). После нее идет знак => и далее номер или имя. Как видно выше, используется запись типа «_1ХХХ». Это означает что любые номера, начинающиеся на единицу и имеющие за собой, неважно какие, еще три цифры будут перенаправлены соответствующим пользователям.
Анализ алгоритмов цифровой обработки сигналов. Исследование корректирующих способностей циклических кодов
цифровой сигнал циклический код
Цифровой фильтр - в электронике любой фильтр, обрабатывающий цифровой сигнал с целью выделения и/или подавления определённых частот этого ...
Моделирование цифро-аналоговых преобразователей
С введением новых телевизионных стандартов, таких как EDTV (телевидение повышенной четкости) и HDTV(телевидение высокой четкости) повышаются требования к АЦП и ЦАП. Некот ...
Проектирование автоматического измерителя артериального давления
Важным компонентом клинического мониторинга, определяющим
состояние сердечнососудистой системы и организма в целом, является контроль
кровяного давления. Дв ...