Opened 8 years ago

Closed 8 years ago

Last modified 6 years ago

#282 closed улучшение (fixed)

Переделать исходящие вызовы в телефонную сеть

Reported by: alx Owned by: dimag
Priority: critical Milestone: 2 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: public telephone network, pstn
Cc: san

Description

По просьбе Александра (см. #280) ставлю задачу по изменению способа вызовов номеров телефонной сети.

Предлагаю попробовать делать вызов следующей командой:

originate {var=val,...}loopback/<number>/<context>/XML <confname> XML conference

Change History (19)

comment:1 by alx, 8 years ago

Тут есть проблемы с номером абонента в CDR: вместо номера там "XML"...

comment:2 by alx, 8 years ago

Дополнение. Для правильного отображения вызываемого номера в CDR и списке участников конференции надо дополнительно установить переменную origination_callee_id_number в значение вызываемого номера, например:
originate {...,origination_callee_id_number=112}loopback/112/pstn/XML 0 XML conference

comment:3 by alx, 8 years ago

Теперь есть другая проблема. Вызываю в конференцию, допустим, телефонный номер 112. А он отображается в списке участников как наш местный абонент "ГРС Червень - 112" из-за совпадения имен.

Я не знаю, как решить эту проблему. В качестве промежуточного решения могу предложить при установке значения переменной origination_callee_id_number добавлять какой-то префикс, например:

origination_callee_id_number=pstn:112

Благодаря этому префиксу номера телефонной сети не будут совпадать с номерами локальных пользователей.

Сам префикс предлагаю формировать из имени контекста, который используется для вызова телефонных номеров и двоеточия. Это позволит не добавлять новых настроек в программу (будет настраиваться только имя контекста).

comment:4 by san, 8 years ago

А почему ты считаешь это решенее промежуточным? что плохого в этом?

in reply to:  4 comment:5 by alx, 8 years ago

Replying to san:

А почему ты считаешь это решенее промежуточным? что плохого в этом?

Когда я писал "промежуточное", я придумал еще только добавлять какой-то префикс (предполагая фиксированную строку, например "PSTN:"). Это не решало проблему полностью, так как локальный пользователь тоже может иметь имя "PSTN:112". А уже потом я придумал, что в качестве префикса можно использовать имя контекста, которое у нас конфигурируется. В таком решении я ничего плохого не вижу.

comment:6 by alx, 8 years ago

Кстати, в качестве бонуса мы будем сразу иметь признак того, что это абонент телефонной сети, прямо в его имени без необходимости что-либо специально анализировать в программе...

comment:7 by san, 8 years ago

Ну и отлично, тогда так и сделаем

comment:8 by san, 8 years ago

Priority: majorcritical

comment:9 by dimag, 8 years ago

Для абонента ТФОП с номером 121 используется следующая строка
bgapi originate {originate_timeout=20,origination_caller_id_name='Диспетчерская',origination_caller_id_number=pstn:2,origination_uuid=45538bf5-b2fb-4db4-ac3e-30bb42db3364}loopback/121/pstn/XML 0 XML conference
Когда я получаю список пользователей конференции, то возвращается следующая строка
onference 0 (1 member rate: 8000 flags: running|dynamic|exit_sound|enter_sound|json_status)
610;loopback/121-a;45538bf5-b2fb-4db4-ac3e-30bb42db3364;Outbound Call;XML;hear|speak|floor;0;0;0;300
Вместо имени пользователя 121 у меня имя пользователя XML.
Вчё ли у меня верно?

in reply to:  9 comment:10 by alx, 8 years ago

Replying to dimag:

Вчё ли у меня верно?

Нет, не все.

comment:3:

origination_callee_id_number=pstn:112

comment:11 by dimag, 8 years ago

В опции origination_caller_id_number=pstn:2, 2 - имя пользователя программы.
Данную опция я пишу как origination_caller_id_number=pstn:[имя пользователя программы].
Согласно предыдущему комментарию, я должен писать данную опцию как
origination_caller_id_number=pstn:112, для любого пользователя программы?

in reply to:  11 comment:12 by alx, 8 years ago

Replying to dimag:

В опции origination_caller_id_number=pstn:2, 2 - имя пользователя программы.
Данную опция я пишу как origination_caller_id_number=pstn:[имя пользователя программы].

И это Вы делаете совершенно зря. Предложение добавлять префикс в виде имени контекста и двоеточия касалось номера вызываемого, а вовсе не вызывающего абонента. С именем вызывающего, по-моему, никаких проблем не было и нет.

Согласно предыдущему комментарию, я должен писать данную опцию как
origination_caller_id_number=pstn:112, для любого пользователя программы?

В предыдущем (как и во 2-м, и в 3-м) комментарии ничего не говорилось о переменной origination_caller_id_number. Речь шла о переменной origination_callee_id_number

comment:13 by dimag, 8 years ago

Keywords: public telephone network pstn added
Resolution: fixed
Status: newclosed

r316
Переделал запрос по вашим замечаниям.
Также закрыл замечание 280

comment:14 by alx, 8 years ago

Resolution: fixed
Status: closedreopened

В r316 выполняю такие действия:

  1. запускаю программу;
  2. вхожу в сеть как техник;
  3. нажимаю "Вызов абонента ТСОП";
  4. ввожу номер "112" и нажимаю Enter.

Результат: номер успешно вызывается, но имя участника конференции я вижу как "112", без префикса "pstn:".

comment:15 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

Есть иконка, телфонный номер должен выводиться в том виде, в котором его ввёл пользователь, без приставок в виде pstn:

in reply to:  15 ; comment:16 by alx, 8 years ago

Replying to dimag:

Есть иконка, телфонный номер должен выводиться в том виде, в котором его ввёл пользователь, без приставок в виде pstn:

Почему должен именно так? Аргументируйте, пожалуйста.

in reply to:  16 ; comment:17 by san, 8 years ago

Replying to alx:

Replying to dimag:

Есть иконка, телфонный номер должен выводиться в том виде, в котором его ввёл пользователь, без приставок в виде pstn:

Почему должен именно так? Аргументируйте, пожалуйста.

Тут Дима прав, заказчику не понравится "лишняя" информация на кнопке абонента.

(Если нужно, полное имя можно вывести в всплывающей подсказке)

in reply to:  17 comment:18 by alx, 8 years ago

Replying to san:

заказчику не понравится "лишняя" информация на кнопке абонента.

OK. Если это требование Заказчика, тогда вопросов больше нет.

comment:19 by san, 6 years ago

Milestone: Текущее2 очередь

Milestone renamed

Note: See TracTickets for help on using tickets.