Хочу выполнять в LUA (или просто в XML диалплане )
session:execute("bridge", "user/1000@example.com" )
при этом в директори для юзера
параметр dial-string = "${cond(${to_sip} == true ? ${sofia_contact(*/1000@example.com)} : sofia/gateway/test_gw/+79771234567 )} "
То есть если установлена сессионная переменная, что нужно совершать вызов на зарегистрированного пользователя, диалстроку получить из
${sofia_contact(*/1000@example.com)},НО в таком случае она будет выглядеть как
sip:1000@1.1.1.1.
Т.к. при выполнении диалстроки сначала происходит раскрытие переменных , то запись получается вида:
dial-string = "${cond(${to_sip} == true ?
sip:1000@1.1.1.1 : sofia/gateway/test_gw/+79771234567 )}
и условия парсятся слева направо, до служебного символа ":"
и получается что в бридж отправляется только содержимое до первого : (sip)
Как быть ? как экранировать ? или использовать другие конструкции какие-то ?