VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с окончанием вызова

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

LKRM
Сообщения: 7
Зарегистрирован: 24 июл 2015, 12:37

Проблема с окончанием вызова

Сообщение LKRM »

Добрый день!
Стоит * 11.6, юзеры сидят на хардфонах Cisco и Yealink.
Последние два дня происходит какая-то чертовщина - юзер набирает номер, звонит, разговаривает, кладёт трубку.
После этого в консоль постоянно валятся сообщения типа

Код: Выделить всё

chan_sip.c:4408 __sip_autodestruct: Autodestruct on dialog '2c06149c25945d1e724b7bfa6880162b@192.168.0.252:5060' with owner SIP/212-000009d5 in place (Method: BYE). Rescheduling destruction for 10000 ms
Соответственно, канал остаётся занятым какое-то время (от нескольких секунд до нескольких минут), у пиров стоит call-limit=1, и при этом новые звонки не идут (что естесственно, раз канал занят).
на команду hangup request реагирует далеко не с первого раза.
Снимал дамп - в нём видно, что телефон и * в конце разговора обмениваются сообщениями BYE и 200 OK соответственно.

Если нужны листинги каких-либо файлов, выложу дополнительно.
Заранее благодарен.
LKRM
Сообщения: 7
Зарегистрирован: 24 июл 2015, 12:37

Re: Проблема с окончанием вызова

Сообщение LKRM »

Проблема решена.
Пробовал отключать всё, что я добавлял в последнее время (до этого всё работало хорошо).

Есть у меня в extensions.conf такие строки:

Код: Выделить всё

exten => *75,1,Answer
        same => n,PauseQueueMember(,SIP/${CALLERID(num)});
        same => n,Hangup()
exten => *76,1,Answer
        same => n,UnpauseQueueMember(,SIP/${CALLERID(num)});
        same => n,Hangup()
Так вот, после первого вызова данного экстеншна любым юзером начиналась вышеуказанная проблема. Отключил, всё стало ок.
Где логика, господа?
ded
Сообщения: 15623
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с окончанием вызова

Сообщение ded »

1. Попробуйте без Answer, он не нужен.
2. Вместо того, чтобы везде приклеивать шаг
same => n,Hangup()
укажите в этом контексте
exten => h,1,Hangup()
LKRM
Сообщения: 7
Зарегистрирован: 24 июл 2015, 12:37

Re: Проблема с окончанием вызова

Сообщение LKRM »

Поторопился я с выводами, всё-таки не прекратилась эта свистопляска.
Попробовал отключить FOP2, посмотрим...
LKRM
Сообщения: 7
Зарегистрирован: 24 июл 2015, 12:37

Re: Проблема с окончанием вызова

Сообщение LKRM »

ded писал(а):1. Попробуйте без Answer, он не нужен.
2. Вместо того, чтобы везде приклеивать шаг
same => n,Hangup()
укажите в этом контексте
exten => h,1,Hangup()
Происходит это и в контекстах без Hangup()
например местный звонок

Код: Выделить всё

[local]
exten => _NXXXXXX/_2[0-1][0-9],1,Macro(local,2255055,${EXTEN})
[macro-local]
exten => s,1,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%Y%m%d)}/${UNIQUEID}.wav)
   same => n,MixMonitor(${MONITOR_FILENAME},ba)
   same => n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
   same => n,Dial(SIP/${ARG2}@${ARG1},,t)

И в этом контексте всё равно зависают звонки
kasper
Сообщения: 199
Зарегистрирован: 03 авг 2011, 11:00

Re: Проблема с окончанием вызова

Сообщение kasper »

Обычно подобные проблемы решают молитвами и поиском другой версии (либо в которой эта ошибка уже решена, ли в которой её ещё не создали =) )
Наверняка о5 разработчики где то забыли уменьшить счётчик ссылок на канал.
The asterisk is my hero
ded
Сообщения: 15623
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с окончанием вызова

Сообщение ded »

Используйте вызовы вида Dial(tech/peer/exten
так как вызов по URI вида что-то@где-то как у вас
Dial(SIP/${ARG2}@${ARG1}
давно уже нелегитимный.

И вообще - чтобы писать рукописные конфиги - надо сдать на 6-й дан, получить жёлтый пояс. Чего пока не наблюдается.
Это Вы писали диалплан?

Например, ещё рекомендовано - писать в какой-то сторонний файл
exten => same,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%Y%m%d)}/${UNIQUEID}.wav)
exten => same,MixMonitor(${FILE})
а потом переименовывать
exten => same,System(mv (${FILE} ${MONITOR_FILENAME})
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Проблема с окончанием вызова

Сообщение zzuz »

exten => h,1,System(mv (${FILE} ${MONITOR_FILENAME})
Логичней.
Линия24 - Системы Массового Телефонного Обслуживания
LKRM
Сообщения: 7
Зарегистрирован: 24 июл 2015, 12:37

Re: Проблема с окончанием вызова

Сообщение LKRM »

ded писал(а):Используйте вызовы вида Dial(tech/peer/exten
так как вызов по URI вида что-то@где-то как у вас
Dial(SIP/${ARG2}@${ARG1}
давно уже нелегитимный.

И вообще - чтобы писать рукописные конфиги - надо сдать на 6-й дан, получить жёлтый пояс. Чего пока не наблюдается.
Это Вы писали диалплан?

Например, ещё рекомендовано - писать в какой-то сторонний файл
exten => same,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/${STRFTIME(${EPOCH},,%Y%m%d)}/${UNIQUEID}.wav)
exten => same,MixMonitor(${FILE})
а потом переименовывать
exten => same,System(mv (${FILE} ${MONITOR_FILENAME})
Нет, я пришёл сюда не так давно, эта часть досталась в "наследство" от предыдущих людей.
А нелегитимность и рекомендации Digium описывает где-то?
ded
Сообщения: 15623
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с окончанием вызова

Сообщение ded »

LKRM писал(а):Нет, я пришёл сюда не так давно, эта часть досталась в "наследство" от предыдущих людей.
Понятно.
Данный форум менее всего предназначен для техучёбы по скриптам диалплана и администрированию.
Вся необходимая литература и примеры есть в базе знаний asterisk.ru
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH