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

Небольшой вопрос по call файлу (вопрос решил)

0

call файл исполняется замечательно, за одним исключением: в случае, если линия, на которую совершаем вызов, занята, он все равно исполняет контекст. Так и задумано? либо где-то я ошибся? И не совсем ясно, почему контекст начинает исполняться ДО того, как понимает, что линия занята... Можно ли это как-то вылечить? сборка elastix

К примеру звоним на номер 85700293, срабатывает handup, но уже перед ним идет исполнение контекста autodial-dial, хотя по сути номер телефона занят

-- IAX2/gsm-13171 is making progress passing it to Local/85700293@from-internal-000004aa;2
    -- IAX2/gsm-13171 answered Local/85700293@from-internal-000004aa;2
 -- Executing [666@autodial-dial:1] Playback("Local/85700293@from-internal-000004aa;1", "ozhidajte-soedinenija") in new stack
    -- <Local/85700293@from-internal-000004aa;1> Playing 'ozhidajte-soedinenija.slin' (language 'ru')
    -- Executing [h@from-internal:1] Macro("Local/85700293@from-internal-000004aa;2", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("Local/85700293@from-internal-000004aa;2", "1?endmixmoncheck") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] NoOp("Local/85700293@from-internal-000004aa;2", "End of MIXMON check") in new stack
    -- Executing [s@macro-hangupcall:10] GotoIf("Local/85700293@from-internal-000004aa;2", "1?nomeetmemon") in new stack
    -- Goto (macro-hangupcall,s,28)
    -- Executing [s@macro-hangupcall:28] NoOp("Local/85700293@from-internal-000004aa;2", "End of MEETME check") in new stack
    -- Executing [s@macro-hangupcall:29] GotoIf("Local/85700293@from-internal-000004aa;2", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,34)
    -- Executing [s@macro-hangupcall:34] NoOp("Local/85700293@from-internal-000004aa;2", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:35] GotoIf("Local/85700293@from-internal-000004aa;2", "1?noautomon2") in new stack
    -- Goto (macro-hangupcall,s,41)
    -- Executing [s@macro-hangupcall:41] NoOp("Local/85700293@from-internal-000004aa;2", "MONITOR_FILENAME=") in new stack
    -- Executing [s@macro-hangupcall:42] GotoIf("Local/85700293@from-internal-000004aa;2", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,45)
    -- Executing [s@macro-hangupcall:45] GotoIf("Local/85700293@from-internal-000004aa;2", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,48)
    -- Executing [s@macro-hangupcall:48] GotoIf("Local/85700293@from-internal-000004aa;2", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,50)
    -- Executing [s@macro-hangupcall:50] AGI("Local/85700293@from-internal-000004aa;2", "hangup.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
    -- <Local/85700293@from-internal-000004aa;2>AGI Script hangup.agi completed, returning 0
    -- Executing [s@macro-hangupcall:51] Hangup("Local/85700293@from-internal-000004aa;2", "") in new stack
  == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'Local/85700293@from-internal-000004aa;2' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'Local/85700293@from-internal-000004aa;2'
  == Spawn extension (from-internal, 85700293, 5) exited non-zero on 'Local/85700293@from-internal-000004aa;2'
    -- Executing [666@autodial-dial:2] Dial("IAX2/gsm-13171", "SIP/666,,tT") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called SIP/666

call файл такой:

Channel: local/85700293@from-internal
MaxRetries: 5
RetryTime: 60
WaitTime: 30
Callerid: "85700293" <666>
Context: autodial-dial
Extension: 666
Priority: 1
удалить закрыть спам изменить тег редактировать

спросил 2014-09-16 13:44:07 +0400

nyll Gravatar nyll
1 7 1 5

обновил 2014-09-16 17:40:48 +0400

Comments

так у вас вроде 5 попыток ?

awsswa ( 2014-09-16 13:55:12 +0400 )редактировать

попыток-то 5, но он после первой неудачной (если линия занята), уже начинает иполнять контекст и удаляет call файл, считая, что вызов успешно выполнен, хотя по сути должен "уйти на второй круг". Если трубку не подыдмать, то идет повторный вызов, контекст не исполняется. Проблема только, когда линия занята, на которую дозваниваемся

nyll ( 2014-09-16 13:58:21 +0400 )редактировать

autodial-dial может покажете.

romariosar ( 2014-09-16 14:20:26 +0400 )редактировать

[autodial-dial]

exten => _XXX,1,Playback(ozhidajte-soedinenija)

exten => _XXX,2,Dial(SIP/${EXTEN},,tT)

exten => _XXX,3,Hangup()

Так а что на него смотреть, когда он выполняться должен только в случае успешного дозвона?)

nyll ( 2014-09-16 14:50:35 +0400 )редактировать

romariosar,есть такое... шлюз gsm, но он вроде как дает отбой, но похоже, что АТС видит его позже, чем понимает, что номер телефона занят...

nyll ( 2014-09-16 16:21:14 +0400 )редактировать

ну вы дебаг посмотрите а сразу поймете что у вас приходит от шлюза.

romariosar ( 2014-09-16 16:26:41 +0400 )редактировать

ну все верно, шлюз сперва как я понял устанавливает соединение, а потом сразу его скидывает... Не подскажете, как вообще это можно обойти, не затрагивая настройки шлюза? Можно ли эту линию как-то грамотно отследить на состояние в самом контексте?

зы Заметил, что с городскими та же беда... Город по E1, шлюз и e1 и gsm - yeastar, внутри них только маршрутизация на сервер elastix...

nyll ( 2014-09-16 16:46:07 +0400 )редактировать

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

romariosar ( 2014-09-16 17:30:27 +0400 )редактировать

Всем спасибо. Решил проблему в транке на outgoing вместо type=peer поменял на type=friend, все стало на свои места :)

nyll ( 2014-09-16 17:40:30 +0400 )редактировать

1 Ответ

0

ну так у вас происходит ответ:

IAX2/gsm-13171 answered Local/85700293@from-internal-000004aa;2

разбирайтесь почему у канал сразу в статусе Answer, вы случаем GSM шлюз не используете?

ссылка удалить спам редактировать

ответил 2014-09-16 16:06:33 +0400

romariosar Gravatar romariosar flag of Russian Federation
578 88 8 38
http://www.webunix.ru/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-09-16 13:44:07 +0400

Просмотрен: 168 раз

Обновлен: Sep 16 '14

Похожие вопросы:

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