LINUX.ORG.RU
ФорумAdmin

Asterisk и распределение входящего звонка на несколько телефонов

 


0

1

Всем доброго времени суток.

Имеется Asterisk 11, trunk multifon и, допустим, 3 внутренних номера. Нужно, чтобы когда звонок приходит именно по этому транку эти три внутренних номера звонили поочередно, с интервалом в три гудка, 5 секунд - не важно.

Что пробовал сделать. Три подопытных номера находятся в одной callgroup: 63, имеют один и тот же context: from-internal.

extension.conf

[redirect-calls]
exten => 63,1,Dial(SIP/555,15,Tr)
exten => 63,n,Dial(SIP/556,15,Tr)
exten => 63,n,Dial(SIP/755,15,Tr)
exten => 63,n,Goto(63,1)

[from-internal]
include => redirect-calls
include => from-internal-xfer
include => bad-number

Но, не работает. Как я понял необходимо дописать еще один context и заинклюдить его.

Пробовал еще exten => 63,1,Dial(SIP/555&SIP/556&SIP/755). Как я понимаю в данном случае номера бы звонили одновременно, но хоть какой-то сдвиг. По итогу тоже не работает.

Где я свернул не туда?

запустите астер в дебаг режиме и посмотрите как звонок идет

Silerus ★★★ ()
Ответ на: комментарий от Revent

Воот, это меня смущает. Я нашел ветку на форуме где пишут, что это номер группы. Тык

hanharr ()
Ответ на: комментарий от Revent

Так, да, если вместо 63 написать везде 555, то звонится. А как перенаправлять звонки только с одного транка?

hanharr ()
Ответ на: комментарий от Deleted

Тут у нас идёт работа в двух направлениях. Кто-то копает очереди, кто-то вот такие костыли. С очередями там что-то всё еще хуже, даже все входящие не получается перенаправлять.

hanharr ()
Ответ на: комментарий от hanharr

даже все входящие не получается перенаправлять.

exten => 63,1,Queue(somequeue)


не пашет?

Deleted ()

у транка поставь контекст
в контексте поставь вызов очереди
создай очередь и определи её тип и задержки

Все.

zgen ★★★★★ ()
[incoming]
exten	=>	9999,1,NoOp()
same	=>	n, Dial(SIP/1000,5)
same	=>	n, Dial(SIP/2000,5)
same	=>	n, Goto(1)


Если все 3 клиента в сети, то нормально отрабатывает, если хоть один offline, то обрывается.

Deleted ()
Последнее исправление: log4tmp (всего исправлений: 1)
Ответ на: комментарий от Deleted

Версия с очередями:
extensions.conf

[incoming]
exten	=> 9999,1,Queue(queue1)


queues.conf
[general]
keepstats=yes

[common](!)
autofill=yes
joinempty=no
ringinuse=no

[queue1](common)
strategy=linear
timeout=5
member => SIP/1000
member => SIP/2000
member => SIP/3000

Deleted ()
Ответ на: комментарий от hanharr

транка естественно

sip.conf

Вот то что в строке register после / идет, то и есть exten который уходит в dialplan

register	=>9999:<pass>@<ats_ip>/9999

[9999]
type=friend
defaultuser=9999
secret=<pass>
insecure=invite
host=<ats_ip>
fromuser=9999
fromdomain=<ats_ip>
context=incoming
canreinvite=no

Deleted ()
Ответ на: комментарий от Deleted

Т.е. у меня в настройках внутренних номеров SIP/500&SIP/501&SIP/502 у меня используется context from-internal и чтобы использовать incoming надо будет дописать include => incoming. Если я правильно понял, то не работает.

hanharr ()
Ответ на: комментарий от Deleted
[test]
disallow=all
username=7920*******
secret=pass
fromuser=7920*******
nat=auto_force_rport,auto_comedia
type=peer
transport=tcp
qualify=yes
insecure=port,invite
host=sbc.megafon.ru
fromdomain=multifon.ru
dtmfmode=inband
canreinvite=no
port=****
allow=alaw
allow=ulaw
allow=gsm
context=from-trunk-sip-test
hanharr ()
Ответ на: комментарий от Deleted

Если я правильно понял, то

extensions.conf

[from-internal]
include => incoming
include => from-internal-xfer
include => bad-number

[incoming]
exten => 7920*******,1,Queue(queue1)

queues.conf

[general]
keepstats=yes

[common](!)
autofill=yes
joinempty=no
ringinuse=no

[queue1](common)
strategy=linear
timeout=5
member => SIP/555
member => SIP/556
member => SIP/755

P.S. Честно? Не знаю. Как можно узнать?)

hanharr ()
Ответ на: комментарий от hanharr

В настройке транка

context=from-trunk-sip-test


Заменить на:
context=from-internal


P.S. Честно? Не знаю. Как можно узнать?)

module show like sip

Deleted ()
Ответ на: комментарий от Deleted

Не работает очередь. Не может быть, что синтаксис queues.conf другой? А то полистал конфиги и (!) и подобного нигде не увидел.

module show like sip

Module                         Description                              Use Count 
app_adsiprog.so                Asterisk ADSI Programming Application    0         
chan_sip.so                    Session Initiation Protocol (SIP)        78 

hanharr ()
Ответ на: комментарий от hanharr

Asterisk 14 - работает с таким конфигом.

queues show all - посмотреть статус очереди. Если нет такой команды, значит модуль app_queue.so не загружен.

Ну запускайте asterisk -rvvvvvvvvvvv и смотрите, что во время вызова происходит.

И sip show registry заодно покажите

P.S. Через 15 минут пропаду часов на 5.

Deleted ()
Последнее исправление: log4tmp (всего исправлений: 2)
Ответ на: комментарий от Deleted

Хм, похоже, что не загружен.. У нас тут Asterisk 11 :)

S006*CLI> queue show queue1
queue1 has 0 calls (max unlimited) in 'linear' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   Members: 
      SIP/555 (ringinuse disabled) (Not in use) has taken no calls yet
      SIP/556 (ringinuse disabled) (Not in use) has taken no calls yet
      SIP/755 (ringinuse disabled) (Not in use) has taken no calls yet
   No Callers

S006*CLI> queues show all
No such command 'queues show all' (type 'core show help queues show' for other possible commands)

Чтобы добавить модуль необходимо будет пересобрать Asterisk? Или тут можно малыми жертвами обойтись?

hanharr ()
Ответ на: комментарий от Deleted

Мне строка register не нравится, странная она у вас, возможно звонки до АТС не доходят, проверить можно по: sip show registry ну и потом запускать asterisk -rvvvvvvvvvvvvv и смотреть, что происходит.

Deleted ()
Ответ на: комментарий от Deleted

Пишет, что зарегистрирован. Ладно, спасибо за помощь. В понедельник вернусь к эксперементам. Может сегодня уже не вижу что-то очевидное.

hanharr ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.