По докам 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
Просмотрен: 986 раз
Обновлен: Jul 28 '14
Разделение Event'ов при одновременном вызове
Asterisk AMI как узнать что канал находится на удержании?
Hangup из AMI еще один способ?
Asterisk AMI сохранение config'ов
Как позвонить на внешний номер при помощи AMI?
AMI action:redirect и значение Blindtransfer
Проект компании "АТС Дизайн"
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 )редактировать