SIP-переадресации 3xx
Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию
Некоторые вендоры отвечают на INVITE переадресацией вместо того, чтобы соединить звонок: «попробуйте вместо этого этот адрес». По умолчанию FlySIP обрабатывает ответ 3xx как любую другую ошибку и переходит к следующей записи маршрутизации. Если на подключении вендора включено Accept 3xx Redirects (принимать переадресации 3xx), коммутатор сам выполняет переадресацию и отправляет звонок на адрес из заголовка Contact.
Как это работает
Заголовок раздела «Как это работает»- Коммутатор отправляет INVITE на подключение с включённым Accept 3xx Redirects (вкладка Advanced Parameters (дополнительные параметры), только для SIP-подключений; по умолчанию выключено).
- Вендор отвечает переадресацией с заголовком
Contact:301 Moved Permanentlyили302 Moved Temporarily: коммутатор берёт первый URI изContact.300 Multiple Choices: коммутатор берёт все URI изContactи сортирует их по параметруq, от наибольшего. URI безqсчитается имеющим1.0.
- Коммутатор отправляет новый INVITE на первый URI. Имя пользователя из URI становится CLD точно в том виде, в каком оно получено: никакое правило трансляции к нему не применяется. Новое плечо получает Call-ID исходного плеча с добавленными
-1,-2и так далее или случайный Call-ID, если включено Random Call-Id (случайный Call-ID). - Если эта попытка не удаётся, коммутатор пробует следующий URI из ответа
300. Если переадресованное назначение отвечает ещё одним3xx, коммутатор выполняет и эту переадресацию. - Redirect Depth Limit (лимит глубины переадресации) (от
1до20, по умолчанию1) ограничивает количество попыток переадресации для одной записи маршрутизации: учитываются и цепочки переадресаций, и URI из ответа300. Когда лимит достигнут или URI закончились, коммутатор переходит к следующей записи маршрутизации, как после любой ошибки.
Каждая попытка переадресации использует тайм-ауты исходной записи маршрутизации: Reply Timeout (тайм-аут ответа) подключения и 1xx Timeout и 2xx Timeout маршрута, как если бы каждый URI был отдельной записью. См. Тайм-ауты звонков. Когда переадресованная попытка завершается одним из Huntstop SIP Codes (SIP-коды huntstop) подключения, звонок, как обычно, останавливается.
Каждая попытка записывает CDR вендора с исходным подключением и тем же маршрутом терминации, поэтому она тарифицируется по цене вендора для исходного префикса, даже если новый CLD имеет другой префикс.
Ключевые понятия
Заголовок раздела «Ключевые понятия»- Connection (подключение) — маршрут к вендору (SIP-хост, порт, протокол, кодеки), по которому маршрутизация отправляет звонки.
- Hunting (перебор маршрутов) — попытка следующего маршрута после неудачной попытки.
- Termination route (маршрут терминации) — прайс-лист префиксов вендора, по которому звонки маршрутизируются к этому вендору; хранится как набор направлений.
- CDR (запись о звонке) — Call Detail Record: одна строка на звонок со временем, длительностью, направлением, стоимостью и причиной разъединения.
Типичные сценарии
Заголовок раздела «Типичные сценарии»Вендор возвращает 300 с тремя шлюзами
Заголовок раздела «Вендор возвращает 300 с тремя шлюзами»Вендор отвечает:
Contact: <sip:000111111111111@192.0.2.5>;q=0.99, <sip:111111111111@192.0.2.4>;q=1.00, <sip:299111111111111@192.0.2.6>;q=0.98Если Accept 3xx Redirects включено, а Redirect Depth Limit равен 3 или больше, коммутатор сначала пробует 192.0.2.4 с CLD 111111111111, затем 192.0.2.5 с 000111111111111, затем 192.0.2.6 с 299111111111111. С лимитом по умолчанию 1 он пробует только 192.0.2.4, а затем переходит к следующей записи маршрутизации.
Вендор переадресует звонки третьей стороне, за которую вы не хотите платить
Заголовок раздела «Вендор переадресует звонки третьей стороне, за которую вы не хотите платить»Оставьте Accept 3xx Redirects выключенным. Тогда 3xx считается ошибкой, и коммутатор переходит к следующей записи группы маршрутизации.