2014-06-26 1 views
0

Я делаю Asterisk Client в C# WinForms, используя Asterisk.NET. Мой клиент слушает только одно расширение. Мы можем просматривать вызовы, отклонять или передавать и т. Д. На вызовы, поступающие на мои расширения. Мне нужен исходный канал для передачи вызова, а исходный канал можно получить только из Dial Event. Недавно я заметил, что событие набора событий происходит каждый раз, когда какое-либо расширение, подключенное к серверу, начинает набирать номер. Я хочу отфильтровать его, только вызов, поступающий только на мой номер.Asterisk: как фильтровать событие Dial только для моего расширения?

void manager_Dial(object sender, DialEvent e) 
    { 

     CallingInfo.src_channel = e.Channel; 
    } 

e.dialString дает мне номер места назначения; Но я не знаю, станет ли оно нулевым в соответствии с состоянием сервера. Более того, что произойдет, если некоторые внешние вызовы придут ко мне, я не получу Dial-событие или Source-канал, тогда он не может быть передан. Правильно ?

ответ

0

Вы не можете.

Asterisk не допускает такой функциональности.

Вы можете прочитать все и отфильтровать с помощью необходимого кода. Вы можете написать deamon, который будет фильтровать на сервере и отправлять в ваше приложение только необходимый деамон.

Причина: звездочка - pbx, все функции pbx ограничены.

Также вы можете отправить пользовательский интерфейс dialplan UserEvent с любым полем, которое вы хотите, прежде чем набирать и после ответа поймать только UserEvent.

Смежные вопросы