Портнов Алексей Владимирович @boffart
Программист
Information
- Rating
- Does not participate
- Location
- Зеленоград, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Fullstack Developer, 1C Developer
Lead
PHP
Linux
Bash
Программист
Поделитесь опытом как Вы смогли добиться отправки inline keyboard от "user" до "user"?
Интересно выглядит заголовок "отправитель"
через siptgbot (как то в этом процессе учавствует ваш бот)
Решаю схожу задачу, но отправить клавиатуру от пользователя к пользователю способа не нашел.
Бот не имеет возможности отправлять сообщения пользователю, который на него не подписан (не выболнена команда
/start
).Пробовал переадресовать сообщение от бота к пользователю, но кнопки не пересылаются в этом случае.
Явных проблем в конкретном случае я не вижу. В текущем примере MASTER_CHANNEL — это всегда Local канал. Local каналы всегда существуют парами.
Конечно, перед вызовом этой функции следует добавить проверку существования канала, это сделано в develop ветке Mikopbx, тут же примеры описаны упрощенно.
Опять же есть сомнения по поводу «красоты» и правильности итоговых данных в CDR.
Я попробую ваши примеры, но пока не вижу как в них решается задача с множественной регистрацией.
Добро / зло, снова философия... все относительно.
А если серьёзно: буду признателен, если предложите способ решения поставленной задачи без local и redirect. Пока я убеждён, что описал наиболее оптимальный вариант реализации.
Данный функционал был реализован исключительно за счет энтузиазма boffart и jorikfon.
Что такое хорошо, что такое плохо — это все философия. Мне нравится позиция:
Описанный выше способ будет работать одинаково для входящих и для исходящих вызовов.
Если для входящих не проблема выполнить Playback для звонящего и потом направлять по основному маршруту, то для исходящих все сложнее.
Как писал выше в комментариях оповещение можно проиграть только одной стороне, с незначительными правками, главное передать правильное значение имени канала.
В статье описана упрощенная реализация. В итоговом продукте она еще не увидела релиза и будет выглядеть иначе.
Конкретно в дистрибутиве MikoPBX планирую реализовать опцию, где можно будет указать «Кто будет слышать оповещение».
«Слышали оба» — пока посчитали, что это оптимальный вариант. Ничего не мешает поменять опцию в ChanSpy «B» на «w» и будет слышать только звонящий, но тогда возникает проблема — «сотрудник» не может однозначно узнать, когда оповещение завершится и может начать говорить параллельно оповещению.
По сути это переопределение параметров для секции с «type=registration»
Глаза режет, нельзя такое писать! Ведь юзеры так и настроят. А без fail2ban это вообще «Добро пожаловать».
Даже инструкции одно время описал:
wiki.mikopbx.com/providers:yandex:telephony
Попробовать можно, но проблемы кроются в деталях. Меня не устраивала история звонков в этом случае. Усложняется анализ / отборы в отчетах. Усложняется администрирование этого «огорода» учетных записей. «Не зашло» такое решение. В PJSIP все выглядит более красиво и правильно.
Неразрешимых проблем с подключением провайдеров не встретил, хотя проектов выполнил не мало.
224.0.1.75 — это multicast IP (для многоадресной рассылки) «зарезервирован» для SIP серверов
см. networksorcery.com/Enp/protocol/ip/multicast.htm
224.0.1.75 SIP, Session Initiation Protocol (all servers).
networksorcery.com/Enp/protocol/sip.htm
Интерфейса для Askozia пока нет. Не допилили. В ближайшее время постараемся опубликовать рабочую версию с интерфейсом, тогда дополню статью.
Идею подсмотрели у Switchvox PBX. У нас это сделано именно для исходящих правил.
Есть тонкости в «Домашнем регионе», не все операторы связи включают в пакет минут номера из чужих регионов.
Так и работаем. То есть принадлежность номера к определенному провайдеру на текущий момент не важна. А вот звонить на городские через tele2 или yota выгоднее чем через мегафон.
На примере нашей компании — используем GSM шлюз с 4 сим картами от разных провайдеров.
распределяем звонки используя эти правила.
Пример описан тут wiki.mikopbx.com/faq:specific_provider
О кастомизации опишу отдельную статью.
Из минусов — это скрипт придется залить на станцию вручную по SFTP, положить можно к примеру на
/storage/usbdisk1
Дополнительно очень жду видео выступления ))
Пример «Channel»:
Local/number@context
тут:
Из справки: метод "ПолучитьФорму" может быть вызван только в контексте "Тонкий клиент, веб-клиент, толстый клиент".
"НаСервере" инициализировать управляемую форму просто так нет возможности.
В итоге: серверный метод управляемой формы в контексте сервера может быть вызван только из этой самой формы.
То есть вызов "ЭтаФорма.ПриватнаяНаСервере();" теряет смысл и равнозначен "ПриватнаяНаСервере();".