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

Почему после переименования канала 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

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

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

спросил 2014-07-24 09:49:29 +0400

CallCenterCoder Gravatar CallCenterCoder
1 5 1 4

обновил 2014-07-28 11:30:44 +0400

Comments

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

meral ( 2014-07-24 10:29:59 +0400 )редактировать

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

CallCenterCoder ( 2014-07-24 10:34:33 +0400 )редактировать
1

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

svoy ( 2014-07-24 11:33:23 +0400 )редактировать
2

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

meral ( 2014-07-24 11:39:04 +0400 )редактировать
1

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

meral ( 2014-07-24 11:41:50 +0400 )редактировать

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

CallCenterCoder ( 2014-07-24 11:55:23 +0400 )редактировать

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

svoy ( 2014-07-24 14:03:52 +0400 )редактировать

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

meral ( 2014-07-24 14:04:00 +0400 )редактировать

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

meral ( 2014-07-24 14:05:45 +0400 )редактировать

Кажется разобрался. Спасибо исходникам 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 ( 2014-07-24 17:41:32 +0400 )редактировать

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

Zavr2008 ( 2014-07-26 18:49:53 +0400 )редактировать

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

CallCenterCoder ( 2014-07-28 10:48:42 +0400 )редактировать

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

CallCenterCoder ( 2014-07-28 12:46:08 +0400 )редактировать

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

meral ( 2014-07-28 16:13:13 +0400 )редактировать

meral где магия?

CallCenterCoder ( 2014-07-28 16:30:29 +0400 )редактировать

1 Ответ

1

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

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

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

ответил 2014-07-24 10:28:46 +0400

meral Gravatar meral flag of Ukraine
21228 24 19 169
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 ленту новостей

Статистика

Задан: 2014-07-24 09:49:29 +0400

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

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

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