Asterisk+1С. Особенности при работе с AMI в 1C 8.x/7.7

Прежде всего, рассмотрим как устроен AMI.  Нужны базовые знания:

  • Что такое строка пакета AMI?
  • Что такое пакет AMI?

Строка

Для связи Астериск и клиента используется построчный протокол, каждая строка которого состоит из:

<Key>: <Value><CRLF>

где <Key> — ключевое слово, <Value> — значение параметра. Завершается строка последовательностью <CRLF>.

Пакет

Пакет в AMI — это набор строк, состоящих из <Key>: <Value><CRLF>. Пакет ОБЯЗАТЕЛЬНО должен оканчиваться дополнительной последовательностью <CRLF>. То есть AMI воспринимает двойной CRLF как признак завершения пакета.

Пример:

В примере, Action, Username, Secret — это . Значения — admin, passwd1234. После строки Secret: passwd1234 следует двойной CRLF, который обозначает окончание пакета.

Особенности работы с AMI в 1С

Версия 1С:Предприятие 7.7 использует для разделения строк функцию РазделительСтрок. Это и есть CRLF.

В версии 1С:Предприятие 8.x используется Unicode. В качестве разделителя для строк в AMI необходимо использовать конструкцию встроенного языка:

Можно использовать более универсальную конструкцию