#280 closed задача (fixed)
Работа пульта с телефонной сетью
Reported by: | alx | Owned by: | san |
---|---|---|---|
Priority: | major | Milestone: | 2 очередь |
Component: | Диспетчерская связь | Keywords: | public telephone network, pstn |
Cc: | alx |
Description
Александр, по результатам устной беседы с Димой по проблеме тикета #275 у меня возникли вопросы/предложения, по которым, мне кажется, тебе надо принять решение.
Я (с подсказки Димы) обнаружил, что в программе есть такая настройка как "Адрес ТФОП". Как объяснил Дима, этот адрес используется для двух разных целей. Во-первых, он используется для определения, пришел ли вызов в конференцию из телефонной сети или нет, во-вторых, он используется для исходящих вызовов в телефонную сеть. По обоим моментам мне есть что сказать.
По поводу определения абонента ТСОП
Сейчас программа определяет, является ли некто абонентом ТСОП, сравнивая его контакт с адресом шлюза, указанным в конфигурации программы. Это, по моему, как минимум, ненадежно, так как
- адрес (домер) в URI контакта сообщения INVITE может не совпадать с адресом шлюза (например у шлюза платы VE-01 там 127.0.0.1, о чем мы с тобой говорили не далее чем вчера);
- для входящих из ТСОП вызовов может использоваться не тот же шлюз, что для исходящих;
- наконец, шлюзов может быть больше одного;
- возможно еще что-то не учел...
Таким образом, если по уму реализовывать задачу "распознавания" абонентов, пришедших из ТСОП через шлюз, надо, как минимум, анализировать не только (и не столько) поле Contact:, сколько поля Via: и Record-Route: каждого сообщения на предмет наличия в одном из URI адреса шлюза, заданного в конфигурации (и задавать там придется все шлюзы в виде списка адресов)... А если выяснится, что один из шлюзов работает на том же хосте, что и FreeSwitch, определить абонентов ТСОП по адресам окажется вообще невозможно...
И все это для чего? Только для того чтобы вывести на "плашке" иконку телефона? Мне кажется, слишком много геморроя ради сомнительного результата. Не лучше ли просто убрать эту функцию из программы? А если уж оставить, то надо, мне кажется придумать какой-то совсем другой алгоритм работы, не основанный на распознавании адресов...
По поводу исходящих вызовов в ТСОП
Сейчас, по словам Димы, его программа сама решает, что делать с вызовами абонентов телефонной сети: она берет из конфигурации адрес шлюза и дает FS команду направить вызов этому шлюзу. То есть, по сути, пульт диспетчера берет на себя задачу маршрутизации вызовов абонентов телефонной сети, что, по идее, является основной функцией телефонного коммутатора.
Когда-то программа Вари делала так же, и мы обговаривали, что такое поведение нелогично и негибко (а если, например, требуется маршрутизировать вызовы через несколько разных шлюзов? Местные - через одни, Россия - через другой, Мир - через третий?), и мы договаривались переделать это по уму, а именно, программа вызовы телефонных номеров не будет направлять на конкретный шлюз, а вместо этого будет просто вызывать extention в специально для этого созданном на FS контексте (например на нашем сервере для этого создан контекст "pstn"). Соответственно, в конфигурации программы вместо адреса шлюза(ов) задавать имя контекста для таких вызовов. А после этого FS уже будет решать, что делать с вызовами в контексте "pstn".
К сожалению, как говорит Дима, Варя этого так и не сделала...
Предлагаю принять решение о том, что нам делать с этими двумя моментами.
Change History (20)
follow-up: 2 comment:1 by , 8 years ago
comment:2 by , 8 years ago
Replying to san:
Алексей, можешь поставить Диме задачу для реализации правильного, на твой взгляд, алгоритма вызова абонентов ТСОП ?
Done, #282.
По поводу определения абонента ТСОП
Приём входящих вызовов из ТСОП у нас был реализован с помощью абонента pstn-gw, в определённом контексте, разве этого не достаточно для определения входящего абонента из ТСОП?
Во-первых, почему-то у Димы сейчас определение сделано совсем не через pstn-gw, а как я описал выше - через проверку адреса (домена).
Во-вторых, да, я посмотрел в конфиге, есть такой пользователь pstn-gw. Но что это нам дает в плане определения абонента ТСОП?
В-третьих, это ты говоришь о входящих (когда к нам из телефонной сети пришел вызов номера 0 и попал в конференцию 0). А как быть с исходящими вызовами (когда диспетчер вызывает какой-то телефонный номер)?
comment:3 by , 8 years ago
Summary: | Рабора пульта с телефонной сетью → Работа пульта с телефонной сетью |
---|
comment:4 by , 8 years ago
Keywords: | public telephone network pstn added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
r316.
Также закрыл замечание 282.
comment:5 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
В r316:
- В настройках программы по-прежнему вижу "Адрес ТФОП". Эта настройка не убрана.
- В настройках программы не вижу настройки имени контекста для вызова абонентов ТСОП. Насколько я вижу, в r316 имя контекста "прибито гвоздями" прямо в коде.
- По-прежнему не решена проблема (не принято решение) о том, как должны идентифицироваться абоненты, пришедшие в конференцию из ТСОП сами (то есть входящие вызовы).
follow-up: 8 comment:7 by , 8 years ago
Replying to dimag:
По пункту 1,2 надо спросить Александра.
в чём вопрос?
Replying to alx:
- По-прежнему не решена проблема (не принято решение) о том, как должны идентифицироваться абоненты, пришедшие в конференцию из ТСОП сами (то есть входящие вызовы).
Какие передложения, варианты?
можно как-то использовать тот-же метод "с префиксом" как при исходящих?
follow-up: 10 comment:8 by , 8 years ago
Replying to san:
Какие передложения, варианты?
можно как-то использовать тот-же метод "с префиксом" как при исходящих?
Попробовать, наверное, можно.
comment:10 by , 8 years ago
Replying to alx:
Попробовать, наверное, можно.
Попробовал, сделал. Не без труда, через задницу, но работает как надо.
follow-up: 12 comment:11 by , 8 years ago
Т.е. сейчас у Димы в программе входящие звонки должны отображаться без доработок?
comment:12 by , 8 years ago
Replying to san:
Т.е. сейчас у Димы в программе входящие звонки должны отображаться без доработок?
Что ты имеешь в виду?
Они и так отображались, вопрос лишь в том, насколько правильно...
Я сделал только одно - когда позвонившый подключается к конференции (то есть нажимает "0" в голосовом меню), к его username слева добавляется "pstn".
comment:16 by , 8 years ago
Забавный монолог :)
Я не знаю, я не проверял этот функционал, если всё работает - закрывайте
follow-up: 18 comment:17 by , 8 years ago
Cc: | added |
---|
Алексей, ваше мнение, работы с входящими звонками от ТФОП вас устраивает?
comment:18 by , 8 years ago
Replying to dimag:
Алексей, ваше мнение, работы с входящими звонками от ТФОП вас устраивает?
В целом - да. Мне не очень нравится, что факт принадлежности вызова к телефонной сети определяется по имени вызывающего абонента (наличию префикса ТСОП), но решения лучше я все равно придумать не могу...
comment:19 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Тогда я закрываю этот тикет, все необходимые изменения были в r316
Согласен. Сейчас сделано "как было" и мы с Димой договаривались что потом переделаем "как правильно", и видимо потом уже наступило.
Алексей, можешь поставить Диме задачу для реализации правильного, на твой взгляд, алгоритма вызова абонентов ТСОП ?
Приём входящих вызовов из ТСОП у нас был реализован с помощью абонента pstn-gw, в определённом контексте, разве этого не достаточно для определения входящего абонента из ТСОП?