В модуле объекта обработки есть процедура
onBridgeобрабатывает события типа
Код |
---|
//<generic
//event='Bridge'
//privilege='call,all'
//sequencenumber='56804'
//file='channel.c'
//line='5345'
//func='manager_bridge_event'
//bridgestate='Link'
//bridgetype='core'
//channel1='SIP/263-0000014b'
//channel2='SIP/04-0000014c'
//uniqueid1='1322226827.577'
//uniqueid2='1322226827.578'
//callerid1='263'
//callerid2='04'
///> |
В этой процедуре происходит обновление информации в строке вызова.
Код |
---|
СтрочкаЗвонка.Канал1 = XMLУзел.ЗначениеАтрибута("channel1");
СтрочкаЗвонка.Канал2 = XMLУзел.ЗначениеАтрибута("channel2");
СтрочкаЗвонка.UniqueID1 = XMLУзел.ЗначениеАтрибута("uniqueid1");
СтрочкаЗвонка.UniqueID2 = XMLУзел.ЗначениеАтрибута("uniqueid2");
|
Рекомендация:
Значения
uniqueid1 и
uniqueid2 получить "из канала" (первого или второго не имеет значение).
Код |
---|
uniqueid1 = ПолучитьПеременнуюКанала(Вызов.Канал1 , "CDR(linkedid)");
uniqueid2 = ПолучитьПеременнуюКанала(Вызов.Канал1 , "CDR(linkedid)"); |
переменные будут равны одному и тому же значению.
Переменная канала
CDR(linkedid) появилась начиная с Asterisk 1.8 версии. Это идентификатор звонка в целом.
Возможно это поможет. Хотя многое зависит от самой станции.