Привет.
Где можно найти описание функционирования dial-string?
Пытаюсь сделать фэйловер, при звонке на внутренний номер, через таймаут, переключать звонящего на мобильный телефон абонента.
Как я понял из confluence, наиболее универсально это можно провернуть через замену dial-string в directory, в параметрах каждого юзера.
Можно, конечно, в диалплане насоздавать экстеншенов для каждого пользователя, но это видится несколько топорным решением "в лоб".
К сожалению, не хватает мозгов понять, как именно тут можно использовать dial-string, а тупо копировать чьё-то решение не хочется.
тут может быть как запись некоторого вида
<param name="dial-string" value="[leg_timeout=45]${sofia_contact(*/${dialed_user}@
my-domain.com)},${sofia_contact(*/12345@my-domain.com)}"/>
<param name="dial-string" value="[leg_timeout=45]${sofia_contact(*/${dialed_user}@
my-domain.com)},sofia/gateway/my_gw/+74951234567"/>
так же можно дополнить условиями используя cond, данными из user_data
а так же можно заставить формировать диалстроку луаскриптом (ну это для случая самой упоротой логики, которую представляется затруднительным описать другими способами с кучей подзапросов условий и прочим)
<param name="dial-string" value="${lua(get_user_dialstring.lua ${dialed_user})}"/>
----
-- get_user_dialstring.lua
local user = argv[1]
local dial_str = ""
dial_str = "some dialstring starts here for user " ..user.. " and ends here"
if stream ~= nil then
stream:write(dial_str)
end
return dial_str