Сам мучился с использованием переменных в скрипте. Решение вот такое:
1) кавычки не одинарные, а двойные.
2) имя переменной заключается в фигурные скобки
Кавычки, ну кавычки поменяйте же. Никаких `echo`.
И если у вас GNU sed, то у него есть опция -i. Тогда команда будет выглядеть так: sed -i "s/^IP.*/IPADDRESS=$ip/g" /etc/file.conf
Ещё так можно: sed -i 's/^IP.*/IPADDRESS='$ip'/g' /etc/file.conf
Если же sed не GNU, то: sed "s/^IP.*/IPADDRESS=$ip/g" /etc/file.conf > /etc/file.conf2 && mv /etc/file.conf2 /etc/file.conf
Для правильного вопроса надо знать половину ответа
SIP/2.0 404 Not found - вызываемый абонент не найден, нет такого SIP-номера
SIP/2.0 404 Undefined Reason - неопределенное направление
SIP/2.0 404 Unknown user account - логин и пароль не найдены
SIP/2.0 404 Out of Order - в заявке на маршрутизацию по этому направлению нет ни одного шлюза, проверьте настройку маршрутизации по этому направлению.