Автор Тема: [РЕШЕНО] Настройка диал-плана Asterisk  (Прочитано 3397 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sem

  • Постоялец
  • ***
  • Сообщений: 207
  • Рейтинг: 2
    • Просмотр профиля
  • Откуда: СПб
[РЕШЕНО] Настройка диал-плана Asterisk
« : 24 октября 2012, 09:44:54 »
ver. 1.8.17
надо чтоб при звонке в комнату звонили все не занятые аппараты, пишу в extensions.conf
exten => s,1,Dial(SIP/1&SIP/2)
звоню, звенят оба телефона, отвечать могу по любому
отвечаю по первому (трубка снята)
звоню с другого номера, на первом во время разговора появляется надпись, что идет входящий вызов, а второй молчит =(
Что делаю не так?
« Последнее редактирование: 24 октября 2012, 16:19:38 от Sem »

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Настройка диал-плана Asterisk
« Ответ #1 : 24 октября 2012, 09:51:49 »
Sem, & не означает, что будет проводится какая либо проверка каналов. Если первый канал занят - все равно Dial туда будет ломится.
Надо настраивать или queue или Dialgroup.
Not as ultimate as 42, but pretty close...

Оффлайн Sem

  • Постоялец
  • ***
  • Сообщений: 207
  • Рейтинг: 2
    • Просмотр профиля
  • Откуда: СПб
Настройка диал-плана Asterisk
« Ответ #2 : 24 октября 2012, 10:32:51 »
VanDyke, ну пусть ломится, но второй то почему не звонит???

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Настройка диал-плана Asterisk
« Ответ #3 : 24 октября 2012, 10:43:13 »
Sem, тяжело без логов так сказать - возможно потому что уже установлено соединение с SIP/1



Updated: 24 October 2012, 12:05:20

Ну в общем то судя по исходникам apps/app_dial.c дело обстоит так
/* loop through the list of dial destinations */
rest = args.peers;
while ((cur = strsep(&rest, "&")) ) {
       //побежали по всем dst
       .....
       res = ast_call(tc, numsubst, 0); /* Place the call, but don't wait on the answer */
       ....
       /* If this line is up, don't try anybody else */
       if (outgoing->chan->_state == AST_STATE_UP)
                break;
}
Вот скорее всего и ответ. Если канал в UP - по циклу дальше не пойдет обрабатывать других destination.
« Последнее редактирование: 24 октября 2012, 11:07:06 от VanDyke »
Not as ultimate as 42, but pretty close...

Оффлайн Sem

  • Постоялец
  • ***
  • Сообщений: 207
  • Рейтинг: 2
    • Просмотр профиля
  • Откуда: СПб
Настройка диал-плана Asterisk
« Ответ #4 : 24 октября 2012, 14:07:37 »
Немного разобрался:
Dialgroup - это полный аналог &, и поведение такое же
Queue - работает почти как надо, минус тока в том, что требует Answer до перевода звонка, т.е. я звоню с мобилы и соединение уже установилось, а абоненты еще трубку не взяли, деньги тикают =)

...задумался - а не поправить ли app_dial.c =)

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Настройка диал-плана Asterisk
« Ответ #5 : 24 октября 2012, 14:12:01 »
Sem, а разве SIP/1 нельзя просто указать что у него одна линия? Если на второй вызов пойдет отлуп BUSY - остальные члены получат свой вызов.
Not as ultimate as 42, but pretty close...

Оффлайн Sem

  • Постоялец
  • ***
  • Сообщений: 207
  • Рейтинг: 2
    • Просмотр профиля
  • Откуда: СПб
Настройка диал-плана Asterisk
« Ответ #6 : 24 октября 2012, 14:58:30 »
Прописал, не помогло. Походу оно больше не работает, вот выдержка из sip.conf
; The "call-limit" configuation option is considered old is replaced
; by new functionality. To enable callcounters, you use the new
; "callcounter" setting (for extension states in queue and subscriptions)
; You are encouraged to use the dialplan groupcount functionality
; to enforce call limits instead of using this channel-specific method.
; You can still set limits per device in sip.conf or in a database by using
; "setvar" to set variables that can be used in the dialplan for various limits.

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Настройка диал-плана Asterisk
« Ответ #7 : 24 октября 2012, 16:03:36 »
Sem, я видел это, у меня на 1.8.7.0 точно работал call-limit. Правда потом таки переделал на группы.
Not as ultimate as 42, but pretty close...

Оффлайн Sem

  • Постоялец
  • ***
  • Сообщений: 207
  • Рейтинг: 2
    • Просмотр профиля
  • Откуда: СПб
Настройка диал-плана Asterisk
« Ответ #8 : 24 октября 2012, 16:19:20 »
ладно, оставлю на очередях, в принципе снятие денег с мобильного - это проблема звонящего  :D