ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с определением номера

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Проблема с определением номера

Сообщение Menjoy » 23 мар 2012, 11:08

Установлен Астериск 10.2

Ниже представлено 2 лога, исходящего и входяещего:

Исходящий
[Показать] Спойлер:
Event: Newchannel
Privilege: call,all
Channel: SIP/100-0000001d
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 100
CallerIDName: device
AccountCode:
Exten: 80256314622
Context: from-internal
Uniqueid: 1332484691.50

Event: Newchannel
Privilege: call,all
Channel: Dongle/dongle0-0100000015
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum:
CallerIDName: dongle0
AccountCode:
Exten:
Context: incoming-dongle
Uniqueid: 1332484691.51

Event: Bridge
Privilege: call,all
Bridgestate: Link
Bridgetype: core
Channel1: SIP/100-0000001d
Channel2: Dongle/dongle0-0100000015
Uniqueid1: 1332484691.50
Uniqueid2: 1332484691.51
CallerID1: 375255068215
CallerID2: 80256314622

Event: Bridge
Privilege: call,all
Bridgestate: Unlink
Bridgetype: core
Channel1: SIP/100-0000001d
Channel2: Dongle/dongle0-0100000015
Uniqueid1: 1332484691.50
Uniqueid2: 1332484691.51
CallerID1: 375255068215
CallerID2: 80256314622

Event: Cdr
Privilege: cdr,all
AccountCode:
Source: 100
Destination: 80256314622
DestinationContext: from-internal
CallerID: 100
Channel: SIP/100-0000001d
DestinationChannel: Dongle/dongle0-0100000015
LastApplication: Dial
LastData: Dongle/i:353443042707401/80256314622,300,
StartTime: 2012-03-23 09:38:11
AnswerTime: 2012-03-23 09:38:36
EndTime: 2012-03-23 09:38:45
Duration: 34
BillableSeconds: 9
Disposition: ANSWERED
AMAFlags: DOCUMENTATION
UniqueID: 1332484691.50
UserField:


Входящий
[Показать] Спойлер:
Event: Newchannel
Privilege: call,all
Channel: Dongle/dongle0-0100000016
ChannelState: 4
ChannelStateDesc: Ring
CallerIDNum: +375292553363
CallerIDName: dongle0
AccountCode:
Exten:
Context: incoming-dongle
Uniqueid: 1332484862.52

Event: Newchannel
Privilege: call,all
Channel: SIP/100-0000001e
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 100
CallerIDName: device
AccountCode:
Exten:
Context: from-internal
Uniqueid: 1332484862.53

Event: Bridge
Privilege: call,all
Bridgestate: Link
Bridgetype: core
Channel1: Dongle/dongle0-0100000016
Channel2: SIP/100-0000001e
Uniqueid1: 1332484862.52
Uniqueid2: 1332484862.53
CallerID1: 875292553363
CallerID2: 100

Event: Bridge
Privilege: call,all
Bridgestate: Unlink
Bridgetype: core
Channel1: Dongle/dongle0-0100000016
Channel2: SIP/100-0000001e
Uniqueid1: 1332484862.52
Uniqueid2: 1332484862.53
CallerID1: 875292553363
CallerID2: 100

Event: Cdr
Privilege: cdr,all
AccountCode:
Source: 875292553363
Destination: 100
DestinationContext: from-did-direct
CallerID: "875292553363" <875292553363>
Channel: Dongle/dongle0-0100000016
DestinationChannel: SIP/100-0000001e
LastApplication: Dial
LastData: SIP/100,,tTr
StartTime: 2012-03-23 09:41:02
AnswerTime: 2012-03-23 09:41:06
EndTime: 2012-03-23 09:41:09
Duration: 7
BillableSeconds: 3
Disposition: ANSWERED
AMAFlags: DOCUMENTATION
UniqueID: 1332484862.52
UserField:


Проблема в том, что нельзя однозначно по каналу оператора вычислить номер с которого приходит звонок или на который звонят, все из-за того, что в обеих случаях номер указан в событии Newchannel, но в исходящем канал имеет название SIP/100, а во входящем Dongle. Как можно сделать так, чтобы в обоих событиях светился один и тот же номер? Как я понимаю, одно событие отвечает за соединение gsm шлюза с абонентом, а другое за соединение gsm и sip линии.
В настройках своего парсера название линии забил как SIP/100 - по нему отсекаю все звонки и действия происходящие именно с данной линией.
Menjoy
 
Сообщений: 65
Зарегистрирован: 13 фев 2012, 12:09

Re: Проблема с определением номера

Сообщение Vlad1983 » 23 мар 2012, 11:25

если хорошо присмотреться, то нет никакой проблемы.
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Проблема с определением номера

Сообщение Menjoy » 23 мар 2012, 11:36

С исходящим звонком проблемы нет, там все красиво и событие легко идентифицируется по SIP/100 (то что звонок именно на этого оператора), а вот со входящим не так.
Menjoy
 
Сообщений: 65
Зарегистрирован: 13 фев 2012, 12:09

Re: Проблема с определением номера

Сообщение Menjoy » 23 мар 2012, 11:40

К тому же я легко вижу тут еще одну проблему

Event: Newchannel
Privilege: call,all
Channel: Dongle/dongle0-0100000016
ChannelState: 4
ChannelStateDesc: Ring
CallerIDNum: +375292553363
CallerIDName: dongle0
AccountCode:
Exten:
Context: incoming-dongle
Uniqueid: 1332484862.52

Event: Newchannel
Privilege: call,all
Channel: SIP/100-0000001e
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum: 100
CallerIDName: device
AccountCode:
Exten:
Context: from-internal
Uniqueid: 1332484862.53

Это два ньючэннела от входящего звонка, т.е. парсер определяет принадлежность к данному оператору по номеру сип линии (SIP/100 в этом случае), то звонок входящий и исходящий неразличимы на данном этапе.
Хотя там где dongle явно можно различить по ChannelStateDesc.
Может я что-то упускаю?

Вылавливать звонки по dongle0 я не могу, т.к. это gsm шлюз, звонок на него пришел и он не обязательно пойдет на SIP/100. Т.е. жесткой привязки шлюз - сип телефон нет.
Menjoy
 
Сообщений: 65
Зарегистрирован: 13 фев 2012, 12:09

Re: Проблема с определением номера

Сообщение Menjoy » 23 мар 2012, 12:31

Нашел выход - отслеживание Dial / Begin.
Там взаимнообратное расположение каналов при входящем и исходящем.
Menjoy
 
Сообщений: 65
Зарегистрирован: 13 фев 2012, 12:09

Re: Проблема с определением номера

Сообщение Vlad1983 » 23 мар 2012, 12:38

парсить Event: Bridge
Uniqueid1: 1332484691.50 - входящий канал
Uniqueid2: 1332484691.51 - исходящий канал

по этим UniqueID находите соответствующие им Event: Newchannel
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Проблема с определением номера

Сообщение Menjoy » 23 мар 2012, 14:16

Тоже так думал, но с момента newchannel до bridge проходит достаточно времени, т.е. звонок просто висит и я покажу данные о нем только когда снимут трубку - не подходит.
Как и писал выше, решил парсить Dial.
Menjoy
 
Сообщений: 65
Зарегистрирован: 13 фев 2012, 12:09


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

cron
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH