AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Оптимизация extensions.conf

Newbies/FAQ Forum 13 сообщений -
#1

Есть Asterisk 1.6, 4-канальный шлюз SIP/GSM, несколько внутренних SIP телефонов.
Сейчас стараюсь "расчесать" extensions.conf. Возникло несколько вопросов.

Вот первый.
В GSM шлюзе 4 канала. 1 Задействован под входящие звонки. Остальные под исходящие. Как все 3 исходящих канала объеденить в транк? Так чтобы exten => _X.,1,Dial(SIP/Trunk1,50,trm) , вызывало любой свободный канал из трёх?
#2

А что за шлюз?
#3

В данном случае KTS 4 канальный.
#4

Ну, во-первых, надо посмотреть, умеет ли сам шлюз такие вещи делать. Во-вторых, можно сделать проверку состояния каналов. Про это на форуме написано очень много. Так что особого труда сделать не составит.
#5

Обратился в техподдежку KTS. Сказали только все линии объеденить можно, по-отдельности 2,3,4 линию заенести в транк нельзя. Буду пробовать через состояние каналов.

Еще вопрос. Сейчас при входящем звонке звонят одновременно несколько телефонов внутренних: Dial(SIP/201&SIP/202&SIP/203,50,trm). Эта группа телефонов используется несколько раз в диалплане. Как бы мне эту группу сделать группой? Чтоб всякий раз на неё ссылаться. Или хотябы переменную какую-то глобальную, в которой бдует прописано "SIP/201&SIP/202&SIP/203". Чтобы менять только в одном месте внутренние номера группы, а не по всему диалплану.
#6

Японский городовойBigGrin3) Группа называется Queue, про это написано тоже оооооочень много. В Гугле достаточно набрать Asterisk очередь. Ну или что-то в этом роде. Там особо ничего сложного (и таки да, на форуме тоже миллион раз рассказывалось).
#7

Подскажите пожалуйста еще вот какой момент по оптимизации. Приведу один контекст:
Код:
[russia-kursk-city]
exten => _+7471X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _+7471X.,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _+7471X.,n,Dial(${OUT_RUSSIA_KURSK}/${EXTEN},70,Ttrm)

exten => _[78]471X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _[78]471X.,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _[78]471X.,n,Dial(${OUT_RUSSIA_KURSK}/${EXTEN},70,Ttrm)

exten => _XXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _XXXXX,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _XXXXX,n,Dial(${OUT_RUSSIA_KURSK}/847122${EXTEN},70,Ttrm)

exten => _XXXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _XXXXXX,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _XXXXXX,n,Dial(${OUT_RUSSIA_KURSK}/84712${EXTEN})


Как видите каждые первые две строчки повторяются, хотя происходит там одно и тоже - запись разговора. Каким способом посоветуете их вынести куда-то, чтобы не было повторений?


Последний раз редактировалось: dsa046 (Чт Фев 13, 2014 07:56)
#8

А слабо изучить еще и понятие Macro или Gosub
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#9

Вот так получилось через goto.
Код:
[russia-kursk-city]
exten => _XXXXX,1,Goto(847122${EXTEN},1)
exten => _XXXXXX,1,Goto(84712${EXTEN},1)
exten => _+7471XXXXXXX,1,Goto(8${EXTEN:2},1)
exten => _84712XXXXXX,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _84712XXXXXX,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _84712XXXXXX,n,Dial(${OUT_RUSSIA_KURSK}/${EXTEN},70,Ttrm)


Еще другой вопрос. Сделаны короткие номера для мобильных. Чтобы быстро вызывать или быстро переключать. Как бы их можно было свернуть? Пока только в голову приходит макрос, который в качестве переменной принимает номер сотрудника в включает в себя строки с записью и строки с вызовом абонента содержащегося в переменной. Или может какой-то более красивый путь есть?
Код:
[mobile-users]

exten => _101,1,Answer()
exten => _101,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _101,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _101,n,Dial(${OUT_RUSSIA_MEGAFON}/89030004555,50,Ttrm)

exten => _102,1,Answer()
exten => _102,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _102,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _102,n,Dial(${OUT_RUSSIA_MEGAFON}/89190004805,50,Ttrm)

exten => _103,1,Answer()
exten => _103,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _103,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _103,n,Dial(SIP/${OUT_RUSSIA_MEGAFON}/89150002131,50,Ttrm)

exten => _106,1,Answer()
exten => _106,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _106,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _106,n,Dial(${OUT_RUSSIA_MEGAFON}/89300008555,50,Ttrm)

exten => _107,1,Answer()
exten => _107,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _107,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _107,n,Dial(SIP/${OUT_RUSSIA_MEGAFON}/89200003888,50,Ttrm)

exten => _110,1,Answer()
exten => _110,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _110,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _110,n,Dial(${OUT_RUSSIA_MEGAFON}/89500008039,50,Ttrm)
#10

Неужели человек, зарегистрированный с 2009 года, до сих пор пишет ЯВНЫЕ конструкции типа 101 в виде шаблона _101 ? Не верю своим глазам.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#11

Это делалось копированием из другого контекста, в котором шаблоны используются, забыл исправить. Спасибо.

Вынес в отдельный макрос, вызывать буду везде где надо использовать DIAL.
Получилось так:
Код:

[macro-write-and-call]
exten => s,1,Answer()
exten => s,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => s,n,MixMonitor(/usr/local/www/hosts/test.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => s,n,Dial(${ARG1}/${ARG2},50,Ttrm)


[mobile-users]
exten => 101,1,Macro(write-and-call,${OUT_RUSSIA_MEGAFON},89030004555);
exten => 102,1,Macro(write-and-call,${OUT_RUSSIA_MEGAFON},89190004805);
exten => 103,1,Macro(write-and-call,${OUT_RUSSIA_MEGAFON},89150002131);
exten => 106,1,Macro(write-and-call,${OUT_RUSSIA_MEGAFON},89300008555);
exten => 107,1,Macro(write-and-call,${OUT_RUSSIA_MEGAFON},89200003888);
exten => 110,1,Macro(write-and-call,${OUT_RUSSIA_MEGAFON},89500008039);

#12

Answer перед Dial? Зачем?
#13

Да, при исходящем смысла нет. Уберу. Спасибо!