Дмитрий Свиридов, этот вариант будет дешевле по коду, если вы свыкнитесь с тем что Raw поле "торчит".
Альтернативой будет разделение на Template(с конкретным полем) и TemplateRaw(с Raw полем). Первым проходом анмаршаллить JSON в TemplateRaw, вторым - выполнять Unmarshall из TemplateRaw.CategoryInfo в Template.CategoryInfo. Правда там все прочие поля придется скопировать... А это или присваивать каждое поле, либо крутить цикл на Reflect - та еще затея. Есть еще библиотека copystructure реализующая такой функционал. Но проще наверно смириться с лишним полем ;)
violpeople, только так и получать - пользователь написал боту, бот получил Message, а в нем Chat с id. Остается только сохранить куда-то эту информацию для того чтобы всегда знать какой чат с каким пользователем.
По хорошему, стоит сперва выявить причины проблемы - собрать дебаг (а еще лучше научиться свопроизводить и собрать дебаг), собрать дампы протокола во время этой проблемы.
И Asterisk - он за NAT? Обычно ситуация когда, и клиент и Asterisk за NAT - самая проблемная.
В Asterisk используется sip или pjsip? Рекомендую второй - он лучше обрабатывает проблемные ситуации с NAT, да и по отзывам стабильнее работает с WebRTC.
Никита Решетняк, функционал ovpn в Микротиках очень ограниченный - нет пуша роутов, нет работы по UDP и проч. Т.е. не поддерживает все те же функции, что и десктопный/серверный openvpn.
Гектор Синхром, вариантов множество - сервер у вас будет на Linux, скорее всего, и там потребуется только установка, в PATH прописывать нет нужды.
Другой вариант - собрать docker контейнер со всеми зависимостями - будет работать в любых условиях.
В случае проблем - вы знаете ресурс где можно искать и ресурс где можно задать вопрос.
Что не заработало? Как пробовали?