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

AMI Hangup и регулярные выражения

Добавлено: 10 июл 2014, 21:51
svd
Дня доброго,

Существует потребность, по команде из внешнего приложения послать команду asterisk для завершения звонка, звонок перед этим инициируется командой Originate.

Название канала система не знает, (не говорю что не может узнать)

сначала о подопытном:

Код: Выделить всё

Asterisk 1.8.11.0 built by palosanto @ rpmbuild64-2.elastix.palosanto.com on a x86_64 running Linux on 2012-03-29 22:29:09 UTC
далее пытаюсь положить трубку для экстеншена 103 разными методами

Код: Выделить всё

Action: Hangup
UseRegex: Yes
Channel: ....103-........


Action: Hangup
Channel: /^SIP/103-.*$/
Попадалась информация что для команды hangup вместо имени канала можно использовать регулярное выражение.

но получается что не получается
прилагаю листинг
Event: Newchannel
Privilege: call,all
Channel: SIP/103-000003a0
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 103
CallerIDName: device
AccountCode:
Exten:
Context: from-internal
Uniqueid: 1405014479.930

Event: NewAccountCode
Privilege: call,all
Channel: SIP/103-000003a0
Uniqueid: 1405014479.930
AccountCode:
OldAccountCode:

Event: NewCallerid
Privilege: call,all
Channel: SIP/103-000003a0
CallerIDNum: 103
CallerIDName: device
Uniqueid: 1405014479.930
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

Event: ExtensionStatus
Privilege: call,all
Exten: 103
Context: ext-local
Hint: SIP/103
Status: 8

Event: Newstate
Privilege: call,all
Channel: SIP/103-000003a0
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 103
CallerIDName: device
ConnectedLineNum: 103
ConnectedLineName:
Uniqueid: 1405014479.930

Event: ExtensionStatus
Privilege: call,all
Exten: 103
Context: ext-local
Hint: SIP/103
Status: 1

Event: Newstate
Privilege: call,all
Channel: SIP/103-000003a0
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 103
CallerIDName: device
ConnectedLineNum: 103
ConnectedLineName:
Uniqueid: 1405014479.930

Event: NewCallerid
Privilege: call,all
Channel: SIP/103-000003a0
CallerIDNum: 103
CallerIDName: Roma
Uniqueid: 1405014479.930
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

Event: Newchannel
Privilege: call,all
Channel: SIP/soft33-000003a1
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum:
CallerIDName:
AccountCode:
Exten:
Context: from-internal
Uniqueid: 1405014479.931

Event: NewCallerid
Privilege: call,all
Channel: SIP/soft33-000003a1
CallerIDNum: 0033
CallerIDName:
Uniqueid: 1405014479.931
CID-CallingPres: 0 (Presentation Allowed, Not Screened)

Event: Dial
Privilege: call,all
SubEvent: Begin
Channel: SIP/103-000003a0
Destination: SIP/soft33-000003a1
CallerIDNum: 103
CallerIDName: Roma
ConnectedLineNum: 103
ConnectedLineName: <unknown>
UniqueID: 1405014479.930
DestUniqueID: 1405014479.931
Dialstring: soft33/033

Event: Newstate
Privilege: call,all
Channel: SIP/soft33-000003a1
ChannelState: 5
ChannelStateDesc: Ringing
CallerIDNum: 0033
CallerIDName:
ConnectedLineNum: 103
ConnectedLineName: Roma
Uniqueid: 1405014479.931

Event: Newstate
Privilege: call,all
Channel: SIP/soft33-000003a1
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: 0033
CallerIDName:
ConnectedLineNum: 103
ConnectedLineName: Roma
Uniqueid: 1405014479.931

Event: NewAccountCode
Privilege: call,all
Channel: SIP/soft33-000003a1
Uniqueid: 1405014479.931
AccountCode:
OldAccountCode:

Event: Bridge
Privilege: call,all
Bridgestate: Link
Bridgetype: core
Channel1: SIP/103-000003a0
Channel2: SIP/soft33-000003a1
Uniqueid1: 1405014479.930
Uniqueid2: 1405014479.931
CallerID1: 103
CallerID2: 0033

Action: Hangup
UseRegex: Yes
Channel: ....103-........

Response: Error
Message: No such channel
если кто-то знает или догадывается в чём затычка, подскажите.

регулярное выражение тестил notepad++, согласен что не самый индустриальный метод, но вроде оно соответствует

Re: AMI Hangup и регулярные выражения

Добавлено: 10 июл 2014, 22:42
ded
А вы слушайте название канала по AMI, а hangup делайте системной командой
asterisk -rx ' channel request hangup SIP/103-****'

Re: AMI Hangup и регулярные выражения

Добавлено: 11 июл 2014, 08:01
virus_net
svd писал(а):Попадалась информация что для команды hangup вместо имени канала можно использовать регулярное выражение.
не встречал такой, имя канала нужно указывать полностью

так же можно попробовать через AMI, но с помощью

Код: Выделить всё

ACTION: Command

Re: AMI Hangup и регулярные выражения

Добавлено: 15 июл 2014, 16:23
svd
ded писал(а):А вы слушайте название канала по AMI, а hangup делайте системной командой
asterisk -rx ' channel request hangup SIP/103-****'
Если слушать название канала по AMI то и HangUp через AMI сделать по точному имени канала не будет,
можно даже к такой команде не прибегать.

Пытаюсь подружить 1С - ROM-Asterisk - Asterisk

и вот у них на странице описания команды хэнгап такое было http://wiki.simplit.info/doku.php/doc/ami/action#hangup

есть подозрение что версия астериска нужна 10+ или что-то типа того

Re: AMI Hangup и регулярные выражения

Добавлено: 15 июл 2014, 17:10
gosha
в 11 там регекспы появились.

Re: AMI Hangup и регулярные выражения

Добавлено: 15 июл 2014, 19:09
svd
Спасибо за ответ,

не наш случай, будем получать список активных каналов.
при случае тестану эти вещи на 11-м астериске