Страница 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, может кому то поможет