Страница 1 из 1

Парсинг событий AMI

Добавлено: 01 июн 2023, 11:30
Scarabey
Добрый день уважаемые гуру, подскажите пожалуйста как будет возможность:

Можно ли как-то однозначно связать AMI команду Originate со всеми порожденными этой командой событиями которые прилетают в AMI канал, такие как Newchannel, NewConnectedLine и т.д. ?
Asterisk 20.1
Пример команды Originate для соединения добавочного = 10000 с мобилой = 89001112233 с КоллерИД = 74990001122:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Action: Originate
Channel: PJSIP/10000
Context: pstn-out
Exten: 89001112233
Priority: 1
Callerid: 74990001122
Timeout: 30000
Account: 123123
ActionId: SDY4-12837-123878782
Ниже вывод событий AMI порожденных командой Originate с параметрами как указано выше (Тут добавочный 10000 сразу сбросил вызов как только пришел звонок):
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Event: Newchannel
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: <unknown>
CallerIDName: <unknown>
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode:
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305

Event: NewAccountCode
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: <unknown>
CallerIDName: <unknown>
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305
OldAccountCode:

Event: NewCallerid
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

Event: NewConnectedLine
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: 74990001122
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305

Event: DialBegin
Privilege: call,all
DestChannel: PJSIP/10000-000000a7
DestChannelState: 0
DestChannelStateDesc: Down
DestCallerIDNum: 74990001122
DestCallerIDName: <unknown>
DestConnectedLineNum: 74990001122
DestConnectedLineName: <unknown>
DestLanguage: en
DestAccountCode: 123123
DestContext: pstn-out
DestExten: s
DestPriority: 1
DestUniqueid: 1685606276.305
DestLinkedid: 1685606276.305
DialString: 10000

Event: Newstate
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: 74990001122
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305

Event: DialState
Privilege: call,all
DestChannel: PJSIP/10000-000000a7
DestChannelState: 5
DestChannelStateDesc: Ringing
DestCallerIDNum: 74990001122
DestCallerIDName: <unknown>
DestConnectedLineNum: 74990001122
DestConnectedLineName: <unknown>
DestLanguage: en
DestAccountCode: 123123
DestContext: pstn-out
DestExten: s
DestPriority: 1
DestUniqueid: 1685606276.305
DestLinkedid: 1685606276.305
DialStatus: RINGING

Event: HangupRequest
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: 74990001122
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305
Cause: 17

Event: DialEnd
Privilege: call,all
DestChannel: PJSIP/10000-000000a7
DestChannelState: 5
DestChannelStateDesc: Ringing
DestCallerIDNum: 74990001122
DestCallerIDName: <unknown>
DestConnectedLineNum: 74990001122
DestConnectedLineName: <unknown>
DestLanguage: en
DestAccountCode: 123123
DestContext: pstn-out
DestExten: s
DestPriority: 1
DestUniqueid: 1685606276.305
DestLinkedid: 1685606276.305
DialStatus: BUSY

Event: Newchannel
Privilege: call,all
Channel: OutgoingSpoolFailed
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: failed
Priority: 1
Uniqueid: 1685606278.306
Linkedid: 1685606278.306

Event: Hangup
Privilege: call,all
Channel: PJSIP/10000-000000a7
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: 74990001122
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: s
Priority: 1
Uniqueid: 1685606276.305
Linkedid: 1685606276.305
Cause: 17
Cause-txt: User busy

Event: SoftHangupRequest
Privilege: call,all
Channel: OutgoingSpoolFailed
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: failed
Priority: 1
Uniqueid: 1685606278.306
Linkedid: 1685606278.306
Cause: 16

Event: Hangup
Privilege: call,all
Channel: OutgoingSpoolFailed
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 74990001122
CallerIDName: <unknown>
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode: 123123
Context: pstn-out
Exten: failed
Priority: 2
Uniqueid: 1685606278.306
Linkedid: 1685606278.306
Cause: 0
Cause-txt: Unknown
Заранее спасибо за помощь :roll:

Re: Парсинг событий AMI

Добавлено: 01 июн 2023, 16:10
Scarabey
Нашел решение
если в команде Originate указать
ChannelId: 111122223333
то во всех порожденных событиях в AMI
LinkedId будет равен 111122223333
что полностью решает задачу поиска событий связанных с действием Originate

Re: Парсинг событий AMI

Добавлено: 03 июн 2023, 23:08
Zavr2008
Я бы четно говоря так не делал, тут и уникальность должна быть данного параметра, также и формат в астере может поменяться обычно он на конце .XXX сейчас, у Вас например .305.
Думаю правильнее просто в диалплане в том контексте генерировать AMI событие юзеровское и там уже однозначно связывать все что нужно. Это еще и второй плюс - Вы можете получать подтверждение что фаза дозвона началась.