Страница 2 из 3

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 25 авг 2015, 08:16
virus_net
Есть event Bridge по которому можно осознать и номер А и номер Б по Uniqueid.

http://voxlink.ru/kb/asterisk-configuration/AMI/

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 05 янв 2016, 20:12
le7o
Еще один вопрос в рамках данной темы:
Может кто нибудь поделиться логами AMI(с входящими внешними номерами), для анализа и разработки регулярных выражений?

Поясню: сейчас сделал, регулярное выражение вида:

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

Event=Dial.{1,}SubEvent=Begin.{1,}?100|Event=Bridge.{1,}?100|Event=Hangup.{1,}?100
И фиксируются события вида: ("=" вместо ":" подставляю для удобства дальнейшей обработки в Delphi)

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

Event=Dial
Privilege=call,all
Timestamp=1451857888.475368
SubEvent=Begin
Channel=SIP/101-00000087
Destination=SIP/100

Event=Bridge
Privilege=call,all
Timestamp=1451857890.606465
Bridgestate=Link
Bridgetype=core
Channel1=SIP/101-00000087
Channel2=SIP/100

Event=Hangup
Privilege=call,all
Timestamp=1451857893.432616
Channel=SIP/100
И вот здесь прошу помощи/подсказки - правильно ли я понимаю что НОМЕР, который мне необходимо получить находится в CallerIDNum?

Полное событие Dial ниже

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

Event: Dial
Privilege: call,all
Timestamp: 1451857888.475368
SubEvent: Begin
Channel: SIP/101-00000087
Destination: SIP/100-00000088
CallerIDNum: 101
CallerIDName: PhonerLite
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
UniqueID: 1451857888.135
DestUniqueID: 1451857888.136
Dialstring: 100
P.s.:С jabber разобрался: повесил jabberSend() номер приходит оператору, далее управление берет программа (ищет номер в БД, сверяет и т.п.)

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 10:11
virus_net
Ответ на вопрос зависит от того какой именно номер вы хотите получить.
Честно, вопрос странен. Вы совершаете вызов, вы знаете кто и кому звонит, вы смотрите в консоль и вы же задаете сей вопрос, ответ на который можете дать сами.

P.S. Кодить для Asterisk`а, не имения понимания того как он устроен, хотя бы основные базовые понятия, это долгое и гиблое дело.
P.S.S. В разных версиях Asterisk`а события AMI могут отличаться.

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 10:28
le7o
В данном конкретном случае нет доступа к реальному листингу AMI, версия Asterisk 1.8.19.

Интересует именно разница между значениями: Channel: SIP/101-00000087 и CallerIDNum: 101 для события Dial в случае звонка из вне?

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 11:11
april22
один канал
второй CallerIDNum

что такого ?
разница?
SIP/101-00000087
101

в значении

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 11:11
Vlad1983
проблема позвонить и посмотреть?

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 11:15
le7o
Я же уже написал что на виртуальном стенде только внутренние номера, а интересует именно значение Channel при входящем вызове из вне (не внутренний номер).

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 11:35
Vlad1983
хоть в какой среде можно сделать вызов якобы из вне

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 06 янв 2016, 18:29
le7o
По итогу сформировал "регулярку" на получение события следующего вида:

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

Event=Bridge
Privilege=call,all
Timestamp=1451903956.180707
Bridgestate=Link
Bridgetype=core
Channel1=SIP/1001-00000036
Channel2=SIP/100-00000037
Uniqueid1=1451903954.54
Uniqueid2=1451903954.55
CallerID1=1001 - входящий номер
CallerID2=100
Входящий номер получаю через значение CallerID1, при условии что оно не равно CallerID2...
Всем спасибо за помощь...

Re: Входящий номер при поступление звонка, способы получения

Добавлено: 07 янв 2016, 07:52
le7o
Прикладываю пример на Delphi, может кому то поможет