First time here? Check out the FAQ!

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

Почему после переименования канала AMI Event:Rename используется старое имя канала?

0

По докам Raname должен переименовывать канал (SIP/107-00000007) в (Parking/SIP/107-00000007<zombie>), но если канал переименован, то все старые имена должны стать по логике невалидными, но далее в логах Asterisk использует исходный канал (SIP/107-00000007) не смотря та то что он переименован (Event: Rename) в (Parking/SIP/107-00000007<zombie>).
Не могу понять логику события Rename.
Может быть надо как-то парсить Channel считая всё, что вне паттерна SIP/XXX-XXXXXXXX какими-то метаданными? Или считать что имя канала существует только в рамках Uniqueid? Должна же быть где-то исчерпывающая дока по этому вопросу?


Подскажи пожалуйста как понять логику события AMI Rename с полем Channel ?

Пример:

Event: Rename
Privilege: call,all
Timestamp: 1406088024.809001
Channel: SIP/107-00000007
Newname: SIP/107-00000007<masq>
Uniqueid: 1406088010.9

Event: Rename
Privilege: call,all
Timestamp: 1406088024.809037
Channel: SIP/107-00000007<masq>
Newname: Parking/SIP/107-00000007<zombie>
Uniqueid: 1406088010.9

//После этих событий кладу трубку и..

Event: Hangup
Privilege: call,all
Timestamp: 1406088040.480277
Channel: SIP/107-00000007
Uniqueid: 1406088024.11
CallerIDNum: 107
CallerIDName: 107
ConnectedLineNum: 108
ConnectedLineName: 108
AccountCode:
Cause: 0
Cause-txt: Unknown

Полный текст лога: ссылка на лог

спросил Jul 24 '14

CallCenterCoder Gravatar CallCenterCoder
1 5 1 4

обновил Jul 28 '14

Comments

должна быть дока? с чего бы? вот возьмите напишите ее. это как требовать доку по траектории перемещения цилиндров в двигателе автомобиля. а че. почему нет доки?

meral (Jul 24 '14)edit

потому что у нормальных вендоров типа CISCO, AVAYA, GENESYS есть доки такого типа. я кончено понимаю что OpenSource это бесплатный сыр в мышеловке сервисного обслуживания, но надежду в светлое и доброе, где нет гавнокода, я не теряю ))

CallCenterCoder (Jul 24 '14)edit
1

наверное, стоит пользоваться оборудованием "нормальных" вендоров.. или быть кодером, который разбирается в теме..

svoy (Jul 24 '14)edit
2

у астериска есть круче дока. исходный код. у "нормальных вендоров" ничего не меняется годами. смотрите исходники. просто евенты это в общемто для отмазки. типа "хотели евенты - вот получайте" для надежного использования надо правильный диалплан. лезьт в евенты без опыта работы с астериском меньше пары лет не рекомендуется.

meral (Jul 24 '14)edit
1

конечно не рождаются. но наивно пологать что вы сможете писать сложные приложения не дочитав до конца книжку. вобщемто тут как и в языке программирования. "разбиратся" вы будете не раньше пары месяцев експерементов.

meral (Jul 24 '14)edit

meral что вы хотели сказать упомянув "cel,queuelog, userevent" и как вы их предлагаете использовать в AMI? А всётаки почему Rename делает новое имя каналу, а используется старое? Какое имя на момент Hungup правильное для канала или у канала теперь много имен?

CallCenterCoder (Jul 24 '14)edit

вам же ответили, что полагаться на ивенты наивно.. вы выбрали неверное направление и зря тратите свое время и силы

svoy (Jul 24 '14)edit

смотрите. есть проект fop2. разрабатывается лет 5. имеет проблемы с некоторыми типами евентов. но вы же гений а они идиоты.

meral (Jul 24 '14)edit

ой, извините. синдром старожила. fop первая версия была выпущена в 2004 в сентябре. тоесть 10 лет разработки. и не один а много людей.

meral (Jul 24 '14)edit

Кажется разобрался. Спасибо исходникам fop говорящим сами за себя:

elsif ( $evento eq "rename" ) {

... if ( $nuevo_nombre =~ /<ZOMBIE>/ ) {

logdebug( "$heading $nuevonombre, asterisk bug, sometimes misses the hangup, so we fake it", 64 )

... }

и ещё:

if ( $canalsesion =~ /</ ) {

# "<" Is an invalid character for a channel name, unless its a zombie # or masq, in that case we should discard them

log_debug( "$heading canalsesion $canalsesion (Se supone que no debo tratar zombies?)", 32 )

CallCenterCoder (Jul 24 '14)edit

" я пытаюсь разобраться, но мне нужно использовать не только оборудование "нормальных" вендоров, но и альтернативных типа астериск" - перл дня. Я бы еще адекватно на подобный флэйм смотрел лет 5 назад, сейчас уже вызывает лишь улыбку. Молодой человек, просто есть кодеры, а есть Девелоперы. большая это разница.

Zavr2008 (Jul 26 '14)edit

Под "нормальными" я подразумеваю топовых в магическом квадранте гартнер.

CallCenterCoder (Jul 28 '14)edit

Короче правильный ответ: Серия из трех событий Rename, где в двух последних теги <masq>, <zombie> говорят о том что канал был клонирован. При удачном клонировании они всегда предшествуют Masquerade. Поэтому Hangup происходит по двум каналам т.е. по обоим клонам канала.

CallCenterCoder (Jul 28 '14)edit

ура. магия начала применятся.

meral (Jul 28 '14)edit

meral где магия?

CallCenterCoder (Jul 28 '14)edit

1 Ответ

1

Hangup на зомби канале. потом дальше идет переименованный

вообще это все очеь зависит от версии и подверсии астериска. я бы не полагался на такие евенты. есть же cel,queuelog, userevent и так далее

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

ответил Jul 24 '14

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Ваш ответ

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 ленту новостей

Статистика

Задан: Jul 24 '14

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

Обновлен: Jul 28 '14

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