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

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

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

спросил 2011-01-24 13:39:05 +0400

Nubie Gravatar Nubie

Как запикапить автоматически переключенный из IVR законок? Asterisk 1.2 PickUp()

Есть Астериск 1.2, заменить его на свежий по ряду причин ну никак невозможно. Для пикапа звонков используется комбинация *8, завязанная на Application PickUp().

Вот диалплан:

[incoming]
exten => s,1,Set(TIMEOUT(digit)=5)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Answer()
exten => s,n,Wait(2)
exten => s,n,Background(privetstvie)
exten => s,n,WaitExten(7)
exten => 0,1,GoTo(incoming,s,1)
exten => t,1,Dial(SIP/100,60,tT)
exten => _1XX,1,Dial(SIP/${EXTEN},60,tT)
exten => 1234567,1,GoTo(incoming,s,1)

[internal]
include => outgoing
exten => _*8X.,1,PickUp(${EXTEN:2}@incoming)
exten => _1XX,1,Dial(SIP/${EXTEN},60,tT)
exten => _7XX,1,Dial(SIP/${EXTEN},60,tT)

Проблема следующая: звоним с города на номер 1234567, попадаем на IVR, где пользователю предлагают или ввести внутренний номер или подождать, после чего во втором случае он автоматически переадресуется на 100; так вот пикап безотказно работает, если пользователь руками набрал 100 (набираем *8100), но если его перекинуло по тайм-ауту ожидания ввода внутреннего номера, то забрать звонок никак не получается.

Контексты проверял, и в том и в том случае звонок находится в incoming.

Вот лог ошибочного пикапа.

    -- Executing Goto("SIP/1.2.2.1-081c66f0", "incoming|s|1") in new stack
    -- Goto (incoming,s,1)
    -- Executing Set("SIP/1.2.2.1-081c66f0", "TIMEOUT(digit)=5") in new stack
    -- Digit timeout set to 5
    -- Executing Set("SIP/1.2.2.1-081c66f0", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing Answer("SIP/1.2.2.1-081c66f0", "") in new stack
    -- Executing Wait("SIP/1.2.2.1-081c66f0", "2") in new stack
    -- Executing BackGround("SIP/1.2.2.1-081c66f0", "privetstvie") in new stack
    -- Playing 'privetstvie' (language 'en')
    -- Executing WaitExten("SIP/1.2.2.1-081c66f0", "7") in new stack
    -- Timeout on SIP/1.2.2.1-081c66f0, going to 't'
    -- Executing Dial("SIP/1.2.2.1-081c66f0", "SIP/100|60|tT") in new stack
    -- Called 100
    -- SIP/100-081bbee8 is ringing
    -- Executing Pickup("SIP/790-081b2eb8", "100@incoming") in new stack
 == Spawn extension (internal, *8100, 1) exited non-zero on 'SIP/790-081b2eb8'

Как запикапить автоматически переключенный По тайм-ауту из IVR законок? звонок? Asterisk 1.2 PickUp()

Есть Астериск 1.2, заменить его на свежий по ряду причин ну никак невозможно. Для пикапа звонков используется комбинация *8, завязанная на Application PickUp().

Вот диалплан:

[incoming]
exten => s,1,Set(TIMEOUT(digit)=5)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Answer()
exten => s,n,Wait(2)
exten => s,n,Background(privetstvie)
exten => s,n,WaitExten(7)
exten => 0,1,GoTo(incoming,s,1)
exten => t,1,Dial(SIP/100,60,tT)
exten => _1XX,1,Dial(SIP/${EXTEN},60,tT)
exten => 1234567,1,GoTo(incoming,s,1)

[internal]
include => outgoing
exten => _*8X.,1,PickUp(${EXTEN:2}@incoming)
exten => _1XX,1,Dial(SIP/${EXTEN},60,tT)
exten => _7XX,1,Dial(SIP/${EXTEN},60,tT)

Проблема следующая: звоним с города на номер 1234567, попадаем на IVR, где пользователю предлагают или ввести внутренний номер или подождать, после чего во втором случае он автоматически переадресуется на 100; так вот пикап безотказно работает, если пользователь руками набрал 100 (набираем *8100), но если его перекинуло по тайм-ауту ожидания ввода внутреннего номера, то забрать звонок никак не получается.

Контексты проверял, и в том и в том случае звонок находится в incoming.

Вот лог ошибочного пикапа.

    -- Executing Goto("SIP/1.2.2.1-081c66f0", "incoming|s|1") in new stack
    -- Goto (incoming,s,1)
    -- Executing Set("SIP/1.2.2.1-081c66f0", "TIMEOUT(digit)=5") in new stack
    -- Digit timeout set to 5
    -- Executing Set("SIP/1.2.2.1-081c66f0", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing Answer("SIP/1.2.2.1-081c66f0", "") in new stack
    -- Executing Wait("SIP/1.2.2.1-081c66f0", "2") in new stack
    -- Executing BackGround("SIP/1.2.2.1-081c66f0", "privetstvie") in new stack
    -- Playing 'privetstvie' (language 'en')
    -- Executing WaitExten("SIP/1.2.2.1-081c66f0", "7") in new stack
    -- Timeout on SIP/1.2.2.1-081c66f0, going to 't'
    -- Executing Dial("SIP/1.2.2.1-081c66f0", "SIP/100|60|tT") in new stack
    -- Called 100
    -- SIP/100-081bbee8 is ringing
    -- Executing Pickup("SIP/790-081b2eb8", "100@incoming") in new stack
 == Spawn extension (internal, *8100, 1) exited non-zero on 'SIP/790-081b2eb8'

Как запикапить автоматически переключенный По по тайм-ауту из IVR звонок? Asterisk 1.2 PickUp()

Есть Астериск 1.2, заменить его на свежий по ряду причин ну никак невозможно. Для пикапа звонков используется комбинация *8, завязанная на Application PickUp().

Вот диалплан:

[incoming]
exten => s,1,Set(TIMEOUT(digit)=5)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Answer()
exten => s,n,Wait(2)
exten => s,n,Background(privetstvie)
exten => s,n,WaitExten(7)
exten => 0,1,GoTo(incoming,s,1)
exten => t,1,Dial(SIP/100,60,tT)
exten => _1XX,1,Dial(SIP/${EXTEN},60,tT)
exten => 1234567,1,GoTo(incoming,s,1)

[internal]
include => outgoing
exten => _*8X.,1,PickUp(${EXTEN:2}@incoming)
exten => _1XX,1,Dial(SIP/${EXTEN},60,tT)
exten => _7XX,1,Dial(SIP/${EXTEN},60,tT)

Проблема следующая: звоним с города на номер 1234567, попадаем на IVR, где пользователю предлагают или ввести внутренний номер или подождать, после чего во втором случае он автоматически переадресуется на 100; так вот пикап безотказно работает, если пользователь руками набрал 100 (набираем *8100), но если его перекинуло по тайм-ауту ожидания ввода внутреннего номера, то забрать звонок никак не получается.

Контексты проверял, и в том и в том случае звонок находится в incoming.

Вот лог ошибочного пикапа.

    -- Executing Goto("SIP/1.2.2.1-081c66f0", "incoming|s|1") in new stack
    -- Goto (incoming,s,1)
    -- Executing Set("SIP/1.2.2.1-081c66f0", "TIMEOUT(digit)=5") in new stack
    -- Digit timeout set to 5
    -- Executing Set("SIP/1.2.2.1-081c66f0", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing Answer("SIP/1.2.2.1-081c66f0", "") in new stack
    -- Executing Wait("SIP/1.2.2.1-081c66f0", "2") in new stack
    -- Executing BackGround("SIP/1.2.2.1-081c66f0", "privetstvie") in new stack
    -- Playing 'privetstvie' (language 'en')
    -- Executing WaitExten("SIP/1.2.2.1-081c66f0", "7") in new stack
    -- Timeout on SIP/1.2.2.1-081c66f0, going to 't'
    -- Executing Dial("SIP/1.2.2.1-081c66f0", "SIP/100|60|tT") in new stack
    -- Called 100
    -- SIP/100-081bbee8 is ringing
    -- Executing Pickup("SIP/790-081b2eb8", "100@incoming") in new stack
 == Spawn extension (internal, *8100, 1) exited non-zero on 'SIP/790-081b2eb8'

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