LINUX.ORG.RU

Изменение порта SIP-стека (Sofia-SIP)

 ,


0

1

Здравствуйте! Подскажите пожалуйста, как можно изменить порт SIP-стека без перезапуска приложения?

nua_set_params(nua, NUTAG_URL("Адрес:Порт"), TAG_END());	

не помогает.

Сам стек создается таким образом:

root = su_root_create(NULL);
nua = nua_create(root, event_callback , NULL,
			NUTAG_URL("sip:0.0.0.0:5060"), TAG_END());
	
nua_set_params(nua, NUTAG_ENABLEINVITE(1), 
			SIPTAG_ALLOW_STR("REGISTER, INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO"),
			NUTAG_AUTOALERT(1), NUTAG_AUTOACK(1), 
			NUTAG_MEDIA_ENABLE(0), TAG_END());
su_root_run(root);

Насколько я помню (могу ошибаться), чтобы сменить порт, надо было пересоздать весь стек (иными словами, переоткрыть всё соединение).

Возможно, я сам в тот раз нужного не нашёл, или, пока искал, пришёл к такому вот решению. Кстати, Sofia-SIP ещё жива и развивается? Пекка (или как его там), помнится, куда-то пропадал и никто ничего туда больше не коммитил.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Насчет развития не знаю - последняя версия 1.12.11 от 2011-03-11, но она живее всех живых)

jockerface
() автор топика
Ответ на: комментарий от yoghurt

Я тоже пытался стек пересоздать через

nua_shutdown(nua);
su_root_step(root, 500);
su_root_destroy(root);
nua_destroy(nua);

а затем создание по новой. Но вылезает ошибка

su_base_port.c:448: su_base_port_step: Assertion `su_port_own_thread(self)' failed.

jockerface
() автор топика

назначение порта идет до открытия соединения (ну, и до начала прослушивания этого самого порта). Может быть есть вариант типа открыть второй сокет в соседнем треде, и на старый новых подключений не принимать, но в сипе вроде нет механизма для автосмены адреса, так что кто на старом висел - те там и будут. разве что qualify не придет и они отвалятся если ты так сделаешь.

ну есть конечно упоротый вариант - открываешь новый тред и резко внезапно делаешь тем же иптаблом prerouting перенаправляя старый порт на новый. Хотя учитывая что порт прописан в самом сипе, придется лезть прямо в начинку пакета и менять содержимое на ходу. но это упорин и вообще уже ночь и моя крыша уехала пить чай.

upcFrost ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.