По докам 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
Полный текст лога: ссылка на лог
Hangup на зомби канале. потом дальше идет переименованный
вообще это все очеь зависит от версии и подверсии астериска. я бы не полагался на такие евенты. есть же cel,queuelog, userevent и так далее
Задан: 2014-07-24 09:49:29 +0400
Просмотрен: 829 раз
Обновлен: Jul 28 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
должна быть дока? с чего бы? вот возьмите напишите ее. это как требовать доку по траектории перемещения цилиндров в двигателе автомобиля. а че. почему нет доки?
meral ( 2014-07-24 10:29:59 +0400 )редактироватьпотому что у нормальных вендоров типа CISCO, AVAYA, GENESYS есть доки такого типа. я кончено понимаю что OpenSource это бесплатный сыр в мышеловке сервисного обслуживания, но надежду в светлое и доброе, где нет гавнокода, я не теряю ))
CallCenterCoder ( 2014-07-24 10:34:33 +0400 )редактироватьнаверное, стоит пользоваться оборудованием "нормальных" вендоров.. или быть кодером, который разбирается в теме..
svoy ( 2014-07-24 11:33:23 +0400 )редактироватьу астериска есть круче дока. исходный код. у "нормальных вендоров" ничего не меняется годами. смотрите исходники. просто евенты это в общемто для отмазки. типа "хотели евенты - вот получайте" для надежного использования надо правильный диалплан. лезьт в евенты без опыта работы с астериском меньше пары лет не рекомендуется.
meral ( 2014-07-24 11:39:04 +0400 )редактироватьконечно не рождаются. но наивно пологать что вы сможете писать сложные приложения не дочитав до конца книжку. вобщемто тут как и в языке программирования. "разбиратся" вы будете не раньше пары месяцев експерементов.
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 )редактировать