FreeSwitch модификация Contact Header
Добавлено: 19 ноя 2020, 19:06
Здравствуйте, коллеги.
Имеею: debian 10 , freeswitch 1.10.05 из репозитория. Стыки без регистраций по IP адресу.
Вызов приходит по одному стыку без регистрации, и уходит по другому стыку без регистрации.
Требуется изменить поле Contact. Таким образом, чтобы в User Part был CallerID (номер звонящего).
Т.е. изменить поле Contact на B-led в исходящих INVITE.
Т.е. от вида:
Привести к виду:
Что уже делал: нагуглил переменные
Либо так
Без результатов. Точнее так: само значение переменной на B-стороне меняется (проверял uuid_dump) , но в исходящих INVITE ничего не происходит.
После 2 дней с WireShark-ом все-таки смог поменять значение user part в поле Contact, в gateway нужно добавить конфиг:
Проблема заключается в следующем: в данном месте конфига работают только глобальные переменные $${variable_name} , переменные из диалплана сюда не передаются ${variable_name}.
В общем как в User Part в поле Contact запихнуть значение переменной CallerID ?
У меня не получается манипулировать ни каким полем Contact в исходящих INVITE.
Также отдельно замечую поведение при назначении вот этой переменной на B-стороне
Чтобы я туда не записал, выходит ошибка что недопустимое значение переменной.
Также пробовал манипулировать вот этой переменной
эта переменная дописывает параметры через точку с запятой к текущему полю Contact. По факту корректно работает только эта переменная. Но она позволяет только дописать extra params в поле Contact , поменять текущие значения user , host она не может .
Имеею: debian 10 , freeswitch 1.10.05 из репозитория. Стыки без регистраций по IP адресу.
Вызов приходит по одному стыку без регистрации, и уходит по другому стыку без регистрации.
Требуется изменить поле Contact. Таким образом, чтобы в User Part был CallerID (номер звонящего).
Т.е. изменить поле Contact на B-led в исходящих INVITE.
Т.е. от вида:
Код: Выделить всё
Contact: <sip:gw+gw-eltex@192.168.15.1:5060>
Код: Выделить всё
Contact: <sip:74955555555@192.168.15.1:5060>
И пробовал менять их значение на B стороне (в диалплане) , например вот так:sip_contact_params
sip_contact_user
sip_contact_port
sip_contact_uri
sip_contact_host
Код: Выделить всё
<action application="export" data="nolocal:sip_contact_user=74955555555"/>
Код: Выделить всё
<action application="bridge" data="{sip_contact_user=74955555555}sofia/gw-eltex/$1"/>
После 2 дней с WireShark-ом все-таки смог поменять значение user part в поле Contact, в gateway нужно добавить конфиг:
Код: Выделить всё
<param name="username" value="74955555555"/>
<param name="extension" value="74955555555"/>
<param name="extension-in-contact" value="true"/>
В общем как в User Part в поле Contact запихнуть значение переменной CallerID ?
У меня не получается манипулировать ни каким полем Contact в исходящих INVITE.
Также отдельно замечую поведение при назначении вот этой переменной на B-стороне
Код: Выделить всё
sip_outgoing_contact_uri
Также пробовал манипулировать вот этой переменной
Код: Выделить всё
sip_invite_contact_params