5.2. Диалог
Когда инициатор обеспечивает безопасность потока с помощью TLS, реализуются следующие шаги:
Инициатор открывает TCP-соединение и инициирует поток путем посылки XML-заголовка получателю. В заголовок потока вставляется атрибут 'version', со значением как минимум "1.0".
Получатель откликается установлением TCP-соединения и посылкой XML-заголовка потока инициатору, включая при этом в заголовок атрибут 'version', содержащий значение как минимум "1.0".
Получатель предлагает инициатору расширение STARTTLS, включив его вместе с другими возможностями потока (если для взаимодействия с получателем требуется TLS, он должен сигнализировать об этом с помощью включения элемента <required/> в качестве дочернего элемента <starttls/>).
Инициатор выдает команду STARTTLS (т.е., элемент <starttls/>, соотнесенный с пространством имен 'urn:ietf:params:xml:ns:xmpp-tls'), чтобы уведомит получателя, что он хочет начать согласование применения TLS.
Получатель должен откликнуться либо элементом <proceed/>, либо элементом <failure/>, соотнесенным с пространством имен 'urn:ietf:params:xml:ns:xmpp-tls'. Если произойдет сбой, получатель должен прервать XML-поток и разорвать TCP-соединение. Если все в порядке, участники должны попытаться завершить согласование применения TLS через имеющееся TCP-соединение и до завершения этого процесса не должны посылать какие-либо XML-данные.
Инициатор и получатель пытаются согласно с [TLS] завершить согласование TLS.
Если реализация TLS оказалась неудачной, получатель должен разорвать TCP-соединение. В случае же успеха, инициатор должен сформировать новый поток, послав открывающий XML-заголовок получателю (необязательно посылать сначала закрывающий тэг </stream>, так как получатель и инициатор должна рассматривать исходный поток закрытым после успешного завершения согласования применения TLS).
После получения нового заголовка потока от инициатора, получатель должен откликнуться посылкой инициатору нового заголовка XML-потока вмести со всеми доступными возможностями (возможность STARTTLS не включается).