Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2014-01-29 08:47:32 +0400

bigluc Gravatar bigluc

Нет сигнала линия занята

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

[incoming]
exten => _XXXX,1,NooP(GROUP_COUNT(${EXTEN}) = ${GROUP_COUNT(${EXTEN})})
exten => _XXXX,n,GotoIf($[${GROUP_COUNT(${EXTEN})} > 0]?busy)
exten => _XXXX,n,Set(GROUP()=${EXTEN})
exten => _XXXX,n,NooP(GROUP_COUNT(${EXTEN}) = ${GROUP_COUNT(${EXTEN})})
exten => _XXXX,n,Dial(SIP/sibup_${EXTEN})
exten => _XXXX,n,Hangup()
exten => _XXXX,n(busy),Busy()

[outgoing]
 exten => _XXXX,1,Set(GROUP()=${CALLERID(num)})
 exten => _XXXX,n,NooP(GROUP_COUNT(${CALLERID(num)}) = ${GROUP_COUNT(${CALLERID(num)})})
 exten => _XXXX,n,NooP(GROUP_COUNT(${EXTEN}) = ${GROUP_COUNT(${EXTEN})})
 exten => _XXXX,n,Dial(Local/${EXTEN}@incoming)
 exten => _XXXX,n,Hangup()

Вызов происходит из контекста [outgoing]. Вот лог 1 вызова:

Executing [1111@outgoing:1] Set("SIP/1108-000000d8", "GROUP()=1108") in new stack
    -- Executing [1111@outgoing:2] NoOp("SIP/1108-000000d8", "GROUP_COUNT(1108) = 1") in new stack
    -- Executing [1111@outgoing:3] NoOp("SIP/1108-000000d8", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@outgoing:4] Dial("SIP/1108-000000d8", "Local/1111@incoming") in new stack
    -- Called Local/1111@incoming
    -- Executing [1111@incoming:1] NoOp("Local/1111@incoming-00000034;2", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@incoming:2] GotoIf("Local/1111@incoming-00000034;2", "0?busy") in new stack
    -- Executing [1111@incoming:3] Set("Local/1111@incoming-00000034;2", "GROUP()=1111") in new stack
    -- Executing [1111@incoming:4] NoOp("Local/1111@incoming-00000034;2", "GROUP_COUNT(1111) = 1") in new stack
    -- Executing [1111@incoming:5] Dial("Local/1111@incoming-00000034;2", "SIP/1111") in new stack

Вот лог 2 параллельного вызова:

-- Executing [1111@outgoing:1] Set("SIP/1110-000000da", "GROUP()=1110") in new stack
    -- Executing [1111@outgoing:2] NoOp("SIP/1110-000000da", "GROUP_COUNT(1110) = 1") in new stack
    -- Executing [1111@outgoing:3] NoOp("SIP/1110-000000da", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@outgoing:4] Dial("SIP/1110-000000da", "Local/1111@incoming") in new stack
    -- Called Local/1111@incoming
    -- Executing [1111@incoming:1] NoOp("Local/1111@incoming-00000035;2", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@incoming:2] GotoIf("Local/1111@incoming-00000035;2", "0?busy") in new stack
    -- Executing [1111@incoming:3] Set("Local/1111@incoming-00000035;2", "GROUP()=1111") in new stack
    -- Executing [1111@incoming:4] NoOp("Local/1111@incoming-00000035;2", "GROUP_COUNT(1111) = 1") in new stack
    -- Executing [1111@incoming:5] Dial("Local/1111@incoming-00000035;2", "SIP/1111") in new stack

Т.е. GROUP_COUNT не считает количество. В чем моя ошибка подскажите пожалуйста.

Нет сигнала линия занята

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

[incoming]
exten => _XXXX,1,NooP(GROUP_COUNT(${EXTEN}) = ${GROUP_COUNT(${EXTEN})})
exten => _XXXX,n,GotoIf($[${GROUP_COUNT(${EXTEN})} > 0]?busy)
exten => _XXXX,n,Set(GROUP()=${EXTEN})
exten => _XXXX,n,NooP(GROUP_COUNT(${EXTEN}) = ${GROUP_COUNT(${EXTEN})})
exten => _XXXX,n,Dial(SIP/sibup_${EXTEN})
_XXXX,n,Dial(SIP/${EXTEN})
exten => _XXXX,n,Hangup()
exten => _XXXX,n(busy),Busy()

[outgoing]
 exten => _XXXX,1,Set(GROUP()=${CALLERID(num)})
 exten => _XXXX,n,NooP(GROUP_COUNT(${CALLERID(num)}) = ${GROUP_COUNT(${CALLERID(num)})})
 exten => _XXXX,n,NooP(GROUP_COUNT(${EXTEN}) = ${GROUP_COUNT(${EXTEN})})
 exten => _XXXX,n,Dial(Local/${EXTEN}@incoming)
 exten => _XXXX,n,Hangup()

Вызов происходит из контекста [outgoing]. Вот лог 1 вызова:

Executing [1111@outgoing:1] Set("SIP/1108-000000d8", "GROUP()=1108") in new stack
    -- Executing [1111@outgoing:2] NoOp("SIP/1108-000000d8", "GROUP_COUNT(1108) = 1") in new stack
    -- Executing [1111@outgoing:3] NoOp("SIP/1108-000000d8", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@outgoing:4] Dial("SIP/1108-000000d8", "Local/1111@incoming") in new stack
    -- Called Local/1111@incoming
    -- Executing [1111@incoming:1] NoOp("Local/1111@incoming-00000034;2", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@incoming:2] GotoIf("Local/1111@incoming-00000034;2", "0?busy") in new stack
    -- Executing [1111@incoming:3] Set("Local/1111@incoming-00000034;2", "GROUP()=1111") in new stack
    -- Executing [1111@incoming:4] NoOp("Local/1111@incoming-00000034;2", "GROUP_COUNT(1111) = 1") in new stack
    -- Executing [1111@incoming:5] Dial("Local/1111@incoming-00000034;2", "SIP/1111") in new stack

Вот лог 2 параллельного вызова:

-- Executing [1111@outgoing:1] Set("SIP/1110-000000da", "GROUP()=1110") in new stack
    -- Executing [1111@outgoing:2] NoOp("SIP/1110-000000da", "GROUP_COUNT(1110) = 1") in new stack
    -- Executing [1111@outgoing:3] NoOp("SIP/1110-000000da", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@outgoing:4] Dial("SIP/1110-000000da", "Local/1111@incoming") in new stack
    -- Called Local/1111@incoming
    -- Executing [1111@incoming:1] NoOp("Local/1111@incoming-00000035;2", "GROUP_COUNT(1111) = 0") in new stack
    -- Executing [1111@incoming:2] GotoIf("Local/1111@incoming-00000035;2", "0?busy") in new stack
    -- Executing [1111@incoming:3] Set("Local/1111@incoming-00000035;2", "GROUP()=1111") in new stack
    -- Executing [1111@incoming:4] NoOp("Local/1111@incoming-00000035;2", "GROUP_COUNT(1111) = 1") in new stack
    -- Executing [1111@incoming:5] Dial("Local/1111@incoming-00000035;2", "SIP/1111") in new stack

Т.е. GROUP_COUNT не считает количество. В чем моя ошибка подскажите пожалуйста.

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.