Звездочка: как я могу отфильтровать событие набора номера только для моего добавочного номера

#c# #winforms #asterisk #asteriskami

#c# #winforms #звездочка #звездочками

Вопрос:

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

     void manager_Dial(object sender, DialEvent e)
    {

        CallingInfo.src_channel = e.Channel;
    }
 

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

Ответ №1:

Вы не можете.

Звездочка не допускает такой функциональности.

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

Причина: asterisk — это pbx, все функции, отличные от pbx, ограничены.

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